Теперь можно разработать процедуру INPUTDATE. Ввод даты не вызывает трудностей – стандартные процедуры WRITE и READLN отлично приспособлены для этой цели. Для проверки правильности даты нужно проверить принадлежность месяца диапазону 1…12 и года – диапазону 1582…4903. Кроме того, число не должно выходить из диапазона 1…31. Если Вы не очень настаиваете на более точной проверке числа в зависимости от месяца и года (для февраля), то программная реализация процедуры будет следующей:
Procedure InputDate(var d,m,y: Integer; var correctly: Boolean); begin Write(‘Введите дату в формате ДД ММ ГГ: ‘); ReadLn(d,m,y); correctly: = (d>=l) and (d<=31) and (m>=l) and (m<=12) and (y >=1582) and (y
При выполнении этой процедуры ввод, например, трех нулей приведет к присвоению переменной CORRECTLY значения FALSE, что вызовет завершение работы программы.
Теперь разберемся с процедурой WRITEDAY. Получив в параметрах обращения день, месяц и год, она должна:
- преобразовать месяц и год так, как описано выше (год должен начинаться 1 марта);
- вычислить день недели;
- выдать на экран результат.
Первое и второе действия очень просты и легко программируются. Что касается выдачи на экран, то можно потребовать от программы, чтобы эта выдача была не просто числом от 0 до 6, а одной из строк «воскресенье», «понедельник»,…, «суббота». Для этого потребуются дополнительные усилия: нужно сначала создать массив строковых констант с именем, например, DAYS_OF_WEEK (дни_недели), а затем выбрать из этого массива и выдать на экран нужную строку. Создать массив текстовых констант можно с помощью объявления типизированной константы (см. гл. 7):
Учимся работать в турбо паскале.
const Days_of_week: array [0..6] of String [11] = (‘воскресенье’,’понедельник’,’вторник’, ‘среда’,’четверг’,’пятница’,’суббота’);
В этом объявлении идентификатор Days_of_week описывается в разделе констант, однако справа от него указан тип данных (массив строк), как если бы описывалась переменная, а уже только после типа стоит знак равенства и заключенный в круглые скобки список элементов массива. В результате получим следующую процедуру:
Procedure WriteDay(d,m,y: Integer); const Days_of_week: array [0..6] of String [11] = (‘воскресенье’,’понедельник’,’вторник’, ‘ среда’, ‘ четверг’, ‘ пятница’, ‘ суббота.’); var с, w:Integer; begin if m m: = m + 10; у: = у – 1 end else m: = m – 2; с: = у div 100; у: = у mod 100; w: = abs(trunc(2.6*m-0.2)+d+y div 4+y+c div 4-2*c) mod 7; WriteLn(Days_of_week[w]) end;
Окончательный вариант программы приведен в прил.5.1.
Источник: samoychiteli.ru
Турбо паскаль примеры программ
Главная / Справочник / Примеры программ
abotPrn.pas | Пример программы для процедур AbortPrn, AssignDefPrn And TitlePrn. |
abs.pas | Пример программы для функции Abs. |
addr.pas | Пример программы для функции Addr. |
append.pas | Пример программы для процедуры Append. |
arc.pas | Пример программы для процедуры Arc. |
arctan.pas | Пример программы для функции ArcTan. |
assign.pas | Пример программы для процедуры Assign. Попробуйте использовать стандартные переназначения DOS на PRN, файл на диске и т.п. |
assignCr.pas | Пример программы для процедуры AssignCrt. |
assigned.pas | Пример программы для функции Assigned. |
bar.pas | Пример программы для процедуры Bar. |
Turbo Pascal — Основы работы и пример программы
http://tpdn.ru/guide/examples/» target=»_blank»]tpdn.ru[/mask_link]
2.1 Практика Создание простой програмы Turbo Pascal
Теперь пришло время приступить к практике, обычно из теории людям, которые не имели опыта в программировании ничего не понятно, но на практике, когда уже на деле видишь, что где используется и какой результат дает, то уже начинаешь понимать то, что было описано в теории.