Учебная работа. Курсовая работа: Решение прикладной задачи
Кафедра ИнОУП
Курсовая работа
Решение прикладной задачки
Выполнила: ст-ка группы 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. (США
Целью данной курсовой работы является закрепление теоретических и практических способностей в решении прикладных задач с применением функций и процедур. Освоение структурного (модульного) программирования.
2. Постановка задачки
Создать схему метода и программку для вычисления массива z по формуле:
.
Начальными данными являются:
Вычисление случайной суммы и произведения оформить функциями, вычисление массива — процедурой.
3. Расчет контрольной точки
Для расчета контрольной точки используем начальный данные. В качестве начальных данных принимаются:
Рассчитаем шаг для определения частей массива по формуле:
;
В согласовании с начальными данными Xmax равно 100, а Xmin – -10.
В итоге шаг равен:
Рассчитаем шаг для определения частей массива по формуле:
;
В согласовании с начальными данными Ymax равно 100, а Ymin – 0.1.
В итоге шаг равен:
Определим значения частей массива . За 1-ый элемент массива примем
.
Определим элементы массива . За 1-ый элемент массива примем
.
Определим значения частей массива согласно формуле:
.
Т.к. 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:
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;
Графическое
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:
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 – итог выполнения программки
]]>