[an error occurred while processing this directive]

40

В этом случае проверьте что вы ввели и попытайтесь еще раз, пока ввод не будет принят

Компьютер запомнил сообщение и ждет следующих.

5.3 RUN

Введите

run

------------------------------------------------

Чтобы компьютер выполнил указание, которе он запомнил, мы должны подать прямую команду RUN.

------------------------------------------------

Не имеет никакого значения напечатаны ли команды в верхнем регистре, или в нижнем.

Введите

2 print "I am"

5.4 LIST

------------------------------------------------

Если мы хотим посмотреть все строки программы, можно использовать прямую комнду LIST.

------------------------------------------------

Введите

list

Обратите внимание, что ключевое слово PRINT напечатано заглавными буквами.

Введите

run

Програмные строки должны начинаться целыми числами, чтобы в случае необходимости в программу можно было вставить дополнительные сообщения и для них было место.

Мы не очень удачно обозначили програмные строки цифрами 1 и 2, потому что мы не оставили места для програмных строк между ними.

5.5 RENUMBER (изменение нумерации)

Введите

renumber

и

****************************************************************

41

list

-----------------------------------------------

Команда RENUMBER производит перенумерацию строк в следующей последовательности: 10, 20, 30, 40,...

-----------------------------------------------

Теперь мы можем добавить дополнительные програмные строки между уже существующими.

Введите

15 print "therefore"

и

renumber

Если мы хотим, мы можем просмотреть только одну строку.

Введите

list 20

list и run (просмотрите и запустите) программу.

5.6 Очередность выполнения

Вы заметили, что компьютер выполнил указания соответственно нумерации строк, а не в той последовательности, в которой мы их вводили?

----------------------------------------------

Компьютер следует последовательности нумерации строк программы, если ему не даны другие указания (повторить некоторые строки или выполнить только выбранные).

----------------------------------------------

Введите

40 print "intelligent"

просмотрите и запустите программу.

Если мы хотим просмотреть только некоторые строки, напр. с 20 до 40, то мы можем указать пределы строк.

Введите

list 20,40

5.7 Редактирование

Иногда нам нужно удалить одну из строк из программы.

------------------------------------------------

Чтобы удалить какую-либо строку из прогрммы, нужно напечатать строчный номер и нажать на клавишу RETURN.

------------------------------------------------

****************************************************************

42

Напечатайте

20

и нажмите RETURN.

Затем просмотрите, была ли удалена строка 20.

Запустите программу, но не перенумеровывайте ее.

-------------------------------------------------

Если мы хотим заменить одну строку другой, нам нужно только напечатать новую строку.

-------------------------------------------------

Введите

   40 print "here"

и подайте команду list, чтобы просмотреть новую строку 40.

Курсор копирования

Если мы хотим сделать маленькое изменение в существующей строке, то мы можем использовать средство редактирования. Справа находятся четыре клавиши со стрелками , а в нижней правой части функциональной клавиатуры - клавиша с маркировкой '=' (КОПИ).

Нажмите один раз клавишу со стрелкой, направленной вверх.

В том месте где был курсор останется маркерный блок.

С помощью клавиши со стрелкой переведите курсор вверх (или вниз, если необходимо) пока он не займет место перед строкой 10, как показано ниже.

 _ 10 PRINT "I think"

А теперь, используя клавишу со стрелкой, направленной вправо (или влево, если необходимо), переместите курсор под цифру 1 числа 10.

   10 PRINT "I think"
   _

Нажмите один раз на клавишу КОПИ и посмотрите, что произошло.

Цифра 1 должна была быть скопирована, там, где находился маркерный блок, а сам маркерный блок и курсор переместились на одну позицию.

С помощью клавиши КОПИ скопируйте строку до первых кавычек включительно, но не нажимайте клавишу ВВОД.

->10 PRINT "

Напечатайте с помощью клавиатуры

I know"

****************************************************************

43

не забудьте закрывающие кавычки и нажмите ВВОД.

Вся строка

   10 PRINT "I know"

введена и курсор должен вернуться в свою нормальную позицию.

С помощью команд LIST и RUN проверьте прогрмму.

Затем введите NEW и просмотрите программу.

