- •Ю.П. Чернов, о.П. Шафеева программирование для начинающих
- •1. Среда программирования turbo pascal 7.0
- •1.1. Структура меню среды
- •1.2. Правила оформления программ
- •1.3. Команды редактора тп
- •Команды удаления и вставки
- •1.4. Компиляция и исправление синтаксических ошибок
- •2. Элементы языка pascal
- •2.1. Алфавит языка
- •2.2. Константы. Идентификаторы
- •2.3. Операторы
- •2.3.1. Оператор присваивания
- •2.3.2. Оператор безусловного перехода
- •Стандартные функции
- •2.3.3. Условный оператор if
- •2.3.4. Опеpатоp варианта case
- •2.3.5. Составной и пустой операторы
- •2.3.6. Операторы цикла
- •2.4. Процедуры прерываний
- •2.5. Типизированные константы
- •2.6. Структура программы
- •2.7. Подпрограммы
- •2.7.1. Определение процедур и функций
- •2.7.2. Вложенные подпрограммы
- •2.7.3. Вызов подпрограмм
- •2.7.4. Процедуры
- •2.7.5. Функции
- •2.7.6. Передача в подпрограмму параметров-массивов и параметров-строк
- •2.7.7. Рекурсия
- •2.8. Типы в Турбо Паскале
- •2.8.1. Целые типы
- •Классификация целых типов
- •Встроенные процедуры и функции для целых типов
- •2.8.2. Логический тип
- •2.8.3. Символьный тип
- •Служебные символы
- •2.8.4. Строковый тип
- •Встроенные функции и процедуры для обработки строк
- •Процедуры преобразования
- •2.8.5. Перечислимый тип
- •2.8.6. Ограниченный тип (диапазон)
- •2.8.7. Вещественные типы
- •Вещественные типы
- •Встроенные функции
- •2.8.8. Структурированные типы данных. Массивы
- •2.8.9. Множества
- •2.8.10. Записи
- •2.9. Изменение типа выражения
- •2.10. Процедурные типы
- •2.11. Файлы
- •Общие процедуры и функции для работы с файлами
- •2.11.1. Текстовые файлы
- •2.11.2. Типизированные файлы
- •2.11.3. Нетипизированные файлы
- •2.12. Указатели и динамическая память
- •2.13. Модули
- •2.14. Библиотека Турбо Паскаля
- •2.14.1. Модуль crt
- •2.14.2. Модуль graph
- •Var driver, Mode: integer переменные драйвера и режима.
- •Управление графическим режимом
- •Управление экраном, окном, страницей
- •Управление цветом и палитрой
- •Работа с точками
- •Работа с линиями
- •Построение фигур из линий
- •Построение криволинейных фигур
- •Работа с текстом
- •Обмен с памятью
- •2.15. Динамические структуры данных
- •2.15.1. Связанные динамические данные. Списки
- •Чтобы сослаться на двунаправленный кольцевой список как на единый программный объект, используется указатель, значением которого является ссылка на заглавное звено списка.
- •2.15.2 Очередь
- •2.15.3. Стек
- •3. Практическое программирование Этапы подготовки и решения задач на компьютере
- •Порядок выполнения лабораторных работ
- •Лабораторная работа 1 Основы программирования в среде Турбо Паскаля.
- •Приоритет операций в выражении
- •Задание 1 (программа 1_1)
- •Лабораторная работа 2 Программирование разветвленных алгоритмов. Операторы передачи управления
- •Лабораторная работа 3 Программирование циклических алгоритмов с заданным числом повторений
- •Лабораторная работа 4 Программирование циклических алгоритмов с предусловием
- •Лабораторная работа 5 Программирование циклических алгоритмов с постусловием
- •Модифицировать программу 3_2 для вычисления функций f1(X) и f2 (X) с применением оператора цикла с постусловием. Выполнить ее и сравнить результаты с полученными ранее.
- •Лабораторная работа 6 Программирование алгоритмов обработки одномерных массивов
- •Задание 1
- •Лабораторная работа 7
- •Лабораторная работа 8 Программирование с использованием функций
- •Лабораторная работа 9 Программирование с использованием процедур
- •Лабораторная работа 10 Обработка символьных и строковых данных
- •Лабораторная работа 11 Файлы
- •Лабораторная работа 12 Записи
- •Лабораторная работа 13 Решение нелинейных уравнений
- •Задание (программа_13)
- •Лабораторная работа 14 Вычисление приближенного значения определенного интеграла
- •Лабораторная работа 15 Модульное программирование
- •Лабораторная работа 16 Графика
- •Библиографический список
- •Обозначения графические в схемах алгоритмов (гост 19.701-90)
- •Зарезервированные слова Turbo Pascal 7.0
- •Приложение в
- •Кодировка символов в соответствии с кодами ascii
- •Приложение г
- •Альтернативная кодировка госТа для кодов 128...255
- •Клавиши с кодами из двух частей
- •Содержание
Лабораторная работа 13 Решение нелинейных уравнений
Цель работы: научиться разрабатывать и отлаживать программы для нахождения корней нелинейных уравнений численными методами
Пусть задано уравнение f(x)=0 и интервал [a,b], где функция f(x) непрерывна и имеет разные знаки на концах интервала.
Алгоритм нахождения корня на интервале методом половинного деления (бисекции) сводится к следующей схеме:
1) вычисляется середина интервала c = (a+b)/2;
2) если |f(c)| < e, где e= 10-3 - 10-5 определяет погрешность вычислений, то c будет являться приближенным значением корня уравнения и выводится как результат расчетов;
3) если |f(c)| > e, то проверяются знаки функций f(a) и f(c) на концах отрезка [a,c], для чего вычисляется их произведение. Если f(a)f(c)<0, то функции будут иметь противоположные знаки и корень находится на отрезке [a,c]. В этом случае интервал [a,b] заменяется отрезком [a,c], для чего присвоим b=c;
4) иначе, если f(a)f(c)>0, корень уравнения находится на отрезке [c,b] и в рас- четах интервал [a,b] заменяется на [c,b], для чего присвоим a =c;
5) вычисления по схеме п.1-п.4 повторяются в итерационном цикле до тех пор, пока не выполнится условие п.2 - |f(c)|< e.
В случае метода хорд схема алгоритма расчета корня уравнения остается прежней за исключением п.1, в котором используется формула
c=(a f(b)-b f(a))/(f(b)-f(a)).
Для исключения зацикливания следует правильно определять начальный интервал [a,b], чтобы выполнялось условие f(a)f(b)<0. Структурная схема алгоритма для метода половинного деления приведена на рис.13.
Задание (программа_13)
Найти корень уравнения f(x)=0 на интервале [a,b] с точностью e=0.001.
1. x - 2e-x - = 0. 2. x2 - ln(x+1) + sin x -2 = 0.
3. 5x - ex -2x = 0. 4. 2x lg x - 3 = 0.
5. 2x - 3x - 2 = 0. 6. 0,5 + cos x - 2x sin x = 0.
7. sin x + x - 3 = 0. 8. x ex – 2 x2 - 1 = 0.
9. + 2x - 3 = 0. 10. 2 ln(x+1) - x + 1 = 0.
11. tg x - ex+1 = 0. 12. 2 ln(x+1) + arctg x -3 = 0.
13. x3 - 2x2 - 4 = 0. 14. 5x2 - 2x ln x-7 = 0.
15. 2 - 3 sin x = 5. 16. 2x3 - 3x2 - 4 = 0.
17. 4x - sin2x -3 = 0. 18. 2x sin2 x-3= 0.
19. 2 ln(x+1)-3 sin2x = 4. 20. x3 + 3x + 2 = 0.
Рис.13. Схема алгоритма решения нелинейного уравнения
Лабораторная работа 14 Вычисление приближенного значения определенного интеграла
Цель раборы: научиться разрабатывать и отлаживать программы для вычисления определенных интегралов численными методами прямоугольников и трацеций
Приближенное значение определенного интеграла вычисляется как сумма площадей N прямоугольников, построенных на интервале интегрирования [a,b]. Интервал [a,b] разбивается на N равных частей длиной h = (b-a)/N, на каждой из которых строится прямоугольник с высотой, равной значению функции f(xi) в центре участка с координатой
xi = a+(i-0.5)h, где i=1,2,...,N
Формула прямоугольников для приближенного вычисления значения интеграла будет иметь вид
.
В методе трапеций весь интервал [a,b] разбивается на N равных частей длиной h=(b-a)/N, на каждой из которых строится трапеция. Приближенное значение ин- теграла определяется суммой площадей этих трапеций
,
где xi =a+i* h .
Разработать программу для вычисления значения определенного интеграла на интервале [a,b] (a, b подобрать самостоятельно) численными методами прямоугольников и трапеций [8, 9] для следующих вариантов:
1. 2. 3.
4. 5. 6.
7. 8. 9.
10. 11. 12.
13. 14. 15.
16. 17. 18.
19. 20.
Интервал интегрирования разбить равномерно на N>50 частей.