const nn=100; // предельное кол-во элементов в массиве type mas=array[1..nn] of integer;
procedure RandomArray(var a:mas;n,p,q:integer); // Заполняет первые n элементов массива a // случайными числами из интервала [p;q] var i:integer; begin for i:=1 to n do a[i]:=Random(q-p+1)+p end;
procedure PrintArray(a:mas;n:integer); // Выводит на экран первые n элементов массива a var i:integer; begin for i:=1 to n do Write(a[i],' '); Writeln end;
procedure SortByDescending(var a:mas;n:integer); // Сортирует по невозрастанию первые n элементов массива a. // Элементарная обменная сортировка var i,j,t:integer; begin for i:=1 to n-1 do for j:=1 to n-1 do if a[j]<a[j+1] then begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t end end;
// Основная программа var i,n1,n2,n3,x,y:integer; a,b,c:mas; begin Randomize; Write('Кол-во элементов в массиве и границы интервала из значений: '); Read(n1,x,y); RandomArray(a,n1,x,y); Write('Кол-во элементов в массиве и границы интервала из значений: '); Read(n2,x,y); RandomArray(b,n2,x,y); Write('Первый массив: '); PrintArray(a,n1); Write('Второй массив: '); PrintArray(b,n2); Writeln('Объединенный массив, отсортированный по невозрастанию'); n3:=n1+n2; for i:=1 to n1 do c[i]:=a[i]; for i:=1 to n2 do c[i+n1]:=b[i]; SortByDescending(c,n3); PrintArray(c,n3) end.
Тестовое решение Кол-во элементов в массиве и границы интервала из значений: 8 10 60 Кол-во элементов в массиве и границы интервала из значений: 6 30 90 Первый массив: 41 56 14 57 52 51 30 54 Второй массив: 76 36 44 39 68 38 Объединенный массив, отсортированный по невозрастанию 76 68 57 56 54 52 51 44 41 39 38 36 30 14
2. На самом деле эту же задачу можно написать гораздо короче
// PascalABC.NET 3.1, сборка 1246 от 23.05.2016 begin var n1,n2,x,y:integer; Write('Кол-во элементов в массиве и границы интервала из значений: '); Read(n1,x,y); var a:=ArrRandom(n1,x,y); Write('Кол-во элементов в массиве и границы интервала из значений: '); Read(n2,x,y); var b:=ArrRandom(n2,x,y); Write('Первый массив: '); a.Println; Write('Второй массив: '); b.Println; Writeln('Объединенный массив, отсортированный по невозрастанию'); var c:=(a+b).SortedDescending; c.Println end.
Ну так как знаю язык программы Dev-C++, напишу и если я не ошибаюсь это массив :-) #include main() { int i, n; float s; printf("n="); scanf("%d", &n); int a[n]; for(i=0; i { printf("\n a[%d]=", i); scanf("%d", &a[i]); } s=0; for(i=0; i s=s+a[i]; printf("s=%f", s); puts("Massiv:"); for(i=0; i printf("\n a[%d]=%d", i, a[i]); getchar(); return(0); } напишу краткое объяснение, 1- пишем н, произвольное, это количемтво этих исел будет, 2- создаем массив с и ( параметр массива) меньшим н там мы пишем эти числа, сумму которых нужно всчитать 3- находим сумму 4- пишем чемк она равна 5- выводим массив и все если программа не бкдет идти напиши вконце место return(0); => getchar();
Uses crt; const n = 100; var a: array [1..n] of integer; b: array [1..n] of integer; i, j, m: byte; p1, p2: integer; begin write('Количество элементов: '); readln(m); clrscr; writeln('Ввод массива A'); writeln; for i:=1 to m do begin write('A[',i,']: '); readln(a[i]); end; clrscr; writeln('Ввод массива B'); writeln; for i:=1 to m do begin write('B[', i, ']: '); readln(b[i]); end; clrscr; writeln; writeln('Исходный массив А:'); for i:=1 to m do write(a[i]:4); writeln; writeln; writeln('Исходный массив B:'); for i:=1 to m do write(b[i]:4); for i:=1 to m-1 do for j:=m downto i do begin if a[i] > a[j] then begin p1:=a[i]; a[i]:=a[j]; a[j]:=p1; end; if b[j] > b[i] then begin p2:=b[i]; b[i]:=b[j]; b[j]:=p2; end; end; writeln; writeln; writeln('Массив А по возрастанию:'); for i:=1 to m do write(a[i]:4); writeln; writeln; writeln('Массив B по убыванию:'); for i:=1 to m do write(b[i]:4); writeln; writeln; writeln('Массив A+B:'); for i:=1 to m do begin a[i]:=a[i]+b[i]; write(a[i]:4); a[i]:=a[i]-b[i]; end; writeln; writeln; writeln('Массив B-A:'); for i:=1 to m do begin b[i]:=b[i]-a[i]; write(b[i]:4); end; readln; end.
const
nn=100; // предельное кол-во элементов в массиве
type
mas=array[1..nn] of integer;
procedure RandomArray(var a:mas;n,p,q:integer);
// Заполняет первые n элементов массива a
// случайными числами из интервала [p;q]
var
i:integer;
begin
for i:=1 to n do a[i]:=Random(q-p+1)+p
end;
procedure PrintArray(a:mas;n:integer);
// Выводит на экран первые n элементов массива a
var
i:integer;
begin
for i:=1 to n do Write(a[i],' ');
Writeln
end;
procedure SortByDescending(var a:mas;n:integer);
// Сортирует по невозрастанию первые n элементов массива a.
// Элементарная обменная сортировка
var
i,j,t:integer;
begin
for i:=1 to n-1 do
for j:=1 to n-1 do
if a[j]<a[j+1] then
begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t end
end;
// Основная программа
var
i,n1,n2,n3,x,y:integer;
a,b,c:mas;
begin
Randomize;
Write('Кол-во элементов в массиве и границы интервала из значений: ');
Read(n1,x,y);
RandomArray(a,n1,x,y);
Write('Кол-во элементов в массиве и границы интервала из значений: ');
Read(n2,x,y);
RandomArray(b,n2,x,y);
Write('Первый массив: '); PrintArray(a,n1);
Write('Второй массив: '); PrintArray(b,n2);
Writeln('Объединенный массив, отсортированный по невозрастанию');
n3:=n1+n2;
for i:=1 to n1 do c[i]:=a[i];
for i:=1 to n2 do c[i+n1]:=b[i];
SortByDescending(c,n3);
PrintArray(c,n3)
end.
Тестовое решение
Кол-во элементов в массиве и границы интервала из значений: 8 10 60
Кол-во элементов в массиве и границы интервала из значений: 6 30 90
Первый массив: 41 56 14 57 52 51 30 54
Второй массив: 76 36 44 39 68 38
Объединенный массив, отсортированный по невозрастанию
76 68 57 56 54 52 51 44 41 39 38 36 30 14
2. На самом деле эту же задачу можно написать гораздо короче
// PascalABC.NET 3.1, сборка 1246 от 23.05.2016
begin
var n1,n2,x,y:integer;
Write('Кол-во элементов в массиве и границы интервала из значений: ');
Read(n1,x,y);
var a:=ArrRandom(n1,x,y);
Write('Кол-во элементов в массиве и границы интервала из значений: ');
Read(n2,x,y);
var b:=ArrRandom(n2,x,y);
Write('Первый массив: '); a.Println;
Write('Второй массив: '); b.Println;
Writeln('Объединенный массив, отсортированный по невозрастанию');
var c:=(a+b).SortedDescending; c.Println
end.