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

Анализ заданной сложной функции и разработка структурной схемы алгоритма по её вычислению. Программирование отдельных блоков и структур алгоритма решаемой задачи на языке Паскаль. Полная программа в соответствии с алгоритмом. Результаты расчётов на ПК.

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

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

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

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

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

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

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

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

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

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

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

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

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

Минск-2007

Содержание

Введение

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

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

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

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

Заключение

Литература

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

;;

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

и .

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

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

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

Блок №1

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

Program 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);

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

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

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

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

4-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);

write (c[i]:5:2,' ');

s:=s+c[i];

end;

11-19:

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

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

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

for j:=1 to m do

begin

b:=b0+j*h;

if x[j]<(0.9*b) then

y[j]:=s+cos(x[j])-1

else

if (x[j]<(1.1*b)) and (x[j]>=(0.9*b)) then

y[j]:=b+ln(abs(2*a))/ln(10)-sqrt(abs(x[j]-2))/5

else

if x[j]>=(1.1*b) then

y[j]:=x[j]+(sin(x[j])/cos(x[j]));

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

end;

19-22;

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

srk:=0;

for j:=1 to m do

if j mod 5 = 0 then

srk:=srk+y[j]*y[j];

srk:=sqrt(srk/m);

23:

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

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)) -

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

gd:=detect;

initgraph(gm,gd,'c:\BP\BGI');

line(10, 480-20, 10, 480-400);

line(10, 480-20, 600, 480-20);

j:=1;

outtextXY(10,40,'Yj');

outtextXY(590,465,'j');

moveto(10+trunc(j*mas),460-trunc(y[j]*mas));

for j:=1 to m-1

do

begin

lineto(10+trunc(j*mas),460-trunc(y[j]*mas));

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

end;

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

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

Program Kyrs1;

uses crt,graph;

const

a=26;

b0=0.15;

h=2.25;

mas=20;

var

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

gd,gm,n,m,i,j:integer;

s,b,srk,min,max,y1:real;

Begin

clrscr;

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

readln (n,m);

writeln ('x massiv');

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;

writeln;

writeln ('ci massiv');

for i:=1 to n do

begin

c[i]:=2/sin(i);

write (c[i]:5:2,' ');

s:=s+c[i];

end;

writeln;

writeln ('y massiv');

for j:=1 to m do

begin

b:=b0+j*h;

if x[j]<(0.9*b) then

y[j]:=s+cos(x[j])-1

else

if (x[j]<(1.1*b)) and (x[j]>=(0.9*b)) then

y[j]:=b+ln(abs(2*a))/ln(10)-sqrt(abs(x[j]-2))/5

else

y[j]:=x[j]+(sin(x[j])/cos(x[j]));

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

end;

max:=y[1];

min:=y[1];

for j:=2 to m do begin

if max>y[j] then max:=y[j];

if min<y[j] then min:=y[j];

end;

srk:=0;

for j:=1 to m do

begin

if j mod 5 = 0 then

srk:=srk+y[j]*y[j];

end;

srk:=sqrt(srk/m);

writeln;

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

readln;

gd:=detect;

initgraph(gm,gd,'c:\BP\BGI');

line(10, 480-20, 10, 480-400);

line(10, 480-20, 600, 480-20);

j:=1;

outtextXY(10,40,'Yj');

outtextXY(590,465,'j');

moveto(10+trunc(j*mas),460-trunc(y[j]*mas));

for j:=1 to m-1 do

begin

lineto(10+trunc(j*mas),460-trunc(y[j]*mas));

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

end;

readln;

end.

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

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

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

Заключение

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

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

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

X(1)=

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

Y(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г.

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

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

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

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


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

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

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

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

    курсовая работа [1,0 M], добавлен 03.07.2011

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

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

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

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

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

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

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

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

  • Участники и инструментальные средства создания экспертной системы. Классификация, преимущества, сферы применения экспертных систем. Разработка блок-схемы алгоритма и программы на языке Турбо Паскаль для решения задачи по теме "Двумерные массивы".

    курсовая работа [1,0 M], добавлен 18.01.2014

  • Особенности программирования на языке Паскаль в среде Турбо Паскаль. Линейные алгоритмы, процедуры и функции. Структура данных: массивы, строки, записи. Модульное программирование, прямая и косвенная рекурсия. Бинарный поиск, организация списков.

    отчет по практике [913,8 K], добавлен 21.07.2012

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

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

  • Программирование на языке Паскаль: алфавит, решение задач, простейшие программы, разветвляющие программы, циклические программы, ввод-вывод, массивы, подпрограммы, строковые данные, записи, файлы, использование библиотеки CRT, графика в Паскале.

    учебное пособие [211,1 K], добавлен 30.03.2008

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