Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1,2,3,6 ,курсач (Жека) / Лаба 6 прога

.docx
Скачиваний:
15
Добавлен:
09.02.2015
Размер:
24.94 Кб
Скачать

Федеральное государственное бюджетное образовательное учреждение высшего

профессионального образования

«Санкт-Петербургский государственный электротехнический

университет «ЛЭТИ» им. В.И.Ульянова (Ленина)»

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

Кафедра вычислительной техники

Отчет

по лабораторной работе № 5

на тему «Рекурсия»

по дисциплине «Программирование»

Выполнил: студент группы 2306 Титков Е.В.

Проверила: к.т.н., доцент Сискович Т.И.

Санкт-Петербург

2013 г.

Цель работы

Получение практических навыков в работе с рекурсивными алгоритмами

Задание

Написать программу для вычисления суммы элементов массива с использование рекурсивных функций

Уточнение задания

Программа вычисляет сумму элементов одномерного массива. Массив заполняется случайными элементами с помощью функции random.

Контрольные примеры

Контрольные примеры приведены в таблице 1 «Контрольные примеры ».

Таблица 1. Контрольные примеры обработки

Массив A

сумма

A[0]

A[1]

A[2]

A[3]

A[4]

A[5]

A[6]

1

2

3

4

5

6

7

28

1

0

0

0

0

7

3

11

Описание переменных главной функции

Описание переменных главной функции приведено в таблице 3.

Таблица 3. Описание переменных главной функции

Имя переменной

Тип переменной

Назначение

a[100]

int

массив чисел

n,i

int

вспомогательные переменные

Краткое описание алгоритма

1)Пользователь вводит количество элементов в массиве

2)Программа заполняет массив случайными элементами

3)Программа выводит сумму элементов массива

Код программы на языке C/С++

#include <locale>

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <time.h>

int summa(int N, int a[100]);

int i,n, a[100];

void main()

{

setlocale(LC_CTYPE, "russian");

clrscr();

printf("\nКоличество элементов массива? ");

scanf("%d", &n);

printf("\nВ сформированном массиве %d чисел:\n", n);

randomize();

for (i=0; i<n; i++)

{

a[i]= -10+random(21);

printf("%d ", a[i]);

}

printf("Сумма: %d", summa(n-1, a));

}

int summa(int N, int a[100])

{

if (N==0) return a[0];

else return a[N]+summa(N-1, a);

}

Результаты выполнения программы

При выполнении программы полученные результаты совпадают с приведенными в таблице 1 "Контрольные примеры". Ошибок не обнаружено.

Выводы

При выполнении лабораторной работы получены практические навыки в работе с рекурсивными функциями на языке С/С++.

Соседние файлы в папке 1,2,3,6 ,курсач (Жека)