Информационные технологии

Меню

Реклама

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

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

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

Она имеет такой вид:

Goto - переводится "перейти на", где "метка" - это адресов команды оператора, на который нужно перейти. Метка может быть числом от 0 до 9999 или идентификатор, после которого есть символ :.

Примеры меток : 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;

y: = 35 sin x + cos 2x/3.5-4absx;

write ln x:6:2, y:6:2

Goto 10;

End.

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

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

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

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

Выполнение команды: команда может быть один оператор или группа операторов. Если выполняется условие в блок-схеме - ветка "да", то выполнится операторы или группа операторов после слова then. Если же условие не выполняется в блок-схеме - ветка "нет", то эта команда не будет выполняться и будет выполняться следующий после if оператор команда.

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

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

В Паскале символы отношений записываются такбильше, меньше,

= - больше или равняется не меньше, = - меньше или равняется не больше,

= - равняется, - не равняется.

Например: x5; x+y=2x; x y.

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

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

А. notocinka=z или ocinka 2.

Пример.

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

0x3 для действительных х можно так: x0 and x3.

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

Пример.

На языке Паскаль такое составленное условие можно записать так:

X 4 or x - 5.

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

Program twonumbers;

Var a, b, c: integer;

Begin

write 'Введите два числа';

read lna, b;

if ab then c:=a;

if ab then c:=b;

if a=b then c:=a;

write ln 'c=', c; read ln

End.

Задача. Увести любое значение х и вычислить значение функции в, которая задана формулой

Program F1

Var x, y: real;

Begin

write 'Введите х:';

read ln x;

if x0 then y:=x+3 else y:=x - 5;

write ln 'y=', y;

read ln

End.

Полное разветвление.

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

Ifумоваthenкоманда 1elseкоманда 2;

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

Если условие выполняется в блок-схеме - ветка "да", то выполняется команда 1 или серия команд 1, если нет - то команда 2 серия команд 2.

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

Пример. Определим большее число среди двух чисел:

If a=b then c:=a else c:=b;

Где a i b - два числа, а с - промежуточная переменная куда заносим больше из 2-х чисел.

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

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

Case вираз- селекторof

список 1:команда 1;

список 2:команда 2;

.

список n :команда n;

Else команда

End;

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

Если значение выражения совпадает со значением из наибольшего списка или диапазона, то выполняется соответствующая команда, которая записана после двоеточия ":" и на этом выполнения команды 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 k of

1; cina:=22,

2,3: cina:=35;

4: cina:=50;

else cina:=97

end;

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

Составленная команда - это команда, в которой несколько команд объединено в одну с помощью служебных слов begin и end, :

begin

команда 1;

команда 2;

.

команда n;

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.