Расчет значения интеграла функции, заданной графически

Составление программы на языке Turbo Pascal 7.0 вычисления значения интеграла на интервале для функции, заданной графически. Решение задачи с использованием разработанного программного обеспечения. Создание инструкции программисту и пользователю.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 26.10.2017
Размер файла 433,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

Введение

1. Задача №1

1.1 Содержательное описание задачи

1.2 Математическая формулировка задачи

1.3 Полное описание численного метода решения

1.4 Разработка структур данных, необходимых для решения задачи

1.5 Разработка структур алгоритма решения задачи

1.6 Текст программы на языке программирования Turbo Pascal 7.0

1.7 Тестовый пример

1.8 Инструкция программисту

1.9 Инструкция пользователю

2. Задача №2

2.1 Описание задачи

2.2 Математическая формулировка задачи

2.3 Полное описание численного метода решения задачи

2.4 Разработка структур данных, необходимых для решения задачи

2.5 Разработка структуры алгоритма решения задачи

2.6 Текст программы

2.7 Тестовый пример

2.8 Инструкция программисту

2.9 Инструкция пользователю

3. Задача №3

3.1 Содержательное описание задачи

3.2 Математическая формулировка задачи

3.3 Полное описание численного метода решения задачи

3.4 Разработка структур данных, необходимых для решения задачи

3.5 Разработка структуры алгоритма решения задачи

3.6 Текст программы на языке программирования Turbo Pascal 7.0

3.7 Тестовый пример

3.8 Инструкция программисту

3.9 Инструкция пользователю

Введение

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

Программирование как научное направление возникло с появлением вычислительных машин и только программное обеспечение определяет эффективность использования ЭВМ. На ЭВМ могут решаться задачи различного характера. В процессе подготовки и решения на ЭВМ задач можно выделить следующие этапы:

- постановка задачи;

- математическое описание задачи;

- выбор и обоснование метода решения;

- алгоритмизация вычислительного процесса;

- составление программы;

- отладка программы;

- решение задач на ЭВМ;

- анализ полученных результатов.

Так как в данной контрольно-курсовой работе решение всех поставленных задач осуществляется через IDE Borland TurboPascal 7.0, то вполне уместно привести историческую справку о этом языке.

Turbo Pascal -- это среда разработки для языка программирования Паскаль. Используемый в Turbo Pascal диалект базировался на более раннем UCSD Pascal, получившем распространение, в первую очередь, на компьютерах серии Apple II. Компилирующая компонента Turbo Pascal была основана на компиляторе Blue Label Pascal, первоначально созданном в 1981 году Андерсом Хейлсбергом для операционной системы NasSys микрокомпьютера Nascom. Позднее он был переписан как Compass Pascal для операционной системы CP/M, затем как Turbo Pascal для DOS и CP/M. Одна из версий Turbo Pascal была доступна под Apple Macintosh примерно с 1986 года, но её разработка прекратилась примерно в 1992 году.В 1982 году Филипп Кан приобрёл компилятор у Андерса Хейлсберга и перебрался из Парижа в Калифорнию, где основал компанию Borland.

Когда в 1983 году появилась первая версия Turbo Pascal, такой тип среды разработки был относительно новым. Во время дебюта на американском рынке Turbo Pascal продавался по цене в $49,99. Помимо привлекательной цены, встроенный компилятор Паскаля также был очень высокого качества. Приставка «Turbo» намекала как на скорость компиляции, так и на скорость производимого им исполняемого кода. Turbo Pascal создавал машинный код за один проход, без шага компоновки.

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

За первые два года было продано не менее 300 тысяч копий компилятора, что превзошло объём продаж всех прочих языков для микрокомпьютеров.

Для того времени это была потрясающая среда разработки. Она была проста и интуитивно понятна, с хорошо организованным меню. Ранние версии использовали раскладку горячих клавиш WordStar. В более поздних версиях появилась возможность быстро получить определение ключевого слова языка, просто поставив курсор на ключевое слово и нажав клавишу справки. Справочные статьи часто включали примеры кода, использующего данное ключевое слово. Это позволяло неопытным программистам изучать Паскаль даже без помощи книг, используя лишь среду разработки. В поставку входило большое количество исходных текстов демонстрационных и прикладных программ. В их числе были даже шахматы.

