рефератырефератырефератырефератырефератырефератырефератырефераты

рефераты, скачать реферат, современные рефераты, реферат на тему, рефераты бесплатно, банк рефератов, реферат культура, виды рефератов, бесплатные рефераты, экономический реферат

"САМЫЙ БОЛЬШОЙ БАНК РЕФЕРАТОВ"

Портал Рефератов

рефераты
рефераты
рефераты

Решение прикладной задачи

9

ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

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

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

Решение прикладной задачи

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

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

Принял: доцент

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

2007

Содержание

1 Цель работы 4

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

3 Расчет контрольной точки 6

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

4.1 Function Proizvedenie 10

4.2 Function Symma 12

4.3 Procedure Massive_Z 14

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

Заключение 21

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

Приложение А. Листинг программы 23

Приложение Б. Результат работы программы 26

Введение

Язык программирования Паскаль (назван в честь выдающегося французского математика и философа Блез Паскаля (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. Отображает массив размерностью 52.

Y - переменная типа double. Элемент массива .

n - количество элементов в массиве x. n=12.

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

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

9

Листинг функции 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. Отображает массив размерностью 52.

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:=s1;

end;

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

9

4.3 Procedure Massive_Z

Назначение: определение значения элементов массива .

Обращение: Massive_Z (y,m);

Описание параметров:

y - переменная типа massiv. Отображает массив размерностью 15.

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

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

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

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

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

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

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

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

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

9

Листинг процедуры 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;

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

9

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

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

рефераты
РЕФЕРАТЫ © 2010