Открытый урок по информатике &quot

advertisement
Тема: УСЛОВНЫЙ ОПЕРАТОР
Урок № 1
Тема урока: Условный и безусловный операторы.
Цель: познакомить с операторами условного и безусловного переходов, используемых при
описании разветвляющего алгоритма на языке программирования Qbasic.
ПЛАН
I. Проверка домашнего задания.
II. Изучение нового материала.
1. Условный оператор.
2. Решение задач.
III. Итог урока.
IV. Домашнее задание.
Ход урока
I. Проверка домашнего задания.
Вопросы.
1. Как записывается оператор вывода?
2. Как записывается оператор ввода?
3. Как записывается оператор присвоения?
4. Чем заканчивается программа?
5. Какая функция используется при записи выражения у=х2+Зх-7 на языках Qbasic?
6. Записать на языках Qbasic следующие выражения:
у = 5х5-10х+2;
z= 14x4 -5x 3+llx-17.
7. Какие операции можно применять к переменным целого типа?
II. Изучение нового материала.
До сих пор мы рассматривали простейшие линейные программы, в которых операторы выполнялись
в порядке нумерации строк. Естественный порядок выполнения может быть изменен с помощью
операторов условного и безусловного перехода.
Разветвляющий алгоритм – это алгоритм, в котором в зависимости от условия выполняется
либо одна, либо другая последовательность действий.
Во многих случаях требуется, чтобы при одних условиях выполнялась одна
последовательность действий, а при других - другая.
Вся программа состоит из команд (операторов). Команды бывают простые и составные (команды,
внутри которых встречаются другие команды). Составные команды часто называют управляющими
конструкциями. Этим подчеркивается то, что эти операторы управляют дальнейшим ходом
программы.
1
1. Условный оператор.
Условные операторы в Qbasic помогают нам осуществить "ветвление" программы, т. е. передать
управление по условию.
Условный оператор имеет вид:
<номер строки> IF условие THEN <операторы1> [ELSE <операторы2]>
Выполнение условного оператора начинается с вычисления значения логического выражения,
записанного в условии. Простые условия записываются в виде равенств или неравенств. Сложные условия
составляют из простых с помощью логических операций. Если условие истинно, то выполняется
<операторы1>, в противном случае - <операторы2>.
Если условие справедливо, то программа выполняет тот оператор, который стоит после
ключевого слова THEN (или серию операторов от ключевого слова THEN до END IF), и дальше
руководствуется обычным порядком действий. Если условие не справедливо, то оператор, стоящий
после THEN (или серия операторов от THEN до END IF) не выполняется, и программа сразу
переходит к обычному порядку действий. Конструкция IF...THEN позволяет в зависимости от
справедливости условия либо выполнить оператор, либо пропустить этот оператор. Конструкция
IF...THEN...END IF позволяет в зависимости от справедливости условия либо выполнить группу
операторов, либо пропустить эту группу операторов.
2. Безусловный оператор имеет вид:
<номер строки>
GOTO <номер строки>
Оператор безусловного перехода GOTO изменяет естественный порядок выполнения операторов в
программе, но передает управление только по одному направлению.
Условия - еще один тип логических выражений. В них используются следующие операторы
сравнения:
=
равно
<
не равно
>
>
больше
<
меньше
>
больше или равно
=
<
меньше или равно
=
Справа и слева от знака сравнения должны стоять величины, относящиеся к одному типу. В
результате сравнения получается логическая величина, имеющее значение ИСТИНА (TRUE) или
ЛОЖЬ (FALSE).
Пример:
5<7 - ИСТИНА;
8=12 -ЛОЖЬ (проверяем равно ли 8 12, именно проверяем, а не утверждаем, что 8=12);
IF - если, THEN - тогда, ELSE - иначе.
Если в комнате темно, тогда надо включить свет.
Если пойдет дождь, тогда надо взять зонтик, иначе, зонтик не брать.
Разбор условного оператора можно выполнить на следующем простом примере.
Пример 1.
Даны два числа А и В. Найти наибольшее из них.
Решение.
(1 способ)
5 RЕМ НАХОЖДЕНИЕ БОЛЬШЕГО ИЗ ДВУХ ЧИСЕЛ
2
10 INPUT X , Y
20 IF Y > X THEN 5O
30 PRINT "X="; X
40 GOTO 60
50 PRINT “Y=”; Y
60 END
(2 способ)
5 RЕМ НАХОЖДЕНИЕ БОЛЬШЕГО ИЗ ДВУХ ЧИСЕЛ
10 INPUT X , Y
20 IF Y > X THEN PRINT “Y=”; Y ELSE PRINT "X="; X
40 END
(3 способ)
5 RЕМ НАХОЖДЕНИЕ БОЛЬШЕГО ИЗ ДВУХ ЧИСЕЛ
10 INPUT "Введите значение X"; X , “ Введите значение Y”; Y
20 IF Y > X THEN PRINT “Y=”; Y ELSE PRINT "X="; X
40 END
Пример 2.
Напиши программу по заданной блок – схеме.
начало
ввести Х
да
нет
Х>0
У = Х³
У = Х²
Вывод У
3
Конец
Решение:
5 REM задача 2
10 INPUT Х
20 IF Х > 0 THEN 50
30 У = Х²
40 GOTO 60
50 У = Х3
60 PRINT “Y=”;Y
70 END
Пример 3
Составь блок – схему и напиши программу вычисления квадрата числа а, если а<5, или а+8, в
противном случае - их разности. Значения а задай с клавиатуры.
начало
ввести А
да
нет
А<5
У = А^2
У=А + 8
Вывод У
Конец
Решение:
4
5 REM задача 3
10 INPUT А
20 IF А < 5 THEN 50
30 У = А + 8
40 GOTO 60
50 У = А^2
60 PRINT “Y=”;Y
70 END
III.Итог урока.
IV.Домашнее задание.
Пример 4: Найдите и исправьте ошибки в следующей программе.
Условие задачи:
«Проверить, равно ли введенное число некоторому значению, и в случае равенства выдать на экран
сообщение о равенстве чисел.»
Решение:
10 REM сравнить число со каким-то значением
20 INPUT "Введите А"
30 FОR А = 7 TEN PRINT Числа равны
40 END
После запуска программы проверяется равно ли введенное значение семи или нет. Если
равно, то на экран выводится сообщение 'Числа равны'.
Пример 6: Решение квадратного уравнения.
5
Урок № 2
Тема урока: Решение задач.
Цель: закрепить при решении примеров операторы условного и безусловного переходов,
используемых при описании разветвляющего алгоритма на языке программирования Qbasic.
ПЛАН
I. Проверка домашнего задания.
II. Закрепление материала.
1.Решение задач.
2.Тестирование.
V. Итог урока.
VI. Домашнее задание.
Ход урока
I. Проверка домашнего задания.
Вопросы.
1.Как записывается оператор условного перехода?
2.Как записывается оператор безусловного перехода?
3.Решение
Пример 4: Найдите и исправьте ошибки в следующей программе.
«Проверить, равно ли введенное число некоторому значению, и в случае равенства выдать
на экран сообщение о равенстве чисел.»
Решение:
10 REM сравнить число со каким-то значением
20 INPUT "Введите А", А
30 IF А = 7 THEN PRINT "Числа равны"
40 END
После запуска программы проверяется равно ли введенное значение семи или нет. Если
равно, то на экран выводится сообщение 'Числа равны'.
Пример 6: Решение квадратного уравнения.
Решение квадратного уравнения зависит от значения дискриминанта.
REM Решение квадратного уравнения
INPUT "Введите коэффициент А: ", А
INPUT "Введите коэффициент В: ", В
INPUT "Введите коэффициент С: ", С
D= В^2 - 4 * А * С
IF D<0 THEN
PRINT "Корней нет"
ELSE
IF D=0 THEN
Х = -В/(2*А)
PRINT "корень уравнения: ", x
ELSE
Х1=(-В-SQR(D))/(2*А)
Х2=(-В+SQR(D))/(2*А)
PRINT "корни уравнения: ", Х1, Х2
END IF
6
END IF
END
II. Закрепление материала.
1.Решение задач.
Пример 5: Определить большее из двух чисел, вывести его на экран, затем - увеличить его
вдвое и вывести результат на экран.
Решение:
REM определить большее из двух чисел...
INPUT "Введите А", А
INPUT "Введите В", В
IF А > В THEN PRINT "Большее число: ", А
С=2*А
ELSE
PRINT "Большее число: ", В
С=2*В
END IF
PRINT "результат: ", С
END
Сначала программа запрашивает оба числа, затем проверяет условие a>b. Если условие верно, то на
экран выводится число a, затем это число удваивается. Иначе на на экран выводится число b, затем
число b удваивается. В завершении на экран выводится удвоенное значение большего числа.
Обратите внимание: программа имеет один недостаток - не учитывается тот случай, когда
введенные числа равны. Исправим это, использовав вложение одного условия в другое.
REM определить большее из двух чисел...
INPUT "Введите а", а
INPUT "Введите b", b
IF a=b TNEN
PRINT "Числа равны"
с=2*a
ELSE
IF a>b THEN
PRINT "Большее число: ", a
с=2*a
ELSE
PRINT "Большее число: ", b
с=2*b
END IF
END IF
PRINT "результат: ", c
END
В этой программе два условных оператора, первым проверяется условие равенства чисел и, в
случае его выполнения, будет выдано сообщение о равенстве чисел, если числа не равны, то
проверяется второе условие...
Упражнение 2
Исправить ошибки и выполнить программу на ЭВМ.
10 INPUT А.В
20 IF A=0 THEN K="решений нет" ELSE 2
30 GOTO
40 IF B=0 THEN K="бесконечно" ELSE К="одно"
50 PRINT К
60 END
Ответ:
10 INPUT A,B
7
20 IF A=0 THEN K$="решений нет" ELSE 40
30 GOTO 50
40 IF B=0 THEN K$= "бесконечно" ELSE К$ ="одно"
50 PRINT К$
60 END
Задача 2. Составить программу для вычисления значений функций.
 х, прих  0,
