Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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. Программа с использованием оператора присваивания.
Распечатку исходных данных и результатов выберем в виде:
Исходные данные: А=… В=…
Результаты:
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 “ 130 PRINT “ 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 ”Исходные данные”
… аналогично строкам 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.
Распечатку исходной информации и результатов выберем в виде:
ИСХОДНЫЕ ДАННЫЕ:
РЕЗУЛЬТАТЫ РАСЧЁТА:
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; просмотров: 135; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.156 (0.007 с.) |