30 часов Бейсика для начинающих 1993 г.

Урок 2 - оператор PRINT.


Урок 2

2. 1 Вступление.

Программы, которые мы рассмотрели в первом уроке, были до-
вольно прямолинейны. Они начинали работу со строки с минималь-
ным номером и шли вперед, исполняя
строку за строкой. Компьюте-
ры же очень хорошо использовать не просто для расчетов, а для
часто повторяющихся расчетов. Впе их очень хорошо использовать
для
принятия решений. И в том и другом случае необходимо изме-
нение порядка, в котором исполняются строки программы. В этом'
уроке Вы познакомитесь с некоторыми из операторов, позволяющих
это делать. Но сначала рассмотрим несколько шире оператор
print.

2. 2 оператор PRINT. . . .

Попробуйте напечатать:

10 LET Р = 129. 825

20 PRINT "Процент", Р <ENTER>

Вы увидите следующую картину:

Процент 129.825

Почему напечаталось слово "Процент", Вам понятно, ведь
оно стояло в кавычках. В качестве числа "
р" было распечатано
его значение (129.825). ^Таким образом, одним операторон PRINT
можно распечатать несколько разных данных. Ны отделили их друг
от друга запятой. Благодаря
этону первая печать состоялась в
левой половине экрана, а вторая - в правой.

Оператор PRINT, использованный нами здесь, имеет следующую
структуру:

Давайте возьмем программу для определения процентов (Про-
грамма 1.2) и попробуем ее доработать с учетом того, что мы
сейчас узнали.

Доработанная программа.

Исходная программа

10 REH ««Расчет процента»»

20 IHPUT f

30 PRIHT f

40 IHPUT s

50 PRIHT s

60 LET (s/f)«100

70 PRINT P

80 STOP
10 REH ««Расчет процента««
15 PRINT "Введите первое число
20 IHPUT f
30 PRINT f

35 PRINT "Введите второе число
40 IHPUT s
50 PRINT s