Вы увидите, что ничего не случилось. Команда NEW просто подготовила компьютер к новой программе. И показывает, что вы потеряли свою предыдущую работу.

5.8 Old (старый)

Если вы передумали и хотите вернуть предыдущую программу, вым нужно ввести OLD.

Введите

old

и

list

--------------------------------------------------

Прямая команда OLD может восстановить предыдущую программу, при условии, что новая программа все еще не была запущена и не было введено новых переменных. OLD можно также использовать после того, как была нажата клавиша УПР+СБР. Если программа не была запорчена, ее можно просмотреть и запустить.

--------------------------------------------------

5.9 Сокращения

Введите

   20 p."that"

и

list

В строке 20 р. станет PRINT.

-------------------------------------------------

Сокращение р. можно использовать вместо PRINT.

-------------------------------------------------

-------------------------------------------------

Сокращение для LIST - просто точка.

****************************************************************

44

Введите

.

и вы должны получить построчный показ программы. Это сокращение действительно увеличивает скорость. Почти все ключевые слова имеют краткие формы. Сокращения приведены В Части 3 вверху справа на каждой странице.

5.10 Уничтожение нескольких строк

Если мы хотим удалить несколько строк программы, мы используем ключевое слово DEL.

Введите

del 10,30

и напечатайте команду LIST (или сделай ввод)

Строки от 10 до 30 включительно будут уничтожены

-------------------------------------------------

Используя команду DEL, можно удалить из программы последовательный ряд строк. Например: DEL 80,120 уничтожит строки от 80 до 120 включительно. Можно уничтожить и одну строку, напр. DEL 80.

-------------------------------------------------

Введите

new

5.11

Введите

auto

получим

->auto
   10 _

Компьютер показывает нам номер строки

Введите

h := 3

и мы видем, что появился новый номер строки.

->auto

****************************************************************

45
   10 x := 3
   20 _

----------------------------------------------

AUTO - прямая команда для плучения последовательных номеров строк 10, 20, 30, ...

----------------------------------------------

Введите

y := 4

и ряд номеров продолжается. Как остановиться?

ESCAPE (выход)

Вверху справа на клавиатуре вы найдете клавишу РЕД. Нажмите ее.

-----------------------------------------------

Чтобы выйти из авто нумерации, нажмите на клавишу РЕД.

-----------------------------------------------

Не забывайте оставлять пробел после ключевого слова AUTO

введите

->auto 100,5
получаем
   100 _

Автоматическое присваивание номеров возобновляется с 100 и будет продолжаться с интервалом 5. Закончите строку вводом

print x*x + y*y

5.12 Комментарии

Существует способ, с помощью которого мы можем ввести в программу полезные комментарии - это ключевое слово-сивол //, состоящий из повторенного дважды знака деления. Длинную программу легче понимать если она содержит комментарии.

------------------------------------------------

Все в строке программы после символа // игнорируется.

------------------------------------------------

Завершите строку 105 вводом

//sum of squares

Замечания можно помещать в конец почти каждой строки программы, или на самой стоке, используя символ //.

46

Введите

   110 print x + y //sum of values

Нажмите на клавишу РЕД, чтобы выйти из автоматического присваивания номеров, просмотрите и запустите программу.

5.13 Модифицировани программы

Введите

new

и

auto 100

что начнет присвоение номеров от 100 десятками.

Введите следующие строки программы:

   100 first := 99
   110 print first
   120 second := 88
   130 print second
   140 print "Total"
   150 print first + second
   160 end

Клавишей РЕД прекратите присваивание номеров.

-----------------------------------------------

END (конец) - ключевое слово, которое обычно показвет физический конец программы. После использования этого слова не выполняются никакие прогрмные строки.

-----------------------------------------------

Запустите программу.

Уберите строку 140 вводом

DEL 140

Просмотрите программу.

С помощью клавиш со стрелками и КОПИ измените строку 100.

Скопируйте

   100 first

а затем напечатайте

S := "ACORNSOFT"

****************************************************************

47

и нажмите ВВОД

получаем

   100 first¤ := "ACORNSOFT"

Клавишей КОПИ измените:

строку 110 на

   110 PRINT first¤

