IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> создание записи и запись в файл
Павел
сообщение 19.12.2003 21:48
Сообщение #1


Гость






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

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

Буду очень признателен, кто поможет.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Павел
сообщение 28.12.2003 11:23
Сообщение #2


Гость






Помощи не дождался, пришлось решать самому. Может кому-нибадь понадобиться, поэтому выкладываю решение.

Код
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.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 1.08.2025 19:12
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"