Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Anjin_Kazawa



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Код:
 
Uses Crt;
 
(*функция выводит сообщение и ждёт ввод*)
(*проверка корректности ввода*)
Function EnterAndMes( S: String ): Integer;
var R  : Integer;
    Err: Boolean;
 Begin
    Repeat
       Err := False;
       Write( S );
       {$I-}
       ReadLn( R );
       {$I+}
       if IOResult <> 0 then (*если ввели не целое число*)
       Begin
          Err := True; (*возникает ошибка преобразования*)
          WriteLn( 'Bag input value. Try again.' );  
       end;
       if R = 0 then Halt; (*ввели ноль - выход*)
    Until not Err;
    EnterAndMes := R;
 end;
 
(*основная процедура рекурсии с подсчётом*)
Procedure Recurse( EndYear   : Integer; (*конечная дата*)
               var CurYear   : Integer; (*текущая дата*)
               var YearsCount: Integer  (*всего высокосных лет*)  );
 Begin
    if CurYear > EndYear then Exit; (*достигнут предел выход*)
    if ( CurYear mod 4 ) = 0 then Inc( YearsCount ); (*высокосный год*)
    Inc( CurYear ); (*текущий год*)
    Recurse( EndYear, CurYear, YearsCount ); (*вызод процедуры*)
 end;
 
var YearsCount, StartYear, EndYear, CurYear: Integer; (*локальные переменные*)
 Begin
    ClrScr;
    StartYear := EnterAndMes( 'Start year (yyyy) (type 0 for exit) => ' );
    EndYear := EnterAndMes( 'End year (yyyy) (type 0 for exit) => ' );
    if StartYear > EndYear then Exit;
    CurYear := StartYear;
    YearsCount := 0;
    Recurse( EndYear, CurYear, YearsCount );
    (*результат*)
    WriteLn( YearsCount );
 end.
 


Всего записей: 392 | Зарегистр. 08-06-2005 | Отправлено: 10:09 08-11-2006 | Исправлено: Anjin_Kazawa, 10:17 08-11-2006
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru