Смекни!
smekni.com

Решение прикладной задачи (стр. 2 из 2)

m – количество элементов в массиве y. m=5.

Требуемые функции и процедуры:

Sqrt – арифметическая функция, возвращающая квадратный корень аргумента.

Sqr – арифметическая функция, возвращающая аргумент в квадрате.

Exp – возвращает экспоненту аргумента.

Cos – возвращает косинус аргумента.

Proizvedenie (x,y[j],n) – вычисляет произведение элементов по формуле

.

Symma (x,y[j],n) –вычисляет сумму элементов по формуле

.

Графическое представление алгоритма процедуры Massive_Z:

Листинг процедуры Massive_Z:

Procedure Massive_Z (y1:Massiv;m1:integer);

begin

for j:=1 to m1 do

if a>=y1[j] then

z[j]:=a*Sqr(cos(al))+(1/(b*Sqrt(exp(-t))))+Proizvedenie (x,y[j],n)

else

if a<y1[j] then

z[j]:=a*((exp(-(Sqr(t-tay))))/(Sqrt(a-b)))*Symma (x,y[j],n);

end;


5. Разработка схемы алгоритма и текста основной программы и их описание

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

В программе используется одна из директив компилятора {$N+), которая позволяет использовать числовой сопроцессор, т.е. реализовывать операции с плавающей точкой программно.

В программе используются константы:

в программе используется тип Massiv=array [1..d] of real.

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

x:Massiv – озномерный массив вещественных чисел размерностью n.

y:Massiv – одномерный массив вещественных чисел размерностью m;

z – одномерный массив чисел типа double размерностью d;

i,j – типа integer;

h,k – типа double;

Графическое представление алгоритма основной программы:


Листинг основной программы:

Begin

clrscr;

writeln ('Курсовая работа "Решение прикладной задачи"');

writeln;

k:=(Xmax-Xmin)/(n-1);

writeln ('Шаг для вычисления массива x равен ',k:10:4);

h:=(Ymax-Ymin)/(m-1);

writeln ('Шаг для вычисления массива y равен ',h:10:4);

x[1]:=Xmin;

for i:=2 to n do

x[i]:=x[i-1]+k;

y[1]:=Ymin;

for j:=2 to m do

y[j]:=y[j-1]+h;

writeln ('Исходный массив x');

for i:=1 to n do

begin

write (x[i]:10:4, '':2);

if ((i mod 5)=0) then writeln;

end;

writeln ('Исходный массив y');

for j:=1 to m do

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

writeln;

Massive_Z (y,m);

writeln ('Вычисленный массив z равен');

for j:=1 to m do

writeln (z[j]);

writeln;

write ('Нажмите любую клавишу...');

readln;

End.


Заключение

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


Список использованных источников литературы

1. Фаронов В.В. Turbo Pascal 7.0 – М.: «Нолидж», 2001 г. – 576 с.


Приложение А

Листинг программы

Program Kyrsov_rabota;

{$N+}

uses crt;

const

n=10;

m=5;

a=23.56;

b=7.86;

al=0.364;

t=10;

tay=0.05;

d=100;

Ymin=0.1;

Ymax=100;

Xmin=-10;

Xmax=100;

type

Massiv=array [1..d] of real;

var

x,y:Massiv;

z:array [1..d] of double;

i,j:integer;

h,k:double;

Function Proizvedenie (x1:Massiv;y1:double;n1:integer):double;

var

p1:double;

i:integer;

begin

p1:=1;

for i:=1 to n1 do

p1:=p1*(x1[i]-y1);

Proizvedenie:=p1;

end;

Function Symma (x1:Massiv;y1:double;n1:integer):real;

var

s1:real;

begin

s1:=0;

for i:=1 to n1 do

s1:=s1+(x1[i]-y1);

Symma:=s1;

end;

Procedure Massive_Z (y1:Massiv;m1:integer);

begin

for j:=1 to m1 do

if a>=y1[j] then

z[j]:=a*Sqr(cos(al))+(1/(b*Sqrt(exp(-t))))+Proizvedenie (x,y[j],n)

else

if a<y1[j] then

z[j]:=a*((exp(-(Sqr(t-tay))))/(Sqrt(a-b)))*Symma (x,y[j],n);

end;

Begin

clrscr;

writeln ('Курсовая работа "Решение прикладной задачи"');

writeln;

k:=(Xmax-Xmin)/(n-1);

writeln ('Шаг для вычисления массива x равен ',k:10:4);

h:=(Ymax-Ymin)/(m-1);

writeln ('Шаг для вычисления массива y равен ',h:10:4);

x[1]:=Xmin;

for i:=2 to n do

x[i]:=x[i-1]+k;

y[1]:=Ymin;

for j:=2 to m do

y[j]:=y[j-1]+h;

writeln ('Исходный массив x');

for i:=1 to n do

begin

write (x[i]:10:4, '':2);

if ((i mod 5)=0) then writeln;

end;

writeln ('Исходный массив y');

for j:=1 to m do

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

writeln;

Massive_Z (y,m);

writeln ('Вычисленный массив z равен');

for j:=1 to m do

writeln (z[j]);

writeln;

write ('Нажмите любую клавишу...');

readln;

End.


Приложение Б

Результат работы программы

Рисунок Б1 – результат выполнения программы