ИНСТРУКЦИОННАЯ КАРТА № 7
На выполнение практического занятия по предмету
«Программирование и алгоритмические языки »
Тема: Программирование алгоритмов ветвления
Цель работы |
Ø научиться определять тип оператора ветвления, который лучше всего подходит к данной задаче, Ø научиться упрощать запись операторов ветвления. |
Норма времени: 2 часа.
Оснащение рабочего места: инструкционные карты, конспект, ПК, программа АЛГО.
ХОД РАБОТЫ
I. Теоретические сведения
Для записи алгоритмов в большинстве случаев используются три типа команд: присваивания, разветвления и повторения. Команде разветвления в Паскале соответствует условный оператор.
Условному оператору отвечают две структуры, представленные на рис. 36 и 37. На рис. 36 показана неполная форма условного оператора, когда действие осуществляется только при выполнении записанного в ромбе условия.
В случае его невыполнения происходит переход к следующему оператору (выход из структуры). На рис. 37 изображена полная форма условного оператора: при выполнении условия (выход « + ») выполняется одно действие, при невыполнении (выход « - ») — другое. Каждая структура имеет один вход и один выход. Программу рекомендуется строить из последовательных, логически завершенных блоков. При этом не допускается передача управления между блоками иначе, как путем выхода из одного блока и входа в другой. В построенной таким образом программе будет меньше ошибок и ее легче проверить на правильность выполнения.
Неполный условный оператор имеет вид:
Полный условный оператор записывается в виде:
Если после слов Then и Else надо записать не один оператор, а несколько, то эти операторы берутся в так называемые операторные скобки: открывающая скобка — begin, закрывающая — end:
Перед словом Else точка с запятой не ставится. Каждая пара begin...end записывается в одном столбце: так проще проверить наличие для каждой открывающей операторной скобки соответствующей закрывающей.
Примеры условного оператора:
В условном операторе может быть другой условный оператор. Например:
При такой форме записи, использующей сдвиг вправо для каждого внутреннего действия, легко понять, к какому из двух слов If относится слово Else. Если этот оператор записать в одну строку, то ответ будет неоднозначным.
Транслятор работает таким образом. Встретив сложную конструкцию из вложенных условных операторов, он анализирует ее с конца, приписывая последнее найденное Else первому встреченному If при просмотре справа налево.
II. Задания для самостоятельного выполнения
1. Найдите и исправьте ошибку в записи операторов:
A) … If g :=8 then u:=99; |
B) … If r <99 then t=8765; |
C) … If s = 55 then g:=0; else g:=98; |
D) … If uu |
A |
B |
C |
D |
2. Запишите одним условным оператором:
A) If a>b then c:=11; If a>b then d:=22; If a<=b then c:=33; If a<=b then d:=44; |
B) If a>b then c:=с div 6 ; If a>b then d:=54; If a<=b then c:=c mod 3; If a<=b then d:=1; |
3. Чему будет равно значение переменной Z при рассмотрении следующих операторов:
A) … Begin F := 4; If (f<7) or (f mod 3 = 0) then z := 88 else z := 75; End. |
B) … Begin F := 14; If (f<7) and (f mod 5 = 0) then z :=3 else z := 625; End. |
C) … Begin T := 46; If Not((t<>7) then z := 35 else z := 1; End. |
D) … U := 46; Case u of 4 : z:=44; 77: z := 81; 46: z := 100; End; …. |
4. Чему будут равны результаты логических операций при приведенных значениях переменной n:
A) (n mod 2 = 0 ) Or (Abs(n) > 35) N = 3; 4; 45, 35; |
B) (n mod 2 = 0 ) And (Abs(n) > 5) При N = 3; 4; 15, 22; |
Практическая часть. Определите при помощи какого оператора ветвления лучше решить задачу и решите ее (при использовании условного оператора приведите блок-схему решения).
1. Ввести с клавиатуры 3 числа (a, b, с). Напишите программу для выяснения лежит ли число с между числами a и b.
Блок-схема |
Программа |
2. Обозначим 1-алг, 2 – геом, 3 – инф, 4 – русск, 5- укр, 6 – физра. По введенной цифре вывести на экран, в какие дни недели у Вас введенный предмет.
Блок-схема |
Программа |
3. Ввести с клавиатуры некоторый год. Определить, принадлежит ли этот год XX веку.
Блок-схема |
Программа |
Задание для самостоятельной работы:
Ввести с клавиатуры 2 числа. Если первое и отрицательное, тогда найти разность чисел и удвоить ее, результат вывести на экран. Иначе – найти произведение модуля первого числа на целую часть от деления второго числа на 8, результат на экран.
Блок-схема |
Программа |