Разработка Паскаль-программы для решения сложной функции

 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ БЕЛАРУСЬ

БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И РОБОТОТЕХНИКИ

Кафедра «Электропривод и автоматизация промышленных установок и технологических комплексов»







Курсовая работа

по дисциплине: «Информационные технологии»

на тему: «Разработка Паскаль-программы для решения сложной функции»




Выполнил: студент группы 107626

Д.В. Гансецкий







Минск-2007

Содержание


Введение

1. Анализ заданной функции и разработка структурной схемы алгоритма по её вычислению

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

3. Полная программа в соответствии с алгоритмом

4. Результаты расчётов на ПК

Заключение

Литература


Введение


Алгоритмический язык Паскаль разработан профессором Цюрихского технологического института Никлаусом Виртом в 1969-71 годах для обучения студентов структурному программированию. Идеи, заложенные в основу создания языка, позволили фирме Borland International значительно расширить алгоритмические средства языка, а удобный интерфейс (меню команд) и высокая скорость компиляции (процесса перевода текста программы в машинные коды) сделали язык Турбо-Паскаль (Turbo-Pascal) одним из самых распространенных среди начинающих и профессиональных программистов.

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

Программирование заключается в записи алгоритма на языке программирования и отладке программы. Текст программы записывается в текстовом редакторе, затем программа компилируется - переводится транслятором (переводчиком) в машинные коды и запускается на выполнение. Процесс отладки программы начинается с выявления:

? синтаксических ошибок в тексте (неверно записанных операторов),

? ошибок при выполнении программы (недопустимые математические действия, операции с числами, превосходящими предельные значения),

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

Задачи работы:

1.Научиться анализировать функции различной сложности и выделять повторяющиеся элементы.

2.Научиться разрабатывать алгоритмы для решению задач.

3.Научиться разрабатывать функции с пред- и постусловиями.

. Приобрести навыки программирования на языке Турбо Паскаль.

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

алгоритм паскаль функция программа


1. Анализ заданной функции и разработка структурной схемы алгоритма по её вычислению


Согласно заданию необходимо вычислить заданную сложную функцию,



где n =6, j = 1..m, m = 25, h=2,25; a=26;


;;


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


и .


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

Определив промежуточные переменные необходимо использовать разветвление на три направления, определяющее рабочую формулу на данном шаге. С учётом данных тезисов разрабатывается структурная блок-схема алгоритма программы, которая представлена на рисунке 1.1.


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


Блок №1

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

Kyrs1;

uses crt,graph;

const

a=26;

b0=0.15;

h=2.25;

var

y,c,x:array[1..40] of real;

n,m,i,j:integer;

s,b,srk:real;

Begin

clrscr


Блоки №2,6,10,18,22

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


writeln ('vvedite kol-vo chlenov c,x');

readln (n,m);


Или, например, блок№22 выводит значения средне квадратичного значения функции yj:

writeln ('sredkvadr',srk:5:2);


Программирование циклических структур

В нашей программе циклические структуры описывают блоки:

-6, 7-10, 11-18, 19-21.

Первых два цикла похожи по своей структуре, в тела этих циклов входят блоки:

-6:

Блок№5 - вычисление массива x[j] и b.

Блок№6 - вывод этих массивов почленно:


for j:=1 to m do

begin

b:=b0+j*h;

x[j]:=(exp(2/5*ln(b))+a)/(2*j);

write (x[j]:5:2,' ');

end;


7-10:

Блок№8 - вычисление массива С[i]

Блок№9 - вывод этого массива почленно:


for i:=1 to n do

begin

c[i]:=2/sin(i);(c[i]:5:2,' ');:=s+c[i];

end;


-19:

Цикл 11-18 описывает вычисление сложной функции yj и заполнение соответствующего массива. В тело этого цикла входят два условных оператора, осуществляющих вычисление сложной функции по заданным условиям, идущим по трём веткам программы:

Блоки№13,15: блоки условного оператора if

Блоки№14,16,17 вычисление сложной функции


for j:=1 to m do:=b0+j*h;x[j]<(0.9*b) then[j]:=s+cos(x[j])-1(x[j]<(1.1*b)) and (x[j]>=(0.9*b)) then[j]:=b+ln(abs(2*a))/ln(10)-sqrt(abs(x[j]-2))/5x[j]>=(1.1*b) then[j]:=x[j]+(sin(x[j])/cos(x[j]));(y[j]:5:2,' ');;


19-22;

В этих блоках идет вычисление среднего квадратичного значения функции:

:=0;j:=1 to m doj mod 5 = 0 then :=srk+y[j]*y[j];:=sqrt(srk/m);

:


В этом цикле идет построение графика сложной математической функции:

line(10, 480-20, 10, 480-400) и line(10, 480-20, 600, 480-20) - построение координатных осей.

outtextXY(10,40,'Yj') и outtextXY(590,465,'j') - обозначение осей Y(j) и j соответственно.

Moveto(10+trunc(j*mas),460-trunc(y[j]*mas)) - построение соответствующих точек. Где trunc(j*mas) и trunc(y[j]*mas) - округление дробных чисел до целого числа.


Lineto(10+trunc(j*mas),460-trunc(y[j]*mas)) - (10+trunc(j*mas),460-trunc(y[j]*mas),9) -

:=detect;(gm,gd,'c:\BP\BGI');(10, 480-20, 10, 480-400);(10, 480-20, 600, 480-20);:=1;(10,40,'Yj');(590,465,'j');(10+trunc(j*mas),460-trunc(y[j]*mas));j:=1 to m-1(10+trunc(j*mas),460-trunc(y[j]*mas));(10+trunc(j*mas),460-trunc(y[j]*mas),9);

end;


. Полная программа в соответствии с алгоритмом


Полная рабочая программа написанная по блок схеме алгоритма представленного на рисунке 1.1 будет иметь следующий вид:

Kyrs1;crt,graph;=26;=0.15;=2.25;=20;,c,x:array[1..40] of real;,gm,n,m,i,j:integer;,b,srk,min,max,y1:real;;('vvedite kol-vo chlenov c,x');(n,m);('x massiv');j:=1 to m do:=b0+j*h;[j]:=(exp(2/5*ln(b))+a)/(2*j);(x[j]:5:2,' ');;;('ci massiv');i:=1 to n do[i]:=2/sin(i);(c[i]:5:2,' ');:=s+c[i];;;('y massiv');j:=1 to m do:=b0+j*h;x[j]<(0.9*b) then[j]:=s+cos(x[j])-1(x[j]<(1.1*b)) and (x[j]>=(0.9*b)) then[j]:=b+ln(abs(2*a))/ln(10)-sqrt(abs(x[j]-2))/5[j]:=x[j]+(sin(x[j])/cos(x[j]));(y[j]:5:2,' ');; :=y[1];:=y[1];j:=2 to m do beginmax>y[j] then max:=y[j];min<y[j] then min:=y[j];;:=0;j:=1 to m doj mod 5 = 0 then:=srk+y[j]*y[j];;:=sqrt(srk/m);;('sredkvadr',srk:5:2);;:=detect;(gm,gd,'c:\BP\BGI');(10, 480-20, 10, 480-400);(10, 480-20, 600, 480-20);:=1;(10,40,'Yj');(590,465,'j');(10+trunc(j*mas),460-trunc(y[j]*mas));j:=1 to m-1 do(10+trunc(j*mas),460-trunc(y[j]*mas));(10+trunc(j*mas),460-trunc(y[j]*mas),9);;

readln;

end.


4 Результаты расчётов на ПК


График функции Y(j) представлен на рисунке 4.1


Рисунок 4.1-График функции Y(j).

Заключение


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

С целью проверки правильности полученных результатов произведем ручной расчет сложной математической функции Y(j) для значения j=1.

=bнач+j*h=0,15+1*2,25=2,4

X(1)=


Очевидно, что x>>b, и значит Y(j) будет считаться по следующей формуле:

(1)=X(1)+tg(X(1))=13,71+tg(13,71)=13,71+2,2=15,91?15,90


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


Литература


1.Изучаем Turbo Pascal / Под ред. С. Немнюгин, Л. Перколаб - С.-Пб.:Питер.- 2004г.-780с.

2.Конспект лекций по курсу Информационные технологии. - 2007г.

. Самоучитель по Паскалю/ Под ред. В.И. Попова, - С.-Пб.:Питер.-2004г.-325с.

.Практикум по основам программирования на языке Turbo Pascal / Под ред. Н.Д. Васюкова, В.В. Тюляева - М.: Высшая школа.- 1991г.-479с.

.Программирование на языке Turbo Pascal / Под ред. О.Н. Перминов - М.: Высшая школа.-1989г.- 295с.


МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ БЕЛАРУСЬ БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И РОБОТОТЕХНИКИ

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