Курсовая работа: Решение прикладной задачи
Название: Решение прикладной задачи Раздел: Рефераты по информатике Тип: курсовая работа |
ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Кафедра ИнОУП Курсовая работа Решение прикладной задачи Выполнила: ст-ка группы 06 ВД-1 Е.А. Одинокова Принял: доцент А. И. Черноскутов 2007 4 Разработка схем алгоритмов и текстов подпрограмм, их описание........ 10 5 Разработка схемы алгоритма и текста основной программы и их описание 16 Список использованных источников литературы....................................... 22 Приложение А. Листинг программы............................................................ 23 Приложение Б. Результат работы программы............................................ 26 Язык программирования Паскаль (назван в честь выдающегося французского математика и философа Блез Паскаля (1623-1662)), разработан в 1968-1971 гг. Никлаусом Виртом, профессором, директором института информатики Швейцарской высшей политехнической школы. Язык Паскаль, созданный первоначально для обучения программированию как систематической дисциплине, скоро стал широко использоваться для разработки программных средств в профессиональном программировании. Разработка программ на Паскале включает в себя следующие действия (этапы разработки программы): ввод и редактирование текста программы на языке программирования Паскаль, ее трансляцию, отладку. Для выполнения каждого этапа применяются специальные средства: для ввода и редактирования текста используется редактор текстов, для трансляции программы - компилятор, для построения исполняемого компьютером программного модуля с объединением разрозненных откомпилированных модулей и библиотекой стандартных процедур Паскаля – компоновщик, для отладки программы с анализом ее поведения, поиском ошибок, просмотром и изменением содержимого ячеек памяти компьютера – отладчик. Для повышения качества и скорости разработки программ в середине 80-х гг. была создана система программирования Турбо Паскаль. Слово «турбо» в названии системы программирования – это отражение торговой марки фирмы – разработчика Borland International, Inc. (США).
1. Цель работы Целью данной курсовой работы является закрепление теоретических и практических навыков в решении прикладных задач с применением функций и процедур. Освоение структурного (модульного) программирования. Разработать схему алгоритма и программу для вычисления массива z по формуле:
Исходными данными являются: Вычисление произвольной суммы и произведения оформить функциями, вычисление массива
3. Расчет контрольной точки Для расчета контрольной точки используем исходный данные. В качестве исходных данных принимаются: Рассчитаем шаг для определения элементов массива
В соответствии с исходными данными Xmax равно 100, а Xmin – -10. В результате шаг равен: Рассчитаем шаг для определения элементов массива
В соответствии с исходными данными Ymax равно 100, а Ymin – 0.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. Отображает массив размерностью 5 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 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: 4.3 Procedure Massive_Z Назначение: определение значения элементов массива Обращение: Massive_Z (y,m); Описание параметров: y – переменная типа massiv. Отображает массив размерностью 1 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(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 – результат выполнения программы |