строку 120 на

   120 second¤ := "COMAL"

строку 130 на

   130 PRINT second¤

строку 150 отредактировать немного труднее.

Скопируйте, чтобы получить

   150 PRINT first

затем напечатайте

S

и нажмите на клавишу ВВОД, получаем

   150 PRINT first

затем скопируйте

+ second

получаем

   150 PRINT first¤ + second

затем напечатайте

S

и нажмите клавишу ВВОД, получаем

   150 PRINT first¤ + second¤

Просмотрите программу

и запустите ее.

Сейчас введите

renumber 200,20

и просмотрите программу.

****************************************************************

48

Команда RENUMBER вызвала просмотр программы, начиная с 200 с интервалом 20

Введите

renumber 200

и просмотрите; номера строк возрастают на 10.

5.14 Просмотр переменных

Переменные пользователя, т.е. переменне, введенные пользователем компьютера, всегда просматриваются в нижнем регистре.

------------------------------------------------

Переменные пользователя всегда предъявляются в строчных буквах.

------------------------------------------------

5.15

Итоговые упражнения

Запишите ваши ответы и сверьте их с ответами в главе 43.

1. Какая команда даст вам автоматическое присваивание номеров строк, начиная с 200 с интервалом 5?

2. Как выйти из автоматического присваивания номеров?

3. Какая команда изменяет номера строк прогрммы с 100 с интервалом 10?

4. Какая Команда готовит к новой команде?

5. Исползуйте програмные строки , которые присваивают a¤ := "SUPER", b¤ := "CALI", c¤ := "FRAGI", d¤ := "LISTIC" и попытайтесь составить программу, чтобы получить следующее:

SUPER    CALI    FRAGI    LISTIC
SUPER    CALI    FRAGILISTIC
SUPER    SALIFRAGILISTIC
SUPERCALIFRAGILISTIC
SUPER
CALI
FRAGI
LISTIC

7. Используя строку программы, присвойте величину 111 переменой x, а затем напечатайте значения x, ее квадрат и ее куб в зонах по всему экрану.

****************************************************************

49

5.16 Вводы

1. Программа представляет собой хранимый набор указаний, который выполняется после ввода прямой команды RUN.

2. Каждая строка программы состоит из целого числа и сообщения или комментария.

3. AUTO - это прямая команда для показа номеров строк в последовательности 10, 20, 30, 40, ...; после показа номера компьютер ожидает сообщения и нажатия на клавишу ВВОД, прежде чем показать следующий номер. AUTO 200 начинает присваивание номеров, начиная с 200 с интервалом 10. AUTO 100,5 производит последовательность 100, 105, 110, 115 и т.д.

4. РЕД обеспечивает выход из AUTO.

5. LIST - это прямая команда дляпоказа программы в последовательности номеров ее строк. Можно также показать и отдельную строку программы, напр. 80. Для этого вводят LIST 80. Непрерывную последовательность строк, напр. с 80 до 120, можно показать командой LIST 80,120.

6. При показе программы на Комале ключевые слова выводятся в верхнем регистре, переменные пользовтеля - в нижнем. Сокращение для LIST - точка.

7. P. - сокращение для PRINT.

8. // показывает, что все, что следует за этим символом, не является указанием для выполнения компьютером. После символа // можно помещать комментарии и заметки.

9. RENUMBER - это прямая командадля перенумерации строк программы, существующей в памяти, в последовательности 10, 20, 30, 40 и т.д. RENUMBER 200,5 начнет перенумерацию с 200 с интервалом 5.

10. Строку прогарммы можно убрать, напечатав ее номер и нажав клавишу ВВОД, или вводом DEL и номера строки.

11. Непрерывную последовательность строк программы, напр. от 50 до 100, можно убрать с помощью DEL 50,100.

12. Прямая команда NEW готовит ввод новой программы.

13. Предыдущую программу можно вернуть прямой командой OLD при условии, что новую прогрмму еще не запускали, а новые переменные еще не присваивали.

14. END исползуют для обозначения физического конца программы. После END не выполняется ни одна строка программы.

****************************************************************

0

6 ПРОСТЫЕ ЦИКЛЫ

________________

В этой секции мы узнаем как повторять набор указаний с помощью ключевых слов FOR и NEXT.