60 LET p = (s/f>«100
70 PRIHT "Процент", P
80 STOP

Рабочий прогон:
RUN

Введите первое число
80

Рабочий прогон:
RUN

L 80
L 37
46. 25

Введите второе число
37

46. 25

Процент

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

Зоны печати.

Представьте себе, что экран как бы разделен по вертикали
пополам. Левая половина - это первая зона печати. Правая поло-
вина - вторая. В зоне-1 мы печатаем всегда, когда встречается
PRINT и начинается печать. Чтобы перейти из зоны-1 в зону-2 и
используется "запятая оператора PRINT".

Проверьте:

PRINT "Zone 1". "Zone 2

Кроме "запятой" бывают и другие разделители в операторе
PRINT, например "; " - "точка с запятой". Она имеет иное дейст-
вие, а точнее говоря, она не имеет никакого действия. То, что
разделяется "точкой с запятой", печатается подряд одно за дру-
гин. Попробуйте:

PRINT "Процент"; p

Вы получите:

Пропент'1Ь. 25

I ИСК 2. 1 Примем а = 48. b 8, с 6. Что будет получено на
' экране после печати следующих строк?

(a) PRINT "Плошадь";а

(b) print "Длина"; b. "Ширина"; с

с

(с) print "Длина", "Ширина
print b. с

Запишите строки PRINT с помошыо которых могут быть получе-
ны следующие результаты:

Зона-1
(d > Длина

(e) Длина
Ширина
Плошадь

(f) Длина

Зона-2

8
8
б
48

Ширина

2. 3 Повтор вычислений с помощью оператора GO ТО.

Предположим, что вы хотите использовать нашу программу
расчета процента от числа для определения успеваемости учени-
ков. Предположим, что всего сдавало экзамены 80 человек. Из
них 42 получили пятерки. 19 - четверки и т. д. Тогда запуск
программы будет таким:

RUN

Введите первое число
80

Введите второе число
42

Процент 52. 5

9 STOP statement, 60:1

RUN

Введите первое число
80

Введите второе число
19

Процент 23. 75

9 STOP statement, 60: l

Как видите. Вам приходится раз за разом запускать одну и

ту же программу и вводить в нее данные. Было бы гораздо проше,

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

Это можно сделать с помощью оператора перехода GO ТО. Он
направит программу к той строке, номер которой указан. Вот так
мы можем переделать нашу
прорэмму:

Программа 2. 1

10 REM «« Процент полученных оценок»•
20 PRINT "Введите оошее число оценок"
30 INPUT t
40 PRINT t

50 REM ««Начало ввода««

60 PRINT "введите количество опенок"

то ihpot m

80 priht m

90 let P-(m/t)»100
loo priht "процент",p
110 go to 50
120 stop

GO TO - это одно ключевое слово, расположенное на клавише
"G" и не обращайте внимания на то, что записывается оно
двумя
словами.

Обратите внимание на строки 20 и 30. Благодаря им нам надо
вводить число учеников, державших экзамен только один раз. Рас-
четы выполняются в строках
50.. . 100. а встретив строку юо.
компьютер вновь возвращается к строке
50.

Прогон такой программы выглядит так:
RUH

Введите обшее число оценок
во

Введите количество опенок
42

Процент 52. 5

Введите количество оценок
19

Процент 23. 75

Введите количество опенок
16

Процент 20. 00

Так программа и будет продолжать работать и ее надо как-
то остановить, ведь сама она не попадет на
строку 120 STOP, раз
строка НО всегда передает рботу в
строку 50. Когда в очередной
раз появится запрос ввода числа учеников, получивших какую-то
опенку, вы можете нажать SYHBOL SHIFT и клавишу "А". Программа
остановится с сообщением:

Н STOP in IHPUT, 70:1

ВСК-2. 2 Нижеприведенная программа вычисляет квадраты чисел,
т. е. произведение числа самого на себя. Добавьте в
эту программу оператор GO то так. чтобы можно было использовать
эту программу многократно, вводя все новые и новые числа.

Программа 2. 2

5 REM ««Расчет квадратов»«
10 IHPUT п
20 LET
S=n*n
30 PRIHT 3
40 STOP

2. 4 Стиль программирования.

Применение GO то иногда бывает полезным. Тем не менее,
есть все-таки неувязки, например, ненормальное завершение рабо-
ты, когда вместо ок мы имеем дело с
курсором "l" на экране.
Программа как бы зациклена между строками 50 и 110 и из этого
круга нет выхода, кроме как прерывать работу внешним вмешатель-
ством.

Оставить Финиш программы подвешенным в воздухе - это оче-
видно нехороший стиль программирования, но это еше пол-беды.
Ны должны Вас предупредить о других более неприятных вешах.
связанных с GO ТО. Поскольку GO ТО позволяет Вам перейти к лю-
бой строке по желанию, начинающие программисты этим нередко
пользуются, из-за этого нарушается логическая структура про-
граммы.
Просто программист, оказываясь перед какой-то проблемой
в реализации алгоритма вместо того, чтобы решать эту проблему в
корне, делает GO ТО и пристраивает к программе еше один фраг-
мент. и так раз за разом, пока програнма не станет совершенно
непонятной даже для ее автора.

Ны будем использовать GO ТО экономно и только в тех слу-
чаях. где без него нарушилась бы ясность программы.

И последнее, почти всегда переход GO ТО мы будем делать к
строке с оператором
rem. Это позволит здесь же сделать и пояс-
нение, что это за переход и зачем он нужен, в этом есть и еше
один большой смысл. При внесении изменений в программу, когда
меняется содержимое
строк и номера строк, переход GO ТО к reh-
строке вешь более безопасная, т. к. меньше шансов, что изменив
что-то Вы нарушите работу GO ТО.

2.5 Оператор if .. . then

Ны столкнулись с проблемой того, как сообщить компьютеру,
что все оценки учеников на экзамене ны обработали и список
оценок исчерпан.

один из методов состит в тон, чтобы ввести какое-то специ-
альное число, например, 9999. Конечно, маловероятно, что Вам
придется обрабатывать экзаменационные опенки такого количества
учеников, это просто сигнал компьютеру закончить свою работу.
Такое число, используемое для того, чтобы вынудить программу к
каким-то действиям (в нашем случае к прекращению работы) назы-
вают "заглушкой". А сам метод называется методом "заглушки".

Программа будет иметь следующую логическую структуру:

1. Начало.

2. Ввод общего количества учеников

3. Ввод количества учеников, получивших некую опенку.

4. Если это число равно 9999. то перейти на пункт 8, иначе

- на п. 5.

5. Расчет процентов.

6. Печать результата.

7. Переход на п. 3

8. Конец работы.

Для того, чтобы сделать то. что мы хотим в строке 4. су-
ществует оператор БЕИСИКа:

IF ... ТНЕН GO то сномер строки>

условие, при исполнении которого программа
'- перейдет к заданной строке.

это может быть, например, такое условие:
110 IF m=9999 ТНЕН GO ТО 170
и программа примет следующий вид:

Программа 2. 3

ю rem »«проценты»«

го REM ««Всего оценок»«

30 PRINT "Введите общее число оценок"

40 IHPUT t

50 PRIHT t

60 rem ««начало повтора»»
70 PRIHT "Введите количество оценок"
80 IHPUT ш
90 PRIHT m

100 REH ««9999 - Финальная заглушка»»

110 IF rn-9999 THEN GO TO 170

120 reh ««Расчет процента»«

130 LET P-(m/t)«100

140 PRINT "Процент". P

150 REH ««Возврат для нового ввода»«

160 GO ТО 60

170 rem »»Все. конец!»»

180 STOP

Как только Вам захочется прервать работу этой программы.

Вы введете 9999 и она остановится.

ВСК P.. J Мы закончили ВСК-2. 2 с программой:
— —' 5 rem ««Расчет квадратов»»

10 INPUT п
го LET s=n«n
30 PR
I NT S
'10 GO TO 5

■>o top

Но эта программа сама не остановится никогда. Модифицируй-
те ее так. чтобы она останавливалась
при вводе некоторой "за-
глушки",

2. 6 Неравенства.

Ны использовали Факт равенства п>=9999 для того, чтобы сде-
лать переход, но в "Спектруне" кроме равенства есть и другие
виды соотношений:

= равенство syhbol shift l

< меньше, чем syhbol shift r

> больше, чем syhbol shift т

<= меньше или равно symbol shift q

>- больше или равно symbol shift е

о неравно symbol shift W
БЕЙСИК позволяет вставлять в выражения логические соотно-
шения:

Соотношение Пример

> а > Ь

< х < у

Истина и ложь.

Рассмотрим соотношение л<а Если л=2, а в=5. то а<в -
истина, потону что г <5. а то же самое соотношение, когда а=2, а
В-1 является ложным.

При написании программ очень часто оказывается важным
знать, являетеяы ли соотношение ">* или '<" истинным или
ложным. Это называется логическим состоянием соотношения.

соотношение Логическое состояние

3>2 Истина

7<7 Ложь.

принер 2. 1

Проверьте, являются ли нижеследующие соотношения
истинными или ложными
при заданных значениях.
Значения Соотношения

Значения

Соотношения

А

В

Выражения

Результат

Логическое состояние

2

5

А

>

В

2

>

5

F

2

-5

А

>

В

2

>

-5

т

-2

-5

А

>

В

-2

>

-5

т

-2

-1

А

>

В

-2

>

-1

F

-5

2

А

<

В

-5

<

2

т

5

-2

А

<

В

5

<

-2

F

-3

3

А

=

В

-3

=

3

F

ВСК-2. 4

Заполните следующую таблицу:

Значения

соотношения

А

В

Выражения

Результат

Логическое состояние

3

7

А > В

5

3

А > В

-3

5

А > В

8

5

А < В

3

9

А < В

8

-2

А < В

Куда будет сделан переход в следующей фрагменте
к строке 40 или к строке 100?
ю let а = -з

20 LET Ь = 2

30 IF а+ь > О THEN GO ТО 100
40.........................

ПРИНЕР 2. 2

-3 + 2 > О

- 1 > О - это соотношение является ложный.
тому переход к строке 100 не произойдет, а раз
то следующей будет выполняться строка 40.

Решение

Поэ-
так,

определите, куда произойдет переход в следующих фраг-
ментах программ после исполнения строки 30.
(а) 10 LET а = 7
20 LET Ь = -8
30 IF а-ь<0 THEN GO ТО 100

вск-2. 5

(Ь) 10 LET X = 3
20 LET T s -3

30 IF X/Y=-i THEH GO TO 100
40

(C) 10 LET p = -1
20 LET q = -3

30 IF Х/У=-1 THEH GO TO 100
40

THEH GO TO 100

<d> 10 LET Ш = 3
15 LET П = -4
20 LET P = -2
30 IF m
-n<n-P
40

(e) 10 LET Г : 1
20 LET S = -2

30 IF r+S>-l THEH GO TO 100
40

2. 7 Блок-схемы.

как мы уже говорили, для программиста является важнейшей
задачей отыскание
пути решения конкретной проблемы, сейчас мы
должны познакомить Вас с одним из туманнейших слов компьютерно-
го языка - "алгоритмом".
Алгоритм обозначает стратегию решения
поставленной задачи. Алгоритм - это последовательность операций
или шагов, необходимых для решения проблемы, как видите, в этом
определении компьютер даже и не
упомянут. Программа это и есть
алгоритм, написанный для компьютера.

Для изложения алгоритма существуют три пути:

- описание алгоритма (словесные);

- программа на БЕИСИКе;

- блок-схема.

вск-2. б.

Блок-схемы удобны тем. что позволяют графически изобразить
предполагаемый алгоритм. В блок-схемах различные
Функции изо-
бражают с помошью геометрических
Фигур. Нашу самую первую про-
грамму (Программа 1. 1) из Урока-1 мы тоже можем представить в
виде алгоритма (рис. 9).

Нарисуйте блок-схему для программы исчисления про-
центов (Программа 1.2)

Обычно блок-схемы никак не связа-
ны с языком программирования. Вы-
разив свою мысль в виде блок-схе-
мы. потом программист может реа-
лизовать этот алгоритм как на
БЕИСИКе, так и на любом
другом
языке программирования.

начало

Ввод первого

числа

Ввод второго
числа

Сложение первого
и
второго чисел

Печать результата

Рис. 9.

Блок ветвления по условию.

Вы видите, как ветвление происходит в беисике с помошью
оператора IF ...
then .... логика такова, что если условие
выполняется, то следует переход к строке X. Если условие не
выполняется, то исполняется следующая строка.

Идея перехода к строке "X" или к следующей строке иллюс-
трируется на блок-схеме с помошью
двух выходов из одного блока.
В один из выходов Вы попадаете, если условие справедливо, в
другой - если ложно:.

Конец

Но "условие" мы ножен представить себе и как вопрос, на
который существуют только два ответа - да/нет.

Стиль, в которой Вы разрабатываете блок-схемы - Ваше лич-
ное дело,
нужны онм Ван или нет - тоже дело Ваше, важно только,
чтобы разработанные Вани блок-схены были легко понимаемы Вами
по прошествии определенного времени. Это главный пробный камень
эффективности создания блок-схен.

В качестве принера ны приводил еше одну блок-схему. Она
относится к той програнне анализа успеваености учащихся, кото-
рую мы разрабатывали выше (
рис. 12).

Нарисуйте блок-схему для той шливздиии. тосочхнгх».
написали в ответ на ВСК-3.

2. 8 Счетчики.

вск-2. 7.

Ны не раз говорили, что компьютеры очень эффективны для
исполнения часто повторяющихся действий, тем не менее, жела-
тельно этими действиями уметь управлять, а не только запускать
их и останавливать, тогда оказывается важным, чтобы компьютер
сан бы подсчитывал количество повторов, которое он уже сделал.
Для этого надо ввести специальный спетчик. До первого прохода
его надо занулить, а потом
при каждом проходе наращивать на
единицу до тех пор, пока не достигнем наперед заданного числа,
этот процесс можно выразить в следующей блок-схеме (рис. 13).

- такой блок назы-
вают процедурным
блоком. Он обозна-
чает сложный пакет
оператров. т. е.
целый Фрагмент
программы Этот
блок может быть
представлен от-
дельной саностя-
тельной блок-схе-
мой.

Имейте в виду, что работа со счетчиком должна включать в
себя
три важнейших момента:

- присвоение счетчику его начального значения;

- увеличение его значения на единицу после каждого проходам

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

Завершите оператор IF . . . THEH в нижеследующей про-
грамме так. чтобы программа вводила 5 чисел.

ю let с = о

15 reh ««Ввод очередного числа»«
20 ihput п

30 if c =---- theh go то 55

40 LET С = С + 1
50 GO ТО 15
55 БЕН ««Все сделано»»
60 STOP

В прошлом уроке Ван было дано задание соста-
вить программу для расчета стоимости остекле-
ния одного окна. Если Вам надо будет рассчитать стоимость осте-
кления для нескольких разных окон, то Ван придется запускать ее
несколько раз. в этом упражнении от Вас требуется так изменить
ту программу, чтобы она сразу могла обсчитать несколько окон.
Имейте в виду, что блок повторяющихся вычислений должен вклю-
чать в себя следующие операции:

УПРАЖНЕНИЕ 2. 1.

Ввод ширины и высоты окна.

Расчет стоимости установки этого окна.

Вывод результата на экран.

Ваше задание:

a) нарисовать блок-схему алгоритма для шести окон.

b) по алгоритму записать БЕЙСИК-программу.

