25.01.2014, 00:21 | #1 (permalink) | ||
Новичок
Регистрация: 24.01.2014
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Паскаль. Работа со списками
Имеется задача: ------ Цитата:
Цитата:
----- Прошу помощи с этой темой Код:
uses crt; const nowadays = 2013; n = 10; type datar = record den: 1..31; mes: 1..12; god: 1900..nowadays; end; rabotnic = record fio: string; koldet: 1..10; data: array [1..10] of datar; end; var ftext: text; ftip: file of rabotnic; j,i,pMax: Byte; p: boolean; c:Char; procedure Vvod; var t:rabotnic; begin reset(ftext); rewrite(ftip); while not eof(ftext) do with t do begin readln(ftext, fio); read(ftext,koldet); for i:=1 to koldet do read(ftext, data[i].god, data[i].mes, data[i].den); readln(ftext); write(ftip, t); end; close(ftext); close(ftip); end; procedure WrInf(t:rabotnic); begin writeln('FIO: ',t.fio); writeln('Kolichestvo detey: ',t.koldet); write('data: '); for i:=1 to t.koldet do write(t.data[i].den,'.',t.data[i].mes,'.',t.data[i].god,' '); writeln; end; Procedure LOG3; var j ,i:integer; t:rabotnic; begin writeln ('Vvedite novuyu zapis fio , rost, god'); t.fio:=''; Readln(t.fio); for i:=1 to 30-length(t.fio) do t.fio:=t.fio+' '; readln(t.koldet); {readln(t.data[i].den,t.data[i].mes,t.data[i].god); } reset(ftip); for j:=0 to filesize(ftip)-1 do begin seek(ftip,j); read(ftip,t); write(ftip,t); end; seek(ftip,j); write(ftip,t); end; Procedure MaxPos; var t:rabotnic; k:Byte; NameMax: string; begin reset(ftip); pMax:=0; repeat read(ftip,t); k:=0; for i:=1 to t.koldet do if (nowadays - t.data[i].god)<18 then inc(k); writeln('Rabochiy ', t.fio:40,' ',k, ' posobiy(a)'); if k>pMax then begin pMax:=k; NameMax:=t.fio; end; until EoF(ftip); Close(ftip); writeln('Max kol posobij = ',pMax,' u ', NameMax); end; begin ClrScr; assign(ftext, 'record.txt'); assign(ftip, 'ftip.rec'); Vvod; MaxPos; LOG3; end. |
||
25.01.2014, 00:21 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Моя задача - дать вам знать о том, что на форуме есть похожие посты Паскаль. Работа с деревьями Работа с BLU RAY |
25.01.2014, 09:08 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Во-первых, попрошу поаккуратнее с терминологией: в Паскале "список" - это вполне определенная динамическая структура в виде массива (стека) записей, одно из полей которых есть указатель с адресацией следующего элемента, а во-вторых, эта задача уже разбиралась здесь: Программа на тему записи и процедуры и повторно впрягаться в нее у меня как-то вот желания нет.
P.S. Между прочим, в приведенном здесь коде я без труда узнал перекатанные фрагменты своей же программы, выложенной по ссылке, правда, с добавлением некоей процедуры LOG3 взамен моей (работающей!) AddRec. Ну что же, если Вас не устраивает то, как эта часть задачи была решена у меня и Вы хотите по-своему - в добрый путь! Только мы-то тут при чем? |
25.01.2014, 13:03 | #3 (permalink) |
Новичок
Регистрация: 24.01.2014
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Я не вижу, чтобы я выдал это за свою программу, и да, я в курсе о той теме, и также в курсе, что это ваша программа, в которую я добавил свою попытку записи файла. В любом случае спасибо за ответ.
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|