Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Блок- 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 ELSE 40 D=B 50 X=D^2 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-х местных номеров ”, K1 Input “Введите количество 2-х местных номеров”, K2 If K1=K2 Then Print “Одноместных и двухместных номеров поровну”: Stop If K1> K2 Then N=K1-K2 Print “1-местных больше” Else N=K2-K1 Print “2-местных больше” ENDIF
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
|