УПРАЖНЕНИЕ 2. 2. I В прошлом уроке мы составили програнну для

---' для расчета процентов по депозитному вкладу.

Расширим эту задачу. Блок повторов должен включать в себя:

расчет годового дохода.
Печать года и дохода.

Расчет суммарного вклада на следующий год.

Ваше задание:

а) нарисовать блок-схему алгоритма для шести лет.
Ы по алгоритму записать БЕЙСИК-програнну.

2. 9 Сравнения.

Мы видели, как на БЕИСИКе сравниваются два числа. Нам
очень часто
приходится определять, какое из двух чисел больше,
а какое - меньше. Это основополагающий процесс для такой часто
встречающейся задачи, как сортировка данных. Мы в этом курсе
несколько раз буден останавливаться на задаче
сортировки, поэ-

ВСК-2. 8.

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

пример 2. 3

тону начнем с простейшей.

ритм буден разрабатывать в описательном виде.

1. начало.

2. Введем первое число.

3. Введен второе число.

4. сравним эти два числа. Если первое больше, то
перейдем на п. Т. иначе , - на п. 5.

5. Выводим на печать второе число.

6. Переходим на 8.

7. Выводим на печать первое число.

8. Конец работы.

Это не самое элегантное решение из возможных, но оно
хорошо демонстрирует базовый подход. Впоследствии мы найдем
более элегантные решения.

Задачи для самостоятельного решения.

1. Подготовьте блок-схему и напишите БЕИСИК-программу,
которая сможет принимать два числа и выдаст меньшее из двух.
Доработайте эту прграмму так. чтобы она могла обрабатывать:

a) пять пар чисел;

b) любое количество пар чисел.

ОБЗОР УРОКА

Закончив этот урок, вы должны уметь:

- объединять в операторе PRINT текстовый и цифровой вывод;

знать, для чего используется разделитель ", " в операторе
PRINT;

уметь использовать GO то для повтора вычислений по про-
грамме;

- знать, как использовать "заглушку" для выхода из программы;

- знать, как использовать оператор IF . . . THEN GO TO;

- уметь определять логическое состояние утверждений, включаю-
щих в себя ">", "<", " = ", и т. п;

- конструировать блок-схемы;

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

Решение

[ВСК-2. 1 (а) Плошадь48

'I (Ъ) Длинав Ширинаб

(с) длина ширина
8 б
<d) priht "Длина", b

(e) PRIHT "Длина", b
PRIHT "Ширина", с
PRIHT "Плошадь'.а

(f) priht "Длина". "Ширина"

ВСК-2. г Все, что нужно сделать - это только добавить строку:

* 35 GO ТО 5

вск-г. з

5 REH «««Расчет квадратов»
ю IHPUT п

15 IF П=-9999 THEH GO ТО 45
20 LET
s = П»11
30 PRINT
s
40 GO TO 5

45 REH ««Все сделано»«
50 STOP

BCK-2. 4.

Значения

Соотношения

А

В

Выражения

Результат

Логическое состояние

3

7

А > В

3 > 7

F (ложь)

5

3

А > В

5 > 3

Т (истина)

-3

5

А > В

-3 > 5

F (ложь)

8

5

А < В

8 < 5

F (ложь)

3

9

А < В

3 < 9

Т (истина)

8

А < В

8 < -г

F (ложь)

(a) 40

(B) 100

(C) 40 (d) 40

<e! 40

BBCK-2. 5.

Ваш компьютер может помочь Вам в поисках ответа на эточ
вопрос. Для этого Вы ножете ввести оператор, который распечата-
ет номер
строки перехода:

40 PRINT "40"
100 PRINT "100"

Например:

ответы на вопросы для саноконтроля

10 LET a = 7
20 LET b = -8
30 IF а-Ъ<0 THEH GO TO 100
40 PRIHT "40-
50 GO TO 999
100 PRIHT "100-
999 STOP
Результат прогона:
40

9 stop statement. 999:1

bck-2. б. i см. рис. 14.

