Численное интегрирование методом прямоугольников

2



Содержание



График выполнения курсового проекта

Введение

Общая часть. Обзор элементов языка программирования

Специальная часть. Общая постановка задачи

Организация производства. Комплекс технических средств, необходимый для решения задачи

Заключение

Список литературы




График выполнения курсового проекта



№ п/п

Наименование работы

Сроки исполнения

1

Вводный инструктаж. Выдача заданий. Общая постановка задачи. 

24.11

2

Составление плана работы. 

25.11

3

Анализ программных средств. 

27.11

4

Описание набора данных

29.11

5

Составление алгоритма работы программы. 

1.12

6

Организация ввода-вывода данных. 

2.12

7

Создание заставки программы. 

4.12

8

Организация меню. 

6.12

9

Описание проблемной процедуры. 

8.12

10

Разработка блок-схемы проблемной процедуры. 

9.12

11

Разработка алгоритма проблемной процедуры. 

11.12

12

Отладка проблемной процедуры. 

13.12

13

Тестирование проблемной процедуры.

18.12

14

Исправление ошибок проблемной процедуры.

20.12

15

Обработка дополнительных процедур. 

22.12

16

Отладка дополнительных процедур. 

22.12

17

Тестирование дополнительных процедур. 

23.12

18

Отладка программного комплекса. 

24.12

19

Тестирование программного комплекса. 

25.12

20

Исправление ошибок программного комплекса. 

26.12

21

Оформление интерфейса программы. 

27.12

22

Окончательное оформление программы. 

27.12

23

Оформление пояснительной записки. 

28.12

24

Защита курсового проекта. 

29.12


Введение



В данной курсовой работе требуется применить изученные средства языка программирования Паскаль для решения задач путем использования численных методов на компьютере.

Необходимо написать программу, решающую поставленную задачу, используя предоставленные математические данные. Решение данной задачи показывает возможности использования компьютера для различного рода прикладных вычислений.

В данной задаче требуется разработать алгоритм и его реализацию для нахождения интеграла функции с помощью метода прямоугольников. Ценность данной задачи заключается в том, что не для каждой функции значение интеграла можно найти аналитически. Однако с использованием предложенного численного метода, возможно, получить конкретное значение.


Общая часть. Обзор элементов языка программирования



Процедурой в Паскале называется именованная последовательность инструкций, реализующая некоторое действие. Функция отличается от процедуры тем, что она должна обязательно выработать значение определенного типа.

Процедуры и функции, используемые в программе, должны быть соответствующим образом описаны до первого их упоминания. Вызов процедуры или функции производится по их имени. Подпрограммы в языке Паскаль могут иметь параметры (значения, передаваемые в процедуру или функцию в качестве аргументов). При описании указываются так называемые формальные параметры (имена, под которыми будут фигурировать передаваемые данные внутри подпрограммы) и их типы. При вызове подпрограммы вместе с ее именем должны быть заданы все необходимые параметры в том порядке, в котором они находятся в описании. Значения, указываемые при вызове подпрограммы, называются фактическими параметрами.

Формат описания процедуры:

Procedure <Имя процедуры> (<Имя форм. параметра 1>: <Тип>;

< Имя форм. параметра 2>: <Тип>?);

<Раздел описаний> Begin <Тело процедуры> End;

Раздел описаний может иметь такие же подразделы, как и раздел описаний основной программы (описание процедур и функций - в том числе). Однако все описанные здесь объекты "видимы" лишь в этой процедуре. Они здесь локальны также, как и имена формальных параметров. Объекты, описанные ранее в разделе описаний основной программы и не переопределенные в процедуре, называются глобальными для этой подпрограммы и доступны для использования.

Формат описания функции:

Function <Имя функции> (<Имя форм. параметра 1>: <Тип>;

< Имя форм. параметра 2>: <Тип>?): <Тип результата>;

<Раздел описаний> Begin <Тело функции> End;

Файл - это совокупность упорядоченных и взаимосвязанных записей, имеющая описание для идентификации отдельных записей, таким образом, файл - это структура данных.

Структура данных файл в зависимости от типа элементов делится на типизированные, текстовые и нетипизорованные файлы.

Текстовые файлы - это файл последовательного доступа и в которых:

а) информация представлена в текстовом виде посредством символов из набора ASCII;

б) информация может разделяться на строки произвольной длины. Признаком конца строки служат два специальных символа #10 и #13;

в) в конце файла присутствует символ #26;

Стандартные процедуры и функции для работы с текстовыми файлами

