nextupprevious

Next:5.2 Структурированные типы данных
Up:5.1 Простые типы данных, определяемые программистом
Previous:5.1.4 Типы, заданные перечислением


5.1.5 Упражнения

1. Укажите, какие из приведенных ниже записей нельзя рассматривать в качестве раздела определений типов:

(1) type X : Integer:
(2) type X = Real; Y = Boolean; Z = X;
(3) type X = 20..100 ;
(4) type X := 20..100 ;
(5) type X = 20..100 ;
(6) type X = 'A'..'Z'; Y = 1..20 ; ДЕНЬ = (ПО,ВТ,СР,ЧЕ,ПЯ,СУ,ВО); РАБОТА = ПО..ПЯ; ЛОГ = False..True;
(7) type X = ('A','B','C');
(8) type X = (A,B,C);
(9) type X = 'C'..'A';
(10) type X = 'D'..'Z';
(11) type X,Y = Boolean;
(12) type IF = Boolean;
(13) type X = Real, Y = Boolean;

2. Укажите, какие из приведенных ниже программ не содержат ошибок:

(1) module СОРЕВНОВАНИЕ;
type ФАМИЛИЯ = (АНТОНОВ,БЫКОВ,ВАСИЛЬЕВ,СЕРОВ, ПЕТРОВ,МАЛЬЦЕВ,СТАРШИНОВ); НЕДЕЛЯ = (ПН,ВТ,СР,ЧЕ,ПТ,СБ,ВС) ;
var ПОБЕДИТЕЛЬ,УЧАСТНИК : ФАМИЛИЯ ; ДЕНЬ : НЕДЕЛЯ; K,M,N : Integer;
begin M := -1;
for УЧАСТНИК := АНТОНОВ to СТАРШИНОВ do
begin N := 0;
for ДЕНЬ := ПН to ВС do
begin read(K); N := N+K end;
if$>$ M then
begin ПОБЕДИТЕЛЬ := УЧАСТНИК ; M := N
end;
end;
write('ПОБЕДИТЕЛЬ:');
case ПОБЕДИТЕЛЬ of
АНТОНОВ : write( 'АНТОНОВ' );
БЫКОВ : write ('БЫКОВ' );
ВАСИЛЬЕВ : write('ВАСИЛЬЕВ' );
СЕРОВ : write('СЕРОВ');
ПЕТРОВ : write('ПЕТРОВ');
МАЛЬЦЕВ : write('МАЛЬЦЕВ');
СТАРШИНОВ : write('СТАРШИНОВ')
end
end.

(2) module ПОИСК;
cost N = 200; M = 80.5;
type РОСТ = integer; ВЕС = real;
СТУДЕНТ = (ИВАНОВ, ПЕТРОВ, СИДОРОВ, КУЗНЕЦОВ, ЧИРКОВ);
var X: РОСТ ; Y: ВЕС ; Z: СТУДЕНТ ; F:Boolean;
begin F := True;
while ~ EOF & F do
begin read(X,Y,Z),
if (X = N) & (M = Y) then F := False;
end;
if F then write(Z)
else Write ('ТАКОГО СТУДЕНТА НЕТ')
end end.

(3) module КОД; const N = 20; type БУКВА = 'A'..'Z'; var X,Y,Z : БУКВА ;
begin while ~ Eof do
begin Read(X); Y := chr(integer(X)+N);
Z := chr(integer(X)-N); Write(X,Y,Z,Y,Z)
end
end.

3. Информация о студенте состоит из роста, веса, размера обуви и возраста. Построить программу, которая по заданной информации о трех студентах определяла бы:

(1) максимальный возраст,
(2) размеры обуви самых высоких студентов,
(3) суммарный вес самых молодых студентов,
(4) суммарный рост студентов, вес которых превышает 60 кг.

4. О событии нашего тысячелетия известна его дата: день, месяц и год. Определить дату следующего дня.

5. О каждом из $n$ школьников, вышедших на линейку и ставших в шеренгу, известен его рост в сантиметрах. Определить

(1) стоят ли школьники по росту,
(2) рост самого высокого школьника,
(3) рост скольких школьников превышает заданный,
(4) количество школьников, имеющих наименьший рост,
(5) средний рост школьника,
(6) количество школьников, у которых левый сосед выше правого,
(7) количество школьников, у которых соседи слева и справа одного роста, не превышающего заданный.

6. Старояпонский календарь рассматривает 60-летний цикл, состоящий из пяти 12-летних подциклов. Подциклы в цикле обозначаются названиями цветов (зеленый, красный, желтый, белый и черный), а годы в подцикле -- названиями животных (крыса, корова, тигр, заяц, дракон, змея, лошадь, обязьяна, курица, собака и свинья). Учитывая, что 1984 год был началом очередного цикла, т.е. годом зеленой крысы, написать программу, которая для любого года нашей эры определяет его название по старояпонскому календарю.
 

Next:5.2 Структурированные типы данных
Up:5.1 Простые типы данных, определяемые программистом
Previous:5.1.4 Типы, заданные перечислением



© В.Н. Касьянов, Е.В.Касьянова, 2004