Всем спасибо за предыдущую задачу. А вот мой вариант:
Исходный код
uses crt;
const n=9;
type mas=array[1..n] of integer;
fmass=file of mas;
var
f: fmass;
i,x:integer;
a:mas;
procedure oddSort(var m:mas);
var x1,t:integer;
begin
x1:=1;
while(x1<n)do
begin
if odd(M[x1]) and not odd(M[x1+1])
then
begin
t:=m[x1];
m[x1]:=m[x1+1];
m[x1+1]:=t;
x1:=x1-1;
if x1<1 then x1:=1;
end
else
x1:=x1+1;
end;
end;
procedure vivod(var f :fmass );
begin
reset(f);
writeln;
while not eof(f) do
begin
read(f,a);
for x:=1 to n do
write(a[x],' ');
writeln;
end;
end;
begin
clrscr;
randomize;
assign(f,'000.000');
{$I-}reset(f);{$I+}
if ioresult<>0 then begin
rewrite(f);
repeat
for i:=1 to n do
a[i]:=random(10);
write(f,a);
writeln('vvesti eshe ?', 'y');
until readkey='n';
close (f);
end;
window(1,1,40,25);
vivod(f);
reset(f);
while not eof(f) do
begin read(f,a);
oddSort(a);
seek(f,filepos(f)-1);
write(f,a);
end;
window(40,1,80, 25);
vivod(f);
readkey;
close(f);
end.
1. создать файл f1, где каждая компонента - матрица nXn. Поменять местами элементы лежащие на главной и побочной диагоналях в каждой компоненте (т. е. матрице) файла. Минимальное значение каждой компоненты записать в файл f2.
2. создать файл f1, где компонента массив из n чисел(n кратно трем). Переставить числа в каждой комбинации таким образом:
есть
123 456 789
321 654 987
Средние числа каждой проссумировать и общую сумму каждой компоненты записать в файл f2,
а в файл f1 преставленные компоненты записать обратно после перестановки. В файле f2 найти максимальное значение и удолить. Вывести файлы на экран.
3. Создать текстовый файл, где каждая строка файла - это предложение. Переставить местами первое и последнее слово каждого предложения. Переставленный текст записать строкой в новый текстовый файл.
У кого какие есть предложения?
Как всегда желательно все узреть наглядно, то есть в исходниках.