у
2 х, прих  0.
20 REM
30 INPUT “Введите значение аргумента Х”; Х
40 IF Х<=0 THEN Y= - Х ELSE Y = 2 *Х
50 PRINT “Значение функции Y = ”;Y
60 END
Задача 4.Научить машину узнавать вас. Если вы узнаны вывести «Я очень рада, что ты рядом» В противном
случае вывести «Я с вами не знакома. До свидания.»
10 REM Задача
15 D$= «Аксёнов Алёша»
20 INPUT «Фамилия, имя»; С$
30 IF D$=C$ THEN PRINT «Я очень рада, что ты рядом»
40 GOTO 60
50 PRINT«Я с вами не знакома. До свидания.»
60 END
Задача 10. Составить программу вычисления значений функции у  х  1  х  4 , различающие следующие
возможные случаи
х  1, 1  х  4 , х  4 .
 2 х  5, при х  1,

у  4, при 1  х  4,
2 х  5, при х  4.

10 REM
20 INPUT “Введите значение Х“; Х
30 IF Х < = 1 THEN Y = -2*Х + 5 ELSE 50
40 GOTO 80
50 IF Х < = 4 THEN Y = 3 ELSE 70
60 GOTO 80
70 У = 2 * Х – 5
80 PRINT “Y=”;Y
90 END
Задача 7. Если 0,5< х< 1,7 присвоить у значение 1, в противном случае у=0.
10 REM
20 А=0.5
30 В = 1.7
40 INPUT Х
50 IF Х > А THEN 90
60 У = 0
70 GOTO 40
80 У = 1
90 PRINT “Y=”;Y
100 END
8
III.Итог урока.
IV.Домашнее задание.
1.Составь блок – схему и напиши программу вычисления суммы q и w, q>w, в
противном случае - их разности. Значения q и w задай с клавиатуры.
начало
ввести Q,W
Q>W
У=Q+W
У=Q-W
Вывод У
Конец
5 REM Сравнить два числа
10 INPUT Q, W
20 IF Q > W THEN 50
30 У = Q - W
40 GOTO 60
9
50 У = Q + W
60 PRINT “Y=”;Y
70 END
 x  z , если х  5,

Задача 8. Требуется вычислить у  2 х  3z , если 5  х  10,

 х  z , если х  10.
10 REM
20 IF Х < 5 THEN 80
30 IF Х >10 THEN 120
40 У= 2 * Х-3 * Z
50 GOTO 90
60 У = SQR(Х + Z)
70 GOTO 90
80 У = Х + Z
90 PRINT “Y=”;Y
100 END
Задача 9. Даны два действительных числа. Заменить первое нулем, если оно меньше или равно
второму и оставить без изменения в противном случае. Результат вывести на экран.
10 REM «Замена»
20 INPUT F, K
30 IF Х < = К THEN F = 0
40 PRINT F,К
50 END
10
Download