2.3. Простейшие конструкции языка basic. Программы на бейсике


Графические программы на Бейсике — Мегаобучалка

Отличительной чертой особенностью современных ЭВМ является возможность предоставлять людям информацию в наглядной графической форме. В языке Бейсик для таких ЭВМ включены операторы ввода на экран ЭВМ как символьной, так и графической информации.

Язык Бейсик включает средства вывода на экран таких элементов графической информации, как точки, отрезки прямых линий, дуги, окружности, рамки, а также операторы для вывода надписей и раскраски точек и фигур.

Рассмотрение графических средств Бейсика можно начать с программы вывода на экран рисунка первомайского праздника. Приведем описание алгоритма и соответствующую картинку:

АЛГ «ПЕРВОМАЙСКИЙ ПРАЗДНИК» НАЧ КРАСНЫЙ ФЛАГ НАДПИСЬ МИР, ТРУД МАЙ СИНИЙ ШАРИК КОН МИР, ТРУД, МАЙ
       
   
 
 

 

 

Детальный алгоритм: АЛГ «ПЕРВОМАЙСКИЙ ПРАЗДНИК» НАЧ ЛИНИЯ (80, 40) - (80, 160), КРАСНАЯ РАМКА (80, 50) - (180, 120), КРАСНАЯ РАСКРАСКА (130, 90), КРАСНАЯ НАДПИСЬ (10, 2) МИР, ТРУД, МАЙ ОКРУЖНОСТЬ (210, 60), 30, СИНЯЯ РАСКРАСКА (210, 60), СИНЯЯ ЛИНИЯ (210, 90) - (210, 120), СИНЯЯ КОН Программа на Бейсике: 10 ¢ первомайский праздник 20 С1=4: С2=1 ¢ графика 30 LINE (60, 40) - (60, 160), C1 40 LINE (60, 50) - (160, 120), C1, B 50 PAINT (130, 90), C1 60 LOCATE 10, 2 70 PRINT «мир, труд, май» 80 CIRCLE (210, 50), 30, C2 90 PAINT (210, 50), C2 100 LINE (210, 80) - (210, 120), C2 110 END

В 20-й строке записаны два присваивания: С1 = 4 и С2 = 1. Эти два присваивания фиксируют коды цветов: С1 - для красного, а С2 - для синего.

Ввод этой программы в ЭВМ лучше всего проводить по частям. В начале следует ввести и апробировать операторы 10, 20, 30, проверив начало программы, затем операторы 40 и 50, осуществляющие вывод рамки и раскраску флага. Далее необходимо подправить в программе координаты рамки, переместив флаг в центр экрана. После этого ввести и подкорректировать операторы 60 и 70, обеспечивающие вывод надписи. И, наконец, ввести операторы 80, 90 и 100, которые выводят и раскрашивают изображение шарика.

Вывод элементов изображения на экран ЭВМ производится в Бейсике следующими операторами:

COLOR C1, C2 · цвет фона = с2, букв = с1
PSET (X, Y), C LINE (X1,Y1) - (X2,Y2), C LINE (X1,Y1) - (X2, Y2), C, B CIRCLE (X, Y), R, C CIRCLE (X, Y), R, C, α1, α2 PAINT (X, Y), C CLS · точка (х, у), с, где х, у - координаты точки на экране, а с - ее цвет.   · линия (x1, y1) - (x2, y2), с Здесь (х1, у1) и (х2, у2) - координаты концов отрезка. · рамка ( х1, у1) - (х2, у2) - координаты концов диагонали рамки. Стороны рамки параллельны сторонам экрана. Символ В в этом варианте оператора LINE означает, что на экран будет вводиться рамка, а не линия. · окружность (х, у), r, c Здесь (х, у) - координаты центра окружности, а r - ее радиус. · дуга (x, y), r, c, α1, α2. Здесь a1, a2 - углы дуги окружности, задаваемые в радианах.   · раскраска (х, у), с. Здесь (х, у) - координаты точки, из которой начнется раскраска. Напомним, что раскрашиваться будет та фигура, контур которой имеет тот же самый цвет, что и указанный в операторе PAINT · очистка

В учебных ЭВМ возможен вывод на экран в графическом режиме нескольких градаций цветов. Номера этих цветов зависят от типа ЭВМ в диалектах языка Бейсик.

Вывод надписей в отечественных компьютерах проводится с помощью двух операторов: оператора указания места вывода - LOCATE Px, Py и оператора вывода сообщений PRINT, в котором указывается, что должно выводиться.

