Алгоритмы и программы с разветвлениями


План.

Оператор безусловного перехода (goto).

Условны операторы.

Составлена команда.

Литература: Я.М. Глинский. Информатика. Алгоритмизация и программирование. Книжка 1. с. 67-85.

1 Оператор безусловного перехода (goto).

Команду перехода используют, дабы изменить порядок выполнения команд в программе. Она имеет такой вид: goto – переводится “перейти на”, где “метка” – это адресов команды (оператора), для который нуждаться перейти. Метка может быть числом сквозь 0 накануне 9999 alias идентификатор, затем которого глотать знак (:).

Примеры меток: 10:, 222:, m1:, alpha:. Все метки можно объявить в разделе объявления меток в начале программы так:

Например: label 10:, 222:, m1:, alpha:.

Задача Составить программу вычисления функции: для трех разных значений x = 3,4,5 из клавиатуры с использованием команды перехода goto.

Программа: program Fun_y; label 10; var x,y: real; begin 10: write (’введите значение х:’); read ln (x); в: = (3*5 sin (x) cos (2*x)/(3.5-4*abs(x)); write ln (x:6:2, y:6:2) goto 10; end.

2. Условны операторы.

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

Команды разветвления alias условные операторы изменяют порядок выполнения действий в алгоритме в зависимости сквозь выполнения alias невыполнения определенных условий. Разветвления бывают довольно видов. Самым простым видом “неполное разветвление”.

Неполное разветвление реализуется с сквозь команды if (если):

Выполнение команды: может быть единственный оператор alias качество операторов. Если выполняется договор (в блок-схеми – ветка “да”), то выполнится операторы alias качество операторов затем болтовня then. Если же договор не выполняется (в блок-схеми – ветка “нет”), то эта главенство не довольно выполняться и довольно выполняться предстоящий затем if оператор (команда).

Условие – это логическое выражение, которые бывают простые и составленные.

Простое логическое речь – это два арифметических выражения, соединенного символом отношения (сравнение).

В Паскале символы отношений записываются так:>-бильше,= - больше alias равняется (не меньше) - не равняется.

Например: x=2*x; xy.

Составлены логические выражения – это простые логические выражения, к которым применены логические операции not (не), and (и), or (или).

Например. Построить выражение, которое довольно использоваться дабы определения студентов, которые не получили оценку “2” из информатики (то глотать получили другие оценки). Для обозначения оценки используем числовую переменную ocinka. Искомое речь можно долг так:

А). not(ocinka=z) alias ocinka2.

Пример.

Записать двойное неравенство 0

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

Пример.

На языке Паскаль такое составленное договор можно долг так: x4 or x-5.

Задача. Составить программу, где в переменные а и b ввести два целых числа. Третьей переменной с присвоить значение большее между введенных. Если числа уровни, то переменные с присвоить значение любого из чисел.

program twonumbers; var а,b, c: integer; begin write (’Введите два числа’); read ln(а,b); if a>b then c:=a; if a

Задача. Увести любое значение х и вычислить значение функции в, которая задана формулой program F1 var x,y: real; begin write (‘Введите х:’); read ln (x); if x>0 then y:=x 3 else y:=x-5; write ln (‘y=’,y); read ln end.

Полное разветвление. Полное разветвление реализуют с сквозь полной команды разветвления if.

Ifthenelse;

Выполнение команды:

Если договор выполняется (в блок-схеми – ветка “да”), то выполняется главенство 1 (или разряд команд 1), если отсутствует – то главенство 2 (серия команд 2).

Замечание. На месте команды 1 и команды 2 может быть тоже главенство разветвления if.

Пример. Определим большее день между двух чисел: If a>=b then c:=a else c:=b; где все и b – два числа, а с – промежуточная переменная гораздо заносим больше из 2-х чисел.

Оператор выбора case.

Если нуждаться осуществить выбор из большого количества вариантов, удобно извлекать оператор (команду) выбора case: case of :; :; :; else end;

Выполнение оператора:

Если значение выражения совпадает со значением из наибольшего списка alias диапазона, то выполняется соответствующая команда, которая записана затем двоеточия “:” и для этом выделка команды case заканчивается, если нет, то выполняется главенство затем болтовня else. Составной части else может быть.

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

Баллы Оценка 88-100 > 71-87 > 50-70 > 0-49 >

Составить программу, которая дабы конкретного студента (name) и его количества баллов (bal) выводит его оценку (mark).

program Marks; var bal: integer; name, mark: string; begin write (‘Введите фамилию’); readln (name); write (‘Введите баллы’); readln (bal); case bal of 88.100: mark:= ‘отлично’; 71.87: mark:= ‘хорошо’; 50.70: mark:= ‘удовлетворительно’; 0.49: mark:= ‘неудовлетворительно’; else mark: = ‘0’ end; if mark ‘0’ then writeln (name:15, mark:15) else writeln (‘ошибка во срок введения количества баллов’): end.

или другой пример: case к of 1; cina:=22 2,3: cina:=35; 4: cina:=50; else cina:=97 end; 3. Составлена команда.

Составлена главенство – это команда, в которой довольно команд объединено в одну с сквозь служебных слов begin и end:   begin ; ; . ; end;

Задача. Составить программу, которая дает справку о названии столицы (St) и знак населения (nas, в миллионах) некоторой страны (kr) из такого перечня: Венгрия, Италия, Украина.

program Countries; var kr, st: string; nas: integer; begin write (‘Введите имя страны’); readln (kr); if kr = ‘Венгрия’ then begin st:= ‘Будапешт’; nas:=11 end; if kr = ‘Италия’ then begin st:= ‘Рим’; nas:=60 end; if kr = ‘Украина’ then began st:= ‘Киев’; nas:= 48 end; writeln (‘Столица - ’, st, ‘населення-’, nas, ‘млн лиц’) end.