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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2016, 18:18   #1
Just-Five
Пользователь
 
Регистрация: 16.06.2016
Сообщений: 11
По умолчанию Помогите найти ошибку.(Paskal)

Дан файл F содержащий различные даты. Каждая дата — это число, месяц и год. Найти самую позднюю дату.
Код:
type
 data=record
      day:1..31;
      month:1..12;
      year:integer;
      end;
var
  a,max:data;
  i,n: integer;
  fp: file of data;
begin
   Assign(fp,'data.dta');
     Rewrite(fp);
   Write('Введите колличество записей: ');
     Readln(N);
for i:=1 to n do begin
   Write ('Введите день ');
   readln(a.day);
   Write('Введите месяц ');
   Readln(a.month);
   Write('Введите год ');
   Readln(a.year);
end;
Assign(fp,'data.dta');
Reset(fp);
    read(fp,max);
While not Eof(fp) do begin
      Read(fp,a);
        if (a.Year>max.Year) or (a.Year=max.Year) then max:=a;
        if (a.Month>max.Month) or  (a.Month=max.Month) then max:=a;
        if (a.Day>max.Day) then max:=a;
    end;
      writeln('Самая поздняя дата: ',max.Day,'.',max.Month,'.',max.Year);
        Close(fp);
      readln;
End.
Just-Five вне форума Ответить с цитированием
Старый 18.06.2016, 18:30   #2
Just-Five
Пользователь
 
Регистрация: 16.06.2016
Сообщений: 11
По умолчанию

Ошибка вылетает на read(fp,max);(Ошибка времени выполнения:Чтение после конца потока невозможно)
Just-Five вне форума Ответить с цитированием
Старый 18.06.2016, 18:33   #3
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

1. в data.dta ничего не записывается
2. файл после ввода не закрывается
3.
Код:
if (a.Year>max.Year) then
           max:=a
        else
        if (a.year = max.year)and(a.Month>max.Month) then
           max:=a
        else
        if (a.year=max.year)and(a.month=max.month)and (a.day>max.month) then
           max:=a
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 18.06.2016 в 18:52.
Aleksandr H. вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите найти ошибку Evgenii_95 C++ Builder 1 27.10.2015 16:51
Найти седловые точки в матрице(помогите найти ошибку) - pascal tdsotm Помощь студентам 0 20.11.2014 18:57
Помогите найти ошибку - StrToFloat выдаёт ошибку EConvertError для ячеек StringGrid (Delphi) Artsiom Помощь студентам 10 18.12.2013 14:10
Помогите найти ошибку Slavakin Общие вопросы C/C++ 0 06.11.2013 19:29
помогите найти ошибку darika Паскаль, Turbo Pascal, PascalABC.NET 7 10.09.2009 19:20