- •Общие сведения об эвм
- •1. Общая функциональная схема эвм
- •2. Языки программирования
- •3. Этапы решения задач на эвм
- •4. Понятие алгоритма и его свойства
- •5. Графическое описание алгоритмов. Схемы алгоритмов
- •Блоки для изображения схем алгоритмов и программ
- •6. Типы алгоритмов
- •7. Ос эвм. Понятие о файловой системе
- •Имя.Расширение
- •8. Команды ms dos
- •Программирование на языке Паскаль
- •1. Структура программы на языке паскаль
- •2. Описание данных
- •2.1. Константы
- •2.2. Переменные
- •3. Комментарии
- •4. Операторы языка паскаль
- •5. Операторы обработки данных
- •5.1. Операторы ввода
- •5.2. Операторы вывода
- •5.3. Вычисление по формулам. Оператор присваивания
- •6. Линейные программы
- •7. Управляющие операторы
- •7.1. Разветвляющиеся алгоритмы. Оператор if (если)
- •7.2. Пример разветвляющейся программы
- •7.3. Оператор case
- •8. Циклические алгоритмы и программы
- •8.1. Общая схема цикла
- •8.2. Циклы со счетчиком
- •8.3. Итерационные циклы
- •8.3.1. Оператор цикла с пост-условием
- •8.3.2. Оператор цикла с пред-условием
- •Описание данных
- •9. Типы данных, используемых в паскале
- •9.1. Представление данных в эвм
- •9.2. Стандартные функции Паскаля и Турбо Паскаля
- •9.3. Булевские переменные и выражения
- •9.4. Функции для работы с символами
- •Функции языка Паскаль
- •9.5. Массивы
- •10. Примеры программ обработки массивов
- •11. Особенности алгоритмов и программ с накапливанием
- •12. Алгоритм нахождения минимума и максимума
- •13. Задача сортировки
- •14. Обработка многомерных массивов
- •15. Программы обработки строк символов (текстов)
- •15.1. Простейшие алгоритмы и программы обработки строк
- •15.2. Анализ символов в строке
- •16. Типовые программы обработки строк
- •16.1. Выделение слов из текста (слова разделены одним пробелом)
- •16.2. Выделение слов из текста (слова разделены несколькими пробелами)
- •16.3. Некоторые типовые алгоритмы и программы обработки массивов строк (слов из текстов)
- •17. Алгоритмы поиска
- •17.1. Алгоритм линейного поиска
- •17.2. Алгоритм дихотомического поиска
- •Процедуры, функции и модули в паскале
- •18.1. Процедуры
- •18.1.1. Пример программы с процедурой
- •18.1.2. Расположение процедур в программе
- •18.2. Функции
- •18.2.1. Пример программы с функцией
- •18.3. Внешние процедуры и функции
- •18.3.1. Модули пользователей
- •19. Итерационные циклы
- •19.1. Приближенное вычисление функций
- •19.2. Решение уравнений приближенными методами
- •19.2.1. Метод деления отрезка пополам
- •19.2.2. Метод Ньютона
- •19.2.3. Метод прохождения отрезка с переменным шагом
- •19.3. Вычисление определенных интегралов
- •19.3.1. Метод прямоугольников
- •19.3.2. Метод трапеций
- •20. Дополнительные сведения о ТипАх данных, применяемЫх в Паскале
- •20.1. Перечисляемый тип
- •20.2. Интервальный тип
- •20.3. Множества
- •20.3.1. Примеры программ с использованием множеств
- •Алгоритм
- •20.4. Записи
- •20.4.1. Примеры программ обработки записей
- •Алгоритм
- •Оператор_1;
- •21. Файлы и наборы данных
- •Assign(имя_файла, имя_нд);
- •21.1. Текстовые файлы
- •21.1.1. Создание текстового файла
- •21.1.2. Работа с существующим текстовым файлом
- •21.2. Типизированные файлы
- •21.2.1. Последовательная обработка типизированных файлов
- •21.2.2. Использование прямого доступа к записям типизированного файла
- •21.2.3. Упорядочение записей в файле
- •Алгоритм
- •21.2.4. Удаление записей из файла
- •21.2.5. Вставка записей в файл
- •22. Динамическое распределение памяти. Указатели и списки
- •22.1. Использование указателей. Списки
- •22.2. Очереди
- •22.2.1. Очередь типа lifo
- •22.2.2. Очередь fifo
- •23. Стандартные модули Турбо Паскаля
- •23.1. Модуль Crt
- •23.1.1. Работа с клавиатурой и звуком
- •23.1.2. Управление цветом
- •23.1.3. Создание окон и позиционирование курсора
- •23.1.4. Построение графика в текстовом режиме
- •23.1.5. Алгоритм и программа представления меню средствами Турбо Паскаля
- •23.2. Модуль dos
- •23.3. Модуль Graph
- •23.3.1. Инициирование графического режима
- •1) Процедура InitGraph(Var grDr,grMd:integer;path:string);
- •23.3.2. Вывод точек на экран
- •23.3.3. Вывод текста (надписей) в графическом режиме
- •1) SetTextStyle(Шрифт, Направление:Word; Размер:1..10);
- •23.3.4. Построение графических изображений
- •1) SetLineStyle(Тип_линии, Образец, Толщина : Word);
- •23.3.5. Запоминание и вывод изображений
- •24. Рекомендации по оформлению текста программ
- •Библиографический список
- •Оглавление
19.3.1. Метод прямоугольников
Метод основан на замене площади сложной фигуры суммой площадей прямоугольников, высота которых равна значению функции f(x), а ширина — hx, шагу по оси х. Очевидно, что чем меньше шаг, тем точнее аппроксимация. Площадь элементарного прямоугольника равна f(x)* hx.
Алгоритм вычисления определенного интеграла рассматриваемым методом может быт таким.
Ввести a, b и Е.
Начальное значение шага hx = (b-a)/n, где n — начальное количество точек;
Вычислить площадь S1 = Sпрямоуг (hx)
Повторять
hx := hx / 2;
Вычислить площадь S2 = Sпрямоуг (hx);
Y:= | S2 - S1|;
S1:= S2
Пока не будет y Е.
2.4. Вывести S2.
3. Закончить.
В приведенном алгоритме дважды вычисляется сумма площадей элементарных прямоугольников. Эту операцию можно оформить в виде процедуры или функции. Программа, которая реализует описанный алгоритм с использованием функции f(x) и процедуры вычисления площади методом прямоугольников приведена ниже.
Program Integral;
Const
n= 20; { начальное количество точек на интервале }
Var
a, b, hx, s1, s2, E, y : Real;
Function f(x: Real): Real;
Begin
f:= { здесь должна быть формула для вычисления функции}
End;
Procedure S_Rect(a,b,h:Real; Var S:Real);
{ вычисление интеграла методом прямоугольников }
{ a и b — границы интервала, h — шаг по оси х }
{ S — результат }
Var
X: Real;
Begin
S:=0;
X:=a;
While x<b do
Begin
S:= S + f(x)*h;
x:= x+h;
End;
End;
Begin
{ основная программа }
Writeln('Введите интервал и погрешность');
Readln(a, b, E);
{ Начальный шаг }
hx:=(b-a)/n;
{ Начальное значение интеграла (площади) }
S_Rect(a,b,hx,s1);
{ Вычисление очередных приближений }
Repeat
hx:=(b-a)/2;
S_Rect(a,b,hx,s2);
y:=Abs(s2-s1);
s1:=s2;
Until y <= E;
Writeln('Интеграл = ', s2 :10:6);
Writeln('Работа окончена');
Readln;
End.
19.3.2. Метод трапеций
Метод основан на замене площади сложной фигуры суммой площадей трапеций, высота которых равна шагу по оси х (hx), а основания — значениям функции f(x) и f(x + hx). Очевидно, что он позволяет точнее аппроксимировать функцию и быстрее получить результат. В этом можно убедиться, подсчитав количество приближений обоими методами. Из геометрии известно, что площадь элементарной трапеции равна (f(x) + f(x + hx)) / (2* hx).
Алгоритм вычисления определенного интеграла рассматриваемым методом отличается от предыдущего только процедурой нахождения площадей s1 и s2. Эта процедура может быть предствалена в следующем виде.
Procedure S_Trap(a,b,h:Real; Var S:Real);
{ вычисление интеграла методом трапеций }
{ a и b — границы интервала, h — шаг по оси х }
{ S — результат }
Var
X: Real;
Begin
S:=0;
X:=a;
While x<b do
Begin
S:= S + (f(x) + f(x + h)) / (2* h).;
x:= x+h;
End;
End;
Вызов в основной программе с именем Integral процедуры S_Trap вместо S_Rect позволит реализовать в ней метод трапеций.
20. Дополнительные сведения о ТипАх данных, применяемЫх в Паскале
Помимо рассмотренных ранее скалярных данных и массивов, в Паскале используются следующие типы данных:
1) перечисляемые;
2) интервальные;
3) множества;
4) записи;
5) файлы.
Ознакомимся с каждым из них поочередно.