к оглавлению

Реализации разветвляющихся алгоритмов. Форматы оператора IF... THEN

Программ линейной структуры на практике нет или почти нет. Программа на любом языке должна “уметь” осуществлять ВЫБОР в зависимости от тех или иных условий. Такой выбор определяет дальнейший ход решения задачи, обработки данных и т.д.

Этот выбор реализуется оператором IF... THEN…

Реализуется он в таких форматах.

IF <условие> THEN <операторы>

или

IF <условие1> THEN <операторы1> ELSE <операторы2>

или

IF <условие1> THEN <операторы1> ELSE <операторы2> IF <условие2> THEN <операторы3>

Наконец, так называемый “полный формат” оператора

IF <условие> THEN

<операторы1>

<операторы2>

………………..

END IF

Если условие выполняется, то будут выполнены все операторы, размещенные между строкой IF <условие> THEN и строкой END IF, которая означает: конец условия.

Рассмотрим конкретные примеры, вводя новые понятия и служебные слова.

5.1.Выдать сообщение: делится ли число на 3

IF a / 3 = a \ 3 THEN ?”Число”;a;”делится на 3”: ‘это простейший формат

5.2. Выдать сообщение, какое из двух чисел больше.

IF a>b THEN ?” Число”;a;”больше числа”;b ELSE ” Число”;b;”больше числа”;a:’

ELSE – иначе

5.3. Выдать одно из сообщений: число а – четное или число а не является целым

IF a MOD(2)=0 THEN ?” Число”;a;”четное” ELSE IF a - INT(a) <>0 THEN ?” Число”;a;”не является целым"

Объясните самостоятельно: что означает конструкция: a - INT(a) <>0?

Обратите внимание, как использовалась функция MOD, практически не используемая в математике

Пример применения полного формата:

IF a>0 THEN

?”Натуральный логарифм числа”;a”равен”;LOG(a)

?”Десятичный логарифм числа”;a”равен”;LOG(a)/LOG(10)

?”Квадратный корень из числа”;a”равен”;SQR(a)

END IF

Условия, следующие за IF, могут быть более сложные.

Примеры более сложных условий в операторе IF с использованием служебных слов AND и OR. (и, или)

Приведем примеры. Запросы очевидны.

IF x>a AND x<b THEN ?”Число “;x;”принадлежит отрезку [“;a”;”;b;”]”

IF x<a OR x>b THEN ?”Число “;x;”не принадлежит отрезку [“;a”;”;b;”]”

“Под” каждой буквенной клавишей четыре различных символа, приводимый фрагмент напоминает Вам об этом.

?”Вы ввели функцию для исследования? (Y/N)”;:INPUT a$

IF a$=”Y” OR a$=”y” OR a$=”н” OR a$=”Н” THEN ?”Умница”

IF a$=”n” OR a$=”N” OR a$=”т” OR a$=”Т” THEN ?”Не забудьте ввести”

Определить, могут ли три положительных числа выражать длины сторон треугольника.

IF a+b>c AND a+c>b AND b+c>a THEN ? ” Числа”;a,b,c;”могут быть сторонами треугольника”

В дальнейшем Вам практически в каждой программе придется создавать конструкции с IF.. THEN. Будьте внимательны.

Для расширения круга задач, введем понятие МЕТКИ и оператора перехода.

Метка в QB (как вариант, существуют другие способы) это НОМЕР строки.

Простой пример:

IF a$=”r” THEN GOTO 10 ELSE GOTO 100

Это означает, что если a$ имеет значение r, то УПРАВЛЕНИЕ передается на строку, начинающуюся с натурального числа 10, если a$ имеет другое значение, управление будет передано на строку 100.

Вы поняли, что означает оператор GOTO, переведите с английского.

Для закрепления рассмотрите и законспектируйте конкретные программы.

----Программа 5.1. Решить квадратное уравнение ax2 + bx + c = 0---------

5 INPUT”Введите коэффициенты квадратного уравнения a, b, c”;a,b,c

d = b^2-4*a*b

IF d<0 THEN 10

x1 = (-b + SQR(d))/2/a: x2 = (-b-SQR(d))/2/a

?”Записывайте действительные корни:”;x1,x2:GOTO 100

END IF

10 m = -b/2/a: n = SQR(ABS(d))/2/a

?”Записывайте комплексные корни:”

?”x1= ”;m;” + i*”;n

?”x2= ”;m;” – i*”;n

100 ?”1 – продолжение решения уравнений, 2 – хватит, введите соответствующую цифру”;

INPUT t

IF t = 1 THEN 5 ELSE IF t = 2 THEN STOP

Для завершения работы программы применен оператор STOP. А теперь замените его оператором END и объясните различия.

Предлагается усложнить программу и вывести корни квадратного уравнения и по признаку равенства действительных корней, т.е. для случая d = 0.

Составим программу с использованием случайных чисел – функция RND: на координатной плоскости выбрана случайная точка: -10 < x < 10; -10 < y < 10. Определить, в какой координатной четверти она находится и ее расстояние до начала координат.