6.1 Повторение указаний

Строки программы обычно выполняются в их номерной последовательности. Однако, если мы хотим, чтобы одни и те же указания выполнялись несколько раз, то будет расточительно постоянно вводить набор этих указаний, строку за строкой. Нам нужен способ повтора набора указаний точное количество раз.

Введите

new

и

auto

затем напишите следующие програмные строки, оставляя пробелы, где указано.

   10 print "Sstart here"
   20 for number := 1 to 5 do
   30 print "***************"
   40 print "At line 40"
   50 print "***************"
   60 next number
   70 print "All done"
   80 end

и нажмите клавишу РЕД, чтобы выйти из auto последовательности.

Запустите программу

а затем просмотрите ее.

Идентификация циклов.

-------------------------------------------------

Когда программа выведена для просмотра, указания между строками, содержащими FOR и NEXT идентицированы двумя позициями. Это те указания, которые повторяются.

-------------------------------------------------

****************************************************************

6.2 Управление строкой

Обратите внимание на то, что переменная number - в нижнем регистре, тогда как FOR и NEXT - в верхнем.

В строке 20 величина 1 присвоена переменной number, затем выполняются строки 30, 40, и 50.

Когда программа доходит до строки 60, NEXT number прибавляет 1 к переменной number и делает ее равной 2.

Так как 2 находится между 1 и 5 (как дано в строке 20), то строки 30, 40 и 50 выполняются снова.

Следующее указание NEXT number равно 3 и цикл повторяется; все это подолжается пока number не становится равным 5, что является пределом. Эта величина разрешается и указания печати выполняются в пятый раз.

Следующее указание NEXT number устанавливает number на 6, который находится уже за пределами от 1 до 6, поэтому цикл заканчивается и компьютер переходит к строке 70.

Подтвердите это вводом прямой команды

print number

------------------------------------------------

После того, как программа отработала ее переменные сохраняются и при необходимости могут быть использованы.

------------------------------------------------

Переменные цикла

Переменная, которую мы используем для подсчета повторов петли называется переменной цикла.

Мы можем использовать переменную цикла внутри цикла.

Введите

    40 print "This is loop ";number

Запустите программу.

Просмотрите логику программы.

6.3 Полезные дополнения

Введите

new

then

****************************************************************

auto 100

и добавьте линии

   100 for number = 10 to 20
   110 print ;number
   120 next number

РЕД и просмотрите программу.

Посмотрите внимательно на строку 100.

------------------------------------------------

Если : или DO не были включены в указание FOR ..., они будут вставлены автоматически.

------------------------------------------------

Технически они нормальные части указания Комала FOR....

Запустите программу, а затем просмотрите ее.

Клавишами со стрелками и копировальным курсором скопитуйте всю строку 100 за исключением DO, но прежде чем нажать клавишу ВВОД, сделайте пробел, напечатайте step 2 и нажмите клавишу ВВОД.

Просмотрите и запустите программу.

6.4 Step (шаг)

Используя КОПИ и клавиши со стрелками, измените строку 100 на

   100 FOR number := 10 TO 14 STEp 0.5

Просмотрите и запустите программу.

Если в конце указания FOR ... нет слова STEP, то размер шага принимается равным 1. (Это известно как величина, принемаемая по умолчанию - величина, которую она принимает, если не дана какая-либо другая.)

Отрицательный шаг

------------------------------------------------

Мы можем произвести уменьшающиеся серии чисел с помощью минуса или отрицатаельного шага.

-------------------------------------------------

Измените строку 100 на

   100 FOR number := 10 TO 1 STEP -2

****************************************************************

53

Просмотрите и запустите программу.

Величина не печатается. Серия идет от 2, которая печатается, до 0, который пиводит к концу цикла.

6.5 Невозможные циклы

------------------------------------------------

Невозможный для FOR... NEXT ... цикл игнорируется.

------------------------------------------------

Измените строку 100 на

   100 FOR number := 10 TO 100 STEP -1

Затем введите

   90 print "Start"

и

   130 print "Finish"

Просмотрите программу и сравните ее со следующей:

   90 PRTNT "Start"
  100 FOR number := 10 TO 100 STEP -1
  110 PRINT ;number
  120 NEXT number
  130 PRINT finish

Запустите программу.

Ни одна часть цикла FOR... NEXT... не была выполнена. Будто строки от 90 до 130 не существуют. Если все же мы начали бы с 10 и продвигались бы с шагом -1 через 9,8,7,6,..., то мы никогда не достигли бы 100.

---------------------------------------------

В Комале комьютер обходит любой цикл FOR... NEXT... , который не может быть выполнен надлежащим образом и будет проджать выполнять программу.

---------------------------------------------

6.6 Первыми представляйте переменные

Введите new, а затем новую программу

    10 total := 0
    20 for number := 1 to 5
    30 print number
    40 total := total + number
    50 next number
    60 print "The total  iz ";total
    70 end

****************************************************************

54

и запустите ее.

В строке 40 нам необходимо знать величину total прежде чем мы сможем прибавлять к величине number, а затем опять присваивать к величине total. Вот почему нам будет нужна строка 10: она присваивает величину к total прежде чем мы начинаем цикл.

----------------------------------------------

Любая переменная пользвателя, появляющаяся на правах присвоения, прежде должна быть представлена.

----------------------------------------------

6.7 Обозначение :+

Строка 40 немного переполнена! Она говорит: возьмите total и прибавьте к number и присвойте новую величину обратно к total. Фактически мы хотим прибавить number k total. Об этом можно сказать более коротким путем. Будьте внимательны и при вводе не оставляйте пробела между : и +.

   40 total :+ number

Мы можем прочитать это как total, увеличенный на number.

Запустите программу, чтобы увидеть, что результат тот же.

----------------------------------------------

:+ является сокращенной формой присваивания, которое прибавляет какое-либо количество к прежней величине переменной слева от :+.

----------------------------------------------

Строчное использование обозначения :+

----------------------------------------------

Обозначение :+ может быть использовано и со строками.

----------------------------------------------

Введите new, а затем следующую программу:

   10 basic¤ := "That"
   20 print basic¤
   30 extra¤ := " and this" // note space
   40 for go = 1 to 3
   50 basic¤ :+ extra¤
   60 print basic¤
   70 next go
   80 end

Просмотрите и запустите програму.

Строка 50 имеет такой же эффект, что и basic¤ := basic¤ + extra¤, но значительно короче.

****************************************************************

55

6.8 Обозначение :-

Такую команду как

money := money - cost

тоже можно сделать короче

money :- cost

------------------------------------------------

:- является сокращенным присваиванием, которое снимает определенное количество с прежней величины переменой слева от :- .

------------------------------------------------

6.9 Удваивание

Введите new, auto и следующее:

   10 dim star¤ of 130 // srace needed
   20 star¤ := "*"
   30 print star¤'
   40 for go := 1 to 7
   50 star¤ :+ star¤
   60 print star¤'
   70 next go
   80 end

Нажмите клавишу РЕД, просмотрите, но не запускайте программу.

В строках 30 и 60 знак ' будет иметь эффект перехода на дополнительную строку перед выполнением следующего указания print.

Внимательно просмотрите программу и попытайтесь установить, что она будет делать, а затем запустите ее.

Так как строка 50 прибавляет star¤ k star¤, ее длина каждый раз удваивается.

Каждое новое присваивание star¤ изменяет длину star¤. Сейчас вам понятно, зачем нам нужно было, чтобы строка 10 назначила столько позиций для star¤.

А сейчас сделайте итоговые упражнения.

6.10 Итоговые упражнения

Запишите ваши ответы и сверьте их с ответами в главе 43.

****************************************************************

56

Какая программа даст следующие наборы цифр?

  1.  21   2.  10  3.  1
      22       20      3
      23       30      5
      24       40      7
      25       50      9
      26       60     11
      27       70     13
      28       80     15
      29       90     17
      30      100     19
  4.   2   5.  99  6.  2
       4       88      2.5
       6       77      3
       8       66      3.5
      10       55      4
      12       44      4.5
      14       33      5
      16       22      5.5
      18       11      6
      20        0

Какая программа произведет следующее:

7. *
   *!
   *!!
   *!!!
   *!!!!
   *!!!!!
   *!!!!!!
   *!!!!!!!
8. ABAD
   ABADABAD
   ABADABADABADABAD
   ABADABADABADABADABADABADABADABAD

6.11 Выводы.

1. Цикл FOR... NEXT... позволяет повторить набор указаний точное количество раз.

****************************************************************

57

2. Когда программа выведена для просмотра, указания в цикле FOR... NEXT... имеют отступ в две позиции.

3. STEP (шаг) полезен, если приращение в цикле FOR... NEXT... не 1.

4. Невозможный цикл FOR... NEXT... игнорируется и программа его обходит.

5. Любая переменная, появляющаяся спава от присваивания, была введена предворительно.

6. :+ является сокращением прибавления к существующей переменной.

Пример: а¤ := b¤ - краткая запись a¤ := a¤ + b¤

x :+ y сокращенная форма записи для x := x + y.

7. :- является сокращением для вычитания из существующей числовой переменной.

Пример: x:- y сокращение для x := x - y

:- нельзя использовать для строковых переменных.

8. После прогона программы переменные сохраняются и их можно напечатать.

****************************************************************

58

7 ЕЩЕ О PRINT

_______________

В этой секции мы научимся как печатать в разных местах экрана.

7.1 Очистка экрана

Приятно выводить наши результаты на чистый экран.

Введите прямую команду CLS.

-----------------------------------------------

CLS - это команда очистить экран (от CLear Scren).

-----------------------------------------------

CLS можно использовать в любом месте программы, где мы хотим уудалить напечатанное с места, на которое нам нужно вывести наш материал.

Введите new и следующую короткую программу:

   10 cls
   20 for go := 1 to 16
   30 print "*"
   40 next go

Запустите и просмотрите программу.

До сих пор мы пользовались только простой версией указания PRINT. Есть несколько интересных способов упраавления печатью на экране.

7.2 Табуляция

Клавишей КОПИ измените строку 30 на

   30 PRINT tab(15);"*"

Обратите внимание, что между буквой В слова ТАВ и скобкой нет пробела. (После закрывающей скобки необходимо поставить точку с запятой.

Выведите программу для просмотра и обратите внимание, что между ТАВ( и 15 появился пробел. Этот пробел всегда появляется при просмотре.

Запустите программу.

****************************************************************

59

Измените строку 30 на

   30 PRINT TAB( 30);"*"

Запустите и просмотрите программу.

На нашем зкране в данный момент имеется место для 40 символов в каждом ряду. Позиции нумеруются от 0 до 39.

PRINT TAB( 15); говорит компьютеру перейти в позицию 15 и начать там печатать. Так как ряд начинается с номера 0, это означает, что необходимо пройти 15 позиций (пронумерованных от 0 до 14) перед тем, как начать печатать. Таким же образом TAB( 30); означает, что нужно пройти 30 позиций (от 0 до 29) и начать печать в позиции 30.

---------------------------------------------

PRINT TAB( a); - это указание начать печать в позиции "а" данного ряда. Если позиция для печати уже больше чем "а", то печать произойдет в следующей имеющейся позиции.

---------------------------------------------

Переменные при табуляции

Используя цикловые переменные внутри команды TAB ( ), мы можем получить некоторые модели.

Измените строку 30 на

   30 PRINT TAB( go);"*"

Запустите и просмотрите программу. Внимательно просмотрите прогрмму и подумайте, почему звездочки появились по диагональной линии.

Измените строку 20

   20 FOR go := 16 TO 1 STEP -1

Запустите и просмотрите программу, обратите внимание как отрицательный STEP изменил направление звездочек.

7.3 Структурные ошибки

Уничтожте строку 40, напечатав 40 и нажав ВВОД, затем попытайтесь запустить программу.

Когда мы пишем программу, нам очень помогают сообщения об ошибках, такие как: Unclosed at END (не зкрыто в конце). Перед запуском программы комьютер проверил нет ли в ней явных ошибок. Одна из таких проверок или тестов смотрит есть ли для указания FOR... соответствующее NEXT....Компьютер просмотрел до конца программы и не нашел NEXT go. Следовательно - ошибка.

.сс

[an error occurred while processing this directive]