1) var f:text; a:array[1..7] of real; i,k,c,x:integer; s:string; begin for i:=1 to 7 do begin readln(x); a[i]:=x; end; assign(f,'file.txt'); rewrite(f); for i:=1 to 7 do begin str(a[i],s); writeln(f,s); end; close(f); reset(f); k:=0; while not eof(f) do begin readln(f,s); val(s,x,c); if x<0 then k:=k+1; end; close(f); if k<>0 then writeln('В массиве ',k,' отрицательных элемента(ов)'); else writeln('В массиве нет отрицательных элементов'); erase(f); end.
2) Var a,b,c,d:integer;
Function max(a,b:integer):integer; begin if a>b then max:=a else max:=b; end;
Begin readln(a,b,c,d); a:=(max(a,b)); b:=(max(c,d)); writeln('max=',max(a,b)); End.
Алгоритм сортировки строки массива по возрастанию методом прямого выбора может быть представлен так: 1. Просматривая строку массива от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального. 2. Просматривая строку массива от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального. 3. И так далее до предпоследнего элемента.
Решение:
//Pascal const n = 7;
var a: array[1..n, 1..n] of integer; i, j, min, ind: integer;
//Заполнение массива сл. числами и вывод на экран begin for i := 1 to n do begin for j := 1 to n do begin a[i, j] := random(100); write(a[i, j]:4); end; writeln; end;
//Сортировка строки матрицы прямым выбором
for i := 1 to n - 1 do begin min := a[4, i]; ind := i; for j := i + 1 to n do if a[4, j] < min then begin min := a[4, j]; ind := j; end; a[4, ind] := a[4, i]; a[4, i] := min; end; writeln;
//вывод отсортированной строки for j := 1 to n do begin write(a[4, j]:4); end; end.