1. ReadLn (var F: Text)

Процедура осуществляет переход к началу следующей строки, т.е. пропускает все символы текущей строки.

2. WriteLn (var F: Text)

Процедура записывает символ "Конец строки" в текстовый файл.

3. EOLN (var F: Text): Boolean

Функция возвращает TRUE, если в файле F найден символ "Конец строки" или символ "Конец файла" и FALSE - в противном случае.

Замечание. С символом EOLN оперируют следующие процедуры:

процедура WriteLn (F) записывает символ "Конец строки" (EOLN) в компонент файла, на который установлен указатель файла;

процедура ReadLn (F) пропускает оставшуюся часть текущей строки и устанавливает указатель файла на первый символ новой строки.

4. EOF (var F: Text): Boolean

При работе с текстовым файлом функция возвращает результат TRUE, если указатель файла расположен в позиции символа "Конец файла" ("CTRL"+"Z") и FALSE - в противном случае.

5. SeekEOLN (var F: Text): Boolean

Аналогична функции EOLN, но пропускает символы "Пробел" перед проверкой на достижение символа "Конец строки".

6. SeekEOF (var F: File): Boolean

Аналогична функции EOF, но пропускает символы "Пробел" и символы "Конец строки" перед проверкой на достижение символа "Конец файла".

В. Нетипизированные файлы

Эти файлы состоят из компонентов одинакового размера, структура которых неизвестна или не имеет значения. Такие файлы применяются, в частности, или в процедурах копирования, или при обработке файлов базы данных.

Описание нетипизированного файла: var F: File;

Для обработки файлов без типа применяют те же функции, что и для файлов с типом (т.е. функции EOF, FileSize, FilePos).

Типизированные файлы - это файлы прямого доступа.

Типизированный файл - это файл, состоящий из последовательности элементов (называемых компонентами) одного типа. Количество компонентов файла при задании файла не ограничивается.

Так как все компоненты файла имеют одинаковую "длину", то позиция каждого компонента в файле может быть вычислена.

Длиной файла называется число находящихся в нём компонентов. Пустым файлом называется файл, не содержащий компонентов. Длина пустого файла равна нулю.

Не допускается использование файловых переменных в операторах присваивания и в выражениях. Над файлами можно выполнять два явных вида действий:

1. Создание файла. Оно выполняется в результате добавления новых компонент в конец первоначально пустого файла. В процессе создания новые значения разрешается записывать только в конец файла;

2. Просмотр файла. Он выполняется в результате последовательного продвижения по файлу, начиная с его начала. При этом в каждый момент времени доступен лишь один компонент файла. В процессе просмотра файла изменять значения компонентов на новые запрещается.

Начать писать в файл можно только с самого его начала, дописывая новые компоненты последовательно одну за другой; для чтения также надо начинать просмотр файла с самого начала. Вследствие такой организации на одном просмотре файла нельзя совмещать и чтение, и запись информации: можно либо только читать из файла, либо только писать в файл. Однако, работая с различными файлами A и B, можно одновременно читать файл A и писать в файл B (и наоборот).

Все остальные действия над файлами последовательного доступа являются композицией его просмотра и создания.

Условные операторы предназначены для изменения порядка выполнения инструкций программы, в соответствии с некоторым условием.

IF условие THEN оператор 1 ELSE оператор 2; (полная форма)



условие

Действие 2

Действие 1

Блок-схема:



Добавление к конструкции служебного слова ELSE позволяет выполнить определенные действия в случае, когда условие не выполняются.

Циклы с параметром.

При использовании цикла со счетчиком следует задать переменную-счетчик. При этом надо помнить, что тип такой переменной должен быть скалярным: Integer, Char, Boolean, перечисляемый тип.

For <начальное значение счетчика> To <конечное значение> Do <тело цикла>;

Счетчик меняется от меньшего к большему с шагом 1

For <начальное значение счетчика> Downto <конечное значение> Do <тело цикла>; Счетчик меняется от большего к меньшему с шагом - 1



Специальная часть. Общая постановка задачи



Решение задачи численного интегрирования методом прямоугольников.

Описание программ комплекса.

В данной программе использованы следующие программные средства:

Модули:

Graph- подключение графического режима;

Crt - подключение текстового режима;

Файлы:

rezyltat. txt - результаты вычислений.

Процедуры:

Procedure BMP, BMP2, BMP 3- Выводит 256-цветный точечный рисунок;

Zastavca-вывод заставки на экран;




