2 вариант: то же, но чтение чисел происходит из файла, вывод - в другой файл.
Задача 1 (1 вариант)
Program St1;
Const N=1000;
Type
stack=array[1..N] of integer; {тип данных "стек"}
Var
St : stack; {стек}
top : integer; {вершина стека}
x : integer; {число для работы}
Function Full:boolean;
begin
Full := top=N;
end;
Function Empty:boolean;
begin
Empty := top=0;
end;
Procedure AddSt(a:integer);
begin
if not(full) then
begin
inc(top);
st[top]:=a;
end
else
writeln('Стек полон');
end;
Procedure OutSt(Var a:integer);
begin
if not(Empty) then
begin
a:=st[top];
dec(top);
end
else
writeln('Стек пуст');
end;
Begin
top:=0;
Repeat
readln(x);
AddSt(x);
Until x=0;
writeln('Числа в обратном порядке:');
While not(Empty) do
begin
OutSt(x);
write(x, ', ');
end;
writeln;
End.
Задача 1 (2 вариант)
Type
stack=array[1..N] of integer; {тип данных "стек"}
Var
St : stack; {стек}
top : integer; {вершина стека}
x : integer; {число для работы}
f : text; {файловая переменная}
Function Full:boolean;
begin
Full := top=N;
end;
Function Empty:boolean;
begin
Empty := top=0;
end;
Procedure AddSt(a:integer);
begin
if not(full) then
begin
inc(top);
st[top]:=a;
end
else
writeln('Стек полон');
end;
Procedure OutSt(Var a:integer);
begin
if not(Empty) then
begin
a:=st[top];
dec(top);
end
else
writeln('Стек пуст');
end;
Begin
top:=0;
assign(f,'data.txt'); {связываем переменную f с файлом data}
reset(f); {открываем файл для чтения}
While not(Eof(f)) do {пока не достигнут конец файла}
begin
readln(f,x); {считываем из файла очередное число}
AddSt(x); {и добавляем его в стек}
end;
close(f); {закрываем файл}
writeln('Результат сохранен в файле rez.txt');
assign(f,'rez.txt'); {связываем переменную f с файлом rez}
rewrite(f); {открываем файл для записи}
While not(Empty) do
begin
OutSt(x);
writeln(f,x);
end;
close(f); {закрываем файл}
End.
Комментариев нет:
Отправить комментарий