СМ. РИС. 15.

IF C = 4 THEN GO TO 55

полный текст программы:
10 LETT C = 0

15 REH ««ввод очередного числа»*
20 IHPUT П

30 IF c = 4 THEN GO TO 55
40 LET
c=c+1
50 GO TO 15

55 REH ««Конец работы»«
60 STOP

а) Блок-схена приведена на рис. 16.

«ВСК-2. 8.

УПРАЖНЕНИЕ-2. 1

Ы текст прораммы:

10 reh »«Стоимость остекления»»
20 let c1

25 reh »»Ввод данных»»
30 print "Введите высоту, м"
40 input h
50 print h

60 priht "Введите ширину, m"

70 INPUT W
80 PRINT W

90 LET 14»(h+W)+40»h"W+50

100 PRINT "Стоимость ";c;" окон ";K

110 LET c=c+1

120 IF c< = 6 THEN GO TO 25

130 STOP

УПРАХНЕНИЕ-г. г| a> Блок-схена приведена на рис.

Ь) Програнма:

10 reh ««Сложный банковский процент»»
20 print "Таблица дохода"
30 print

40 print "Введите размер вклада *"
50 input d

60 PRIHT d

70 priht "Введите годовой процент";
80 ihput p
90 priht p; "x"
100 priht

110 REH ««Расчет и печать таблицы»«
120 LET С=1

125 RH ««Начало расчетного цикла»»
130 LET
(p«d)/100

140 PRIHT "Год ";с;" — Доход —*";у
150 LET d=d+Y
160 LET C=C*1

170 IF С<=6 THEN GO TO 125
180 STOP




  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Вступление - Содержание номера.
WANTED - Розыск программ...
Графика - картинкa АNSI графики.
Премьера - Best view 1.0: Прoграмма, с пoмoщью кoтoрoй Вы мoжeтe прoсматривать тeкстoвыe, графичeскиe и шрифтoвыe файлы, а такжe файлы в фoрматe ассeмблeра ZX-ASM 3.0.
Report - отчет NoViS с Ижевского фестиваля компьютерного искусства ASCII 2002.

В этот день...   23 ноября