----Программа 5.2.Положение точки в координатной плоскости---------

x = -9 + INT(19 * RND)

y = -9 + INT(19 * RND)

PRINT "("; x; ","; y; ")"

r = SQR(x ^ 2 + y ^ 2)

IF x > 0 AND y > 0 THEN PRINT "Точка находится в I четверти, расстояние до начала координат"; r

IF x < 0 AND y > 0 THEN PRINT "Точка находится в II четверти, расстояние до начала координат"; r

IF x < 0 AND y < 0 THEN PRINT "Точка находится в III четверти, расстояние до начала координат"; r

IF x > 0 AND y < 0 THEN PRINT "Точка находится в IV четверти, расстояние до начала координат"; r

Следующие задачи выполните самостоятельно, введите в ЭВМ, добейтесь безусловно верной работы программ и представьте на проверку преподавателю.

5.3.Составить программу, классифицирующую треугольники (остроугольные, прямоугольные, тупоугольные).

5.4.Даны 2 точки в прямоугольной системе координат. Определить какая из точек ближе к началу координат.

5.5.Задана величина угла d в градусах. Определить в какой четверти он находится.

5.6.В киоске продается газета стоимостью 5 руб. и журнал стоимостью 15 руб. Составить программу, которая спрашивает о желании покупателя (журнал или газета?), принимает деньги и предлагает причитающуюся сдачу.

5.7.Даны два действительных числа x, y. Найти среднее геометрическое, если x,y>0 среднеарифметическое этих чисел x,y<0.

5.8.Определить принадлежит ли введенная точка кругу с центрам (0;0) и радиусом R.

5.9.Составить программу, которая спрашивала бы сокращенное имя, а печатало полное для пяти ваших друзей. Ввод незнакомого имени должен провоцировать заявление типа: я с Вами не знаком.

5.10.Напишите программу, которая после ввода цифры с клавиатуры распечатывает ее буквами, т.е. если введена 1, то выводит “один”, если 2, то “Два” и т.д.

5.11.В зависимости от цвета светофора выдавать сообщение: стой, иди, жди.

5.12.По введенной пользователем температуре воздуха выдать одно из сообщений: „Хорошая погода”, „Плохая погода”.

5.13.Запросить у пользователя стороны двух прямоугольников. Выдать сообщение, у какого прямоугольника большая площадь.

5.14.Заданы площади квадрата и круга. Выдать сообщение, поместится ли квадрат в круге или круг в квадрате.

5.15.Ссгенерируйте случайное число из (0;20). Выдайте сообщение, принадлежит ли это число интервалу (5;15).

Задача для самостоятельной разработки дома. Специалисту необходимо настроить торговый автомат, реализующий два вида товара, для определенности – молоко и кефир в пакетах. Цена в течение дня не изменяется, рекомендуется задать ее операторами LET или DATA – READ. Организовать диалог примерно в такой форме.

“Сколько молока и кефира покупаете?” Покупатель вводит два натуральных числа. С Вас _ рублей, _ копеек, сколько платите?” Если покупатель предлагает сумму меньшую, чем стоит покупка, пожурить его и предложить последний вопрос. “Получите _ пакетов молока, _ пакетов кефира и сдачу: _ рублей, _ копеек.” предоставить выбор: следующий покупатель или закрыто на обед. Это увлекательная задача должна понравиться Вам.

В заключение занятия предлагается выполнить письменную самостоятельную работу, цель которой проверить умение набирать формулы и использование IF…THEN.

Варианты работы:

По введенному пользователем значению аргументов вычислить значение функций, если

Дано: действительное число x. Вычислить f(x), если:

При х > 2 выдать сообщение "Аргумент не входит в область определения"

Дано: действительное число x. Вычислить f(x), если:

При x <-3 и x > 5 выдать сообщение "Аргумент не входит в область определения"

Дано: действительное число x. Вычислить f(x), если:

При x <-4 и x > 4 выдать сообщение "Аргумент не входит в область определения"

Дано: действительное число x. Вычислить f(x), если:

При x <-1 и x > 5 выдать сообщение "Аргумент не входит в область определения"

Дано: действительное число x. Вычислить f(x), если:

При x <-1.5 и x > 2 выдать сообщение "Аргумент не входит в область определения"

Что нового Вы узнали и чему научились на занятии №5?

  • познакомились с программами разветвляющихся структур;
  • усвоили и закрепили на практике форматы оператора IF..THEN;
  • познакомились на конкретных примерах с программами, реализующие разветвляющиеся алгоритмы;
  • ознакомились с типовыми задачами, решение которых предполагает использование IF..THEN;
  • закрепили умение программировать математические формулы на языке QB;

Знаете ли Вы, что абстрактный класс - это класс, содержащий хотя бы один виртуальный метод. Абстрактные классы не бывают изолированными, т.е. всегда абстрактный класс должен быть наследуемым. Поскольку у чисто виртуального метода нет тела, то создать объект абстрактного класса невозможно. Абстрактным классом можно назвать класс, специально определенный для обеспечения наследования характеристик порожденными классами.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution