Разработка алгоритма и Паскаль-программы по вычислению заданной функции

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    156,69 Кб
  • Опубликовано:
    2016-01-30
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка алгоритма и Паскаль-программы по вычислению заданной функции

БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Факультет информационных технологий и робототехники

Кафедра "Электропривод и автоматизация промышленных установок и технологических комплексов"







КУРСОВАЯ РАБОТА

по дисциплине "Информатика"

Тема: "Разработка алгоритма и Паскаль-программы по вычислению заданной функции"


Исполнитель: М.А. Булавский

студент 2 курса 10705214 группы

Руководитель С.Н. Павлович

Содержание

 

Введение

1. Анализ заданной функции и разработка алгоритма по её вычислению

2. Программирование отдельных блоков и структур разработанного алгоритма

2.1 Структура Паскаль-программы

2.2 Раздел описаний

2.3 Подпрограммы

2.4 Тело программы

3. Полная Паскаль-программа в соответствии с разработанным алгоритмом

Литература


Введение

Основным направлением научно-технического прогресса является интенсификация производства и оптимизации технологических процессов. В связи с этим в настоящее время намечена широкая программа комплексной механизации и автоматизации, техническое перевооружение основных отраслей народного хозяйства на основе использования микропроцессоров, микро-ЭВМ, промышленных роботов и систем числового программного управления. Поэтому в современной обстановке очень важно знать основы алгоритмизации и программирования инженерных задач.

Задачей данного курсового проекта является закрепление знаний и навыков в области алгоритмизации и программирования инженерных задач.

1. Анализ заданной функции и разработка алгоритма по её вычислению


Рассмотрим данную нам функцию:

(1.1)

(1.2)

Переменная a меняется одновременно с переменной j от aнач с шагом h. Переменная j = 1, 2, …, m, где m =20; n = 3; C1 = - 13,5; C2 = 7; C3 = 1,7; aнач = - 3; h = 1,7. Для вычисления 20 значений искомой функции Y удобно воспользоваться циклом с заранее известным числом повторений. Но прежде чем вычислять значения функции нам необходимо вычислять значение X, которое в свою очередь зависит от двух величин: C (неизменное) и значения переменной j (изменяется при каждом новом выполнении цикла с заранее известным условием). По условию задания курсовой работы вычисление суммы элементов последовательности C необходимо организовать в виде подпрограмм. Последовательность C будет удобно представить в виде массива данных. Т.к. в дальнейшем мы буде использовать сумму последовательности в качестве операнда, тогда лучше всего для их нахождения использовать подпрограмму-функции с одним параметром-переменной, которая принадлежит последовательности C. Сумма C будет вычисляться в цикле с заранее известным числом повторений. В этом цикле при каждом проходе цикла уже известное сумма n-предыдущих элементов последовательности будет складываться со следующим C из последовательности.

 (1.3)

Так как переменная j изменяется, то значение X необходимо пересчитывать. Тогда переменная X будет вычисляться по формуле:

 (1.4)

После вычисления X нам необходимо сравнивать полученное значение с b, и если оно меньше b, то Y вычисляется по формуле:

 (1.5)

В противном случае значение Y вычисляется по формуле:

 (1.6)

По условию задания переменная a также должна изменяться на шаг h вместе с циклом:

 (1.7)

После вычисления значения Y его необходимо вывести на экран.

Таким образом, вычисление значений функции (1.1) сводится к выполнению простых операций (1.2) - (1.7). Алгоритм решения данной задачи представлен в Приложении А.

паскаль программа алгоритм функция

2. Программирование отдельных блоков и структур разработанного алгоритма


2.1 Структура Паскаль-программы


Программой называется последовательность операторов и других элементов языка, построенных в соответствии с определенными правилами и предназначенных для решения определенной задачи. Структура программы на языке Паскаль имеет следующий вид:

Раздел описаний;

Раздел операторов;

(Тело программы).

Имя программы Name должно начинаться с буквы латинского алфавита, не должно содержать более 80 символов, не должно содержать букв кириллицы. Раздел описания программы содержит описания модулей (uses), меток (label), констант (const), переменных (var), типов (type), функций (function) и процедур (procedure).

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

Раздел описания переменный содержит предложения описания переменных, которое имеет следующий вид:

Var v1, v2, …, vn: type_of_var;

v1, v2, …, vn - список переменных, в котором имена переменных разделяются запятыми._of_var - задает тип переменным данного списка.

Если в программе используются переменные различных типов, то в предложении var приводятся списки переменных каждого типа:

Var v11, v12, …, v1n: type_1; v21, v22, …, v2n: type_2;

Например:

Var a, b, c: intrger; (целочисленный тип) d, e, f: real; (вещественный тип): char; (символьный тип) h: string; (строковый тип): boolean; (логический тип)

Константа отличается от переменной тем, что ее значение фиксировано и не может быть изменено в ходе выполнения программы.

Описание констант производится в следующей форме:

const v1 = val_1;= val_2;

где v1, v2 - имена констант;_1, val_2 - значения этих констант. Например:d = 3.4e-5;= 188;

В теле программы располагаются операторы, выполняющие определенные действия и разделяемые точкой с запятой. Операторы определяют действия, которые должна выполнить программа. Операторы в программе могут размещаться как на отдельных строках, так и по несколько в строке. Одним из основных операторов является оператор присваивания ": =", в правой части которого записывается вычисляемое выражение, а в левой переменная, которой будет присвоен результат вычислений выражения. Например:

: =5*a+3*sin (2*a-1);: = (3-a) / (2*b+1);

2.2 Раздел описаний


По условию нашей задачи у нас имеются как константы, так и переменные. Переменными значениями будут m, n, an, h, j, i, z, mult, sum. Опишем эти переменные с помощью языка программирования Паскаль. Константы C1 = - 13.5; C2 = 7; C3 = 1,7 будем хранить в массиве. Чтобы в последуем обратится к элементам массива предварительно создадим тип массива размерностью i=3:

var, n, j: integer;

2.3 Подпрограммы


Описание подпрограмм-функций должно располагаться в разделе описаний программы. Описание функции начинается с зарезервированного слова Function. Заголовок подпрограммы-функции имеет вид:

Function <Name> (argument_list): type_of_result;

Здесь type_of_result - идентификатор типа результата, он описывает тип значения, носителем которого является идентификатор (имя) функции <Name>._list - список параметров. Содержит перечисление идентификаторов переменных-параметров функции. Эти параметры используются для передачи данных в подпрограмму-функцию. После имени переменной или группы переменных следует двоеточие и идентификатор типа переменных этой группы. Список параметров подпрограммы-функции может отсутствовать. Внутренняя структура подпрограммы-функции аналогична структуре программы, т.е. она содержит раздел описаний, а затем после слова "begin" идут операторы (тело подпрограммы). В разделе описаний могут быть описания других функций. В теле подпрограммы-функции должен присутствовать оператор присвоения, в левой части которого находится имя функции, а в правой - выражение. Обращение к подпрограмме-функции производится путем указания имени со списком параметров в составе какого-либо выражения. Имя функции в вызывающей программе может появиться только в правой части выражения, т.к. функция - это операнд. Параметры представляют собой идентификаторы переменных и служат для обмена значениями между подпрограммой и вызывающей ее программной единицей. При этом в описании подпрограммы, поскольку она включается в текст программы один раз, имена параметров выбираются определенным образом и безотносительно к именам переменных, используемых в различных частях программы. Такие параметры, имена которых указаны в заголовке подпрограммы, называются формальными. При каждом новом обращении к подпрограмме в нее могут передаваться значения разных переменных. Такие параметры, имена которых подставляются в оператор вызова подпрограммы при фактическом обращении к ней, называются фактическими параметрами.

Вычисление sum в нашей программе организованно с помощью подпрограммы-функции. Для вычисления sum подпрограмме необходимо передать значения элементов последовательности C, для чего мы и создавали в разделе описаний тип массива mass. Так же нужно учесть об операторе присвоения, в левой части которого будет имя функции, а в правой выражение.

Запишем подпрограммы на языке Паскаль, где функция func_xj вычисляет сумму:

Function func_xj (n: integer): real;j: integer; sum: real;: = 0;j: = 1 to n do: = sum + c [j];;j: = 1 to m do[j]: = ( (sum/j) + an);;

func_xj: = 1;

end;

2.4 Тело программы


По разработанному нами алгоритму, программа содержит одно обращения к подпрограммам-функциям для вычисления суммы func_xj.

Обращения к подпрограмме выглядит следующим образом:

sum: =func_xj (n);

Цикл вычисляет значение X и в зависимости от того, меньше или больше b полученное значение, Y вычисляется по определенной формуле (1.3 или 1.4). Запишем это на языке Паскаль:

for j: = 1 to m do

begin

func_xj (n);x [j] < b then[j]: = (mult - b*sqrt (abs (x [j])) + an);;x [j] >= b then[j]: = (cos (x [j]) - ln (an));; an: = an+h;;

3. Полная Паскаль-программа в соответствии с разработанным алгоритмом


Запишем полную Паскаль-программу в соответствии с разработанным алгоритмом, который приведён в Приложении A.

Program n_33;, n, j: integer;

b, an, mult, h: real;: array [1.99] of real;: array [1.99] of real;: array [1.99] of real;func_xj (n: integer): real;j: integer; sum: real;: = 0;j: = 1 to n do: = sum + c [j];;j: = 1 to m do[j]: = ( (sum/j) + an);;_xj: = 1;;('Введите: m, n, an, h, b');(m, n, an, h, b);j: = 1 to n do('C [',j,'] = ');(c [j]);;: = 1;j: = 1 to n do: = mult * c [j];;j: = 1 to m do_xj (n);x [j] < b then[j]: = (mult - b*sqrt (abs (x [j])) + an);;x [j] >= b then[j]: = (cos (x [j]) - ln (an));;: = an+h;;j: =1 to m do('y [',j,'] = ',y [j]);.

Литература


1.       Электронный учебно-методический комплекс по учебной дисциплине "Информатика" для специальности 1-53 01 05 "Автоматизированные электроприводы".

2.      Основы алгоритмизации и программирования инженерных задач на паскале. Учебно-методическое пособие для студентов специальности 1-53 01 05 "Автоматизированные электроприводы".


Приложение


Похожие работы на - Разработка алгоритма и Паскаль-программы по вычислению заданной функции

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!