Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на файлы. Дано предложение. Каждое слово оканчивающееся на 'a' переписать в творительном падеже.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Ton
Задача на файлы. Дано предложение. Каждое слово оканчивающееся на 'a' переписать в творительном падеже. Результат вывести на экран.( написать подпрограммой с использованием процедур ввода и вывода).
uses crt;
var
s, wrd : string;
i : Integer;

begin
Assign (input, 'input.txt');
Reset (input);

Assign (output, 'output.txt');
Rewrite (output);

while not EoF do begin
ReadLn (s);
s := s + ' ';
wrd := '';
for i := 1 to Length(s) do
if s[i] = ' ' then begin
if wrd[Length(wrd)] = 'а' then begin
Delete (wrd, Length(wrd)-1, 1);
WriteLn (wrd + 'ой')
end;
wrd := ''
end
else
wrd := wrd + s[i]
end

end.


!!!СДЕЛАЛ БЕЗ ПОДПРОГРАММ, ПОМОГИТЕ СДЕЛАТЬ С ПОДПРОГРАММАМИ ВОТ ПРИМЕР :





uses crt;
const vid: array[1..3] of integer = (100, 200, 300);

n = 3;
type zap = record ;
fio: string[10];
rez: byte;
kolvo: array[1..3] of integer;
st: integer;
end;
mas = array[1..n] of zap;
var a: mas;

procedure vvod(var a: mas);
var i, j, fio, st, kolvo: byte;
begin
for i := 1 to n do begin
writeln('Введите данные', i, 'zap');
with a[i] do begin
write('Fio '); readln(fio);
write('Введите количество акций первого вида '); readln(kolvo[1]);
write('Введите количество акций второго вида '); readln(kolvo[2]);
write('Введите количество акций третьего вида '); readln(kolvo[3]);
st := 0;
for j := 1 to 3 do
st := st + vid[j] * kolvo[i];
end; end; end;

procedure print(a: mas);
var i: byte;
begin
for i := 1 to n do
writeln(a[i].fio: 10, a[i].st: 5);
end;

procedure Max(a: mas);
var max: real; i: integer;
begin
max := a[1].st;
for i := 2 to n do
if a[i].st > max then max := a[i].st;
for i := 1 to n do
if a[i].st = max then writeln(a[i].fio, a[i].st: 8);
readln;
end;
begin clrscr;
vvod(a);
print(a);
max(a);
readln
end.
Rian
вопросов нет, у тебя эта прога без ошибок компилится?
оформить код тегами можешь?
Rian
на подпрограммы можно поделить так, но врядли замана "а" на "ой" можно назвать преобразованием в родительный падеж
+форматируй код!

uses crt;
var
s, wrd : string;
i : Integer;

procedure initFiles;
begin
Assign (input, 'input.txt');
Reset (input);

Assign (output, 'output.txt');
Rewrite (output);
end;


procedure loop;
begin

while not EoF do begin
ReadLn (s);
s := s + ' ';
wrd := '';

for i := 1 to Length(s) do
if s[i] = ' ' then begin

rememberWord;

end else wrd := wrd + s[i]
end
end;


procedure rememberWord;
begin
if wrd[Length(wrd)] = 'а' then begin
Delete (wrd, Length(wrd)-1, 1);
WriteLn (wrd + 'ой')
end;
wrd := ''
end;

begin
clrscr;

initFiles;
loop;

end.
Ton
pascal abc отказывается воспринимать программку. можно ли как то сделать в abc и вроде как то делается, что вместо input и output там что то вроде rewrite...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.