Лабораторная работа № Ознакомление с фундаментальными типами данных План: Целые типы данных


Download 0.88 Mb.
bet28/64
Sana13.09.2023
Hajmi0.88 Mb.
#1677324
TuriЛабораторная работа
1   ...   24   25   26   27   28   29   30   31   ...   64
Bog'liq
Лаборатория № 1 - 6

var s,i: integer;
begin
s:=0;
for i:=6 to 8 do
s:=s+dni[i]; {летние месяцы - 6, 7, 8}
writeln(s)
end.

Код данного решения обладает не самой лучшей наглядностью, к тому же приходится самому вычислять номера месяцев начала и конца лета (6 и 8).


Удобство и наглядность таких программ можно повысить следующим образом:
Показать решение: 

TYPE mes = (january, february, march, april, may, june, july, august, september, october, november, december);
CONST dni:array[january..december] of Byte = (31,28,31,30,31,30,31,31,30,31,30,31);
VAR s:Integer;
i:mes; {переменная счетчика цикла i задана типом mes, а не Integer}
BEGIN
s:=0;
for i:=june to august do s:=s+dni[i];
WriteLn(s)
END.



Использование интервального типа в качестве диапазонного ограничителя
Пример:
Поезд отправляется в путь в 22 часа и находится в пути 10 часов. Во сколько он прибывает на место назначения?
Следующий пример продемонстрирует неправильное решение данной задачи:

var otpravlenie,pribitie:byte;
begin
otpravlenie:=22;
pribitie:=otpravlenie+10;
writeln(pribitie)
end.

программа вместо ответа «8» напечатает ответ «32».
Введение ограниченного диапазонного типа позволит избежать неправильного результата, однако компилятор все равно выдаст ошибку:


Download 0.88 Mb.

Do'stlaringiz bilan baham:
1   ...   24   25   26   27   28   29   30   31   ...   64




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling