Помощь - Поиск - Пользователи - Календарь
Полная версия: создание записи и запись в файл
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Павел
Люди, помогите пожалуйста решить задачку:
Type человек=record;
имя :packed array[1..9] of char;
возраст:1..99
end;
группа=file of человек;
     Описать процедуру СамыеМолодые(ГР), печатающая имена всех людей из непустой группы ГР, имеющих наименьший возраст.

Нужно сначала записать всех в файл, а затем открыть его и отсортировать тех, кто моложе 25 лет.

Буду очень признателен, кто поможет.
oleg309
Слушай, Павел, не могу въехать в условие. Выложи как дано в оригинале
Pasha
В оригинале дано так:
Type человек=record;
имя :packed array[1..9] of char;
возраст:1..99
end;
группа=file of человек;
Описать процедуру СамыеМолодые(ГР), печатающая имена всех людей из непустой группы ГР, имеющих наименьший возраст.
 
Но препод сказал, что нужно сначала создать список, записать в файл, а затем открыть его и отсортировать тех людей, которые моложе 25 лет.
В принципе задание можно немного самому изменять, т.к. за этим никто особо не следит.
Павел
2 oleg309: может я не очень хорошо объяснил или задача очень сложная? скажи что-нить, а то очень нужно ее решить. плиз...
Павел
Помощи не дождался, пришлось решать самому. Может кому-нибадь понадобиться, поэтому выкладываю решение.

Код
Program zapis;
const m=9; n=3;
TYPE chel=record
    fam:packed array[1..m,1..n] of char;
    vozr:array[1..n] of integer;
      end;
var
 spisok:chel;
 k,i,t:integer;
 f:text;
 str:string;
BEGIN
writeln;
write('vvesti name str=');
readln(str);
assign(f,str);
writeln('hotite zapisat v file(0) ili protschitat ego(1)?');
read(t);
if t=0 then
begin
rewrite(f);
writeln('familiya  ','vozrast');
for i:=1 to n do
begin
for k:=1 to m do
read(spisok.fam[k,i]);
read(spisok.vozr[i]);
readln;
end;
for i:=1 to n do
for k:=1 to m do
writeln(f,spisok.fam[k,i],spisok.vozr[i]);
end;
if t=1 then
begin
reset(f);
for i:=1 to n do
for k:=1 to m do
readln(f,spisok.fam[k,i],spisok.vozr[i]);
end;
for i:=1 to n do
for k:=1 to m do
if spisok.vozr[i]<25 then
write(spisok.fam[k,i]);
close(f);
END.
oleg309
Всех с НОВЫМ ГОДОМ Господа!

Могу, Паша, скинуть свой вариант (если надо). Извени, что молчал, сам понимаешь предпраздничная суета...
А то, что решал САМ так это только плюс!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.