Среда позволяла легко встраивать в код на Паскале вставки на языке ассемблера. Пользователь имел возможность проходить программу шаг за шагом; при переходе на ассемблерный блок это также работало. В любой момент пользователь мог добавить переменную или регистр в удобно расположенное окно для наблюдения за ними. При построчной отладке программ, использующих графические режимы IBM PC, происходило корректное переключение между графическим режимом программы и текстовым режимом среды разработки.

Помимо всего этого, имелось средство профилирования. Книги, включённые в поставку Borland Pascal, давали детальное описание языка ассемблера Intel вплоть до указания количества тактовых циклов, необходимых для выполнения каждой инструкции. В общем и целом, система давала превосходные возможности для оптимизации кода; пользователю не требовалось пользоваться чем-либо, кроме среды разработки. Всё было сделано так идеально, что даже школьник мог этим пользоваться. Эти качества позволили версии Паскаля от Borland стать стандартом языка Паскаль де-факто. Turbo Pascal часто используется в школах благодаря простоте своей конструкции и жесткости компилятора.

С начала 1990-х TP/BP используется в университетах для изучения фундаментальных концепций программирования.

Вероятно, разработка Microsoft Pascal была прекращена из-за конкуренции с высоким качеством и небольшой ценой Turbo Pascal. Другая версия гласит, что Borland заключил соглашение с Microsoft на прекращение разработки Turbo Basic (среды разработки для BASIC, ответвившейся от Turbo Pascal), если Microsoft прекратит разработку Microsoft Pascal. Некоторое время Microsoft выпускал QuickPascal, который был почти 100%-совместим с Turbo Pascal.

В течение нескольких лет Borland улучшал не только среду разработки, но и язык. В версии 5.0 появились процедурные типы. В версии 5.5 в него были введены передовые возможности объектно-ориентированного программирования. Интегрированная среда так же была реализована с использованием ООП. Последней выпущенной версией была 7.0. Профессиональная поставка Borland Pascal 7.0 включала в себя среду разработки, компилятор и отладчики для создания программ под реальный режим DOS, под DOS в 16-битном защищенном режиме с использованием расширителя DOS RTTM и драйвера DPMI, а также под Windows 3.x. Наряду с универсальными IDE и компилятором в поставку входил Borland Pascal for Windows с графической IDE для Windows 3.x и объектно-ориентированной библиотекой OWL, а также Turbo Pascal 7.0 для создания DOS-программ реального режима. Turbo Pascal 7.0 можно было приобрести отдельно.

С 1995 года в Borland прекратили разработку Turbo Pascal и предложили в качестве замены среду разработки Delphi. Новая версия языка подверглась изменению (в особенности ООП), и языку вернулось изначальное название, закреплённое разработчиками Apple Object Pascal. Старая объектная модель Turbo Pascal и соответствующий синтаксис поддерживался как устаревший, использование обеих объектных моделей одновременно в одной и той же программе не поддерживается.

Итак, после рассмотрения краткой исторической справки о развитии Turbo Pascal, стоит перейти к описанию задания.

В этой курсовой работе необходимо выполнить 3 задачи.

1) Расчет значения интеграла функции, заданной графически. Для решения этой задачи используется итерационный метод левых прямоугольников. При решении используется не графический, а алгебраический метод.

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

3) Нахождение среднего значение элементов, расположенных за главными диагоналями матрицы.

1. Задача №1

1.1 Содержательное описание задачи

Составить программу на языке Turbo Pascal 7.0 вычисления значения интеграла на интервале [a, b] для функции, заданной графически (рис.1). Значение интеграла вычислить приближённо по итерационной формуле левых прямоугольников.

Рисунок 1 - Функция, заданная графически

1.2 Математическая формулировка задачи

Итак, изначально дана формула интеграла, с помощью которого требуется решить эту задачу (рис. 2).

Рисунок 2 - Итерационная формула левых прямоугольников

Итак, h=(b-a)/n - величина шага между двумя соседними точками разбиения интервала интегрирования; fi = f(xi) - значение функции в точке xi = a+h(i-1); i = 1,2,...n.

