Нужно переписать готовый код программы с использованием процедур. Программа выполняет следуюшие задание: дан двумерный массив размером m на n.Найти сумму его полож. элем.Из первых четырех строк сформ.4новых вектора и в каждом из них удалить элем.Принадлеж.Отрез.[а;в] и сохраняет полученный результаты в файл. Код:
uses crt; const n=10; var ms1,ms2,ms3,ms4: array[1..n] of integer; i,j,k1,k2,k3,k4: byte; mas: array[1..n,1..n] of integer; a,b: integer; sum: longint; f: text; begin randomize; clrscr; writeln('исходный массив: '); {заполнение и вывод элементов массива} for i:=1 to n do begin for j:=1 to n do begin mas[i,j]:=random(19); mas[i,j]:=mas[i,j]-9; write(mas[i,j]:3); end; writeln; end; writeln;
for i:=1 to n do {вычисление суммы и её вывод} for j:=1 to n do if mas[i,j]>0 then sum:=sum+mas[i,j]; writeln('сумма положительных элементов матрицы = ',sum,^j);
for j:=1 to n do {формирование 4-х одномерных массивов} begin ms1[j]:=mas[1,j]; ms2[j]:=mas[2,j]; ms3[j]:=mas[3,j]; ms4[j]:=mas[4,j]; end;
writeln('вектора, сформированные из элементов первых 4-х строк матрицы: '); {вывод векторов} write('1) '); for j:=1 to n do write(ms1[j]:3); writeln; write('2) '); for j:=1 to n do write(ms2[j]:3); writeln; write('3) '); for j:=1 to n do write(ms3[j]:3); writeln; write('4) '); for j:=1 to n do write(ms4[j]:3); writeln(^j);
write('введите длину отрезка [a;b]: '); readln(a,b);
writeln; if a>b then {в случае если a>b, то меняем их значение местами} begin a:=a+b; b:=a-b; b:=a-b; end;
for j:=n downto 1 do {проверка векторов на наличие элементов, попадающих в отрезок [a;b]} begin if (ms1[j]>=a) and (ms1[j]<=b) then begin inc(k1); for i:=j to n-k1 do ms1[i]:=ms1[i+1]; ms1[n-k1+1]:=0; end; if (ms2[j]>=a) and (ms2[j]<=b) then begin inc(k2); for i:=j to n-k2 do ms2[i]:=ms2[i+1]; ms2[n-k2+1]:=0; end; if (ms3[j]>=a) and (ms3[j]<=b) then begin inc(k3); for i:=j to n-k3 do ms3[i]:=ms3[i+1]; ms3[n-k3+1]:=0; end; if (ms4[j]>=a) and (ms4[j]<=b) then begin inc(k4); for i:=j to n-k4 do ms4[i]:=ms4[i+1]; ms4[n-k4+1]:=0; end; end;
writeln('результирующие массивы: '); {вывод векторов (в случае, если все элементы вектора попадают в пределы отрезка, то массив не выводится)} write('1) '); for i:=1 to n-k1 do write(ms1[i]:3); writeln; write('2) '); for i:=1 to n-k2 do write(ms2[i]:3); writeln; write('3) '); for i:=1 to n-k3 do write(ms3[i]:3); writeln; write('4) '); for i:=1 to n-k4 do write(ms4[i]:3);
assign(f,'file.doc'); {запись в файл} rewrite(f); writeln(f,'ishodn. massiv: '); for i:=1 to n do begin for j:=1 to n do write(f,mas[i,j]:3); writeln(f); end; writeln(f,'summa = ',sum); writeln(f,'result. massivi: '); for i:=1 to n-k1 do write(f,ms1[i]:3); writeln(f); for i:=1 to n-k2 do write(f,ms2[i]:3); writeln(f); for i:=1 to n-k3 do write(f,ms3[i]:3); writeln(f); for i:=1 to n-k4 do write(f,ms4[i]:3); writeln(f); close(f); end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.