Добавил:
anrakhmanowa@yandex.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 сем / I_T_Lab_1 Лаб1.pdf
Скачиваний:
5
Добавлен:
16.06.2023
Размер:
417.01 Кб
Скачать

2010-2011 уч. год. № 1, 11 кл. Инф-ка и ИКТ. Математическая теория информации

repeat read(c)

until (c=',')or(c='.') until c='.'; writeln('s=',s);

readln end.

§4. Оператор выбора Case

Данный оператор представляет собой естественное расширение условного оператора. В общем виде он записывается следующим образом:

case <выражение порядкового типа> of константа_1: оператор_1; константа_2: оператор_2;

...

Константа_n: оператор_n; else оператор

end

Слова: case, of, else, end - являются ключевыми словами языка. Выражение, стоящее между словами case и of, называется селектором и должно иметь порядковый тип. Тип является порядковым, если можно для каждого значения назвать порядковый номер в типе, предыдущее и следующее значение в типе (кроме первого и последнего значения в типе). Из известных нам стандартных типов порядковыми являются типы integer, longint, boolean и char. Тип real

порядковым не является.

Работает оператор выбора следующим образом. Сначала вычисляется значение селектора, затем оно сравнивается с константами. В случае совпадения селектора с какой-нибудь константой выполняется оператор, стоящий после этой константы, далее управление переходит на следующий за case оператор программы. Если селектор не совпал ни с одной из констант, то выполняется оператор после слова else. Очевидно, что селектор и константы должны иметь одинаковые типы. Иначе невозможно будет провести операции сравнения.

Если нужно для многих различных значений селектора выполнить один и тот же набор команд, то можно не записывать множество строк

© 2011, ФЗФТШ при МФТИ. Составитель: Мерзляков Василий Владимирович

17

2010-2011 уч. год. № 1, 11 кл. Инф-ка и ИКТ. Математическая теория информации

с одинаковой правой частью, а перечислить константы через запятую, затем поставить двоеточие и один раз написать нужную последовательность команд. Если константы идут подряд, можно также записать их в виде диапазона: константа_1..константа_2. В этом случае команда будет выполняться при совпадении селектора с любой константой из диапазона. Граничные значения считаются включёнными в диапазон. Можно также указать несколько диапазонов через запятую.

Оператор выбора предполагает однозначный выбор варианта. То есть нельзя одной и той же константой пометить два различных варианта. Все константы должны быть различны. Особенно аккуратно следует обращаться с диапазонами. Широко распространённая ошибка – указывать одну и ту же константу в качестве начальной границы одного диапазона и конечной – другого. Однако поскольку границы входят в диапазон, получается, что это значение будет входить в два разных диапазона.

Последнее замечание заключается в том, что в отличие от оператора if перед else необходимо ставить точку с запятой. И кстати, аналогично оператору if, если в ветке else должен стоять пустой оператор, её можно не записывать. Приведём примеры нескольких различных операторов варианта.

Пример 1. case c of

'+': x := x + y; '-': x := x - y; '*': x := x * y;

else writeln('error') end;

Пример 2. case c of

'a'..'z','A'..'Z': writeln('letter');

'0'..'9':

writeln('digit')

end;

Контрольные вопросы

 

1(1). Что такое информация?

2(1). Какие два подхода существуют в теории информации? Как определяется информация с точки зрения каждого из подходов?

© 2011, ФЗФТШ при МФТИ. Составитель: Мерзляков Василий Владимирович

18

2010-2011 уч. год. № 1, 11 кл. Инф-ка и ИКТ. Математическая теория информации

3(1). Что такое один бит с точки зрения обоих подходов в теории информации?

4(1). Сколько гигабайт содержится в 218 килобайтах?

5(1). Какие кодовые таблицы символов чаще всего используются в России?

6(1). Что такое Unicode?

7(1). Сколько байт отводится под переменные типа char? Какие значения могут принимать переменные этого типа?

8(1). Опишите два способа записи символьных констант в тексте программы. Укажите их достоинства и недостатки.

9(2). Вычислить выражения или указать на ошибочность записи.

a) succ(succ('0')-=pred('3')

b) ord('5') –ord('0')

c) '5'-'0'

d) ord('d')+2<ord('g')

 

 

e) 'r'>'q' f) ord('w')<10

g) chr(25)<chr(16)

 

h) ord(pred(chr(24)))

 

 

i) chr(pred(ord('5'))+5)

j) pred(chr(0))

 

Задачи

1(1). У Сарумана сломался палантир, и теперь ему придётся использовать систему сигналов для того, чтобы контролировать свою армию. Для контроля необходимо использовать 439 различных сигналов! Саруман может передавать сигналы, стоя на крыше своей башни и меняя положения рук. Каждую руку он может поднять вверх, отвести в сторону или опустить вниз. При этом на ладони каждой руки он может зажечь магический огонь одного из семи цветов радуги. Сможет ли Саруман контролировать свою армию?

2(2). У Васи есть доступ к Интернет по высокоскоростному одно-

стороннему радиоканалу, обеспечивающему скорость получения им

18

информации 2 бит в секунду. У Пети нет скоростного доступа в Ин-

тернет, но есть возможность получать информацию от Васи по низко-

15

скоростному телефонному каналу со средней скоростью 2 бит в секунду. Петя договорился с Васей, что тот будет скачивать для него данные объёмом 5 Мбайт по высокоскоростному каналу и ретранслировать их Пете по низкоскоростному каналу.

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

© 2011, ФЗФТШ при МФТИ. Составитель: Мерзляков Василий Владимирович

19

2010-2011 уч. год. № 1, 11 кл. Инф-ка и ИКТ. Математическая теория информации

3(2). Алфавит некоторого языка состоит из 32 символов. За сколько секунд мы сможем передать 1600 символов, если скорость передачи составляет 100 байт в секунду?

4(2). В таблице ниже представлена часть кодовой таблицы ASCII.

Символ

1

5

A

B

Q

a

b

Десятичный код

49

53

65

66

81

97

98

Шестнадцатеричный код

31

35

41

42

51

61

62

Каков шестнадцатеричный код символа q?

5(2). В некоторой стране автомобильный номер состоит из 5 символов. В качестве символов используют 25 различных букв и десятичные цифры в любом порядке. Каждый такой номер в компьютерной программе записывается минимально возможным и одинаковым целым количеством байтов, при этом используют посимвольное кодирование и все символы кодируются одинаковым и минимально возможным количеством битов.

Определите объём памяти, отводимый этой программой для записи 30 номеров.

6(3). На вход программе подаётся последовательность символов, заканчивающаяся точкой (точка – признак конца и в последовательность не входит). Вывести слово YES, если сумма цифр, входящих в эту последовательность, равна длине последовательности, и NO в противном случае.

7(4). На вход программе подаётся последовательность слов, состоящих из латинских букв. Между соседними словами запятая, за последним словом – точка. Иные символы в последовательность не входят. Подсчитать количество слов, которые содержат ровно три буквы U, и количество слов, которые начинаются и заканчиваются одной и той же буквой. Заглавные и строчные буквы считаются различными символами.

8(5). На вход программе подаётся последовательность символов следующего вида: d1zd2z…dn-1zdn, где каждое di – это цифра от 1 до 9, а z – это знак операций: +, –, *. Все операции имеют равный приоритет и выполняются слева направо (то есть 2+2*2 равняется 8). Требуется прочитать данную последовательность, вычислить значение выражения и вывести его на экран.

© 2011, ФЗФТШ при МФТИ. Составитель: Мерзляков Василий Владимирович

20

Соседние файлы в папке 1 сем