// PascalABC.NET 3.0, сборка 1128 const nmax=100; var n,i,j,nn,nz,np,t:integer; a,an,az,ap:array[1..nmax] of integer; begin // формируем массив и выводим его Write('Количество элементов в массиве: '); Read(n); for i:=1 to n do begin a[i]:=Random(11)-5; Write(a[i],' ') end; Writeln; // разбиваем массив на три подмассива nn:=0; nz:=0; np:=0; for i:=1 to n do if a[i]<0 then begin nn:=nn+1; an[nn]:=a[i] end else if a[i]=0 then begin nz:=nz+1; az[nz]:=a[i] end else begin np:=np+1; ap[np]:=a[i] end; // сортируем массив с отрицательными элементами по убыванию for i:=1 to nn-1 do for j:=1 to nn-1 do if an[j]<an[j+1] then begin t:=an[j]; an[j]:=an[j+1]; an[j+1]:=t end; // сортируем массив с положительными элементами по возрастанию for i:=1 to np-1 do for j:=1 to np-1 do if ap[j]>ap[j+1] then begin t:=ap[j]; ap[j]:=ap[j+1]; ap[j+1]:=t end; // формируем новое содержимое массива a i:=0; for j:=1 to nz do begin i:=i+1; a[i]:=az[j] end; for j:=1 to np do begin i:=i+1; a[i]:=ap[j] end; for j:=1 to nn do begin i:=i+1; a[i]:=an[j] end; // вывод результата for i:=1 to n do Write(a[i],' '); Writeln end.
//PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016) var b: array of real; i, n,pn: integer; ps,op,min:real; begin write('Количество элементов массива :');readln(n); SetLength(b, n); // задаем длину массива min:=MaxReal; op:=1; writeln('Исходный массив:'); for i:=0 to n-1 do begin repeat write('Введите ',i+1,' число из ',n,' : ');readln(b[i]); until (b[i]<=5) and (b[i]>=-20); if (b[i]>0) and (round(b[i]/2)*2=b[i]) then begin ps +=b[i];pn+=1; end else if b[i]<0 then op *=b[i]; if b[i]<min then min:=b[i]; end; writeln; writeln('сумма положительных и четных элементов массива :',ps:0:3); writeln('Среднее положительных и четных элементов массива :',ps/pn:0:3); writeln('Произведение отрицательных элементов массива :',op:0:3); writeln('Минимальный элемент массива :',min); writeln('Отсортированный массив по убыванию :'); b.sorteddescending.println; end.
Тестовое решение: Количество элементов массива :8 Исходный массив: Введите 1 число из 8 : -18.5 Введите 2 число из 8 : 3.4 Введите 3 число из 8 : 4 Введите 4 число из 8 : -12 Введите 5 число из 8 : 2.2 Введите 6 число из 8 : -6.3 Введите 7 число из 8 : 2 Введите 8 число из 8 : 5
сумма положительных и четных элементов массива :6.000 Среднее положительных и четных элементов массива :3.000 Произведение отрицательных элементов массива :-1398.600 Минимальный элемент массива :-18.5 Отсортированный массив по убыванию : 5 4 3.4 2.2 2 -6.3 -12 -18.5
Задание №2 //PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016) var a: array of integer; i,n ,max,h,k: integer; begin write('Количество элементов массива :');readln(n); write('Число H :');readln(h); write('Число K :');readln(k); SetLength(a, n); // задаем длину массива max:=-MaxInt; writeln('Исходный массив:'); for i:=0 to n-1 do repeat write('Введите ',i+1,' число из ',n,' : ');readln(a[i]); if a[i]>max then max:=a[i]; until (a[i]<=7) and (a[i]>=-12); for i:=0 to n-1 do begin if (a[i]>h) and (a[i]mod k=0) then writeln('Число ', a[i],' больше ',h,' и кратно ',k); end; writeln('Максимальный элемент массива :',max); writeln('Отсортированный массив по возрастанию :'); a.sorted.println; end.
Тестовое решение: Количество элементов массива :8 Число H :-8 Число K :2 Исходный массив: Введите 1 число из 8 : -10 Введите 2 число из 8 : 6 Введите 3 число из 8 : -4 Введите 4 число из 8 : 3 Введите 5 число из 8 : 1 Введите 6 число из 8 : -1 Введите 7 число из 8 : -12 Введите 8 число из 8 : 4 Число 6 больше -8 и кратно 2 Число -4 больше -8 и кратно 2 Число 4 больше -8 и кратно 2 Максимальный элемент массива :6 Отсортированный массив по возрастанию : -12 -10 -4 -1 1 3 4 6
const
nmax=100;
var
n,i,j,nn,nz,np,t:integer;
a,an,az,ap:array[1..nmax] of integer;
begin
// формируем массив и выводим его
Write('Количество элементов в массиве: '); Read(n);
for i:=1 to n do begin
a[i]:=Random(11)-5;
Write(a[i],' ')
end;
Writeln;
// разбиваем массив на три подмассива
nn:=0; nz:=0; np:=0;
for i:=1 to n do
if a[i]<0 then begin nn:=nn+1; an[nn]:=a[i] end
else
if a[i]=0 then begin nz:=nz+1; az[nz]:=a[i] end
else begin np:=np+1; ap[np]:=a[i] end;
// сортируем массив с отрицательными элементами по убыванию
for i:=1 to nn-1 do
for j:=1 to nn-1 do
if an[j]<an[j+1] then
begin t:=an[j]; an[j]:=an[j+1]; an[j+1]:=t end;
// сортируем массив с положительными элементами по возрастанию
for i:=1 to np-1 do
for j:=1 to np-1 do
if ap[j]>ap[j+1] then
begin t:=ap[j]; ap[j]:=ap[j+1]; ap[j+1]:=t end;
// формируем новое содержимое массива a
i:=0;
for j:=1 to nz do begin i:=i+1; a[i]:=az[j] end;
for j:=1 to np do begin i:=i+1; a[i]:=ap[j] end;
for j:=1 to nn do begin i:=i+1; a[i]:=an[j] end;
// вывод результата
for i:=1 to n do Write(a[i],' ');
Writeln
end.
Тестовое решение:
Количество элементов в массиве: 15
1 2 5 0 -5 -3 0 0 1 -4 3 -2 -2 0 -5
0 0 0 0 1 1 2 3 5 -2 -2 -3 -4 -5 -5