Массив размером 7 строк 7 столбцов заполнить числами из входного текстового файла. Исходный массив распечатать. Столбец, где расположен мини
Условие задачи:Массив размером 7 строк 7 столбцов заполнить числами из входного текстового файла. Исходный массив распечатать. Столбец, где расположен минимальный элемент массива, упорядочить по возрастанию методом пересчета в одномерный массив. Созданный массив распечатать.
Program PascalGuru; uses crt;
var X:array[1..7,1..7] of real; {описание переменных} i,j,l:integer; code,min:integer; cislo:real; s:string; f,t:text;
{----------------------------------------------} procedure exchange(var a,b:real); {функция обмена} var c:real; begin c:=a; a:=b; b:=c; end; {----------------------------------------------}
begin assign(f,'DATF.TXT'); reset(f); {подключение файла для считывания} assign(t,'UMNIK5.RES'); rewrite(t); {подключение файла для записи}
i:=0; {счётчик текущей строки} while not eof(f) do {цикл считывания файла} begin readln(f,s); {итывание текущей строки} inc(i); {счётчик текущей строки увеличиваем на +1}
val(copy(s,1,8),cislo,code); delete(s,1,8); X[i,1]:=cislo; {1-ое число i-ой строки } val(copy(s,1,8),cislo,code); delete(s,1,8); X[i,2]:=cislo; {2-ое число i-ой строки } val(copy(s,1,8),cislo,code); delete(s,1,8); X[i,3]:=cislo; {3-ое число i-ой строки } val(copy(s,1,8),cislo,code); delete(s,1,8); X[i,4]:=cislo; {4-ое число i-ой строки } val(copy(s,1,8),cislo,code); delete(s,1,8); X[i,5]:=cislo; {5-ое число i-ой строки } val(copy(s,1,8),cislo,code); delete(s,1,8); X[i,6]:=cislo; {6-ое число i-ой строки } val(copy(s,1,8),cislo,code); delete(s,1,8); X[i,7]:=cislo; {7-ое число i-ой строки } end; {конец считывания файла}
write('Ishodnaya matritsa:'); {вывод на экран исходной матрицы} for i:=1 to 7 do begin writeln; for j:=1 to 7 do write (X[i,j]:8:3); end;
writeln(t,'Ishodnaya matritsa:'); {вывод исходной матрицы в файл} for i:=1 to 7 do begin if i<>1 then writeln(t); for j:=1 to 7 do begin str(X[i,j]:0:3,s); for l:=length(s) to 8 do s:=' '+s; write (t,s);
end; end; {-------------------------------------------------------------------------} { ниже реализован следующий алгоритм "сортировки по возрастанию методом выбора" ********************************************************* нц для j от 1 до N-1 выбрать среди M[j],. . ., M[N] наименьший элемент и поменять его местами с M[j] кц ********************************************************* }
for i:=1 to 6 do {начало работы алгоритма "сортировки по возрастанию методом выбора"} begin min:=i; for j:=i+1 to 7 do if X[j,8-j] exchange(X[i,8-i],X[min,8-min]); end; {-------------------------------------------------------------------------}
writeln;writeln;write('Otsortirovannaya matritsa:'); {вывод на экран отсортированной матрицы} for i:=1 to 7 do begin writeln; for j:=1 to 7 do write (X[i,j]:8:3); end;
writeln(t);writeln(t); writeln(t,'Otsortirovannaya matritsa:'); {вывод отсортированной матрицы в файл} for i:=1 to 7 do begin if i<>1 then writeln(t); for j:=1 to 7 do begin str(X[i,j]:0:3,s); for l:=length(s) to 8 do s:=' '+s; write (t,s);