Strict Standards: Only variables should be passed by reference in /var/www/spimash_new/data/www/spimash.ru/engine/modules/functions.php on line 805 Strict Standards: Only variables should be passed by reference in /var/www/spimash_new/data/www/spimash.ru/engine/modules/functions.php on line 806 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /var/www/spimash_new/data/www/spimash.ru/engine/classes/mysqli.class.php on line 150 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /var/www/spimash_new/data/www/spimash.ru/engine/classes/mysqli.class.php on line 150 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /var/www/spimash_new/data/www/spimash.ru/engine/classes/mysqli.class.php on line 150 Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /var/www/spimash_new/data/www/spimash.ru/engine/classes/mysqli.class.php on line 150 Strict Standards: Only variables should be passed by reference in /var/www/spimash_new/data/www/spimash.ru/index.php on line 98 Курсовой проект по информатике "Вычислить сумму функции факториального ряда с использованием рекурсии"
.: Навигация

.: Кафедры
  • Машины и технология литейного производства
  • Машины и технология обработки металлов давлением
  • Химии
  • Технологии металлов и металловедения
  • Электротехники, вычислительной техники и автоматизации
  • Теоретической механики
  • Теории механизмов и машин
  • Кафедра технологии машиностроения
  • Сопротивление материалов и теории упругости
  • Триботехника
  • Турбиностроение и средства автоматики
  • Высшей математики
  • Менеджмента
  • Экономики и предпринимательства
  • Истории и общей экономической теории
  • Философии
  • Безопасности жизнедеятельности и промышленной экологии

    .: Авторизация
    Логин
    Пароль
     
    .: Голосование

    Корочка нужна
    Без образования никуда
    От армии кошу



    .: Самые читаемые
    » Культура России 18 века
    » Курсовая работа по ТАУ - 4 курс
    » Реферат по истории "Культура 18 века России"
    » Реферат по истории "Первая мировая война 1914-1918 года" - 1 курс
    » Реферат по экологии "Общие экологические проблемы городов мира."
    » Роль знаний в жизни индивида
    » Курсовой проект по "Детали машин" - 4 курс
    » Пример отчета по практике
    » Общая химия. Основные классы неорганических соединений.
    » Шпоргалка по истории "все основные даты" - 1 курс
    » Курсовая работа по "ПРОЕКТИРОВАНИЕ И РАСЧЁТ НАДЁЖНОСТИ ТИРИСТОРНОГО ПРЕОБРАЗОВАТЕЛЯ"
    » Основные законы химии
    » КУРСОВАЯ РАБОТА: Кадровые стратегии организации
    » Как правильно самому написать реферат
    » МЕХАНИЧЕСКИЕ ХАРАКТЕРИСТИКИ И РЕЖИМЫ РАБОТЫ ТРЕХФАЗНЫХ АСИНХРОННЫХ ДВИГАТЕЛЕЙ
    » Исторические даты. История за 1 курс.
    » Курсовая работа по "Токарные и токарно-винторезные станки"
    » Химическая кинетика и равновесие.
    » Курсовой проект по надежности "НАДЕЖНОСТЬ СИСТЕМ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ"
    » Шпоргалки по истории
    » ТСА Лекция. Технические средства систем автоматизации
    » Все уроки по английскому языку ( юниты unit )
    » Курсовой проект - Автоматизированный электропривод
    » Химия. Таблица кислот.
    » Конспект история техники. Весь констпект.

    .: Спонсоры проекта


    .: Архив
    Июль 2011 (1)
    Январь 2010 (1)
    Декабрь 2009 (1)
    Июль 2009 (45)
    Июнь 2009 (38)
    Май 2009 (41)
    Апрель 2009 (42)
    Март 2009 (40)
    Февраль 2009 (41)
    Январь 2009 (47)
    Декабрь 2008 (47)
    Ноябрь 2008 (48)
    Октябрь 2008 (42)
    Сентябрь 2008 (45)
    Август 2008 (45)
    Июль 2008 (44)
    Июнь 2008 (44)
    Май 2008 (48)
    Апрель 2008 (47)
    Март 2008 (47)
    Февраль 2008 (47)
    Январь 2008 (45)
    Декабрь 2007 (41)
    Ноябрь 2007 (51)
    Октябрь 2007 (47)
    Сентябрь 2007 (39)
    Август 2007 (49)
    Июль 2007 (44)
    Июнь 2007 (41)
    Май 2007 (42)
    Апрель 2007 (35)
    Март 2007 (37)
    Февраль 2007 (31)
  •  

    Поиск по сайту:

    Курсовой проект по информатике "Вычислить сумму функции факториального ряда с использованием рекурсии"
    Раздел: Материалы » Курсовые работы | 3 12 07 | Автор:Виталий | просмотров: 11153 | печать
     (голосов: 5)



    .: Интересное
  • Лабораторная по информатике №1
  • Лабораторная по информатике №4
  • Лабораторная по информатике №3
  • Лабораторная по информатике №2
  • ГКБ №2.

  • Задание на курсовое проектирование: «Вычислить сумму функции факториального ряда с использованием рекурсии».

    S=

    при n=17; x1=1.543; h=0.2875; m=10

    Рядом в математике называется выражение вида а1+а2+а3+…, составленное из чисел, где а1, а2 ,а3 и т.д. называются членами ряда, а многоточие говорит о том, что ряд бесконечен, таким образом, ряд есть бесконечная сумма.
    Общий член ряда зависит от порядкового номера и записывается:
    an=f(n),



    С помощью рядов можно:
    разложить функцию в степенной ряд;
    выполнить приближенные вычисления значений функции;
    выполнить вычисления пределов;
    выполнить вычисление определенных интегралов;
    выполнить вычисление логарифмов;
    выполнить интегрирование дифференциальных уравнений;
    решить уравнение первого порядка итерационным методом (итерация – это по-вторяемое выполнение некоторого действия до тех пор, пока не будет удовлетво-рено некоторое условие).
    Ряд считается заданным, если дан закон, по которому можно вычислить любой член ряда, и известен порядковый номер этого числа.
    Среди рядов есть сходящиеся ряды и расходящиеся.
    Если значение частичных сумм Sn при неограниченном возрастании n стре-мится к некоторому числу А, ряд называется сходящимся, а число А при этом на-зывают суммой. Таким образом, при неограниченном возрастании n значение Sn сколь угодно мало отличается от А, т.е. число А предел последовательности Sn.
    lim Sn = A
    n1
    Ряд, у которого последовательность частичных сумм не имеет предела, на-зывается расходящимся. Расходящийся ряд не имеет суммы.
    Ряд считается сходящимся, если n-ый член ряда при неограниченном воз-растании n стремится к нулю. Это, так называемое, необходимое условие ряда.
    lim аn = A
    n
    Важное место в практике приближенных вычислений занимают функцио-нальные ряды. Каждый член функционального ряда зависит от аргумента и явля-ется функцией: а1(х) + а2(х) + а3(х) + …, члены функционального ряда есть функ-ции одного и того же аргумента. Если ряд на определенном отрезке сходится, то этот отрезок называется областью сходимости функционального ряда.
    Определение суммы некоторого числа первых членов ряда, при этом из-вестно, что остальными членами можно пренебречь, однако, погрешность, кото-рая при этом допускается неизвестна.
    Вычисление суммы ряда с заданной погрешностью, при этом не оговарива-ется сколько членов ряда будет суммироваться.
    Суммирование происходит до тех пор, пока очередной суммируемый член ряда не станет меньше некоторой заданной величины, т.е. погрешности.
    Для составления программы суммы ряда необходимо помнить:
    общий член описывает закон, в соответствии с которым можно определить величину любого члена ряда, зная его порядковый номер;
    для вычисления суммы ряда необходимо вычислять очередной член ряда с последующим суммированием.

    Рекурсивные функции.
    Рекурсия – это такой способ вычисления организации вычислительного процесса, при котором процедура или функция в ходе выполнения составляющих ее операторов обращается сама к себе. При использовании рекурсии необходимо обращать внимание на выход из подпрограмм в нужный момент.
    Рекурсия полезна, когда основную задачу можно разделить на подзадачи, имеющие ту же структуру, что и первоначальная задача. Подпрограммы, реали-зующие рекурсию, называются рекурсивными.
    Особенности рекурсии:
     использование рекурсии дает компактный текст программы;
     обязательным является условие, которое определяет завершение рекурсии. Иногда такое условие называют опорным условием рекурсии.
    Таким образом, рекурсивное вычисление должно содержать два момента:
     опорное условие, т. е. условие завершения процесса;
     способ выражения одного шага решения посредством другого более простого шага.
    Во время вычисления рекурсивной функции вводятся компилятором ло-кальные переменные (локальные переменны – это переменные доступные только в пределах данной процедуры и недоступные вызывающей программе, все ло-кальные объекты создаются при входе в процедуру и уничтожаются при выходе из нее), выстраиваемые в стековую (магазинную) очередь, как только достигнуто опорное условие и функция может быть вычислена, переменные из стековой оче-реди выбираются в обратном порядке.
    Недостатком рекурсии состоит в том, что если глубина рекурсии очень ве-лика, то оттранслированная программа будет требовать во время исполнения мно-го памяти – это может привести к переполнению стека, рекурсивные алгоритмы выполняются более медленно, чем, например, итерация (повторяемое выполнение некоторого действия до тех пор, пока не будет удовлетворено некоторое условие).
    Классическим примером рекурсии является вычисление факториала.
    Использование подпрограммы-функции для рекурсивного вычисления n!:
    f(n) = n!

    n!= 1 при n=0
    n*(n-1)! при n>0

    Function fact(n:integer):real;
    Begin
    if n=0 then fact:=1 else fact:=n*fact(n-1)
    End;

    Структура данной программы на языке Pascal:
    Program …; заголовок главной программы
    Uses …; объявления
    Var …;
    Const …;
    Function …; заголовок подпрограммы–функции
    Begin
    тело подпрограммы функции
    группа операторов
    ….
    End;
    Begin
    тело главной программы
    группа операторов
    ….
    End.

    В программе написанной на языке Pascal каждое предложение отделяется от другого ;, а зарезервированные слова Begin и End представляют собой оператор-ные скобки.
    В данной программе используются стандартные подпрограммы, подпро-граммы-функции, цикл с параметром (For) и цикл с предусловием (While).
    Цикл представляет собой последовательность операторов, которая выпол-няется неоднократно, а описывается один только раз.
    Цикл с параметром позволяет выполнять группу предложений заданное число раз. При каждом прохождении цикла параметр (переменная) цикла увели-чивается или уменьшается на единицу. Переменная цикла может быть только по-рядкового типа: целого, символьного, логического и подмножества целого типа. Начальное и конечное значения переменной цикла могут быть константами, пе-ременными, выражениями и должны принадлежать к одному и тому же типу дан-ных. Начальное и конечное значения переменной цикла нельзя изменять во время выполнения цикла.
    Цикл с предусловием содержит условие выполнения цикла. Число повторе-ний операторов цикла с предусловием будет повторяться до тех пор, пока будет выполняться условие выполнения этого цикла, оно определяется в ходе работы программы и, как правило, заранее неизвестно. Условие – это выражение логиче-ского типа: простое выражение отношения или сложное выражение отношения (логическое выражение), которое может принимать одно из двух значений: true или false. Для успешного завершения цикла с предусловием в его теле обязатель-но должны присутствовать инструкции, оказывающие влияние на условие выпол-нения инструкций цикла. Если значение все время true, то происходит зацикли-вание, Control+Pause или Break+Control останавливают программу по требова-нию программиста. Если условие изначально false, цикл While не выполнится ни разу.
    Подпрограмма – это некий механизм, позволяющий определить для компь-ютера совокупность действий, которые в дальнейшем можно выполнить вновь и вновь с различными значениями параметров.
    Требования к конструированию программ, содержащих подпрограммы:
     подпрограмма имеет одну точку входа и одну точку выхода;
     каждая подпрограмма должна выполнять одну четко определенную функцию;
     размер подпрограммы может быть любым, но обычно они содержат несколько операторов, которые умещаются на одном экране или странице;
     имена подпрограмм должны описывать, что подпрограмма делает.
    Отдельная подпрограмма, выполняющая задачу, вызывается в процессе ре-шения задачи несколько раз, а описывается в программе один раз.
    Существует два вида подпрограмм:
    подпрограммы–функции;
    подпрограммы–процедуры.
    Стандартные подпрограммы – это подпрограммы, являющиеся неотъемле-мой принадлежностью компилятора Pascal и всегда доступны программисту без их предварительного описания.
    При вызове любой подпрограммы-функции из главной программы работа главной программы приостанавливается, главная программа передает подпро-грамме конкретные значения, называемые фактическими параметрами. Они со-поставляются с формальными параметрами, они должны совпадать по количест-ву, по расположению и по типу. Если не возникает ошибки, т.е. вычисляющийся в программе результат совпадает с описанным в подпрограмме возвращающим ре-зультатом по типу, то вычисленный результат возвращается в, то место, откуда вызывалась подпрограмма (в точку вызова подпрограммы). Функция может иметь любое фиксированное число параметров, но возвращает только одно результи-рующее значение. В качестве фактических параметров могут быть константы, пе-ременные и выражения.


    Program kursovik; {заголовок программы, состоящий из зарезервированного слова и имени программы}
    Uses crt; {раздел подключения стандартного библиотечного модуля}
    Var {раздел описания переменных}
    i, j:integer; {целочисленные переменные}
    k, p, s, a, x:real; {вещественные переменные}
    t:text; {файловая переменная}
    Const n=17; x1=1.543; h=0.2875; m=10; {описание констант}
    Function sveta(i:longint):real; {заголовок подпрограммы функции, состоящий из за-резервированного слова, имени процедуры, списка формальных параметров и тип возвращаемого функ-цией значения}
    Begin {начало подпрограммы функции}
    if i=0 then sveta:=1 else sveta:=i*sveta(i-1) {условный оператор выполняет вы-числение факториала с помощью ре-курсивной функции}
    end; {конец подпрограммы функции}
    Begin {начало главной программы}
    Сlrscr; {встроенная процедура очистки экрана}
    {$s+} {директива компилятора для включения проверки переполнения стека}
    Assign(t,’c:primer8.txt’); { процедура связи с файлом}
    Rewrite(t); {процедура создает и открывает новый файл для последующей записи данных}
    x:=x1; {присваивание переменной х первоначальное значение}
    For j:=1 to m do begin {начало внешнего цикла j}
    s:=0; {присвоение переменной s нулевое значение}
    For i:=1 to n do begin {начало внутреннего цикла i}
    a:=(1+exp(i)*ln(2)+exp(((i+1)*ln(3)))/sveta(i)*exp((i)*ln(x); {присвоение переменной а значение выражения}
    s:=s+a end; {нахождение суммы и конец цикла i}
    Writeln(‘x=’, x:6:3,’ ’,’s=’, s:10:3); {вывод на монитор, полученных в результате вычислений, значений переменных x и s}
    Write(t, x); {открытие и запись, полученных в результате вычислений, значений переменных x и s в файл}
    Writeln(t, s);
    x:=x+h end; {изменение значения переменной х на шаг h, конец цикла j }
    Close(t); {закрытие файла после записи в него данных }
    Writeln(’Чтение из файла); {вывод на монитор, заключенное в апострофы выра-жение}
    Reset(t); {открытие файла для чтения}
    While not eof(t) do {начало цикла с предусловием, выполняет проверку на дости-жение конца файла при чтении из него данных}
    begin readln(t, k, p); {чтение данных из файла}
    Write(’x=’, k:6:3); {вывод из файла на монитор записанных в него дан-ных и конец цикла while}
    Writeln(’ s=’ p:10:3) end;
    Close(t) {закрытие файла}
    end. {конец программы}

    Вывод на монитор, полученных результатов:


    x= -1.54 S= -2.07
    x= -1.26 S= -1.96
    x= -0.97 S= -1.79
    x= -0.68 S= -1.53
    x= -0.39 S= -1.10
    x= -0.11 S= -0.38
    x= 0.18 S= 0.88
    x= 0.47 S= 3.19
    x= 0.76 S= 7.57
    x= 1.04 S= 16.24
    File:
    x= -1.54 s= -2.07
    x= -1.26 s= -1.96
    x= -0.97 s= -1.79
    x= -0.68 s= -1.53
    x= -0.39 s= -1.10
    x= -0.11 s= -0.38
    x= 0.18 s= 0.88
    x= 0.47 s= 3.19
    x= 0.76 s= 7.57
    x= 1.04 s= 16.24




    Описание, используемых в программе переменных:
    j – переменная внешнего цикла, целого типа, имеет начальное и конечное значение;
    m – имя константы, определяет конечное значение переменной внешнего цикла j и определяет количество повторений цикла , т.е. обеспечивает выполнение тела внешнего цикла до тех пор, пока не будут перебраны все значения параметра цикла: от начального до;
    i – переменная внутреннего цикла, целого типа, имеет начальное и конечное значение;
    n – имя константы, определяет конечное значение переменной внутреннего цикла i и определяет количество повторений цикла , т.е. обеспечивает выполнение тела внутреннего цикла до тех пор, пока не будут перебраны все значения пара-метра цикла: от начального до конечного;
    s – переменная вещественного типа, назначена для вычисления суммы функции факториального ряда;
    a – переменная вещественного типа, используется для вычисления проме-жуточного результата программы;
    x – переменная вещественного типа, назначена для вычисления значения неизвестного члена функции;
    k – переменная вещественного типа, содержит имена переменных, значения которых считываются из текстового файла;
    p – переменная вещественного типа, содержит имена переменных, значения которых считываются из текстового файла;
    x1 – имя константы, задает первоначальное значение переменной х ;
    h – имя константы, определяет шаг изменения переменной х;
    t – файловая переменная типа text;
    sveta – имя функции, принимает ее единственное значение и передает в про-грамму результат своей работы, в данном случае возвращаемый результат имеет вещественный тип;
    i – формальный параметр-значение функции типа longint.


      Скачать полную версию - kursovik.zip [15.02 Kb] (cкачиваний: 76)



    Информация
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.


    Неофициальный сайт "Санкт-Петербургский институт машиностроения"
    Связь с администрацией
    Карта сайта
    Все права защищены 2007-2008 ©