Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ МОЛОДІ ТА СПОРТУ УКРАЇНИ
Технічний Коледж
Національного університету «Львівська політехніка»
Відділення Інформаційних Технологій
та Комп’ютерної Техніки
Лабораторна робота №3
З дисциплiни «Алгоритми та структури даних»
Львів 2012
План
Тема
Мета
Завдання
Основні теоретичні відомості
Розробка структурних даних
Розробка алгоритму
Текст робочої програми
Тестування
Висновок
1.Тема:
Використання рекурсивної функції на прикладі реалізації арифметичної прогресії.
2.Мета:
Навчитися використовувати рекурсивні функції для оптимізації процесу написання програм.
3.Завдання:
Написати програму обчислення n-го члену арифметичної прогресії перший член якої дорівнює номеру варіанту, а чисельник – даті народження. Кількість повторів ввести з клавіатури.
4.Основні теоретичні відомості:
Арифмети́чна прогре́сія це послідовність дійсних чисел виду
/
де / — це перший член прогресії, / — це фіксована різниця між попереднім та наступним.Формула для знаходження /-го члена прогресії:
/
5. Розробка структурних даних
Змінна
Опис
Тип
a,h,n,an
Вхідні дані, параметри
double
6. Розробка алгоритму
1) Блок-схема
Головна программа:
Функція:
2)Граф-схема
Головна программа:
початок
a,h,n
f(a,h,n)
an
кінець
Функція:
f(aa,hh,nn)
початок
nn!=1
кінець f(aa,hh,nn-1)
3) Описовий алгоритм:
Підключення бібліотек
Опис змінних
Початок головної програми
Введення даних
Обрахування результатів
Виведення значень
7)Текст робочої програми
#include "stdafx.h"
#include<iomanip>
#include<iostream>
#include<conio.h>//підключення бібліотек
using namespace std;//використання простору імен
void f(double,double,double);//оголошення прототипів функції
double a,h,n,an;//оголошення змінних
void main()// початок основної програми
{
cout<<"vvedit 1 chlen progresii\n";// вивід текстового пов1домлення
cin>>a;//Введення даних
cout<<"Vvedit chiselnik progresii\n";// вивід текстового пов1домлення
cin>>h;//Введення даних
cout<<"Vvedit kilkist chleniv progresii\n";// вивід текстового пов1домлення
cin>>n;//Введення даних
f(a,h,n);//виклик функції
cout<<"\nznachenya chlelena :\n"<<an;// виведення результату
getch();//затримка екрану
}
void f (double aa,double hh,double nn);//початок функції
{
if (nn!=1) then //перевірка умови ,виконання рекурсії та повернення значень
{
an=aa+hh;
f(an,hh,nn-1);
};
}
8) Тестування
/
9) Висновок
Я навчився використовувати рекурсивні функції для оптимізації процесу написання програм.