Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2013, 21:39   #1
Dover12
Новичок
Джуниор
 
Регистрация: 06.02.2013
Сообщений: 2
По умолчанию Pascal рекурсия

Помогите отдалить программу. Долг весит,а сдавать нужно. Пожалуйста.
Задание:
Дан список группы в 10 человек в виде ФАМИЛИЯ ГОД_РОЖД. ПОЛ 15 симв. 4 симв. 1 симв. Иванов 1985 М Петрова 1983 Ж …………………… Найти самого старого мужчину и самую молодую женщину и вывести соответствующие строки. С рекурсией ( поскольку везде в них есть циклы , которые можно всегда выполнить как рекурсивные процедуры).

Текст Программы:
Код:
program 1_6;
uses crt;
type
lyudi=record
fam:string[15];
rozdeniye:string[4];
pol:string[1];
end;
spisok=array[1..10] of string;
tipspisok=array[1..10] of lyudi;
var
tipfile:file of lyudi;
zapolnsp:spisok;
tipmas:tipspisok;

procedure chteniye(var maszap:spisok);
var
i:integer;
infile:text;
begin
assign(infile,'c:\INP.txt');
reset(infile);
for i:=1 to 10 do
begin
readln(infile,maszap[i]);
end;
close(infile);
end;

procedure preobraz(var netipmas:spisok; var tipmas:tipspisok);
var
i:integer;
begin
for i:=1 to 10 do
begin
tipmas[i].fam:=copy(netipmas[i],1,15);
tipmas[i].rozdeniye:=copy(netipmas[i],17,21);
tipmas[i].pol:=copy(netipmas[i],22,23);
writeln;
end;
end;

procedure sozdtip(var tipmas:tipspisok;i:integer);
begin

if i<>10 then
write(tipfile,tipmas[i]);
close(tipfile);
reset(tipfile);
read(tipfile,tipmas[i]);
sozdtip(tipmas,i+1)

end;

procedure max(var tipmas:tipspisok);
var
outfile:text;
st,max,code:integer;
b,i:integer;
begin
b:=1;
assign(outfile,'c:\outfile.txt');
rewrite(outfile);
val(tipmas[1].rozdeniye,max,code);
for i:=1 to 10 do begin
if tipmas[i].pol='m' then begin
val(tipmas[i].rozdeniye,st,code);
if max>st then begin
b:=i;
max:=st;
end;
end;
end;
writeln(outfile,tipmas[b].fam,tipmas[b].rozdeniye,' ',tipmas[b].pol);
close(outfile);
end;

procedure min(var tipmas:tipspisok);
var
outfile:text;
st,min,code,b,i:integer;
begin
assign(outfile,'c:\outfile.txt');
append(outfile);
b:=1;
val(tipmas[1].rozdeniye,min,code);
for i:=1 to 10 do begin
if tipmas[i].pol='w' then begin
val(tipmas[i].rozdeniye,st,code);
if min<st then begin
min:=st;
b:=i;
end;
end;
end;
writeln(outfile,tipmas[b].fam,tipmas[b].rozdeniye,' ',tipmas[b].pol);
close(outfile);

end;
begin
clrscr;
chteniye(zapolnsp);
preobraz(zapolnsp,tipmas);
assign(tipfile,'tip.dat');
rewrite(tipfile);
sozdtip(tipmas,1);
max(tipmas);
min(tipmas);
readln;
end.


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 06.02.2013 в 23:01.
Dover12 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal. Рекурсия. D-Snaker Помощь студентам 1 12.06.2012 11:11
Pascal - рекурсия darsinella Помощь студентам 4 22.12.2009 21:39
Рекурсия Pascal HoLToFF Помощь студентам 3 31.03.2009 22:25
Pascal: Рекурсия MaGWaY_minsk Помощь студентам 2 19.02.2009 09:46
Pascal. рекурсия. TOSAgrk Помощь студентам 2 04.02.2009 12:05