- •Оглавление
- •Введение
- •1. Программирование задач на языке basic
- •Программирование линейных вычислительных процессов
- •1.1.2. Справочный материал.
- •1.1.5. Вопросы для самопроверки
- •1.2.3. Пример:
- •20 Input “a b “ ; a , b input “a b “ ; a , b
- •1.2.4. Задание к лабораторной работе.
- •Определённые циклы
- •1.3.4. Задания к лабораторной работе.
- •Определённые циклы. Суммирование членов функционального ряда
- •Input “X, m%, h% “ ; X , m% , h%
- •1.4.4. Задания к лабораторной работе.
- •Файлы прямого и последовательного доступа
- •Input “X m h “ ; X , m% , h
- •Программирование итерационных вычислительных процессов
- •10 Input "Введите значения X,r,k,e" ; X,r,k,e
- •1.6.5. Вопросы для самопроверки
- •1.7.5. Вопросы для самопроверки
- •Формирование и обработка одномерных массивов
- •1.8.5. Вопросы для самопроверки
- •Формирование двумерных массивов и выполнение операций с матричными элементами
- •160 Next I
- •160 Next j
- •150 Next j
- •1.9.5. Вопросы для самопроверки
- •Программирование сложных программ с использованием подпрограмм
- •40 Read X( I ) : next I
- •45 Data 1, 2.1, -3, -4.1, 1.7, 1.8, 1.9, 14.2, -5, -4.3, 11.2, 10.8
- •140 Return
- •90 Read X( I ) : next I
- •100 Data 1, 2.1, -3, -4.1, 1.7, 1.8, 1.9, 14.2, -5, -4.3, 11.2, 10.8
- •1.10.5. Вопросы для самопроверки
- •Программирование цепочек текстовых переменных
- •1.11.5. Вопросы для самопроверки
- •Литература к главе 1
- •2.1.5. Вопросы для самопроверки
- •Решение нелинейного уравнения графическим методом
- •2.2.5. Вопросы для самопроверки
- •Решение НелинейноГо уравнениЯ МетодОм простых итераций
- •2.3.5. Вопросы для самопроверки
- •Решение нелинейного уравнения методом касательных
- •2.4.3. Пример.
- •2.4.5. Вопросы для самопроверки
- •Решение систем Нелинейных уравнений графическим методом
- •2.5.5. Вопросы для самопроверки
- •Решение систем Нелинейных уравнений методом пРостых итераЦиЙ
- •2.6.3. Пример.
- •2.6.5. Вопросы для самопроверки
- •Численное интегрирование:метод прямоугольников и трапеций, формула симпсона
- •2.7.5. Вопросы для самопроверки
- •Численное решение обыкновеНноГо дифференциального уравнениЯ МетодОм эЙлера и рунге-кутта
- •2.8.5. Вопросы для самопроверки
- •Численное решение систем обыкновеНнЫх дифференциальных уравнениЙ МетодОм эЙлера
- •3. Математическое моделирование на пэвм
- •3.1. Системы тел сосредоточенными массами
- •3.1.1. Математическое моделирование теплообмена для тел сосредоточенных масс с окружающей средой
- •3.1.2. Собственные колебания
- •Лабораторная работа № 3.1 исследование автономной линейной системы уравнений
- •Лабораторная работа № 3.2 исследование автономной нелинейной системы уравнений
- •Лабораторная работа № 3.3 решение жестких систем обыкновенных дифференциальных уравнений (оду)
- •3.1.3. Математическая модель стабильности позвоночника
- •Результаты численных расчетов
- •3.2. Системы с распределенными параметрами
- •3.2.1. Математическое моделирование процесса переноса частиц
- •3.2.2. Математическое моделирование процесса прерванного посола рыбы
- •Отметим, что критерий устойчивости счета методом прогонки к ошибкам округления выполнен, так как
- •Как следует из рекуррентных соотношений (3.2.32), для начала расчета необходимо иметь значения e1 и w1, которые определяются с помощью левого граничного условия (3.2.23)
- •3.2.3. Моделирование процесса переноса частиц на основе гиперболической системы уравнений
- •3.2.4. Математическое моделирование нестационарного двумерного процесса переноса частиц (теплопереноса)
- •Система разностных уравнений (3.2.45) дополнялась начальными и граничными условиями (3.2.40 – 3.2.44) и решалась методом обыкновенной прогонки попеременно в двух направлениях.
- •3.3. Повышение порядка точности аппроксимации дифференциальных уравнений
- •3.3.1. Повышение порядка точности аппроксимации обыкновенных дифференциальных уравнений
- •3.3.2. Повышение порядка точности аппроксимации дифференциальных уравнений гиперболического типа
- •3.4. Интерполяция функций
- •3.4.1. Линейная интерполяция
- •3.4.2. Квадратичная интерполяция
- •3.4.3. Интерполяционная формула Лагранжа
- •3.4.4. Сплайны
- •3.4.5. Алгоритм решения обратных задач по заданным показателям качества
- •Литература к главе 3
1.9.5. Вопросы для самопроверки
1. Какие циклы называются сложными?
2. Как записывается оператор считывания блока данных?
3. Как записывается оператор форматированного вывода данных?
4. Сколько ячеек памяти ПЭВМ отводится по оператору DIM A( 80,2 )?
5. Как строятся подпрограммы вычисления суммы и произведений ряда чисел?
6. Построить блок-схему формирования двумерного массива.
Лабораторная работа № 1.10 ( C:\USER\GROUP\NOF\lab 10.bas)
Программирование сложных программ с использованием подпрограмм
1.10.1. Цель работы. Получение практических навыков алгоритмизации и программирования сложных программ с использованием операторов-функций (функций пользователя ) и подпрограмм.
1.10.2. Справочный материал. Подпрограммы (функции пользователя) используются при многократных вычислениях в программе по одной и той же формуле. Для этого формула определяется с помощью оператор-функции DEF, например, для расчета квадратного трехчлена 3x2+2x+2 в точках X1,X2,...,Xn тело оператора-функции будет иметь вид:
DEF FNF( X ) = 2 * X + 3 * X2 +2 . (1.10.1)
Обращение к данной оператор-функции может иметь вид:
Yi = FNF( Xi ) , где i = 1,2,...,n . (1.10.2)
Следует отметить, что в описании оператор-функции (1.10.1) параметр Х является формальным параметром, а в выражении (1.10.2) - фактическим, так как компоненты Xi должны быть заданы в виде чисел. Запись букв FN перед именем функции F(X) в определении оператор-функции (1.10.1) и обращении к ней (1.10.2) - обязательна.
В более сложных случаях, когда используется для вычислений несколько операторов, т. е. тело оператора-функции состоит из нескольких строчек, например, для подсчета произведения чисел Р:
. (1.10.3)
Тело оператор-функции для этого случая может иметь вид:
10 DEF FNF( X,M,N )
20 P = 1
30 FOR I = M TO N (1.10.4)
40 P = P * X( I ) : NEXT I
50 FNF = P
60 END DEF
и, соответственно, обращение к этой оператор-функции записывается следующим образом:
70 P = FNF( X,M,N ) (1.10.5)
При этом отметим, что перед обращением к оператор-функции ( 1.10.5) должны быть заданы фактические параметры X, M и N.
Подпрограммой в алгоритмическом языке БЭЙСИК является специальным образом оформленная группа операторов, к которой можно обращаться с целью ее выполнения из разных мест, т.е. в виде подпрограмм оформляются повторяющиеся последовательности операторов. Подпрограмма имеет существенные отличия от “обычного” участка программы. Для обращения к ней используется оператор, имеющий вид:
GOSUB N, (1.10.6)
где N - номер строки подпрограммы, с которой она должна начать выполняться. Тело подпрограммы заканчивается оператором RETURN, который возвращает выполнение программы к тому месту, откуда произошел вызов подпрограммы.
Выполнение подпрограммы осуществляется следующим образом. По оператору GOSUB запоминается место в основной программе, из которого вызывается подпрограмма (оператор, следующий за оператором GOSUB). Управление передается оператору с номером строки, указанным в GOSUB N. Выход из подпрограммы и передача управления оператору, следующему за оператором GOSUB, происходит по оператору RETURN. Подпрограммы могут быть вложенными, т. е. из одной подпрограммы можно вызвать другую.
1.10.3. Пример. Подготовить и организовать вычисление на ПЭВМ значений функции Y :
Y = (1.10.7)
c использованием подпрограмм и оператор-функций. Значения элементов массива Хi приводятся в приведенной ниже табличной форме, при этом параметр а в выражении (1.10.7) имеет значения 5; 4; 3.
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
X7 |
X8 |
X9 |
X10 |
X11 |
X12 |
X13 |
X14 |
X15 |
1 |
2,1 |
- 3 |
- 4,1 |
1,7 |
1,8 |
1,9 |
14,2 |
- 5 |
-4,3 |
11,2 |
10,8 |
10,4 |
3,1 |
- 3,1 |
Алгоритм решения задачи вычисления Y, основанный на использовании подпрограммы, тело которой записано в 100 - 140 строках, реализованный на алгоритмическом языке БЭЙСИК, приводится ниже:
10 DIM X( 12 )
20 INPUT “Введите А=“; А
30 FOR I = 1 TO 12