LOCATE Px, Py PRINT «фраза» n место надписи (Px, Py) n вывод «фраза»

 

В персональном компьютере для вывода графических изображений, прежде всего, требуется задать режим вывода на экран графической информации. Для этого используется оператор SCREEN 2 или SCREEN 12.

 

Вопросы, упражнения и задания для самопроверки

ВОПРОСЫ:

Каковы размеры экрана при выводе графической информации на ваших машинах?

Какие цвета есть на вашем компьютере и как они кодируются?

Как вывести на экран окружность, если такого оператора нет в языке программирования?

УПРАЖНЕНИЯ:

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

а) домика; б) автомобиля; в) трактора; г) книги

д) дворца; е) цветка; ж) рыбки; з) птички.

ЗАДАНИЯ:

Составьте план ввода и испытаний для своей программы.

Введите свою программу в ЭВМ в соответствии с установленным планом.

Рекомендуемые страницы:

Читайте также:

©2015 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.

Почему 3458 студентов выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы

megaobuchalka.ru

Qbasic:Простейшая программа: вывод текста

#Простейшая программа: вывод текста

Наберем в окне редактора простенькую программу и поясним, что делает каждый из написанных операторов:
'Простейшая программа на Бейсике - комментарий
CLS - очистка экрана
FOR i=1 TO 20 - заголовок цикла
   LOCATE i, i - установить курсор
   PRINT " РЕКЛАМА " - вывести на экран
NEXT i - конец цикла
LOCATE номер_строки, номер_позиции - устанавливает курсор в заданное место экрана. Используется только в текстовом режиме.Номер строки - число от 1 до 25. Номер позиции - число от 1 до 80.

Редактор в Quick Basic особенный - “думающий”. После того как набрана строка и нажата клавиша ввода, выполняется проверка правильности написанного. При наличии ошибки тут же выдается предупреждение. Чаще всего оно имеет вид “Expecting символ or символ”, т.е. одновременно сообщается, что, по мнению редактора, следует вставить в текст для исправления ошибки.

Если при наборе строки операторы писать маленькими, строчными буквами, то после нажатия на Enter все они (если в строке нет ошибок!) запишутся большими, прописными буквами. Этот прием помогает заметить ошибку в имени оператора даже при отсутствии предупреждения Quick Basic’а.

Для сохранения программы на диске выйдем в главное меню (нажмем и отпустим клавишу Alt), раскроем пункт File и выберем Save As... Многоточие обозначает, что при выборе такого пункта Quick Basic вступает в диалог с пользователем.

Не следует записывать свои программы в каталог Quick Basic’а. Предположим, что они хранятся в каталоге E:\MYBASIC. Если при запуске qb.exe активным был именно этот каталог, то все пункты меню, работающие с диском, будут использовать его по умолчанию.

Наберем теперь в окошке с именем File Name имя программы - PRG.BAS. (Расширение .BAS можно было и не набирать - Quick Basic добавляет его автоматически.) Но прежде, чем нажать Enter, давайте посмотрим, в каком виде текст программы будет записан на диск. Если в окошке Format точка в круглых скобках стоит возле слова Text, то на диске окажется обычный текст, с которым могут работать и другие программы (например, этот файл можно будет посмотреть и в NC). Если же точка стоит возле слова QuickBASIC, то записанный на диск текст сможет прочитать и понять только сам Quick Basic! Заметим, кстати, что некоторые операции в Quick Basic выполняются только с программой, записанной в текстовом формате.

Чтобы попасть (при необходимости) в окошко Format, нажмем несколько раз клавишу Tab. Переставим точку с помощью стрелки “вниз” и нажмем Enter. Все - программа записана на диск.

Для выполнения набранной программы снова выйдем в главное меню и раскроем пункт Run. Выберем в выпавшем окне пункт Start Shift+F5 и нажмем клавишу ввода. Сочетание Shift+F5, написанное возле слова Start - это обозначение так называемой “горячей клавиши”. Нажатие такой комбинации клавиш выполняет те же действия, что и соответствующий пункт меню, но “напрямую” - непосредственно из окна редактора программы, без захода в главное меню.

В результате выполнения программы PRG.BAS на экране появится “лесенка” из слова “РЕКЛАМА”:

Задание. Выведите слова “в столбик” (измените оператор LOCATE). Что произойдет, если попытаться вывести слова “в строку”? Объясните, почему.

Измените текст, выводимый оператором PRINT.

Назад

Автор: Гутман Г.Н. Мой любимый QuickBASIC, 2001г

includ.narod.ru

2.3. Простейшие конструкции языка basic

Числа. Для отделения целой части числа от дробной используется точка (см. табл. 2.1).

Таблица 2.1

Примеры записи чисел на basiCе

Число

Запись на BASICе

Тип

Кол-во занимаемой памяти

Диапазон

3,46

3.46

Фиксированная запятая

4 байта

от 10до 10

0,0058

58Е-4

Плавающая запятая

4 байта

от 10до 10

150000

15Е 4

Плавающая запятая

4 байта

от 10до 10

75

75 %

Целый

2 байта

от -32768 до 32767

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

Например, A, A2, C. В качестве букв используются буквы латинского алфавита. Для целочисленных переменных, значениями которых являются целые числа, к имени добавляется знак % или &, для вещественных переменных обычной точности !, для вещественных переменных двойной точности #, для символьных переменных $.

Например, A%, A2%, C%.

Стандартные функции. Стандартные функции (см. таблицу 2.2) имеют аргумент, заключенный в круглые скобки. В качестве аргумента можно употреблять любое арифметическое выражение.

Таблица 2.2

Стандартные функции

Название функции

Математическое определение

Запись на BASICе

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

Синус

Косинус

Тангенс

Арктангенс

Показательная функция

Натуральный логарифм

Десятичный логарифм

Знак сигнатуры

Абсолютная величина

Квадратный корень

Целая часть числа

Датчик случайных чисел

Число π

sin x

cos x

tg x

arctg x

e

ln x

lg x

|x|

[x]

π

SIN(X)

COS(X)

TAN(X)

ATN(X)

EXP(X)

LOG(X)

LOG(X)/LOG(10)

SGN(X)

ABS(X)

SQR(X)

INT(X)

RND(X)

4*ATN(1)

Замечание. Аргумент функции RND можно опустить. Аргумент тригонометрической функции задается в радианах. Для перевода значения, заданного в градусах, в радианы можно использовать формулу:

<значение в радианах> = <значение в градусах> * π/180.

Для арктангенса значение угла находится в интервале (-π/2; π/2).

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

arcsin(x)=arctg(x/),

arccos(x)=arctg()/x),

arcctg(x)=arctg(1/x).

2.4. Арифметические выражения

Для обозначения арифметических операций используются знаки:

“ + ” сложение, “ - “ вычитание, “ * ” умножение, “ / ” деление,

“ ^ ” возведение в степень, “ \ ” деление нацело, MOD остаток от деления.

Если в арифметическом выражении имеется несколько различных арифметических операций, то порядок их выполнения задается правилами приоритета:

1. возведение в степень.

2. умножение, деление.

3. сложение, вычитание.

Примеры записи арифметических выражений

sinx SIN(X^3)^2

X^(4/3)

(A^3+EXP(2*COS(X)))/(X^2-Y^3)^(1/3)

2.5. Структура программы на языке basic

2.5.1. Программы линейной структуры на языке basic

Линейная программа должна состоять из следующих операторов (см. рис. 2.1): ввода данных, присваивания, вывода (печать) результатов расчета. Линейный вычислительный процесс сводится к последовательным вычислениям арифметических выражений, причем последовательность вычислений полностью соответствует порядку записи математических зависимостей в постановке задачи.

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

Для записи комментариев используется оператор REM (REMARK). В этом операторе за словом REM могут быть записаны любые символы QuickBASICа. Включение операторов REM в программу никак не влияет на ее выполнение.

Оператор ввода служит для задания исходных данных при выполнении программы. Операторы вывода позволяют получить результаты выполнения программы.

Ввод осуществляется одним из двух способов:

- c использованием оператора INPUT;

- c использованием пары операторов DATA, READ.

Оператор INPUT. При использовании оператора INPUT данные вводятся с клавиатуры дисплея во время выполнения программы. Общий вид оператора

INPUT <список переменных>

Например. INPUT a, b, c1

Операторы DATA, READ. Оператор READ имеет вид

READ <список переменных>

Например. READ a, b, c1

Оператор DATA имеет вид

DATA <список констант>.

Например. DATA 1.6, -8, 1Е-3

Оператор DATA содержит данные, которые при выполнении операторов READ будут вводиться в переменные, перечисленные в списке ввода операторов READ.

Оператор RESTORE. Данные из области DATA можно считывать, повторно используя, оператор RESTORE.

Общий вид оператора

RESTORE <арифметическое выражение>.

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

Пример.

DATA 10.6, 0.1, 15, 1.2

READ A, B, C, D

RESTORE

READ E, F

. . . . . . .

Оператор PRINT. Используется для вывода на экран дисплея результатов вычислений. Общий вид оператора

PRINT <список>

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

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

Если в качестве разделителя используется “ ; “, то вывод осуществляется в так называемом плотном формате, т.е. каждое следующее данное выводится после предыдущего через пробел.

Оператор присваивания. Оператор присваивания служит для присваивания переменной значения арифметического выражения и имеет вид

LET V = <арифметическое выражение>

(LET можно опустить), где V - переменная, которой присваивается значение.

При выполнении оператора присваивания вычисляется выражение в правой части и присваивается переменной в левой части V.

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

Пример 1. Вычислить значение функции

,

где ,, m - номер варианта, n - номер группы.

Начало

Ввод m, n

Печать x, t, y

Конец

Рис. 2.1. Блок - схема линейного вычислительного процесса

Программа для примера 1 (см. рис. 2.1.):

REM LR-1-1, m=13, n=5

INPUT "M,N"; M,N

X=EXP(-(N/M)^(1/2))

T=LOG(M/SQR(N))+7.21

Y=(COS(X^2-SQR(T))+SIN(X-T^(1/3)))/(SIN(T-X^(1/4))^2)+1.731)

PRINT X, T, Y

END

После ввода текста программы в память ЭВМ для ее запуска нужно выбрать меню RUN и в нем команду START или Shift+F5. На экране появится текст M,N? - после чего нужно ввести значения M,N и нажать "Enter". После этого ЭВМ напечатает на экране значения X, T, Y.

studfiles.net

Радио-86РК/Радио 04-88/Программа обработки текстов на Бейсике — Emuverse

Данный материал защищён авторскими правами!

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

Автор: А. ПЕКИН

Источник: http://retro.h2.ru/RK86/Basic/TxtBas.php

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

Считается хорошим тоном строки программы на языке БЕЙСИК номеровать с шагом, кратным десяти. Однако редко кому удается «сходу» написать даже небольшую по объему программу, не нарушив этого неписаного закона — программа RENUM позволяет оператору сдвигать, раздвигать и упорядочивать (перенумеровывать с единым шагом) номера строк всего текста программы.

Перед ее использованием в ОЗУ микро-ЭВМ должны быть введены интерпретатор и программа на БЕЙСИКе. После запуска по адресу 6000Н RENUM выводит на экран сообщение МАРКЕР- ХХХХ и список директив

  1. (BASIC),
  2. (RENUM),
  3. (COMPACT),
  4. (REM — COMPACT),
  5. (NORMAL).

Правее надписи «MAPKEP» — выводится шестнадцатеричный адрес маркера конца программы [1]. Выбор одной из директив производится нажатием соответствующей цифровой клавиши. Рассмотрим каждую из пяти директив отдельно.

1 (BASIC) — обеспечивает запуск интерпретатора БЕЙСИКа. В этом режиме можно просмотреть текст программы, проверить результаты работы RENUMa.

2 (RENUM) — позволяет перенумеровать строки программы с одновременным изменением адресов переходов в операторах GOTO…, GOSUB…, THEN…, RUN… . После ввода директивы (нажатием на клавишу 2) на экран выводится запрос: НАЧ. НОМЕР ? В ответ оператор должен ввести желаемый номер первой строки программы и нажать клавишу «ВК». После вывода на экран нового запроса: ШАГ ? следует ввести шаг, с которым должны быть перенумерованы строки программы. После нажатия на клавишу «ВК» выводится сообщение: НЕ ГОТОВ! Во время присутствия его на экране RENUM производит перенумерацию строк программы. После завершения работы на экран вновь выводится список директив.

В процессе отладки программ на БЕЙСИКе может встретиться ситуация, когда есть ссылка на несуществующую строку. В этом случае RENUM, кроме сообщения «НЕ ГОТОВ!», выводит текст: НЕТ СТРОКИ ХХХХ В СТРОКЕ ХХХХ с соответствующими номерами несуществующей строки и строки, в которой впервые встретилась ссылка на нее. Обработка программы блокируется, а на экран выводится список директив.

3 (COMPACT), 4 (REM-COMPACT) — эти директивы позволяют сократить объем ОЗУ, занимаемый программой на БЕЙСИКе, и время ввода программ с магнитофона (благодаря их более плотной «упаковке» на магнитной ленте). Как известно, достаточно большую часть текста реальной программы составляют символы пробелов и примечания, делающие программу нагляднее, но не являющиеся необходимыми для ее работы. Директива COMPACT сокращает текст программы благодаря исключению пробелов между операторами. Директива REM-COMPACT исключает также все встретившиеся в программе примечания (оператор REM…), сохраняя, однако, номера строк программы, начинающиеся с этого оператора, так как существуют программы, в которых на эти строки осуществляются переходы.

