выведет число 2539.24, которому предшествуют два пробела, поскольку под целую часть числа отводиться 6 позиций, а фактически их 4. Дробная часть округляется до двух разрядов.
Оператор ввода. Исходные данные, обрабатываемые программой, можно задавать оператором присваивания. Пусть нужно вычислить площадь круга S=2ПR2. Если задать непосредственно в программе значение радиуса окружности, например оператором R=5, то программа будет вычислять площадь только такой окружности. Если нужно вычислить значение S с иным радиусом, придется изменить оператор непосредственно в программе. Это очень неудобно, поскольку пользователь программы не имеет квалификации и возможности изменять что-нибудь в программе. Необходимо сделать так, чтобы результаты вычислений зависели не от текста программы, а только от данных. Для этого имеется оператор чтения данных вида:
где приглашение – необязательная символьная константа, указывающая, что именно нужно вводить. Если после приглашения указана точка с запятой, после приглашения будет выведен вопросительный знак. Если запятая – нет.
Все переменные в списке переменных разделяются запятыми. Если список переменных содержит более одной переменной, вводимые значения следует разделять запятыми. Число вводимых данных по количеству и типу должно соответствовать списку переменных. По завершении ввода всех переменных для данного оператора INPUT следует нажать клавишу ENTER. Если ввод был осуществлен неверно, ПК выдаст сообщение “Redo from start” о необходимости его повторить.
Пример: INPUT “Введите переменные R и L”; r, l
Дословно оператор интерпретируется следующим образом: “Читать в память ЭВМ, введенные с клавиатуры, переменные R и L”. При этом на экране сначала будет выведено приглашение вида “Введите переменные R и L?”
@ Задачи для самостоятельного решения.
1. Пусть известны координаты вершин треугольника X1,Y1;X2,Y2;X3,Y3. Найти: периметр треугольника P и площадь S.
2. Пусть некоторый процесс начался в H1 часов, Min1 минут, а закончился, когда было H2 часов и Min2 минут. Вычислить длительность этого процесса (в часах HD и минутах MinD). Считаем, что процесс длился не более суток.
Эти и другие задания “для самостоятельного решения” являются также материалом для лабораторных работ
Операторы управления
В программе принят естественный порядок выполнения операторов – в той последовательности, в которой они записаны. В случае если этот порядок должен быть нарушен, используются операторы перехода.
Оператор безусловного перехода. Оператор вида:
üGOTO метка_оператора
вынуждает программу выполнять не следующий по порядку оператор, а оператор с указанной меткой. Например, оператор GOTO 25 читается как “Идти к оператору с меткой 25”и передает управление оператору с меткой 25.
В некоторых версиях Бейсика все операторы в программе нумеруются. В QBasic, однако, сплошная нумерация не обязательна, хотя и возможна. Здесь для организации ссылок используются метки (в частном случае это могут быть и номера операторов), которые расставляются слева от тех операторов, на которые есть ссылки. Метками могут быть любые целые числа, идущие в произвольном порядке (не обязательно по возрастанию). Важно только, чтобы они не повторялись.
Оператор анализа условий.Если переход, или какое то другое действие должно быть выполнено в зависимости от некоторых условий, то используется оператор IF. Его формат:
üIF логическое_условие THEN оператор1 ELSE оператор2
Здесь, если заданное условие истинно, выполняется оператор1, если нет – оператор2. Например, оператор
IF a>b THEN ?”А больше В” ELSE ?”В больше А”
выводит сообщение о фактическом соотношении переменных А и В.
Фраза ELSE необязательна, т.е. возможен и такой формат
ü IF логическое_условие THEN оператор
Так, следующий оператор читается: “Если X>Z, напечатать Y, иначе сразу идти к следующему оператору (непосредственно под оператором IF)”.
IF x>z THEN ?Y
¯нет
Другой пример читается так:“Если A³B–2, то идти к оператору 40, иначе – к оператору, стоящему ниже ”.
IF a>=b-2 THEN GOTO 40
¯нет
Для такого случая возможна более короткая форма оператора IF – без слова THEN: IF a>=b-2 GOTO 40
Другой пример. На практике иногда приходится выяснять, четное число (например, Х) или нечетное. Это можно сделать с помощью любого из следующих выражений
IF FIX(x/2)=x/2 THEN ”X – четное” ELSE ”X – нечетное ”
IF x MOD 2=0 THEN ”X – четное” ELSE ”X – нечетное”
Структурный оператор анализа условий.Здесь уместно напомнить, что всюду, где в синтаксисе команд встречается слово оператор, может быть записано несколько операторов, разделенных двоеточием. Однако этого может оказаться недостаточно – внутрь выражений THEN/ELSE может потребоваться включить много действий и даже целые процессы. В этом случае используется структурный оператор, позволяющий формировать условия, включающие любое число строк программы.