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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 11.12.2009
Размер файла 241,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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


Подобные документы

  • Решения задачи графическим и программным способами. Описание алгоритма решения графическим способом, укрупненная схема алгоритма. Ввод элементов двумерного массива, вывод преобразованного массива, разработка программы на языке pascal, листинг программы.

    курсовая работа [115,5 K], добавлен 22.05.2010

  • Разработана программа решения двух задач на языке программирования Turbo Pascal. Спецификация задания. Описание входных и выходных данных. Математическая постановка задачи. Алгоритм ее решения. Описание и блок-схема программы. Результаты тестирования.

    курсовая работа [275,8 K], добавлен 28.06.2008

  • История появления и распространения Turbo Pascal - среды разработки для языка программирования Паскаль. Общий вид объявления файлового типа. Входная, выходная и промежуточная информация. Алгоритм решения задачи: словесный алгоритм, блок-схема, программа.

    курсовая работа [359,4 K], добавлен 05.01.2010

  • Особенности поиска среднеарифметического значения элементов массива. Общая характеристика проблем разработки в среде Turbo Pascal программы упорядочивания массива по возрастанию. Рассмотрение основных этапов разработки программы на языке PASCAL.

    курсовая работа [896,7 K], добавлен 18.05.2014

  • Описание алгоритма решения задачи по вычислению суммы элементов строк матрицы с использованием графического способа. Детализация укрупненной схемы алгоритма и разработка программы для решения задачи в среде Turbo Pascal. Листинг и тестирование программы.

    курсовая работа [446,0 K], добавлен 19.06.2014

  • Строгая типизация и наличие средств структурного (процедурного) программирования императивного языка Pascal. Структура программы, выражения, строки. Правила и описание типов, процедур и функций, операторов ввода - вывода, модулей и подпрограмм.

    курсовая работа [37,3 K], добавлен 28.06.2008

  • Описание алгоритма решения задачи графическим способом. Вывод элементов массива. Описание блоков укрупненной схемы алгоритма на языке Pascal. Листинг программы, а также ее тестирование. Результат выполнения c помощью ввода различных входных данных.

    контрольная работа [150,4 K], добавлен 03.05.2014

  • Изучение текстового режима языка программирования Turbo Pascal. Написание игры "Змейка" с помощью средств, процедур и функций языка программирование Turbo Pascal. Структурное и функциональное описание разработки. Листинг и общие примеры работы программы.

    контрольная работа [286,3 K], добавлен 10.04.2011

  • Камеральная обработка результатов геодезических измерений. Получение координат пунктов геодезической сети. Определение значения дирекционного угла. Табличные вычисления MS Excel, вычисления в MathCad. Определение правильности алгоритма для Turbo Pascal.

    курсовая работа [7,7 M], добавлен 11.01.2011

  • Разработка алгоритма поставленной задачи по обработке числовой информации в среде Turbo Pascal 7.0 с базовым языком программирования Pascal, отладка программы, реализующей разработанный алгоритм. Описание структуры программы, ее вспомогательных процедур.

    курсовая работа [668,0 K], добавлен 25.02.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.