После выбора одной из этих директив (нажатием соответствующей цифровой клавиши) RENUM приступает к обработке текста программы, выводя на экран сообщение «НЕ ГОТОВ!». По окончании работы на экране появляется список директив с новым адресом маркера конца программы.

5 (NORMAL). После обработки директивами COMPACT и REM-COMPACT программа на БЕЙСИКе сокращается в объеме, но становится неудобной для чтения оператором. Директива NORMAL возвращает тексту программы привычный вид, расставляя в необходимых местах «пробелы» (примечания, естественно, не восстанавливаются!).

RENUM занимает в ОЗУ область адресов с 6000Н по 64А9Н и может применяться в компьютерах с объемом ОЗУ не менее 32 К. Применение версии RENUMa в 16-килобайтных микроЭВМ оказалось неэффективным ввиду малого объема ОЗУ, остающегося для размещения программ на БЕЙСИКе.

Коды программы приведены в табл.1. Их можно ввести в компьютер, воспользовавшись директивой «М» МОНИТОРа. Правильность ввода можно проверить, подсчитав поблочно контрольные суммы блоков и сверив их с приведенными в табл. 2.

Таблица 2.

Блок Контрольная сумма
6000—60FF

6100—61FF6200—62FF6300—63FF6400—64A9

521A

3B02E77140E9D282

6000—64A9 19F8

Распределение ОЗУ при работе с программой показано в табл.3. При работе RENUM, кроме использования служебных ячеек 64ААН-64ВВН, создает список номеров строк, отводя под каждый номер 2 байта. Следовательно, объем ОЗУ, занимаемый этим списком, равен 2N, где N — число строк обрабатываемой программы.

Таблица 3.

Список номеров строк 64ВСН
Служебные ячейки RENUMa 64ВВН64ААН
RENUM 64А9Н6000Н
Текст программы на БЕЙСИКе 5FFFh2В01Н
Интерпретатор БЕЙСИКа 0000Н

В заключение несколько замечаний по работе с программой. Прежде всего запомните: ни при каких условиях не нажимайте на клавишу «СБРОС» во время присутствия на экране сообщения «НЕ ГОТОВ!», поскольку это приведет к полной неработоспособности исходной программы на БЕЙСИКе.

Время, затрачиваемое на перенумерацию строк программы на БЕЙСИКе, зависит от ее объема, количества в ней операторов перехода, а также от разницы в разрядности старых и новых номеров. Чтобы в операторе GOTO заменить номер 10 на 1000, необходимо раздвинуть всю программу на два байта для «впечатывания» недостающих цифр. Так, например, реальную программу в 350 строк с исходными номерами 1-350 RENUM перенумеровывает с шагом 10 (то есть в номера 10-3500) за 40…50 секунд. Следует отметить, что удаление примечаний процедура довольно медленная, поэтому время, необходимое для их исключения из текста программы, может оказаться значительным — несколько минут (при общем объеме примечаний около 2 К).

В ячейках 63FDH, 63FEH записан адрес начала текста программы на БЕЙСИКе (1В01Н для интерпретатора PK86). При использовании программы совместно с «МИКРО-80» адрес начала текста — 2201 Н (в ячейку 63FEH записать байт 22Н).

Возможно использование RENUMa совместно с интерпретаторами, отличными от опубликованных, но использующих ту же структуру «односвязного списка» . В этом случае необходимо знать, в каких ячейках хранится маркера конца программы (в нашем случае — 0245Н, 0246Н). Адрес первой из этих ячеек должен быть занесен в таблицу кодов RENUMa по адресам (первым — младший байт): 6007Н. 6008Н; 6129Н, 612АН; 6140Н, 6141Н; 6144Н, 6145Н; 6161 Н, 6162Н; 6165Н, 6166Н. Адрес перехода на запуск интерпретатора БЕЙСИКа (директива 1) находится в ячейках 6021Н, 6022Н, в которые следует занести адрес «горячего старта» используемой версии интерпретатора.

При записи RENUMa в ПЗУ возможно сокращение его объема до одного Килобайта (6000Н-63FFH). В этом случае по адресу 63FFH следует записать байт С9Н. Однако в этом случае RENUM не сможет перенумеровывать программы, в которых встречаются ссылки на несуществующие строки. Текст программы будет испорчен. Перенумерация корректных программ, а также работа остальных директив остаются без изменений,

А. ПЕКИН, г. Москва

emuverse.ru