Рішення прикладної задачі

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Пензенська ДЕРЖАВНИЙ УНІВЕРСИТЕТ

Кафедра ІнОУП

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

Рішення прикладної задачі

Виконала: ст-ка групи 06 ВД-1

Е.А. Одінокова

Прийняв: доцент

А. І. Черноскутов

2007

Зміст

1 Мета роботи

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

3 Розрахунок контрольної точки

4 Розробка схем алгоритмів і текстів підпрограм, їх опис

4.1 Function Proizvedenie

4.2 Function Symma

4.3 Procedure Massive_Z

5 Розробка схеми алгоритму і тексту основної програми та їх опис

Висновок

Список використаних джерел літератури

Додаток А. Лістинг програми

Додаток Б. Результат роботи програми

Введення

Мова програмування Паскаль (названий на честь видатного французького математика і філософа Блеза Паскаля (1623-1662)), розроблений в 1968-1971 рр.. Ніклаус Віртом, професором, директором інституту інформатики Швейцарської вищої політехнічної школи. Мова Паскаль, створений спочатку для навчання програмуванню як систематичній дисципліні, скоро став широко використовуватися для розробки програмних засобів в професійному програмуванні.

Розробка програм на Паскалі включає в себе наступні дії (етапи розробки програми): введення і редагування тексту програми на мові програмування Паскаль, її трансляцію, налагодження.

Для виконання кожного етапу застосовуються спеціальні засоби: для введення і редагування тексту використовується редактор текстів, для трансляції програми - компілятор, для побудови виконуваного комп'ютером програмного модуля з об'єднанням розрізнених скомпільованих модулів і бібліотекою стандартних процедур Паскаля - компонувальник, для налагодження програми з аналізом її поведінки, пошуком помилок, переглядом та зміною вмісту комірок пам'яті комп'ютера - відладчик.

Для підвищення якості і швидкості розробки програм в середині 80-х рр.. була створена система програмування Турбо Паскаль. Слово «турбо» у назві системи програмування - це відображення торгової марки фірми - розробника Borland International, Inc. (США).

1. Мета роботи

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

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

Розробити схему алгоритму і програму для обчислення масиву z за формулою:

.

Вихідними даними є:

Обчислення довільній суми і твори оформити функціями, обчислення масиву - Процедурою.

3. Розрахунок контрольної точки

Для розрахунку контрольної точки використовуємо вихідний дані. В якості вихідних даних приймаються:

Розрахуємо крок для визначення елементів масиву за формулою:

;

Відповідно до вихідних даних Xmax дорівнює 100, а Xmin - -10.

У результаті крок дорівнює:

Розрахуємо крок для визначення елементів масиву за формулою:

;

Відповідно до вихідних даних Ymax дорівнює 100, а Ymin - 0.1.

У результаті крок дорівнює:

Визначимо значення елементів масиву . За перший елемент масиву приймемо значення Xmin. Потім за допомогою послідовного додавання кроку визначимо інші елементи масиву. У результаті:

.

Визначимо елементи масиву . За перший елемент масиву приймемо значення Ymin. Потім за допомогою послідовного додавання кроку визначимо інші елементи масиву. У результаті:

.

Визначимо значення елементів масиву згідно з формулою:

.

Оскільки y [1] = 0.1 і y [1] <a, то розрахунок першого елемента масиву зробимо за формулою:

У результаті:

Оскільки y [2] = 25,075 і y [2]> a, то розрахунок першого елемента масиву зробимо за формулою:

У результаті:

Оскільки y [3] = 50,05 і y [3]> a, то розрахунок першого елемента масиву зробимо за формулою, наведеною в пункті б.

У результаті:

Оскільки y [4] = 75,025 і y [4]> a, то розрахунок першого елемента масиву зробимо за формулою, наведеною в пункті б.

У результаті:

Оскільки y [5] = 100 і y [5]> a, то розрахунок першого елемента масиву зробимо за формулою, наведеною в пункті б.

У результаті:

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

Зробимо висновок, що програма робить обчислення вірно.

4. Розробка схем алгоритмів і текстів підпрограм, їх опис

4.1 Function Proizvedenie

Призначення: обчислення твори елементів за формулою .

Звернення: Proizvedenie (x, y [j], n);

Опис параметрів:

x - змінна типу massiv. Відображає масив розмірністю 5 2.

Y - змінна типу double. Елемент масиву .

n - кількість елементів у масиві x. n = 12.

Необхідні функції і процедури: немає.

Графічне подання алгоритму функції Proizvedenie:

Лістинг функції Proizvedenie:

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;

4.2 Function Symma

Призначення: обчислення суми елементів за формулою .

Звернення: Symma (x, y [j], n);

Опис параметрів:

x - змінна типу massiv. Відображає масив розмірністю 5 2.

Y - змінна типу double. Елемент масиву .

n - кількість елементів у масиві x. n = 12.

Необхідні функції і процедури: немає.

Лістинг функції Symma:

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: = s 1;

end;

Графічне подання алгоритму функції Symma:

4.3 Procedure Massive_Z

Призначення: визначення значення елементів масиву .

Звернення: Massive_Z (y, m);

Опис параметрів:

y - змінна типу massiv. Відображає масив розмірністю 1 5.

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 (ab))) * 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 (ab))) * 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 - результат виконання програми

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
47кб. | скачати


Схожі роботи:
Рішення задачі про комівояжера
Рішення задачі оптимального управління
Рішення транспортної задачі методом потенціалів
Рішення транспортної задачі з правильним балансом
Рішення задачі лінійного програмування графічним методом
Симплекс метод рішення задачі лінійного програмування
Рішення задачі лінійного програмування симплекс методом
Приклад рішення задачі по розділу Перехідні процеси
Рішення задачі лінійного програмування симплексним методом
© Усі права захищені
написати до нас