Министерство образования Республики Беларусь
Белорусский государственный университет информатики и электроники
Факультет компьютерных систем и сетей
Кафедра электронных вычислительных машин
Отчёт по лабораторной работе № 1
Выполнил студент Проверила
группы 950501 Павлёнок Н. А.
Иванютенко А. А. _________________
Минск 2010
Условие поставленной задачи
В main() ввести 2 массива длинных целых чисел, рассортированных в порядке возрастания. В функции не используя сортировки, получить общий упорядоченный массив и вывести его в main().
Текст программы
#include<stdio.h>
#include <stdlib.h>
int main()
{
long int *m1,*m2,*m3;
int m,n,i,j,k;
puts("vvedite razmernosti massivov: ");
scanf("%d%d",&m,&n);
m1=(long int*)malloc(m*sizeof(long int));
m2=(long int*)malloc(n*sizeof(long int));
m3=(long int*)malloc((n+m)*sizeof(long int));
puts("Massiv 1:");
for (i=0,j=-15;i<m;i++,j+=5){
m1[i]=rand()%5+j;
printf("%4d",m1[i]);
}
printf("\nMassiv 2:\n");
for (i=0,j=-15;i<n;i++,j+=5){
m2[i]=rand()%5+j;
printf("%4d",m2[i]);
}
i=0; j=0; k=0;
while(i<m&&j<n)
{
while (m1[i]<=m2[j]&&i<m) m3[k++]=m1[i++];
while (m2[j]<=m1[i]&&j<n) m3[k++]=m2[j++];
}
while (i<m) m3[k++]=m1[i++];
while( j< n) m3[k++]=m2[j++];
printf("\nNoviy massiv\n");
for (i=0;i<m+n;i++) printf("%4d",m3[i]);
putchar('\n');
getch();
return 0;
}
Блок-схема
Пошаговый алгоритм выполнения программы
1) Начало программы;
2) Объявление переменных:
long int *m1, *m2, *m3 – указатели на массив длинных целых чисел;
int n,m – размерности массивов;
int i,j,k – переменные циклов;
3) Ввод размерностей массивов;
4) Выделение памяти:
Для m1 размерностью m;
Для m2 размерностью n;
Для m3 размерностью m+n;
5) Начало цикла по i пока i<m;
6) Ввод чисел в 1-ый массив, сгенерированных генератором случайных чисел;
7) Конец цикла;
8) Начало цикла по i пока i<n;
9) Ввод чисел в 2-ой массив, сгенерированных генератором случайных чисел;
10) Конец цикла;
11) Начало цикла по i и j пока i<m, j<n;
12) Начало цикла m1[i]<=m2[j]&&i<m;
13) Присваивание элементов 1-ого массива элементам 3-его массива;
14) Конец цикла;
15) Начало цикла m2[i]<=m2[j]&&i<n;
16) Присваивание элементов 2-ого массива элементам 3-его массива;
17) Конец цикла;
18) Конец цикла по i и j;
19) Возможная дозапись остатка:
Цикл пока i<m : Присваивание элементов 1-ого массива элементам 3-его массива;
Цикл пока i<n : Присваивание элементов 2-ого массива элементам 3-его массива;
20) Начало цикла по i пока i<n+m;
21) Вывод на экран элементов 3-его массива;
22) Конец цикла по i;
23) Конец программы;
Результат работы программы
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.