Тема: УСЛОВНЫЙ ОПЕРАТОР Урок № 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