Вычисления закончить при выполнении условия In-I2n < , где >0 - достаточно малое значение, задаваемое пользователем (точность вычислений). Здесь In, I2n - значения интеграла, вычисленные по (1) при количестве интервалов разбиения n и 2n соответственно.

Для вычисления значений функции в точках хi необходимо представить функцию в аналитическом виде

1.3 Полное описание численного метода решения

График функции можно разделить на 4 участка АВ, ВС, CD и DE

На участке АВ: - прямая линия, проходящая через точку (-R, 0) под углом 60.

Уравнение этой прямой будет следующим:

y(x) =

На участке BC: функция представляет собой участок функции y(x) = cos(x):

На участке CD: функция представляет собой дугу окружности описываемой уравнением:

y(x) =

На участке DE: функция представляет собой прямую линию, проходящую через точку (3R, 0) под углом 30. Уравнение этой прямой будет следующим:

y(x) =

Таким образом, функция будет выглядеть следующим образом:

1.4 Разработка структур данных, необходимых для решения задачи

Переменные целого типа:

i - переменная цикла,

n - количество интервалов разбиения

Переменные вещественного типа:

a - нижняя граница интегрирования;

b - верхняя граница интегрирования;

R - параметр функции;

e - точность вычислений;

I, I2 - вычисленные значения интеграла;

x - переменная функции;

h - величина шага между двумя соседними точками разбиения интервала интегрирования.

1.5 Разработка структур алгоритма решения задачи

Ниже приведена схема алгоритм вычисления значение интеграла (рис. 3, рис.4, рис.5, рис.6).

Рисунок 3 - Ввод и проверка переменных

Рисунок 4 - Ввод и проверка переменных (продолжение)

Рисунок 5 - Вычисление интеграла функции и вывод результата

1.6 Текст программы на языке программирования Turbo Pascal 7.0

Далее текст программы «LinkinPark» на языке программирования IDE Borland Turbo Pascal 7.0, выполняющей вычисления таблицы значений функции, заданной в виде разложения в ряд.

program LinkinPark;

Uses crt;

var pr,j,n:integer;

a,b,R,e,I,I2,x,h,fi,fi2,pi:real;

str1:string;

begin

clrscr;

I2:=0;

repeat

writeln('Введите нижнюю границу интегрирования. a=');

readln(str1);

val(str1,a,pr);

if pr<>0 then

writeln('Ошибка, введен символ. Введите цифру.');

until pr=0;

repeat

writeln('Введите верхнюю границу интегрирования b=');

readln(str1);

val(str1,b,pr);

if pr<>0 then

writeln('Ошибка. Введен символ. Введите цифру.');

if (a=b) or (a>b) then

writeln('Ошибка. а<>b и b>a')

if b=0 then