начало

    okno

    BMP

   BMP3

      zastavca

 меню

    BMP2

  Integral3

  Integral2

  Integral1

 rezyltat

 выход

конецМакро блок-схема комплекса



Таблица идентификаторов комплекса.

№

Переменные

 тип

Значения

1

a

 string

Массив для хранения пункта меню

2

Gm, gd

 integer 

Переход в графический режим

3

k

 integer

Выбор пункта меню

4

f

 text

Текстовый файл

5

n

 integer

количество отрезков

6

i

 integer

Параметр цикла

7

s

 real

Вычисление конечного результата

8

a

 real

нижний предел интегрирования

9

b

 real

верхний предел интегрирования

10

x

 real

Аргумент функции

11

h

 real

Шаг интегрирования

12

x, y

 integer

Координаты вывода меню

13

с

 char

Запоминает код нажатой клавиши



Структура записей файлов.







      Программа

Титульный лист

Теория

Заставка

Результат

Постановка проблемной программы (процедуры).

Проблемной программой является процедура вывода на экран 256-цветного точечного рисунка.

Описание проблемной программы.

procedure BMP; (Процедура вывода на экран 256-цветного точечного рисунка)

var f: file of byte; (Раздел описания переменных)

x,y, i,Gd,Gm: integer;

c: byte;

begin

Gd: =Detect; (Определяет тип графического режима (номер драйвера))

InitGraph (Gd, Gm, ' '); (Устанавливает графический режим экрана)

If GraphResult <> grOk Then Halt (1);

assign (f,'tityl. bmp'); (Связывает файл с файловой переменной)

reset (f); (Открывает файл для чтения)

for i: =0 to 1077 do (Переход на 1077 позицию)

read (f,c); (ввод данных)

for y: =479 downto 0 do

for x: =0 to 639 do

begin

read (f,c); (Считывает информацию с файла)

putpixel (x,y,c); (Вывод рисунка)

end;

readkey; (Ожидание нажатия клавиши)

close (f); (Закрывает файл)

closegraph; (Закрывает графический режим экрана)

end;





начало

    f

   i:=0,1077,1

 f, c

   y:=479,0,-1

   x:=0,639,1

 f, c

 x, y, c

Конец Блок-схема проблемной программы.






Организация производства. Комплекс технических средств, необходимый для решения задачи



Системные требования:

Операционная система MS DOS или Windows 98-XP.

Среда программирования Turbo Pascal 7.0.

Инструкция пользователю по работе с программой.

Для функционирования Pascal 7.0, так как приложение написано в этом режиме. Сама программа установки не требует, необходимо скопировать файлы в папку Turbo Pascal.

Запуск программы осуществляется автоматически при её открытии.

Для вычисления интеграла необходимо выбрать метод его вычисления из предложенного списка.

В ответ на приглашение к вводу значений следует ввести требуемые величины. Не стоит вводить запредельные границы интервала.

Данная программа вычисляет значение интеграла функции. Интервал интегрирования вводятся пользователем. Программа вычислит результат и выдаст его (в числовом виде) на экран монитора.


Заключение



На мой взгляд, можно сказать, что в целом, я справилась с работой. Конечно же, не обошлось без трудностей выполнения задания, особенно было сложно написать текст программы, поскольку надеяться пришлось только на свои силы, да и к тому же с подобного рода задачей я столкнулась впервые.

Подводя итог своего труда, хочу сказать, что я выполнила почти все поставленные цели.

Программа приближенно вычисляет определенный интеграл с помощью метода прямоугольников. Метод прямоугольников обладает высокой скоростью вычисления, но меньшей точностью.


Список литературы



1. Немнюгин С.А. Turbo PASCAL С-П Изд-во Питер 2000.

2. Фаронов В.В. Turbo Pascal 7.0. М. "Нолидж", 1999

3. Семакин И.Г., Шестаков А.П. Основы программирования Москва Из-во "Академия" 2007

4. Васюкова Р.Д., Практикум по основам программирования, Язык ПАСКАЛЬ, М, ВШ, 1991

5. Новичков В.С., Алгоритмические языки в техникуме, ПАСКАЛЬ, М, 1990

6. Культин Н. Turbo Pascal в задачах и примерах Санкт - Петербург "БХВ - Петербург" 2007

7. А.И. Марченко, Л.А. Марченко. Программирование в среде Turbo Pascal 7.0 Москва из-во "Юниор" 1997

8. Кирнос В.И. Язык Паскаль и численные методы. Из-во "Келеш-2030" 2004.