Мова програмування. Процедура реалізації підпрограми знаходження матриці. методи та вимоги оформлення звіту, Засоби перенесення результатів із програми Pascal в редактор Word

Страницы работы

Фрагмент текста работы

означає, що для досягнення тієї ж точності можна брати менше число n ділянок розбиття, а при тому ж кроці h вона дає меншу абсолютну і відносну похибки.

2. Постановка задачі

Завдання курсової роботи на тему „Використання підпрограм та функцій користувача при роботі з масивами” належить до обчислювального класу задач.

Метою розв’язання даної роботи є поетапне вирішення таких завдань:

1.  Обчислити елементи квадратної матриці  (і=1, 2,...5; j = 1,2,...5).

2.  Використовуючи елементи матриці  обчислити елементи вектора  (і =1, 2,...5), як суму елементів головної діагоналі та п’ятого стовпця матриці.

3.  Обчислити значення функції за формулою   на основі знайдених елементів вектора  з використанням вкладених циклів.

4.  Завдання. обчислити інтеграл , використовуючи формулу Сімпсона при n=100. Коефіцієнти виразу  скопіювати з відповідних елементів вектора Х, який було створено вище.

3. Алгоритм розв’язання задачі

3.1. Розглянемо першу задачу. Побудуємо блок-схему та запишемо процедуру реалізації даної задачі. Слід відмітити, що задача реалізується за допомогою вкладених циклів. Змінна циклу і є змінною зовнішнього циклу, а змінна циклу j  –   внутрішнього циклу.

3.1.1. Блок-схема для створення матриці , елементи якої визначаються за формулою

3.1.2. Процедура реалізації підпрограми знаходження матриці , елементи якої визначаються за формулою

procedure mas (var a: arr);

var i,j: integer;

begin

for i:=1 to 5 do

begin

for j:=1 to 5 do

begin

a[i,j]:=(3+i)/(i+j)*sqrt(exp(3*ln(i))+sqr(j))+exp((i-j)*ln(2));

write('a[',i,',',j,']=',a[i,j]:6:4,'  ' );

end;

writeln

end;

end;

Дана процедура формує матрицю  та виводить на екран елементи матриці по стрічках. Тіло процедури реалізовано за допомогою операторів циклу з параметром, оскільки крок змінних циклу дорівнює 1.

3.2. Складемо блок-схему та процедуру реалізації другої задачі, посилаючись на дані першої задачі. Використовуючи елементи матриці  обчислити елементи вектора  (і =1, 2,...5), як суму елементів головної діагоналі та п’ятого  стовпця матриці.

3.2.1. Блок-схема формування вектора

3.2.2.  Процедура реалізації підпрограми формування вектора

Procedure vector (a: arr; var x: array of real);

var i,j: integer;

begin

for i:=1 to 5 do

begin

x[i]:=a[i,i]+a[i,5];

write ('x[',i,']= ',x[i]:3:3,'  ');

end;

end;

Дана процедура формує вектор та виводить на екран вектор у вигляді стрічки.

3.3. Складемо блок-схему та процедуру реалізації третьої задачі посилаючись на дані першої та другої задачі. Обчислити значення функції 

3.3.1.  Блок-схема обчислення функції

3.3.2. Процедура обчислення функції

procedure func(x:array of real;var g:real);

var k: integer; p: real;

begin

g:=0; p:=1;

for i:=1 to 5 do

begin

for k:=1 to i do p:=p*x[k]/(k+exp(k*ln(2)));

g:=g+sqr(x[i])+p;

end;

writeln('G= ',g:6:4);

readln

end;

3.5. Запишемо програму розв’язку задач першої частини, опираючись на раніше створені процедури

PROGRAM kurs6;

uses crt;

type arr=array [1..5,1..5] of real;

type xrr=array [1..5] of real;

var a: arr;

x: xrr;

si, g: real;  i,j: integer;

procedure mas (var a: arr);

var i,j: integer;

begin

for i:=1 to 5 do

begin

for j:=1 to 5 do

begin a[i,j]:= (3+i)/(i+j)*sqrt(exp(3*ln(i))+sqr(j))+exp((i-j)*ln(2));

write('a[',i,',',j,']=',a[i,j]:6:4,'  ' );

end;

writeln

end; end;

Procedure vector (a: arr; var x: xrr);

var i,j: integer;

begin

for i:=1 to 5 do

begin

x[i]:=a[i,i]+a[i,5];

write ('x[',i,']= ',x[i]:3:3,'  ');

end; end;

procedure func(x: xrr;var g:real);

var k: integer; p: real;

begin

g:=0;p:=1;

for i:=1 to 5 do

begin

for k:=1 to i do p:=p*x[k]/(k+exp(k*ln(2)));

g:=g+sqr(x[i])+p;

end;

writeln('G= ',g:6:4);

end;

procedure simpson( x: xrr; var si: real);

var i,k:integer; h,z,a,b,f,f1:real;

begin

writeln('a,b'); readln(a,b);

h:=(b-a)/100;  z:=b;

f1:=(x[1]+x[2]*z+x[3]*z*z +x[4]*z*z*z+x[5]*exp(4*ln(z)))/(exp(z)+1.5);

k:=1;  z:=a;

f:=(x[1]+x[2]*z+x[3]*z*z +x[4]*z*z*z+x[5]*exp(4*ln(z)))/(exp(z)+1.5);

si:=f+f1;

for i:=1 to 99 do

begin

z:=z+h;

f:=(x[1]+x[2]*z+x[3]*z*z +x[4]*z*z*z+x[5]*exp(4*ln(z)))/(exp(z)+1.5);

si:=si+(3+k)*f;

k:=-k;

end;

si:=si*h/3;

writeln('integral=',si);

readln

end.

4. Результати виконання програми

1.  Елементи матриці роздруковуємо у вигляді таблиці:

a[1,1]=3.8284   a[1,2]=3.4814   a[1,3]=3.4123   a[1,4]=3.4235   a[1,5]=3.4618

a[2,1]=7.0000   a[2,2]=5.3301   a[2,3]=4.6231   a[2,4]=4.3325   a[2,5]=4.2283

a[3,1]=11.9373 a[3,2]=8.6813   a[3,3]=7.0000   a[3,4]=6.1207   a[3,5]=5.6583

a[4,1]=19.2872 a[4,2]=13.6206 a[4,3]=10.5440 a[4,4]=8.8262   a[4,5]=7.8375

a[5,1]=30.9666 a[5,2]=20.9804 a[5,3]=15.5758  a[5,4]=12.5550 a[5,5]=10.7980

2.  Результати реалізації пункту 2 поставленої задачі

x[1]= 7.290  x[2]= 9.558  x[3]= 12.658  x[4]= 16.664  x[5]= 21.596 

3.  Значення обчисленої функції

G= 1595.1367


Висновки

В даній курсовій роботі розроблено алгоритми обчислювального характеру у відповідності з завданням до варіанту № 6 Написані програми та отримані результати наведено вище під час опису виконання роботи. виконання роботи складалось із кількох етапів. Спершу було здійснено постановку задачі та опрацьовано відповідний матеріал із літератури. На наступному етапі розроблено алгоритми вирішення поставлених задач. Це питання розв’язувалось паралельно із їх програмним вирішенням. На останньому етапі під час підготовки звіту було вивчено методи та вимоги оформлення звіту, засоби перенесення результатів із програми Паскаля в редактор Word, навики побудови ілюстрацій до блок-схем програм. Результати виконання програми вважаю правдивими з огляду на порівняння їх з перерахунком основних етапів розв’язку задачі.

Під час виконання даної курсової роботи я ознайомилась із використанням підпрограм та функцій користувача при роботі з масивами на прикладі написаних мною програм на мові Паскаль, набувши таким чином певних навиків програмування.

В результаті виконання курсової роботи значно розвинулись навички

Похожие материалы

Информация о работе

Предмет:
Информатика
Тип:
Курсовые работы
Размер файла:
178 Kb
Скачали:
0