- •Алгоритмизация и основы программирования
- •Задания на разработку линейных алгоритмов и программ.
- •If условие then оператор
- •If условие goto nc
- •If условие then
- •Задания на разработку разветвляющихся алгоритмов и программ.
- •2) Цикл с постусловием цикл «повторять… до»
- •Алгоритм 4. Нахождение минимального (максимального) элемента в массиве и его индекса.
- •Задания на разработку циклических алгоритмов и программ.
- •Обработка текстовых данных.
- •Среды программирования.
- •Краткое описание системы quick basic
- •Работа с файлами
- •Окно Open Program
- •Окно Save As
- •Редактирование файла
- •Запуск и компиляция программы
- •Установка некоторых режимов работы Quick Basic
- •Некоторые сообщения об ошибках
- •Отладка и выполнение программы на компьютере.
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 выполняется только при A0. На самом деле, она выполняется при любом А, а встретив в строке 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и двухместных номеров К2;
введенные значения проверяются на равенство К1 = К2;
если условие равенства выполняется, то выводится сообщение «К1 = К2» и программа останавливается;
если условие равенства не выполняется, то проверяется условие K1>K2;
если условие K1>K2 выполняется, то вычисляется значение переменной N по формуле N=К1-К2, то есть, на сколько одноместных номеров больше, чем двухместных, и выводится результат с соответствующим сообщением;
если условие 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.
Вводится информация о стоимостях встречи Рождества в Париже, Риме и Лондоне. Вычислить и вывести, поездка в какой город самая дорогая.
Описание алгоритма:
вводятся стоимости поездок в Париж, Лондон, Рим ,S1,S2,S3;
сравниваются стоимости поездок в Париж и Лондон – проверятся условие S1>S2;
если оно выполняется, то дороже Париж, тогда MAX=S1 и N$=”Париж”;
если условие не выполняется, то дороже Лондон, тогда MAX=S2 и N$=”Лондон”;
сравнивается вычисленное максимальное значение стоимости со стоимостью поездки в Рим – условие S3>MAX;
если оно выполняется, то дороже Рим, тогда MAX=S3: N$=”Рим”;
в противном случае значение переменной MAX остается без изменения;
выводится результат “Самая дорогая поездка в ” 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