Алгоритм выполнения оператора.
1. Путем последовательного просмотра констант альтернатив, отыскивается альтернатива, константа которой равна значению индикатора. 2. Если такая альтернатива найдена, то выполняется оператор этой альтернативы и управление передается оператору, следующему за оператором Case. 3. Если альтернатива не найдена и оператор Case имеет ветвь Else, то выполняется оператор, следующий за Else. 4. Если альтернатива не найдена и оператор Case не имеет ветви Else, то управление передается оператору следующему за Case.
Контрольные вопросы 1. Приведите примеры выражений – отношений. 2. Что означает понятие – логическое выражение вычисляется по сокращенной схеме. 3. В каких выражениях может произойти прерывание (в рассматриваемых выражениях все переменные целого типа.) (c<>0) and (d<>0) and (f<>0) and (a mod c=0) and (a mod d=0) and (a mod f=0) (a mod d=0) and (a mod f=0) and(c<>0) and (d<>0) and (f<>0) (c=0) or (d=0) or (f=0) and (a mod c=0) and (a mod d=0) and (a mod f=0) 4. Какого типа должна быть переменная d и каково ее значение после выполнения оператора присваивания d:=not a or odd(x) где a=true и x=1 5. Запишите на языке Паскаль логическое выражение, истинное при выполнении указанного условия и ложное в противном случае: · -1<x<1 · x принадлежит отрезку [2,5] или [-1,1] · х лежит вне отрезков [2,5] и [-1,1] · только одно из чисел x,y,z положительно · хотя бы одно из чисел x,y,z положительно · х является максимальным из трех переменных x, y, z · точка М[x,y] принадлежит заштрихованной области 6. Укажите порядок выполнения операций (x>=0) or t and odd(x) or (y*y<>4) 7. Вычислите значение следующего выражения (a or b) and not a где a = true b=false 8. Укажите ошибки в записи выражений · x>0 and y=4 · not not b or or 9. Напишите оператор присваивания в результате выполнения которого, логическая переменная t получает значение true, если выполняется указанное условие, и значение false иначе: · точка М(x,y) принадлежит области · · целое число К делится на 2, 3, 4 нацело · первая и последняя цифры целого трехзначного числа равны · четырехзначное целое число является палиндромом (например: 2332, 1221, 2222) 10. Найдите ошибки в операторах: a) if 1<x<2 then x:=x+1;y:=0; else x:=0 y:=y+1; b) if 1<x and x<2 then begin x:=x+1; y:=0 end; else begin x:=0; y:=y+1 end 11. Укажите ограничения в использовании оператора Case. Разработайте алгоритм, который организует работу светофора для людей – дальтоников. Светофор выдает сообщения: можете идти, стойте, внимание. Цвета задаются буквами: К, Ж, З. 12. Диапазонный тип. Определите: правило для конструирования типа. Как рассчитывается объем памяти под переменную такого типа? Как определить набор операций над значениями этого типа? 13. Определить значения переменных p и d после выполнения операторов case k mod 10 of 3,2,7,5:d:=k; 1:; 4,8: begi p:=false; d:=2 end; 9,6: begin p:=false; d:=3 end end; при k=6; 235; 71; 100 и p:=true; d:=1; 14. Напишите оператор Case для печати Фразы “ Мне К лет (года или год) в зависимости от К. Где К – целое в диапазоне от 1..100. 15. Выполните разбор символьного типа языка Object Pascal: · заполните таблицу
· Укажите набор операций для символьного типа. Объясните как они выполняются. · Как изображаются в программе символы, имеющие графическое изображение и не имеющие графического изображения. · Определите назначение функций ord, chr. 16. Что необходимо предусмотреть в программе, чтобы компилятор отличил идентификатор F от символа F? 17. Какие значения будут выведены операторами? Write(‘F’>’I’); Write(ord(‘F’)<ord(‘I’); Write(Pred(char(68)); 18. В переменную символьного типа введено значение. Разработайте оператор case, который выводит название группы символов, к которой принадлежит введенное значение: это цифра, это буква латинского алфавита, или это символ esc – последовательности или символ, не принадлежащий ни одной из перечисленных групп. 19. В переменную символьного типа введено значение. Если это цифра, то вывести ее номинал, увеличенный в два раза, иначе выдать сообщение, что арифметическое действие выполнить нельзя. 20. Верно ли, что в Паскаль программе надо объявлять все используемые в ней переменные? 21. Какую информацию извлекает компилятор из описания переменных и как он ее использует? 22. Какие значения имеют переменные в начале выполнения программы? 23. Можно ли менять значения констант? 24. Как определяются типы констант? 25. Что значит полная и неполная форма оператора IF. 26. Перечислите операции, результатом которых является значение логического типа. Приведите примеры. 27. Какая операция в выражении имеет наивысший приоритет? 28. Какого типа может быть переменная x в операторе Case x of? 29. Приведите пример вложенного оператора IF. 30. Запишите оператор Case заменяющий следующий оператор IF: if (o=’N’)or(o=’n’) then write('Введено НЕТ') else if (o=’Y’) or (o=’y’) then wrute('Введено ДА') else write('Введен другой символ');
|