Программа №1. Ее условие: "В файле хранятся строки. Преобразовать строку, заменяя каждую цифру соответствующим ей числом пробелов" (желательно также для каждой процедуры сделать отдельную блок-схему).
_________________________________________________________________
Программа №2. Её условие: "Дан файл, элементами которого являются n-мерные векторы. Векторы с наибольшим модулем перенести в конец файла" (желательно также для каждой процедуры сделать отдельную блок-схему).
:
Program 1;
uses crt;
var f,g:text;
fname,k:string;
n,u,y:integer;
m:char;
begin
clrscr;
//открытие файла
writeln('Введите имя файла для чтения');
readln(fname);
assign(f,fname);
{$I-}
reset(f);
{$I+}
if IOResult<> 0 then
begin
writeln('Файл не найден');
readln;
exit;
end;
writeln('Введите имя файла для записи');
readln(fname);
assign(g,fname);
rewrite(g);
//чтение файла и преобразование строк
while not eof(f) do
begin
readln(f,k);
for u:=length(k) downto 1 do
if k[u] in ['0'..'9'] then
begin
for y:=1 to ord(k[u])-ord('0') do
insert(' ',k,u+1);
delete(k,u,1);
end;
writeln(k);
writeln(g,k);
end;
close(f);
close(g);
readln;
end.
Программа №2. Её условие: "Дан файл, элементами которого являются n-мерные векторы. Векторы с наибольшим модулем перенести в конец файла" (желательно также для каждой процедуры сделать отдельную блок-схему).
:
uses crt;
const n=5; mmax=20;
type mas=array[1..n] of integer;
fail=file of mas;
function max(x:mas):integer;
var i,mx:integer;
begin
mx:=abs(x[1]);
for i:=2 to n do
if abs(x[i])>mx then
mx:=abs(x[i]);
max:=mx
end;
var f:fail;
x,y:mas;
m,i,j,k,mx:integer;
begin
clrscr;
randomize;
assign(f,'filef');
rewrite(f);
repeat
write('ведите количество компонет до',mmax,' m=');
readln(m);
until m in [1..mmax];
for i:=1 to m do
begin
for j:=1 to n do
x[j]:=random(101);
write(f,x);
end;
writeln('Содержание исходного файла:');
writeln('Макс. модуль':n*5+12);
reset(f);
mx:=-maxint-1;
while not eof(f) do
begin
read(f,x);
for i:=1 to n do
begin
write(x[i]:5);
if max(x)>mx then
mx:=max(x);
end;
writeln(max(x):7);
end;
writeln('Максимальный модуль=',mx);
seek(f,0);
k:=0;{количество компонент с макс. модулем}
i:=0;
while i<filesize(f)-k do
begin
seek(f,i);
read(f,x);
if max(x)=mx then
begin
k:=k+1;
for j:=i to filesize(f)-k-1 do
begin
seek(f,j+1);
read(f,y);
seek(f,j);
write(f,y);
end;
seek(f,filesize(f)-k);
write(f,x);
end;
i:=i+1;
end;
writeln('Компоненты с макс. модулем в конец:');
writeln('Макс. модуль':n*5+12);
seek(f,0);
while not eof(f) do
begin
read(f,x);
for i:=1 to n do
write(x[i]:5);
writeln(max(x):7);
end;
close(f);
readln
end.