Упражнение - Структурно програмиране. Използване на функции.

Структурно програмиране. Използване на функции.

Учебни въпроси:
1. Стартиране на средата за програмиране Microsoft Visual C++ 6.0.
2. Създаване конзолни приложения с използване функции.
Необходими пособия:
- компютри с инсталиран софтуер Microsoft Visual Studio 6.0;
- "Езикът C++", Софтпрес, 2001
- "Програмиране с Microsoft Visual C++ 6.0", Софтпрес, 1999
- Записки от лекциите или тук

Време: 3 учебни часа


 

Задача 1: Да се въведе и стартира следната програма на С++:


 

a) да се стартира програмата и да се провери дали работи вярно;
b) да се изпробва програмата при следните входни данни:
1 и 1 ;
-5 и 5 ;
10000 и 10000 ;

Въпроси към задачата:
1) коя е потребителската функция, дефинирана в програмата?

2) кои са формалните входни параметри и от какъв тип са те?

3) по какъв начин се извиква функцията и с какви фактически параметри?

4) какъв тип трябва да бъде функцията, ако трябва да намира сумата на две дробни числа?

5) какво ще се получи, ако при извикване на функцията се подаде само един параметър?

 

Задача 2: Да се въведе и стартира следната програма на С++:


Въпроси към задачата:
1) коя е потребителската функция, дефинирана в програмата?

2) кои са формалните входни параметри и от какъв тип са те?

3) по какъв начин се извиква функцията и с какви фактически параметри?

4) от какъв тип е функцията DDS и каква стойност връща тя?

5) по какъв начин се предава параметъра на функцията - по стойност или по адрес и по какво се определя това?

 

 

Задача 3: Да се направи програма на C++ за пресмятане на функцията синус от зададен ъгъл. Ъгълът да се въвежда в градуси.

(Пояснение: За да използвате вградената функция sin(x) трябва да включите библиотеката math.h. При използване на функцията sin(x) имайте предвид, че входният й параметър се задава в радиани.)


Решение на задачата:

 

Задача 4: Да се направи програма на C++ за намиране факториела на числото N с използване на рекурсивна функция.

(Пояснение: Дефинирайте функция factorial по следния начин:
long factorial (long a)
{
if ( a > 1 )
return ( a * factorial ( a-1 ) );
else
return (1);
}

Въпроси към задачата:
1) коя е най-голямата стойност за N, при която програмата ще пресмята вярно факториела и защо?

2) защо функцията factorial е рекурсивна?

3) кой е формален и кой е фактически параметър на функцията?

4) от какъв тип трябва да се дефинира функцията, за да пресмята факториела на числа, по-големи от 100?

5) какво ще се получи, ако се пропусне логическата проверка в тялото на функцията?

 

Задача 6: Да се направи програма на С++, която пресмята стойността на функцията
y=sin(x) за x в интервала [-3;+3]
y=0 за x<-3 и
y=1 за x>3.


Решение на задачата: