Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Построение динамических изображенийСодержание книги
Поиск на нашем сайте
Для того, чтобы создать впечатление движущихся по экрану объекта, следует каждый раз сначала стирать изображение с экрана, а затем снова выводить его на экран в новом месте. При этом местоположение объекта при каждом последующем выводе должно очень незначительно отличаться от его местоположения при предыдущем выводе. В противном случае вместо плавного перемещения изображение будет «дергающимся». Для решения этой проблемы в языке BASIC включены операторы GET и PUT
Операторы GET и PUT
Оператор GET позволяет запоминать цвета всех точек заданной прямоугольной области экрана монитора и хранит их номера в виде числового массива. Оператор PUT повторно воспроизводит все эти цвета на экране.
Определение массива для запоминания картинки
Массив для запоминания картинки резервируется с помощью известного оператора DIM. Массив резервируется как одномерный, которому присваивается имя, характерное для картинки, например, SET. Тогда синтаксическая структура DIM:
DIM SET(N),
где N – количество пикселей (точек);
Оператор GET
Синтаксическая структура оператора GET:
GET (a,b)-(a1,b1), SET,
где GET – ключевое слово “запомнить”, а (a,b) и (a1,b1) – координаты противоположных вершин прямоугольной области, которой ограничено изображение. В операторе указывается только имя массива без скобок и индексов.
Оператор PUT
Этот оператор используется для воспроизведения изображения. Его синтаксическая структура:
PUT (a2,b2), SET,
где PUT – ключевое слово “воспроизвести”, (a2,b2) – это координаты верхнего левого угла воспроизводимого в новом месте прямоугольника. Если в операторе PUT указывать координаты (a,b) вершины предыдущего изображения, то этот оператор стирает изображение на экране.
Организация движения объекта
Для синтеза на экране движения объекта необходимо выполнить следующие действия: · воспроизвести изображение объекта на экране с помощью оператора PUT; · определить координаты нового местоположения объекта на экране; · с помощью оператора PUT повторно воспроизвести изображение на экране; · стереть с помощью оператора PUT текущее изображение объекта на экране; · повторить все операции, начиная со второй (это делается в цикле FOR-NEXT); Примечание: Пункты 3 и 4 можно менять местами.
ПРИЛОЖЕНИЕ 1
Характерные примеры схем алгоритмов и программ на языке BASIC. 1.Условные обозначения в схемах алгоритмов
Конфигурация и размер блоков, а также порядок построения схем определяет МКС 01.080.40 ГОСТ 19701-90 (ИСО 5807-85). На рис.1 приведены наиболее употребляемые блоки. Рисунок 1. Условные обозначения схем алгоритмов
1) Процесс – вычислительное действие или последовательность вычислительных действий; 2) Решение – проверка условий или разветвление процесса (трёхнаправленный и двунаправленный переключатель); 3) Модификация – начало цикла; 4) Ввод и вывод – операция ввода–вывода; 5) Предопределённый процесс – подпрограмма (ПП); 6) Начало и конец программы – пуск и остановка; 7) Комментарий – пояснения, содержание подпрограмм, формулы; 8) Соединитель – разрыв линий потока на одной и той же странице, указывается номер блока; 9) Межстраничный соединитель – разрыв линий потока на различных листах (страницах).
Примеры программ и схем алгоритмов.
2.1. Линейный вычислительный процесс.
Задача 1. Вычислить функцию: , где ; При а = 0,93; с использованием операторов присваивания.
Решение:
2.1.1. Составим схему алгоритма – см. Рис.2, п.1
2.1.2. Присвоим переменные имена:
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. Присвоим переменным имена:
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. Циклический процесс.
Задача 4. Вычислить значение функции. Исходные данные: a0=2.15; a1=3.02; a2=4.15; a3=1.35; x0=0.67; x1=0.95; x2=0.37; x3=0.78;
Составим схему алгоритма – см.рис.3. п.1
Присвоим массивам имена:
2.3.3. Пункт аналогичен п.2.1.3.
Распечатку исходной информации и результатов выберем в виде:
ИСХОДНЫЕ ДАННЫЕ: Печать в одной строке с использованием TAB; РЕЗУЛЬТАТЫ РАСЧЁТА: Печать в разных строках с использованием TAB;
2.3.5. Программа:
10 REM Иванов В.П., гр.107…, вариант 1–3 20 PRINT 30 PRINT 40 DIM A(3), X(3), Y(3) 50 FOR I=0 TO 3 60 INPUT A(I), X(I) 70 IF I<=2 GOTO 100 80 Y(I)=A(I)^2+X(I)^2/COS(X(I)) 90 GOTO 110 100 Y(I)=A(I)* X(I)*SIN(X(I)) 110 NEXT I 120 PRINT ”Исходные данные” 130 FOR I=0 TO 2 140 PRINT TAB(5); “A(“; I; ”)=”; A(I); TAB(15); “X(“;I;”)=”;X(I); 150 NEXT I 160 PRINT “Результаты расчёта:” 170 FOR I=0 TO 3 180 PRINT TAB(10); “Y(“; I; ”)=”; Y(I); 190 NEXT I 200 LPRINT 210 LPRINT ”Исходные данные:” 220 FOR I=0 TO 3 230 LPRINT TAB(5); “A(“; I; ”)=”; A(I); TAB(15); “X(“;I;”)=”;X(I); 240 NEXT I 250 LPRINT “Результаты расчёта:” 260 FOR I=0 TO 3 270 LPRINT TAB(10); “Y(“; I; ”)=”; Y(I); 280 NEXT I 290 STOP 300 END 40-я строка резервирует память для элементов массивов; 50–100 строки – циклический процесс (из 4-х циклов) для ввода исходных данных и вычисления функции Y(I); строки 120–150 и 160–190 предназначены для распечатки исходных данных и результатов расчёта на экране монитора согласно п.2.3.4.; строки 200–280 – для вывода той же информации на принтер.
2.3.6. Выполнение программы:
а) подайте команду: RUN б) программа будет останавливаться при каждом операторе INPUT в строке 60; необходимо на каждый знак вопроса печатать значения а0 и x0 через запятую:
?2.15, 0.87 ?3.02, 0.95 ?4.15, 0.37 ?1.35, 0.78
В результате выполнения программы информация в виде п.2.3.4. выводится на экран монитора и принтер.
2.4. Вычислительный процесс с подпрограммой.
Рисунок 3. Примеры схем алгоритмов
Задача 5. Вычислить значение функции:
при a=3.2; x=-0.75; c1=1.5; c2=-2.3; c3=-3.4.
Вычисление произведений оформить подпрограммой.
2.4.1. Составим схему алгоритма основной программы (рис.3, схема 2), и подпрограммы (рис.3, схема 3).
2.4.2. присвоим переменным и массиву имена:
2.4.3. Пункт аналогичен п.2.1.3.
2.4.4. Распечатку исходных данных и результатов выберем в виде: ИСХОДНЫЕ ДАННЫЕ: А= X= Элементы массива С(I)= ……… ……… ………. ………
РЕЗУЛЬТАТЫ РАСЧЕТА: Р1=…………… Y=………………
2.4.5. Программа: 10 REM Иванов В.П., гр.107…, вариант 1–3 20 PRINT 30 PRINT 40 DIM С(3) 50 DATA 3.2, -.75 60 GOSUB 290 70 Р1=Р 80 READ A, X 90 Y=(A*X^2+EXP(X))/SQR(ABS(A))+P1 100 PRINT ”Исходные данные” 110 PRINT “A=”; A, “X=”; X 120 PRINT “Элементы массива С(I)=” 130 FOR I=3 TO 3 140 PRINT С(I), 150 NEXT I 160 PRINT TAB(11); “Результаты расчёта:” 170 PRINT TAB(2); “P1=”; P1; TAB(15); “Y=”; Y 190 LPRINT ”Исходные данные:” 200 LPRINT “A=”; A, “X=”; X 210 LPRINT “Элементы массива С(I)=” 220 FOR I=1 TO 3 230 LPRINT С(I), 240 NEXT I 250 LPRINT TAB(11); “Результаты расчёта:” 260 LPRINT TAB(2); “P1=”; P1; TAB(15); “Y=”Y 270 STOP 280 REM -- ПОДПРОГРАММА 290 FOR I=1 TO3 300 INPUT C(I) 310 NEXT I 320 P=1 330 FOR I=1 TO3 340 P=P*C(I) 350 NEXT I 360 RETURN 370 END
40 – я строка резервирует память для трёх элементов массива; строка 50 задаёт начальные условия, которые считываются в 80–ой строке; обращение к подпрограмме происходит в 60–й строке; в 70–й строке результат, полученный при выполнении подпрограммы, присваивается переменной Р1 (это не обязательно, т.к. в программе нет другого обращения к подпрограмме); в 90–й строке вычисляется значение функции. Строки 100 – 170 выводят информацию на экран согласно п.2.4.4., а строки 190 – 260 - на принтер. Завершается основная программа 270–й строкой с обязательным оператором STOP. Строки 290 – 360 - это подпрограмма вычисления произведения, оканчивающаяся оператором RETURN. Завершает программу с подпрограммой оператор END в 370 –й строке.
ПРИЛОЖЕНИЕ 2
|
|||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2020-12-09; просмотров: 81; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.35.234 (0.007 с.) |