- •Оглавление
- •Глава 1. Алгоритмический язык Турбо-Паскаль 3
- •Глава 2. Программирование в среде Турбо - Паскаль 112
- •Глава 1. Алгоритмический язык Турбо-Паскаль
- •1. 1. Общие сведения
- •1. 2. Среда Турбо-Паскаль
- •1. 3. Структура языка Турбо-Паскаль
- •1. 4. Типы переменных
- •Практическое задание n 1. 1
- •1. 5. Структура программы
- •1. 6. Операции и стандартные функции
- •1. 7. Операторы Турбо-Паскаля
- •Составной оператор Begin "операторы" end;
- •1. 7. 1. Операторы ввода/вывода данных
- •Операторы вывода данных на экран Write("сп"); или Writeln("сп");
- •Практическое задание n 1. 2
- •Практическое задание n 1. 3
- •1. 7. 2. Оператор выбора
- •0..9: Writeln('однозначное');
- •1. 7. 3. Условный оператор
- •If "условие" Then "оператор1" Else "оператор2";
- •Практическое задание n 1. 5
- •Практическое задание n 1. 6
- •Практическое задание n 1. 7
- •Практическое задание n 1. 8
- •1. 7. 4. Оператор цикла с параметром
- •Практическое задание n 1. 9
- •Практическое задание n 1. 10
- •Практическое задание n 1. 11
- •Практическое задание n 1. 12
- •Практическое задание n 1. 13
- •Практическое задание n 1. 14
- •1. 7. 5. Операторы цикла с условием
- •Практическое задание n 1. 15
- •Практическое задание n 1. 16
- •1. 7. 6. Операторы ограничения и прерывания цикла
- •1. 7. 7. Оператор перехода к метке
- •1. 8. Блок - схемы алгоритмов
- •1. 9. Составление диалоговых программ
- •Практическое задание n 1. 17
- •1. 10. 1. Линейные массивы
- •Практическое задание n 1. 18
- •Практическое задание n 1. 19
- •Практическое задание n 1. 20
- •Практическое задание n 1. 21
- •1. 10. 2. Работа с элементами переменной строкового типа
- •Практическое задание n 1. 22
- •1. 10. 3. Двумерные массивы
- •2 S[2] Массив a: a[2, 1] a[2, 2] a[2, 3] a[2, 4] . . . A[2, j] . . . A[2, m]
- •Практическое задание n 1. 23
- •1. 10. 4. Создание баз данных с использованием массивов записей
- •Практическое задание n 1. 23
- •1. 10. 5. Работа с большими массивами
- •Практическое задание n 1. 25
- •1. 11. Текстовые файлы
- •Практическое задание n 1. 26
- •Практическое задание n 1. 27
- •1. 12. Разработка функций и процедур
- •1. 12. 1. Описание функций и процедур
- •Viz(Dat); { вызов процедуры } Readln end.
- •Практическое задание n 1. 28
- •Практическое задание n 1. 29
- •Практическое задание n 1. 30
- •1. 12. 2. Рекурсивные функции и процедуры
- •Практическое задание n 1. 31
- •Практическое задание n 1. 32
- •1. 13. Разработка модулей
- •Практическое задание n 1. 33
- •1. 14. Модуль сrt
- •1. 14. 1. Управление экраном в текстовом режиме
- •InsLine; Вставка пустой строки.
- •1. 14. 2. Управление клавиатурой
- •Практическое задание n 1. 34
- •Практическое задание n 1. 35
- •Практическое задание n 1. 36
- •Практическое задание n 1. 37
- •1. 14. 3. Работа с символьными переменными
- •Практическое задание n 1. 38
- •Практическое задание n 1. 39
- •Практическое задание n 1. 40
- •Практическое задание n 1. 41
- •Практическое задание n 1. 42
- •1. 14. 4. Работа со строковыми переменными
- •Практическое задание n 1. 43
- •1. 14. 5. Управление звуковыми сигналами
- •Практическое задание n 1. 44
- •Практическое задание n 1. 45
- •1. 15. Модуль Graph
- •1. 15. 1. Инициализация графического режима
- •1. 15. 2. Простейшие графические процедуры и функции
- •Практическое задание n 1. 46
- •Практическое задание n 1. 47
- •Практическое задание n 1. 48
- •Практическое задание n 1. 49
- •Практическое задание n 1. 50
- •Практическое задание n 1. 51
- •Практическое задание n 1. 52
- •Практическое задание n 1. 53
- •1. 15. 3. Рисование геометрических фигур
- •1. 15. 3. 1. Построение заполненных фигур
- •Практическое задание n 1. 54
- •1. 15. 3. 2. Работа с линиями
- •Практическое задание n 1. 55
- •Практическое задание n 1. 55
- •Практическое задание n 1. 56
- •1. 15. 3. 3 Создание графических узоров
- •1. Перемещение фигуры.
- •Практическое задание n 1. 56
- •2. Масштабирование фигуры.
- •Практическое задание n 1. 57
- •3. Симметричное отображение фигуры.
- •Практическое задание n 1. 58
- •4. Штриховка углов.
- •Практическое задание n 1. 59
- •5. Использование рекурсии.
- •Практическое задание n. 1. 60
- •Практическое задание n . 1. 61
- •6. Создание узоров построением зеркальных отображений фигуры.
- •Практическое задание n 1. 61
- •1. 15. 3. 4. Работа с текстом в графическом режиме
- •Практическое задание n 1. 62
- •1. 15. 5. Мультипликация
- •1. 15. 5. 1. Мультипликация с запоминанием части экрана
- •Практическое задание n 1. 63
- •1. 15. 5. 2. Мультипликация с чередованием видеостраниц
- •Практическое задание n 1. 64
- •1. 15. 5. 3. Мультипликация с управлением движения образа
- •Практическое задание n 1. 65
- •1. 15. 5. 4. Модификация контурного изображения
- •Практическое задание n 1. 66
- •Глава 2. Программирование в среде Турбо-Паскаль
- •2. 1. Геометрические построения на плоскости
- •2. 1. 1. Построение графиков функций
- •Практическое задание n 2. 1
- •Var right, left, down, up: integer; k_xy, kx, ky, x_max, x_min, y_max, y_min: double; { описание глобальных переменных }
- •Практическое задание n 2. 2
- •Практическое задание n 2. 3
- •Практическое задание n 2. 4
- •Практическое задание n 2. 5
- •12 Строфоида a*Cos(2*fi)/Cos(fi) 0,1 ... 1,5 -3 -2 1 -
- •13 Циссоида a*Sin2(fi)/Cos(fi) 0,1 ... 1,5 -1 1 2 -
- •2. 1. 2. Графическое решение уравнений
- •Практическое задание n 2. 6
- •2. 1. 3. Уравнение прямой на плоскости
- •Практическое задание n 2. 7
- •2. 1. 4. Построение касательных и нормалей к плоским кривым
- •Практическое задание n 2. 8
- •2. 1. 5. Двумерные преобразования координат
- •Практическое задание n 2. 9
- •2. 1. 6. Проецирование пространственного изображения тела на плоскость
- •Практическое задание n 2. 10
- •2. 2. Некоторые задачи физики
- •2. 2. 1. Механика
- •Практическое задание n 2. 11
- •Y V xПрактическое задание n 2. 12
- •Практическое задание n 2. 13
- •Практическое задание n 2. 14
- •Практическое задание n 2. 15
- •Практическое задание n 2. 16
- •Практическое задание n 2. 17 X
- •Практическое задание n 2. 18 y
- •2. 2. 2. Оптика и свет
- •Практическое задание n 2. 19
- •Практическое задание n 2. 20
- •2. 2. 3. Электростатика и электромагнетизм
- •Практическое задание n 2. 21
- •2. 3. Математическое моделирование физических процессов
- •Практическое задание n 2. 22
- •Практическое задание n 2. 23
- •Практическое задание n 2. 24
- •Практическое задание n 2. 25
- •Практическое задание n 2. 26
- •2. 4. Моделирование многовариантных задач с использованием графов
- •Практическое задание n 2. 27
- •2. 5. Программы математических расчетов
- •2. 5. 1. Численное решение уравнений
- •Практическое задание n 2. 28
- •Практическое задание n 2. 29
- •2. 5. 2. Аппроксимация по методу наименьших квадратов
- •Практическое задание n 2. 30
- •2. 5. 3. Численный расчет интегралов
- •Практическое задание n 2. 31
- •Практическое задание n 2. 32
- •2. 5. 4. Сортировка одномерных массивов
- •Практическое задание n 2. 33
- •Практическое задание n 2. 34
- •Список литературы
Практическое задание n 2. 30
1. Составить процедуру линейной аппроксимации по методу наименьших квадратов массива значений, полученных экспериментально в шести сериях по 10 замеров согласно зависимости:
1. 1. yi= A + B*xi + 0. 5-Random; где A=10; B=3; C=2; xi=8*i;
1. 2. yi= A + sin(xi)*Random; где A=15; xi=i; где i=1, 2, . . . , 6.
Нарисовать график функции Y(x) = A0 + A1*x; и экспериментальные точки yi.
2. 5. 3. Численный расчет интегралов
Вычисление определенного интеграла исторически обусловлено задачей расчета площадей различных фигур. Согласно “теореме о среднем” определенный интеграл равен произведению длины отрезка интегрирования на значение подынтегральной функции в некоторой точке "xi" этого отрезка:
b f(xi)
S = f(x)*dx =(b-a)*f(xi); a <= xi <= b,
a
a xi b
где a и b - верхний и нижний пределы интегрирования.
Таким образом, определенный интеграл равен площади прямоугольника с основанием длиной "b-a" и высотой "f(xi)". Здесь значение xi, а значит и f(xi) неизвестно. Однако, если отрезок интегрирования разбить на много малых отрезков "dxi", в которых значение функции f(xi) можно принять постоянным, то
b
S = f(x)*dx = f(x1)*dx1 + f(x2)*dx2 + f(x3)*dx3 + ... + f(xN)*dxN;
a
где dx1 + dx2 + dx3 + . . . + dxN = b - a;
Вычисление определенного интеграла по приведенной выше формуле называется численным интегрированием. Численное интегрирование применяют при решении различных задач, например: при определении площадей сложных геометрических фигур, определении работы сил, расчете длины траектории точки и в других случаях, когда подынтегральная функция "f(x)"задана по точкам, имеет сложное аналитическое выражение или ее первообразная не определяется аналитически. Сущность численных методов интегрирования состоит в различной замене (интерполяции) сложной подынтегральной функции на малых отрезках простой функцией, либо в представлении подынтегральной функции в виде сходящегося бесконечного ряда.
Рассмотрим методы численного интегрирования, основанные на интерполяции подынтегральной функции на малых отрезках равной длины различными видами функций: постоянной, линейной, квадратичной и кубической. Формулы численного интегрирования, получаемые при различных интерполяциях подынтегральной функции, называются квадратурными.
При равномерном разбиении отрезка [a, b] на "N" малых отрезков (интервалов) необходимо определять значения функции "f(xi)" в "M" точках внутри отрезка [a, b].
Метод прямоугольников основан на интерполяции функции на малом отрезке постоянным значением. Кривую f(x) на каждом малом интервале "h" заменяют горизонтальной линией, пересекающей кривую в середине отрезка, при этом M=N. Интеграл вычисляется по формуле:
S1 = f1 * h; - на одном отрезке.
S =( f1 + f2 + ... + fM )*h; - на M отрезках.
Здесь fi = f(xi); h = (b-a)/N; xi = a - h/2 + h*i; i = 1, 2, . . . ,
153
Y Y Y Y
f (x) f (x) f (x) f(x)
a x1 x2 x3 b X a x1 x2 b X a x1 x2 x3 b X a x1 x2 x3 x4 x5 b X
Метод трапеций состоит в том, что кривую f(x) на каждом малом интервале "h" заменяют отрезком прямой, соединяющим точки кривой f(x) на краях этого интервала, при этом M=N-1. Интеграл вычисляется по формуле:
S1 =((fa + fb)/2)* h; - на одном отрезке.
S = ((fa + fb)/2 + f1 + f2 + ... + fM )*h; - на N отрезках.
Здесь fi = f(xi); h = (b-a)/N; xi = a + h*i; i = 1, 2, . . . , M.
Метод Симпсона основан на интерполяции функции на малом отрезке квадратичной параболой, проходящей через крайние и среднюю точки кривой f(x). При этом M=2*N-1, а интеграл вычисляется по формуле:
S1 =((fa + 4*f1 + fb)/3)* h - на одном отрезке.
S=(fa+fb+ 2*(f2+f4+...+fM-2)+ 4*(f1+f3+...+fM-1))*h/3; - на N отрезках.
Здесь fi = f(xi); h = (b-a)/(2*N); xi = a + h*i; i = 1, 2, . . . , M.
Метод "трех восьмых" основан на интерполяции функции на малом отрезке кубической параболой, проходящей через крайние и две равноотстоящие по "x" точки кривой f(x). При этом M=3*N-1, а интеграл вычисляется по формуле:
S1 =((fa + 3*(f1+f2) + fb)*3/8)* h - на одном отрезке.
S = (fa+fb+ 2*(f3+f6+...+fM-3)+ 3*(f1+f2+...+fM-1))*3*h/8; - на N отрезках.
Здесь fi = f(xi); h = (b-a)/(3*N); xi = a + h*i; i = 1, 2, . . . , M.
Операторы для вычисления интеграла в этом случае имеют вид:
m:= 3*n-1; h:= (b-a)/(3*n); s:= f(a) + f(b);
for i:=1 to m do begin
x:= a+h*i; if i mod 3 = 0 then S:= S+2*f(x) else S:= S+3*f(x)
end;
S:= 3/8*S*h;
Отметим, что методы прямоугольников и трапеций точны для многочленов первой степени, формулы Симпсона и "трех восьмых" - для многочленов третьей степени.