- •Введение
- •1. Общие сведения о микроэвм. Выбор языка программирования
- •1.1. Общие сведения о микроЭвм.
- •1.2. К выбору языка программирования
- •2. Системы счисления микроэвм. Двоичная арифметика. Разрядные сетки. Прямой и дополнительный коды
- •2.1. Системы счисления
- •2.2. Двоичная арифметика
- •2.3. Разрядные сетки микроЭвм
- •2.4. Прямой и обратный коды
- •3. Загрузка языка basic – интерпретатора. Основные понятия языка. Получение листинга простейшей программы
- •3.1. Загрузка языка basic – интерпретатора
- •3.2. Основные понятия языка basic
- •3.2.1. Алфавит языка
- •3.2.2. Условные обозначения
- •3.2.3. Константы
- •3.2.4. Переменные
- •3.2.5. Стандартные функции
- •3.2.6. Арифметические выражения
- •3.2.7. Строки и операторы
- •3.3. Оператор remark
- •3.4. Оператор присваивания
- •3.5. Операторы окончания программы
- •3.6. Команда выполнения программы
- •3.7. Отладка и редактирование программы
- •3.8. Основные команды языка gw-basic
- •4. Программирование линейных вычислительных процессов
- •4.1. Линейный вычислительный процесс
- •4.2. Оператор печати для вывода информации на экран
- •4.3. Вывод информации на печатающее устройство
- •4.4. Операторы задания начальных значений и ввода данных
- •4.5. Оператор восстановления блока данных
- •3Адание 2.
- •5. Программирование разветвляющихся вычислительных процессов
- •5.1. Разветвляющийся процесс
- •5.2. Выражения отношений
- •5.3. Логические функции
- •5.4. Приоритет выполнения всех операций
- •5.5. Операторы безусловного перехода
- •5.6. Оператор условного перехода
- •5.7. Оператор on
- •5.8. Решение нелинейных уравнений
- •5.8.1. Метод простой итерации
- •5.8.2.Метод Ньютона
- •5.8.3.Метод деления пополам
- •6. Диалоговый режим работы. Программирование циклических процессов
- •6.1. Диалоговый режим
- •6.2. Оператор input
- •6.3.Циклические вычислительные процессы
- •6.4.Итерационные циклы
- •6.5. Циклы с параметром
- •6.6. Операторы for и next
- •6.7. Вложенные циклы
- •6.8. Операторы while – wend
- •6.9. Операторы do – loop
- •7. Обработка массивов
- •7.1.Массивы
- •7.2. Оператор dim
- •7.3. Обработка массивов
- •7.4. Ввод массивов
- •7.5. Вывод массивов
- •7.6. Использование массивов в вычислениях
- •7.7. Функция tab
- •8. Использование массивов в вычислениях
- •9. Функции и подпрограммы пользователя
- •9.1. Функции пользователя
- •9.2. Подпрограммы пользователя
- •10. Графические средства языка basic
- •10.1. Передний план, фон и окантовка
- •10.2. Режимы работы экрана
- •10.3. Координаты точек на экране
- •10.4. Оператор color в текстовом режиме
- •10.5. Оператор color в графическом режиме
- •10.6. Оператор pset
- •10.7. Оператор line
- •10.7.1 Построение ломаных линий
- •10.10. Оператор circle
- •10.10.1. Построение дуг окружностей
- •10.10.2. Построение радиусов
- •10.10.3. Построение эллипсов
- •10.11. Оператор paint
- •10.12. Оператор draw
- •10.12.1. Команды оператора draw
- •10.13. Построение графиков
- •11. Построение динамических изображений
- •Приложение 1
- •2.3. Циклический процесс.
- •Приложение 2
11. Построение динамических изображений
Для того, чтобы создать впечатление движущихся по экрану объекта, следует каждый раз сначала стирать изображение с экрана, а затем снова выводить его на экран в новом месте. При этом местоположение объекта при каждом последующем выводе должно очень незначительно отличаться от его местоположения при предыдущем выводе. В противном случае вместо плавного перемещения изображение будет «дергающимся». Для решения этой проблемы в языке BASIC включены операторы GET и PUT
11.1. Операторы GET и PUT
Оператор GET позволяет запоминать цвета всех точек заданной прямоугольной области экрана монитора и хранит их номера в виде числового массива. Оператор PUT повторно воспроизводит все эти цвета на экране.
11.2. Определение массива для запоминания картинки
Массив для запоминания картинки резервируется с помощью известного оператора DIM. Массив резервируется как одномерный, которому присваивается имя, характерное для картинки, например, SET. Тогда синтаксическая структура DIM:
DIM SET(N),
где N – количество пикселей (точек);
11.3 Оператор GET
Синтаксическая структура оператора GET:
GET (a,b)-(a1,b1), SET,
где GET – ключевое слово “запомнить”, а (a,b) и (a1,b1) – координаты противоположных вершин прямоугольной области, которой ограничено изображение. В операторе указывается только имя массива без скобок и индексов.
11.4 Оператор PUT
Этот оператор используется для воспроизведения изображения. Его синтаксическая структура:
PUT (a2,b2), SET,
где PUT – ключевое слово “воспроизвести”, (a2,b2) – это координаты верхнего левого угла воспроизводимого в новом месте прямоугольника.
Если в операторе PUT указывать координаты (a,b) вершины предыдущего изображения, то этот оператор стирает изображение на экране.
11.5 Организация движения объекта
Для синтеза на экране движения объекта необходимо выполнить следующие действия:
-
воспроизвести изображение объекта на экране с помощью оператора PUT;
-
определить координаты нового местоположения объекта на экране;
-
с помощью оператора PUT повторно воспроизвести изображение на экране;
-
стереть с помощью оператора PUT текущее изображение объекта на экране;
-
повторить все операции, начиная со второй (это делается в цикле FOR-NEXT);
Примечание: Пункты 3 и 4 можно менять местами.
Приложение 1
Характерные примеры схем алгоритмов и программ на языке BASIC.
1.Условные обозначения в схемах алгоритмов
Конфигурация и размер блоков, а также порядок построения схем определяет
МКС 01.080.40 ГОСТ 19701-90 (ИСО 5807-85). На рис.1 приведены наиболее употребляемые блоки.
Рисунок 1. Условные обозначения схем алгоритмов
-
Процесс – вычислительное действие или последовательность вычислительных действий;
-
Решение – проверка условий или разветвление процесса (трёхнаправленный и двунаправленный переключатель);
-
Модификация – начало цикла;
-
Ввод и вывод – операция ввода–вывода;
-
Предопределённый процесс – подпрограмма (ПП);
-
Начало и конец программы – пуск и остановка;
-
Комментарий – пояснения, содержание подпрограмм, формулы;
-
Соединитель – разрыв линий потока на одной и той же странице, указывается номер блока;
-
Межстраничный соединитель – разрыв линий потока на различных листах (страницах).
Примеры программ и схем алгоритмов.
2.1. Линейный вычислительный процесс.
Задача 1. Вычислить функцию:
, где ;
При а = 0,93; с использованием операторов присваивания.
Решение:
2.1.1. Составим схему алгоритма – см. Рис.2, п.1
2.1.2. Присвоим переменные имена:
a |
b |
x |
y |
A |
B |
X |
Y |
2.1.3. Представим распечатку листинга программы в соответствие с приведенными к лабораторным работам требованиями в виде:
нс 1 REM Иванов В.П. ,гр.107… ,вариант 1–3
Здесь использованы для выделения комментария.
2.1.4. Программа с использованием оператора присваивания.
Распечатку исходных данных и результатов выберем в виде:
Исходные данные:
А=…
В=…
Результаты:
печать в разных строках, сдвинутая вправо на 5 интервалов
2.1.5. Программа:
10 REM Иванов В.П., гр.107… ,вариант 1–3
20 PRINT
30 PRINT
40 A=.93
50 B=1.25E-2
60 X=EXP(A)*LOG(ABS(B))
70 Y=A^2*X*SIN(A)/(SQR(ABS(A))+X^2)
80 PRINT ”Исходные данные”
90 PRINT “A=”; A, “B=”; B
100 PRINT
110 PRINT “Результаты:”
120 PRINT “”; X
130 PRINT “”; Y
140 STOP
150 END
Рисунок 2. Примеры схем алгоритмов
Операторы в строках 40–70 являются операторами присваивания. Строки 80 –130 осуществляют печать на экран монитора.
2.1.6. Для выполнения программы подайте команду:
RUN
В результате на экран монитора и принтер информация выводится в виде п.2.1.4.
Задача 2. Решить задачу 1 с использованием операторов задания начальных значений и ввода.
Отличие только в двух операторах в программе (см. п. 2.1.5.):
40 DATA .93, 1.25E-2
50 READ A, B
60. …
Примечание: В дальнейшем выбираем рассмотренные здесь виды распечаток и ограничимся рассмотрением алгоритма и программы.
2.2. Разветвляющийся вычислительный процесс.
Задача3. Вычислить значение функции:
Исходные данные: а=1.45, x=0.57
2.2.1. Составим схему алгоритма - см. рис.2 (2).
2.2.2. Присвоим переменным имена:
a |
x |
y |
A |
X |
Y |
2.2.3. - 2.2.4. – аналогичны п.п.2.1.3. – 2.1.4.
2.2.5. Программа:
10 REM Иванов В.П., гр.107… ,вариант 1–3
20 PRINT
30 PRINT
40 A=1.45
50 X=.57
60 IF A<X THEN y=A*X^2*SIN(X) ELSE IF A=X THEN
Y=EXP(3)*SQR(ABS(X)) ELSE Y=TAN(X)
90 PRINT ”Исходные данные”
100 …
… аналогично строкам 90–140 п.2.1.5.
240 …
Оператор в строке 60 является оператором условного перехода. Возможны другие варианты программы с использованием IF – GOTO и IF – THEN, но программа становится длиннее.
2.2.6. - аналогичен п.2.1.6.