- •Введение
- •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
2.3. Циклический процесс.
Задача 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
Присвоим массивам имена:
Ai |
Xi |
Yi |
А(I) |
X(I) |
Y(I) |
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. присвоим переменным и массиву имена:
a |
x |
… |
П |
Сi |
A |
X |
… |
Р... |
С(I) |
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 –й строке.