ЦИЛИНДР
После пуска программы ЦИЛИНДР машина выведет на экран знак вопроса и остановится. Следует набрать на клавиатуре значение первой переменной из списка оператора NPUT, т. е. диаметра D. Затем нужно набрать запятую и ввести значение второй переменной Н. В конце нажимается клавиша перехода на новую строку. При вводе значений D = 0.6, Н = 1 машина выведет следующие результаты:
S = 2.4504422698 V = .28274338823
Приведенная выше программа ЦИЛИНДР составлена так, что в результате ее выполнения вычисляется лишь одна пара значений S и V. Если бы понадобилось вычислить значения S и V для другой пары значений переменных D и Н, пришлось бы вводить команду RUN заново. Впрочем, программу нетрудно видоизменить, чтобы без повторного ввода команды RUN ее можно было бы использовать для повторных вычислений. Достаточно сделать так, чтобы после выполнения оператора вывода (строка 50) снова выполнялся оператор ввода (строка 20). Это достигается заменой оператора END (строка 60) оператором безусловного перехода, который в Бейсике имеет вид:
GOTO < номер строки >
Действие этого оператора заключается в безусловном переходе к строке с указанным номером. Преобразованная программа будет иметь вид:
10 ЦИЛИНДРЫ 20 NPUT D, Н 30 S = 3.1426 D (D/2--H) 40 V = 3.1416DA2H/4 50 PRNT S = ; S, V = ; V 60 GOTO 20
Программу ЦИЛИНДРЫ можно использовать для неоднократных вычислений, так как каждый раз после вывода очередной пары значений S и V машина будет Переходить к строке 20 и запрашивать новые значения исходных данных D и Н. Ниже приведен протокол выполнения программы для двух пар значений D и Н: 0.6, 1
S = 2.4504422698 V = .282743338823
1.4, 2.3
S = 13.19469814508 V = 3.540574920595
Вычисления в данном случае можно организовать так, чтобы все исходные данные (если их не слишком много) были сразу размещены в тексте программы и автоматически выбирались машиной по мере потребности в них. Для этой цели в Бейсике имеется пара специальных операторов DATA и READ, которые всегда используются совместно и имеют вид:
DATA < список констант > READ С список переменных ;>
Строка с оператором DATA вводит в программу список констант, которые перечисляются после слова DATA через запятую, например:
DATA 2, 4, 3.2, 10.3, 2.71 Е—3
Сами по себе операторы DATA никакого действия не вызывают и могут располагаться в любом месте программы. Чтение размещенных в операторе DATA констант осуществляется оператором READ, содержащим перечень переменных, расположенных вслед за словом READ через запятую, например:
READ А, В, С, D
При выполнении программы операторы DATA игнорируются до тех пор, пока встретится оператор READ. Затем отыскивается первый по порядку оператор DATA и перечисленные в нем константы в порядке их следования последовательно присваиваются переменным в операторе READ. Так, если в программе будут использованы указанные выше примеры операторов DATA и READ, то в результате выполнения оператора READ произойдут следующие присваивания: А = 2, В = 4, С = 3.2, D= 10.3. Операторов DATA и READ в программе может быть не по одному, и число их может не совпадать, однако количество констант, вводимых в программу операторами DATA, должно быть по крайней мере не меньше, чем количество переменных, содержащихся в операторах READ.
Если оператор DATA содержит больше значений, чем имеется переменных в списке оператора READ, то следующий оператор READ начинает присвоение с первого неиспользованного при предыдущем чтении значения в операторе DATA. Если же окажется, что оператор READ содержит больше переменных, чем имеющихся в операторе DATA значений, то разыскивается следующий оператор DATA, а в случае его отсутствия выдается сообщение об ошибке.
Каждый раз при повторном прохождении программы оператор READ будет обращаться к первой неиспользованной паре данных в операторе DATA. Печать результатов для заданных оператором DATA исходных значений будет иметь вид:
После исчерпания всех чисел в операторе DATA машина выдаст сообщение о том, что данные в списке DATA использованы и остановится.
Контрольные вопросы
1. Какова общая структура программы на Бейсике
2. Каким оператором Бейсика обеспечивается ввод исходных данных с клавиатуры в ходе исполнения программы
3. Как работает оператор вывода PRNT
4. Каким образом в программу на Бейсике включаются пояснения, комментарии
5. Как с помощью оператора GOTO организуется неоднократная работа одной и той же программы
6. Каким образом с помощью операторов DATA и READ организуется запись и считывание исходных данных в тексте программы
Упражнения
1. Составить программу вычисления площади поверхности S и объема V конуса, заданного диаметром основания D и длиной образующей L:
а) с использованием оператора NPUT;
б) с использованием операторов DATA и READ (для трех пар произвольно выбранных значений D и L).
2. Радиус окружности, вписанной в равносторонний треугольник, равен R. Составить программу вычисления стороны, высоты и площади треугольника.
3. Сосуд имеет форму опрокинутого конуса, осевое сечение которого — равносторонний треугольник. В сосуд брошен железный шар радиуса R и налита вода так, что поверхность воды касается погруженного в сосуд шара. Составить программу вычисления уровня воды после того, как шар будет вынут.

