Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмизация.doc
Скачиваний:
60
Добавлен:
26.05.2015
Размер:
364.03 Кб
Скачать

If условие then оператор

здесь при невыполнении условия управление передается строке, следующей за IF; если же условие выполняется то работают операторы, записанные после слова THEN в той же строке.

If условие goto nc

где nc – номер строки или метка оператора, куда осуществляется переход в случае выполнения условия. Разумеется, это не может быть следующая строка, так как в этом случае применение оператора IF бессмысленно.

Могут встречаться достаточно сложные конструкции, когда внутри одного оператора IF находится другой оператор IF, так называемый, вложенный IF, например:

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

Заметим, что в программе это должно быть написано в одной строке, таково требование синтаксиса.

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

Блок- IF

Синтаксис:

If условие then

… оператор1

……

оператор N

ELSE

… оператор2

….

операторM

END IF

Необходимо четко различать блок и оператор IF. Если в строке после THEN записан хотя бы один оператор, то такая конструкция считается оператором IF. Следующий после нее оператор выполняется безусловно.

Пример: (строки пронумерованы для удобства разбора программы)

10 IF A<>0 THEN D=B/A

20 X=X+D

30 ELSE

40 D=B

50 X=D^2

60 END IF

Программист, написавший такую конструкцию, надеется, что строка с номером 20 выполняется только при A0. На самом деле, она выполняется при любом А, а встретив в строке 30 предложение ELSE, компилятор выдаст сообщение об ошибке: «ELSE без IF», так как не отнесет его к IF в строке 10. Аналогичная реакция последует и в строке 60.

Правильная запись этого фрагмента программы:

10 IF A<>0 THEN

20 D=B/A

30 X=X+D

ELSE

40 D=B

50 X=D^2

END IF

STOP оператор логического конца программы. Им можно воспользоваться в том случае, когда программа должна быть завершена досрочно.

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

Программная реализация ветвящегося алгоритма рис.3.

INPUT “Пароль!”,P$

If P$=”39w54” THEN

Print “Пароль неверен! Программа выполняться не будет!”: STOP

END IF

PRINT Здравствуйте»

<<Здесь может быть любая программа>>

END

Рассмотрим еще задачи.

Задача 1.

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

Описание алгоритма:

  1. вводятся значения количеств свободных одноместных К1и двухместных номеров К2;

  2. введенные значения проверяются на равенство К1 = К2;

  3. если условие равенства выполняется, то выводится сообщение «К1 = К2» и программа останавливается;

  4. если условие равенства не выполняется, то проверяется условие K1>K2;

  5. если условие K1>K2 выполняется, то вычисляется значение переменной N по формуле N=К1-К2, то есть, на сколько одноместных номеров больше, чем двухместных, и выводится результат с соответствующим сообщением;

  6. если условие K1>K2 не выполняется, то вычисляется значение переменной N по формуле К2-К1, то есть на сколько одноместных номеров больше, чем двухместных, и выводится результат с соответствующим сообщением;

Блок-схема алгоритма представлена на рис.4.

Рис.4. Блок-схема алгоритма к задаче 1.

Программа

Input “Введите количество 1-но и 2-хместных номеров”,K1,K2

If K1=K2 Then Print “Одноместных и двухместных номеров поровну”: Stop

If K1>K2 Then N=K1-K2: Print “1-местных больше” Else N=K2-K1: Print “2-местных больше”

Print “на ” N “ номеров”

End

Задача 2.

Вводится информация о стоимостях встречи Рождества в Париже, Риме и Лондоне. Вычислить и вывести, поездка в какой город самая дорогая.

Описание алгоритма:

  1. вводятся стоимости поездок в Париж, Лондон, Рим ,S1,S2,S3;

  2. сравниваются стоимости поездок в Париж и Лондон – проверятся условие S1>S2;

  3. если оно выполняется, то дороже Париж, тогда MAX=S1 и N$=”Париж”;

  4. если условие не выполняется, то дороже Лондон, тогда MAX=S2 и N$=”Лондон”;

  5. сравнивается вычисленное максимальное значение стоимости со стоимостью поездки в Рим – условие S3>MAX;

  6. если оно выполняется, то дороже Рим, тогда MAX=S3: N$=”Рим”;

  7. в противном случае значение переменной MAX остается без изменения;

  8. выводится результат “Самая дорогая поездка в ” N$ “ стоимостью ” MAX

Блок-схема алгоритма представлена на рис.5.

Рис.5. Блок-схема алгоритма решения задачи 2.

Программа

INPUT “Стоимости поездок в Париж, Лондон, Рим ”,S1,S2,S3

IF S1>S2 THEN MAX=S1: N$=”Париж” ELSE MAX=S2: N$=”Лондон”

IF S3>MAX THEN MAX=S3: N$=”Рим”

PRINT “Самая дорогая поездка в ”, N$, “ стоимостью ”, MAX

END