[an error occurred while processing this directive]
60
------------------------------------------------
Структурно неправильная программа выполняться не будет, а на экране появится список ошибок.
------------------------------------------------
То же самое можно получить с помощью прямой команды DEBUG, которая вызывает тест структуры программы и показ ошибок.
Введите
debug
и на экране появится такое же сообщение об ошибке. Чтобы исправить программу мы должны поместить обратно указание NEXT. Сейчас мы можем открыть еще одну свойство Комала.
Чтобы закончить указание NEXT, введите
40 next
Вы заметили, что мы не написали переменную go в конце указания?
Просмотрите программу.
Переменная цикла go была вставлена в строку 40. Если компьютер может сказать, что структура программы неправильная, то он сам может установить какая переменная должна идти за NEXT и вставить ее.
----------------------------------------------
Нет необходимости помещать переменную цикла в конце указания. Компьтер сам определит эту переменную и автоматически ее вставит.
----------------------------------------------
Введите
debug
и сообщения об ошибке не будет.
----------------------------------------------
DEBUG сообщает о структурных ошибках в программе. Если нет ошибок, нет и сообщения.
----------------------------------------------
7.4 Табуляция вниз по экрану
Дайте прямую команду CLS
и введите
print tab(10,15);"Here"
****************************************************************
61
Обратите внимание, что подсказка и курсор появляются на строке, следующей за той, на которой было напечатано ми проводам.
Модуль последовательного интерфейса, который не входит в стандартную конфигурацию Агата (RS232), обеспечивает последовательный вывод. Параллельный принтерный порт обычно находится на пятом разъеме.
23.1 SELECT OUTPUT (выбор вывода)
Команда SELECT OUTPUT S вызываетпоявление листинга или материала для печати на экране и их передачу через последовательный вывод.
Команда SELECT OUTPUT P вызывает появление листинга или материала для печати на экране и их предачу через параллельный вывод.
Команда SELEKT OUTPUT D вызывает вывод только на экран.
За командой SELECT OUTPUT может следовать любой символ. Вывод определяет начальный символ. Любой другой символ, кроме S или Р направит вывод только на экран.
23.2 Форматы печати.
Имеется два способа контроля формата числового вывода. Наиболее многосторонний присваивает величину системной переменной ZONE, а самый простой демострирует требуемый формат как часть команды PRINT USING.
****************************************************************
176
?? куска нет ??
23.3 ZONE
ZONE обычно присваивается шеснадцатиричная (база 16) величина, выстроенная тремя частями. Например ZONE := &020309 устанавливает печать во втором формате (который имеет фиксированное количество десятичных позиций), о3 указывает на три десятичные позиции и 09 указывает на ширину зоны в девять символов. Знак & указывает на базу 16.
23.4
Мы можем найти текущую величину ZONE с помощью указания напечатать эту величину. Сначала найдите символ ~ , это один из регистров Ч. Этот знак ставится перед числовой переменной, чтобы обратить вывод из десятичного числа в строку, содержащую шестнацетиричное представление. В машине без маленьких букв этот знак будет отображаться как ^.
Введите
PRINT ~ZONE
23.5 PRINT USING
Еще одним способом указания на формат печати заключается в том, что нужно создать строчный пример требуемого формата и дать указание компьютеру печатать по этому формату.
Формат, показанный в строке представляет собой формат, в котором будет напечатано число.
PRINT USING "###.##":number
Величина number будет округлена до двух десятичных позиций перед тем, как она будет напечатана с тремя десятичными позициями перед десятичной точкой и двумя после нее.
Строку можно печатать как часть команды PRINT USING.
Пример:
PRINT USING "#####.##":"Price iz ";price
что напечатает величину price с пятью позициями перед десятичной точкой и двумя после нее.
Строка должна содержать точно одну десятичную точку, если мы хотим, чтобы формат был правильно определен. Символ # являяется стандартным символом для использования внутри строки, но подойдет и любой другой символ.
****************************************************************
177
Пример:
PRINT USING "1234.123":length
имеет четыре позиции перед десятичной точки и три после нее. Длина строки и позиция десятичной точки являются единственными значительными особенностями.
Если число слишком большое для формата, то оно будет напечатано с дополнительными позициями перед десятичной точкой, но с требуемым количеством десятичных позиций.
Допуск на знак минус.
Если предполагается, что величина будет отрицательная, для знака - необходимо оставить позицию. Напимер -99.99 является наибольшим отрицательным числом, которое может быть правильно помещено с помощью PRINT USING "###.##". PRINT USING осбенно помогает при печати правильно расставленных колонок цифр.
Пример:
PRINT USING "#####.###": .3'34.5'345.6' -345.6789
производит
0.300 34.500 345.600 -345.679
****************************************************************
78
24 WHILE (пока)
---------------------------------------------
WHILE используется как оператор-введения цикла.
24.1 Возможно не цикл.
Вот циклы, которые мы уже встречали:
- FOR... NEXT..., который выполняется точное количество раз;
- REPEAT UNTIL...,который выполняется по крайней мере один раз, или неопределенное количество раз, что зависит от условия после UNTIL.
Цикл WHILE используется, когда мы хотим выполнять ряд операторов неопределенное количество раз , или по возможности, вообще не выполнять. Перед тем, как перейти к этим операторам, производится тест.
Формат цикла WHILE имеет следующий вид:
WHILE ... DO Command1 Command2 END WHILE
Посе WHILE дается условие. Если это условие удовлетворяется (т.е. имеет истинный результат), то операторы внутри цикла выполняются. Цикл продолжается, пока условие не становится ложным.
При вводе можно опустить ключевое слово DO. Оно будет вставлено автоматически.
Операторы внутри цикла выделяются двумя позициями.
END WHILE должны быть разделены пробелом.
24.2 Примеры
10 WHILE NOT EOD 20 READ text¤ 30 PRINT text¤ 40 END WHILE 50 PRINT "That'all folks." 60 DATA What's up Doc?
****************************************************************
179
210 INPUT "Enter a number of pence ":amount 220 INPUT "Enter scost of an apple in pence ":cost 230 number := 0 240 WHILE amount >= cost DO 250 amount :- cost 260 number :+ 1 270 END WHILE 280 PRINT "You have enough for"; 290 PRINT ;number;" apples" 810 space_bar = -99 820 PRINT "Print Space Bar to Continue" 830 WHILE NOT INKEY (space_bar) DO 840 NULL // pause until Space Bar Pressed 850 END WHILE 900 DIM a(1:1000) 910 shift := -1 920 FOR j := 1 TO 1000 930 PRINT j,a(j) 940 WHILE INKEY (shift) DO 950 NULL // pause if shift pressed 960 END WHILE 970 NEXT j
****************************************************************
80
25 CASE
----------------------------------------
CASE - это вводный оператор для принятия решения. Лучше всего его использовать, когда необходимо рассмотреть целую серию вариантов, а использование команды IF будет выглядеть неопрятным. В этом случае проверяются различные CASEы и производится соответствующее действие.
25.1 OF
За CASE должна следовать переменная или выражение, которые могутбыть оценены и, за которыми должно следовать ключевое слово OF. Величина затем сравнивается с рядом вариантов. Формат команды показан в примере. Если при вводе OF опускается, то оно вводится автоматически.
10 mode := 6 20 print''"I am thinking of an integer 1-99" 30 print''"Triy to guess it"'' 40 ACTUAL := rnd( 99) 50 repeat 60 input "Your guess > ":GUESS 70 print tab( 18); 80 DIFFERENCE := abs(ACTUAL-GUESS) 90 case DIFFERENCE of // OF need not typed 100 when 0 // a single value 110 print "Exactly" 120 when 1,2 // a list of alternative values 130 print "White Hot" 140 when < 5 // condition 150 print "Red Hot" 160 when < 10 170 print "Warm" 180 when < 20 190 print "Cool" 200 when < 40 210 print "Freezing" 220 otherwise 230 print "Get thermal underwear" 240 end case 250 until DIFFERENCE = 0
Рассматриваются случаи (CASEs OF) величины difference.
****************************************************************
181
[an error occurred while processing this directive]