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

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

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

> файлы, ОЧЕНЬ НУЖНА ПОМОШЬ!!!!
vi-rus
сообщение 27.05.2007 14:24
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

Репутация: -  0  +


задание : Дан файл, содержащий различные даты. Каждая дата – это число месяц и год. Найти самую раннюю дату.
Программа не работает. Помогите ,ПОЖАЛУЙСТА, найти ошибку.
На всякий случай прикреплю файл.


program zadanie2;
uses crt;
const god:array [1..12] of integer = (31,28,31,30,31,30,31,31,30,31,30,31);
godvisok: array [1..12] of integer =(31,29,31,30,31,30,31,31,30,31,30,31);
type zap = record
year,month,day:integer;
end;
tf= file of zap;
var f:tf;
minindex,i,n,k:integer;
result:file of longint;
min,y,sum,z: longint;
t:text;
data:array[byte] of zap;
massiv:array [1..100] of longint;
begin
clrscr;
sum:=0;
assign(t,'labfile\date.txt');
reset(t);

while not eof(t) do
begin
for i:=1 to 3 do
with data[i] do
begin
read(t, year);
read(t, month);
read(t, day);

z:=trunc(year div 4)*366+(year-trunc(year div 4))*365;{Ї®бзЁв «Ё Ј®¤л}
{ бзЁв Ґ¬ ¬Ґбпжл }
if year mod 4 = 0 then {if year visokosny}
for k:= 1 to month do
begin
sum:=sum+godvisok[k];
end
{end}
else {if year not visokosny}
for k:=1 to month do
begin
sum:=sum+god[k];
end;
{Є®­Ґж}
y:= z+sum+day;
massiv[i]:=y;
sum:=0;
writeln(massiv[i]:10);

end;

end;
readln;
close(t);
for i:=1 to 3 do
begin
min:=massiv[1];
for k:=1 to 3 do if min>=massiv[k] then minindex:=k;

end;
writeln(minindex);

with data[minindex] do begin
writeln(year);
writeln(month);
writeln(day);

end;

readln;


end.



Прикрепленные файлы
Прикрепленный файл  help.rar ( 1.45 килобайт ) Кол-во скачиваний: 133
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 27.05.2007 17:00
Сообщение #2


Гость






Вот так работает - проверено.
program zadanie2;
uses crt;
type
zap = record
year, month, day: integer;
end;

var
i, n: integer;
t: text;
data: array[byte] of zap;
min: zap;

begin
clrscr;
assign(t,'labfile\date.txt'); reset(t);

n := -1;
while not eof(t) do begin

inc(n);
with data[n] do begin { главное - чтобы у тебя в файле числа шли точно в таком же порядке: ГГ ММ ДД }
read(t, year);
read(t, month);
read(t, day);
readln(t);
end;

end;

min := data[0];
for i := 1 to n do
if (data[i].year < min.year) or
((data[i].year = min.year) and (data[i].month < min.month)) or
((data[i].year = min.year) and (data[i].month = min.month) and (data[i].day < min.day))
then min := data[i];

with min do begin
writeln(year);
writeln(month);
writeln(day);
end;
readln;
end.


Сообщение отредактировано: volvo - 27.05.2007 17:02
 К началу страницы 
+ Ответить 

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


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

 



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