writeln(`Ошибка. b<>0');

until((pr=0)and(b>a)and(b<>0));

repeat

writeln('Введите параметр функции R');

readln(str1);

val(str1,R,pr);

if pr<>0 then

writeln('Ошибка. Введен символ. Введите цифру.');

until pr=0;

repeat

writeln('Введите точность вычислений');

readln(str1);

val(str1,e,pr);

if pr<>0 then

writeln('Ошибка. Введен символ. Введите цифру.');

until pr=0;

I:=0;

pi:=3.14159265;

n:=10;

while abs(I2-I)<=e do

begin

h:=(b-a)/n;

I2:=I;

I:=0;

for j:=1 to n do

begin

x:=a+h*(j-1);

if x<-R then

fi:=-(x+R)*(sin(pi/3)/cos(pi/3))

else

begin

if x<R then

fi:=cos(x)

else

begin

if x<3*R then

fi:=sqrt(R*R-((x-2*R)*(x-2*R)))

else

fi:=(x-3*R)*(sin(pi/6)/cos(pi/6));

end;

end;

I:=I+fi*h;

n:=n*2;

end;

end;

writeln(I:5:7);

end.

1.7 Тестовый пример

Аналитическое решение

Посчитаем значение интеграла со следующими параметрами (рис.7).

R=2, a= -4, b=-2, n=10, e=0.001

Таким образом, значение интервала на данном участке равна 3.81.

Решение задачи с использованием разработанного ПО

Рассчитаем значение этого же интеграла через программу «LinkinPark». Ниже приведено окно вывода с результатами (рис. 7).

Рисунок 6 - графическое отображение введенного интеграла

Рисунок 7 - Тестовый ввод

По приведенному выше рисунку 7 можно сделать вывод о том, что данная программа работает корректно. Отличие в результатах обусловлено тем, что вычисление по методу левых прямоугольников дает приближенное значение интеграла

1.8 Инструкция программисту

Программа «LinkinPark» вычисляет интеграл функции, заданной графически на промежутке [а,b]. Далее приведена таблица переменных, используемых в программе (табл. 1).

Таблица 1 - Описание переменных «LinkinPark»

Имя

Тип

Предназначение

i

integer

Переменная цикла

n

integer

Количество интервалов разбиения

a

real

Нижняя граница интервала

b

real

Верхняя граница интервала

R

real

Параметр функции

e

real

Точность вычислений

I

real

Значения интеграла на данной итерации

I2

real

Значение интеграла всей функции

x

real

Переменная функции

str1

boolean

Переменная для проверки

h

real

Величина шага между

pr

integer

Переменная для проверки

1.9 Инструкция пользователю

1. Ввести границы интегрирования (верхнюю и нижнюю).

2. Осуществить ввод параметра (R).

3. Ввести точность вычислений (e).

4. Просмотреть и анализировать результаты.

2. Задача №2

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

2.1 Описание задачи

Необходимо составить программу, позволяющую сумму членов ряда арифметической прогрессии, заданной определенным математическим законом. Значение функции вычислять с точностью >0, т.е. вычисление суммы членов ряда необходимо прекратить, когда абсолютная величина очередного члена ряда разложения окажется меньше : ак <.

При вычислении очередного члена целесообразно воспользоваться рекурентным выражением:

ак+1=скак; к= 0, 1, 3, ...,

где ак - некоторый к-ый член ряда; ак+1 - следующий к+1-ый член ряда; ск - коэффициент, определяемый номером к.

При составлении программы необходимо по возможности воспользоваться операторами организации циклов WHILE, REPEAT, FOR.

Границы интервала вычислений функций a и b, величина шага изменения аргумента h и точность вычисления функции задаются при вводе.

На печать выводятся номер по порядку, значение аргумента, соответствующие ему, значение функции и номер члена ряда, на котором закончилось вычисление значение функции, в форме таблицы:

Функция задана в виде разложения в ряд:

Значение функции вычисляется с точностью >0, т.е. вычисление суммы членов ряда необходимо прекратить, когда абсолютная величина очередного члена ряда разложения окажется меньше : ак <.

Х

f (x)

№ чл.р.

1

2

3

...

2.2 Математическая формулировка задачи

где - k-й член ряда разложения.

2.3 Полное описание численного метода решения задачи

Для каждого значения аргумента х на интервале вычислений функций от a до b с шагом h вычисляем приближенное значение функции с точностью вычисления . При вычислении очередного члена целесообразно воспользоваться рекурентным выражением:

ак+1=скак; к= 0, 1, 3, ...,

где ак - некоторый к-ый член ряда; ак+1 - следующий к+1-ый член ряда; ск - коэффициент, определяемый номером к.

Определим коэффициент ск:

a1 = 1/3

2.4 Разработка структур данных, необходимых для решения задачи

Для вычисления значений разложения функции в ряд следует создать структуру, содержащую вложенные циклы. Кроме этого потребуются различные проверки ввода исходных значений, так как верхняя и нижние границы интервала не могут быть одинаковыми, или нижняя граница будет больше верхней. Описание смысла переменных:

Переменные целого типа: i - номер по порядку, k - номер члена ряда

Переменные вещественного типа:

a - нижняя граница интервала вычислений;

b - верхняя граница интервала вычислений;

h - величина шага изменения аргумента;

x - аргумент функции;

f - значение функции;

ak - значение k-го члена ряда

ck - рекуррентный коэффициент.

2.5 Разработка структуры алгоритма решения задачи

Ниже приведена схема алгоритма разложения функции f(x) (рис. 8 и рис. 9). интеграл программный обеспечение программист

Рисунок 8 - Процесс ввода границ интервала

Рисунок 9 - Ввод размеров шага и точности, подсчет и вывод таблицы разложения функции

2.6 Текст программы

Далее текст программы RiseAgainst на языке программирования IDE Borland Turbo Pascal 7.0, выполняющей вычисление среднего значения элементов, находящихся слева и справа от двух диагоналей.

Program RiseAgainst;

uses crt;

var i,k,proverka: integer;

a,b,h,x,f,ak,ck,e: real;

str1,str2,str3,str4: string;

procprov1:boolean;

begin

clrscr;

procprov1:=false;

repeat

Writeln ('Введите нижнюю границу интервала вычислений a= ');

Readln(str1);

val(str1,a,proverka);

if (proverka<>0) then

writeln('Введено неверное значение a. a - число.');

if a=0 then

Writeln ('Введено неверное значение. a - не равно нулю');

until ((proverka=0)and(a<>0));

repeat

write ('Введите верхнюю границу интервала вычислений b= ');

Readln (str2);

val(str2,b,proverka);

if (proverka<>0) then

writeln('Введено неверное значение b. b - число');

if(b<a) then

writeln('Введено неверное значение. b больше a');

if(b=0) then

writeln('Введено неверное значение. b не равен нулю ');

until ((proverka=0)and(a<b)and(b<>0));

repeat

Write ('Введите величину шага изменения аргумента h= ');

Readln (str3);

val(str3,h,proverka);

if (proverka<>0) then

writeln('Введено неверное значение h. h - число.');

if h=0 then

Writeln ('Введено неверное значение. h - не равен нулю')

until ((proverka=0)and(h<>0));

repeat

Write ('Введите точность вычислений e: ');

Readln (str4);

val(str4,e,proverka);

if (proverka<>0) then

writeln('Введено неверное значение e. e - число.');

if h=0 then

Writeln ('Введено неверное значение. e - не равен нулю');

until((proverka=0)and(e<>0));

begin

Writeln;

writeln('| № | x | f(x) | №чл.р. |');

x:=a;i:=1;

while x<=b do

begin

f:=1/3;

ak:=1/3;

ck:=(x-2)/3;

k:=0;

repeat

ak:=ak*ck;

f:=f+ak;

k:=k+1;

until ak<e ;

writeln('|',i:5,' | ',x:8:4,' | ',f:10:7,' | ',k:5,' |');

i:=i+1; x:=x+h;

end;

Writeln;

Readln;

end;

2.7 Тестовый пример

Аналитическое решение

Посчитаем значения функции для следующих данных:

a = 3, b = 4, h = 0.1, e = 0.001. (рис. 10).

Рисунок 10 - Аналитическое решение

Решение задачи с использованием разработанного ПО

Итак, выполнив самостоятельное решение, мы можем приступить к проверке работоспособности «RiseAgainst». Введем последовательно те же величины, что и в аналитическом решении. Вывод результатов представлен ниже (рис. 11).

Рисунок 11 - вывод таблицы значений функции, заданной в виде разложения в ряд

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

2.8 Инструкция программисту

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

Таблица 2 - Описание переменных программы «RiseAgainst»

Имя

Тип

Предназначение

i

integer

номер по порядку

k

integer

номер члена ряда

a

real

нижняя граница интервала вычислений

b

real

верхняя граница интервала вычислений

h

real

величина шага изменения аргумента

x

real

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

f

real

значение функции

ak

real

значение k-го члена ряда

ck

real

рекуррентный коэффициент

str1,str2,str3,str4

string

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

procprov1

boolean

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

proverka

integer

целочисленная переменная для проверки

2.9 Инструкция пользователю

1. Запустить программу

2. Ввести нижнюю границу интервала вычислений a;

3. Ввести верхнюю границу интервала вычислений b;

4. Ввести величину шага изменения аргумента h;

5. Ввести точность вычислений e;

6. Просмотреть на экране результаты вычислений.

3. Задача №3

3.1 Содержательное описание задачи

21. Вычислить среднее арифметическое значение элементов матрицы W(L,L), L 30, расположенных слева и справа от двух диагоналей (рис. 12).

Размещено на http://www.allbest.ru/

Рисунок 12 - Элементы, расположенные справа и слева от двух диагоналей

3.2 Математическая формулировка задачи

Среднее арифметическое рассчитывается по формуле:

где xi - элементы, удовлетворяющие заданному условию, n - число элементов, удовлетворяющие заданному условию.

3.3 Полное описание численного метода решения задачи

Просматриваем все элементы заданной матрицы, а затем суммируем элементы расположенные слева и справа от двух диагоналей. Делим полученную сумму на число элементов расположенных слева и справа от двух диагоналей.

3.4 Разработка структур данных, необходимых для решения задачи

Итак, чтобы описать матрицу нам понадобится двоичный массив, следовательно, одна переменная типа array и две переменные i,j целого типа для описания строк и столбцов. Кроме этого пользователь сам установит размерность матрицы, целое число L и будет необходимым ввести целочисленную переменную n, которая будет вести учет количества нужных нам элементов. Через вещественные переменные Sum и Sred обозначим сумму элементов матрицы, расположенных слева и справа от двух диагоналей, и их среднее арифметическое значение соответственно.

переменные целого типа:

L - размерность матрицы;

i, j - номер строки и столбца матрицы;

n - число элементов матрицы W(L,L), расположенных слева и справа от двух диагоналей;

переменные вещественного типа:

W - двумерный массив целых чисел размерностью 3030.

Sum - Сумма элементов матрицы W(L,L), L ? 30, расположенных слева и справа от двух диагоналей;

Sred - среднее арифметическое значение элементов матрицы W(L,L), расположенных слева и справа от двух диагоналей.

3.5 Разработка структуры алгоритма решения задачи

Изначально, стоит рассмотреть, как будет осуществляться ввод размера матрицы и заполнение ее элементов, и их последующая проверка ввода. Размер вводится через переменную целочисленного типа, проверка осуществляется с помощью функции val. Иначе дело обстоит для значений матрицы. Для правильного ввода этих значений необходимо и достаточно использовать циклы с изначально заданным числом итераций, а ячейки в матрице должны быть вещественного типа для создания массовости программы.

Рисунок 13 - Ввод размера матрицы и значений ее элементов, поиск суммы элементов, находящихся слева от двух диагоналей

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

Ниже составлена схема алгоритма, вычисляющего среднее арифметическое значение элементов матрицы, расположенных слева и справа от двух диагоналей (рис. 13 и рис.14).

3.6 Текст программы на языке программирования Turbo Pascal 7.0

Далее текст программы FortMinor на языке программирования IDE Borland Turbo Pascal 7.0, выполняющий вычисление среднего значения элементов, находящихся слева и справа от двух диагоналей.

Program FortMinor;

Const F=30;

uses crt;

var

i,j,L,n,pr: integer;

Sum,Sum1,Sum2,Sred: real;

W: array [1..F,1..F] of real;

str1:string;

begin

clrscr;

begin

repeat

Write ('Введите размер матрицы W, W<',F);

Readln (str1);

val(str1,L,pr);

if pr<>0 then

writeln('Введено неверное значение. Повторите ввод.');

until pr=0;

end;

L:=odd(L);

For i:=1 to L do

for j:=1 to L do

begin

repeat

Write ('‚Введите элемент W[',i,',',j,']: ');

Readln(str1);

val(str1,W[i,j],pr);

if pr<>0 then

writeln('Введено неверное значение. Повторите ввод.');

until pr=0;

end;

writeln('Введеная матрица :');

For i:=1 to L do

begin

for j:=1 to L do

begin

Write (W[i,j]:4:1);

end;

writeln;

end;

Sum:=0;

n:=0;

For j:=1 to L div 2 do

for i:=j+1 to L-j do

begin

Sum1:=Sum1+W[i,j];

n:=n+1;

end;

For j:=L downto L div 2+2 do

for i:=j-1 downto L-j+2 do

begin

Sum2:=Sum2+W[i,j];

n:=n+1;

end;

Sum:=Sum1+Sum2;

if n>0 then

begin

Sred:=Sum/n;

writeln('Среднее арифметическое значение элементов матрицы W, ');

writeln(' расположенных слева и справа от диагоналей =', Sred:7:3);

end

else

begin

writeln (' Элементов, расположенных слева и справа от диагоналей матрицы W нет...');

Writeln;

Readln

end;

end.

3.7 Тестовый пример

Аналитическое решение

В качестве тестового примера возьмем матрицу А (рис. 15), с размером 55.

Рисунок 15 - Тестовая матрица A

Найдем элементы (рис. 16), расположенные слева и справа от двух диагоналей:

Рисунок 16 - Позиции элементов, расположенных слева и справа от двух диагоналей.

Всего таких элементов - 8. Их сумма равна: 6+1+2+3+5+6+7+2 = 32

Среднее арифметическое составляет: 32/8 = 4,0

Решение задачи с использованием разработанного ПО

А теперь проверим, как программа «FortMinor» справляется с подобной задачей. Пользователем были введены такие же данные, что и в тестовом примере. После этого была осуществлена проверка на безошибочность ввода размера матрицы и ее элементов, а затем заполненная матрица была выведена на дисплей. Следующим действием «FortMinor» определила нужные элементы матрицы, нашла и вывела их среднее значение (рис. 17).

Рисунок 17 - Вывод результатов.

Вывод - результат аналитического тестового примера совпал с результатом его же решения через программу, следовательно, программу «FortMinor» можно считать работоспособной.

3.8 Инструкция программисту

Программа «FortMinor» находит среднее значение среди всех элементов, находящихся за диагоналями матрицы. Ниже приведена таблица задействованных переменных, их типы и описание (табл. 3).

Таблица 3 - Описание переменных программы FortMinor

Имя

Тип

Предназначение

L

integer

размерность матрицы; 0<L<=30

i, j

integer

номер строки и столбца матрицы

n

integer

число элементов матрицы W(L,L), расположенных слева и справа от двух диагоналей;

W

array

двумерный массив целых чисел

Sum

real

Сумма элементов матрицы W(L,L), L ? 30, расположенных слева и справа от двух диагоналей;

Sred

real

среднее арифметическое значение элементов матрицы W(L,L), расположенных слева и справа от двух диагоналей

str1

string

Переменная для проверки

pr

integer

Переменная для проверки

Sum1

integer

Сумма элементов, находящихся слева от диагоналей

Sum2

integer

Сумма элементов, находящихся справа от диагоналей

3.9 Инструкция пользователю

1. Запустить программу

2. Ввести размерность матрицы W - L; 0<L<=30

3. Ввести поочередно значения элементов матрицы W(L, L);

4. Просмотреть на экране результаты вычислений.

Заключение

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

Размещено на Allbest.ru

...

Подобные документы

  • Вычисление значения интеграла функции, заданной графически. Постановка задач. Составление таблицы значений функции, заданной в виде разложения в ряд. Математическая формулировка. Численный метод решения. Схемы алгоритмов. Инструкции пользователям.

    курсовая работа [56,3 K], добавлен 05.07.2008

  • Составление программы для вычисления по двум формулам одной и той же переменной "X". Создание программы, которая по введенному значению аргумента вычислят значение функции, заданной в виде графика. Вывод на экран значения функции, заданной графически.

    курсовая работа [4,9 M], добавлен 14.03.2014

  • Решение трансцендентного уравнения методом Ньютона. Построение графика функции. Блок-схема алгоритма решения задачи и программа решения на языке Pascal. Вычисление значения интеграла методом трапеции, блок-схема алгоритма, погрешности вычисления.

    задача [163,4 K], добавлен 16.12.2009

  • Формулирование и создание программы по вычислению определенного интеграла по формуле трапеций с тремя десятичными знаками и по формуле Симпсона. Выбор Delphi как программного средства разработки программы. Создание алгоритма и листинг программы.

    курсовая работа [990,9 K], добавлен 15.06.2009

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

    курсовая работа [568,3 K], добавлен 07.03.2015

  • Способы и методы нахождения значения определённого интеграла. Программные средства языка C. Программные средства языка Pascal (версия 7.0). Алгоритм программы вычисления определённого интеграла. Тестирование программы. Обработка результатов измерений.

    курсовая работа [2,5 M], добавлен 01.06.2010

  • Составление программы вычисления матрицы и программы вычисления интеграла с погрешностью, не превышающей заданную величину. Схема алгоритма и её описание. Инструкция по использованию разработанной программы и проверка правильности е функционирования.

    курсовая работа [54,8 K], добавлен 27.10.2010

  • Создание схем алгоритмов и составление программы на языке Pascal для вычисления значений заданных функций. Сущность и порядок нахождения значения определенного интеграла. Анализ работы подпрограмм. Разработка тестов для проверки правильности алгоритмов.

    контрольная работа [831,0 K], добавлен 24.11.2013

  • Решение циклических программ и программ вычисления функции с условием. Уравнение в табличном редакторе Microsoft Excel и в Turbo Pascal. Вычисление определенного интеграла методом прямоугольников, трапеции, Симпсона. Линейные и нелинейные уравнения.

    курсовая работа [233,6 K], добавлен 27.12.2009

  • Оценка погрешности и точности в математике. Составление программы и алгоритма для численного дифференцирования с заданной допустимой погрешностью на алгоритмическом языке Turbo Pascal 7.0. Составление алгоритма и программы аппроксимации функции.

    курсовая работа [810,6 K], добавлен 24.03.2012

  • Создание программы для вычисления значения функции на основе определённой формулы. Уточнение структуры входных и выходных данных и определение ассемблерного формата их представления. Разработка алгоритмов для реализации работы программного обеспечения.

    курсовая работа [240,6 K], добавлен 17.06.2013

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

    дипломная работа [7,4 M], добавлен 11.06.2012

  • Создание программы, вычисляющей значение функции, заданной таблично при помощи интерполяционного полинома Лагранжа на языке Pascal с комментариями. Диалоговое взаимодействие пользователя с программой, модули для ввода и вывода данных и основных действий.

    курсовая работа [49,2 K], добавлен 02.11.2011

  • Камеральная обработка результатов геодезических измерений. Получение координат пунктов геодезической сети. Определение значения дирекционного угла. Табличные вычисления MS Excel, вычисления в MathCad. Определение правильности алгоритма для Turbo Pascal.

    курсовая работа [7,7 M], добавлен 11.01.2011

  • Разработка программы, которая по заданной самостоятельно функции будет выполнять интегрирование методом прямоугольников. Блок-схема алгоритма вычисления интеграла (функция rectangle_integrate). Экспериментальная проверка программы, ее текст на языке C.

    курсовая работа [232,0 K], добавлен 27.05.2013

  • Язык программирования Pascal и его турбооболочка. Аналитический обзор игрового программного обеспечения. Функции модуля Crt. Постановка задачи создания несложной игровой программы "Турбозмей", алгоритм реализации и описание пользовательского интерфейса.

    курсовая работа [100,4 K], добавлен 15.05.2014

  • Разработка и анализ алгоритмов с использованием электронных таблиц и прикладных программ Smath Studio, Microsoft Excel. Проверка алгоритма ветвления или выбора. Реализация циклов на примере вычисления определённого интеграла с заданной точностью.

    контрольная работа [1,0 M], добавлен 19.03.2016

  • Численные методы. Создание программного продукта, использование которого позволит одновременно исследовать два метода вычисления определенных интегралов: метод трапеций и метод Симпсона. Рассмотрен ход вычисления интеграла в виде кода программы.

    курсовая работа [834,6 K], добавлен 14.04.2019

  • Создание программного модуля для вычисления интеграла по формулам трапеции и Симпсона, определяя шаг интегрирования по оценке остаточного члена. Для разработки используется табличный процессор Excel и язык программирования Visual Basic for Application.

    курсовая работа [159,7 K], добавлен 30.08.2010

  • Постановка задачи и математическое описание ее решения. Назначение программного обеспечения. Описание принятых идентификаторов. Выбор языка программирования и написание программы на входном языке. Методика отладки программы и проведение ее тестирования.

    курсовая работа [96,1 K], добавлен 25.06.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.