Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Программирование C++ 2014n.docx
Скачиваний:
7
Добавлен:
01.07.2025
Размер:
886.86 Кб
Скачать

Контрольные вопросы

  1. Что такое подпрограмма?

  2. Как подпрограмму можно реализовать в С++?

  3. Какие параметры называются формальными?

  4. Какие параметры называются фактическими?

  5. Что такое переменная?

  6. Что такое область действия идентификатора?

  7. Что такое локальная переменная? Что такое глобальная переменная?

  8. Какова область действия локальных идентификаторов?

  9. Какова область действия глобальных идентификаторов?

  10. Что такое функция?

  11. Чем отличается объявление функции от ее определения?

  12. Что такое прототип функции?

  13. Как описывается функция пользователя в программе?

  14. Что такое возвращаемое значение функции?

  15. Как осуществляется вызов функций из основной программы?

Пример выполнения лабораторной работы

Задание. Задавая с клавиатуры координаты вершин треугольника, определить, является ли он равносторонним.

Решение

1. Математическая модель

Треугольник является равносторонним, если длины его сторон равны. Находим длины сторон треугольника, используя подпрограмму нахождения расстояния между двумя точками.

Аргументы: a1, b1, c1, a2, b2, c2 целого типа – координаты вершин треугольника.

Результаты: текстовое сообщение.

Промежуточные величины: АВ, ВС, АС вещественного типа – длины сторон треугольника.

Расстояние между двумя точками А(х1,у1) и В(х2,у2) находим по формуле:

АВ = sqrt(sqr(x2 - x1) + sqr(y2 - y1).

2. Алгоритм – основная программа: – подпрограмма:

3. Программа 4. Результат работы программы:

#include <iostream>

#include <conio.h> Задайте координаты точек А, В, С

#include <math.h>

const double eps = 0.01; 0 0 6 6 5 1

using namespace std; Треугольник не является равносторонним

double Dlina (double x1,double y1,double x2,double y2);{

return (sqrt((x1-y1)*(x1-y1)+(x2-y2)*(x2-y2)));

}

int main(){

cout<<endl<<"Задайте координаты точек А, В, С"<<endl;

double a1, a2, b1, b2, c1, c2;

cin>>a1>>a2>>b1>>b2>>c1>>c2;

double ab, bc, ac;

ab = Dlina(a1, b1, a2, b2);

bc = Dlina(b1, c1, b2, c2);

ac = Dlina(a1, c1, a2, c2);

if((fabs(ac-bc)<eps) && (fabs(bc-ab)<eps) && (fabs(ac-ab)<eps))

cout<<endl<<"Треугольник является равносторонним";

else cout<<endl<<"Треугольник не является равносторонним";

_getch();

return 0;

}

6. Итерация и рекурсия

6.1. Понятие итеративного процесса

Итеративный процесс можно определить как процесс вычислений, основанный на повторении последовательности операций, при котором на каждом шаге повторения используется результат предыдущего шага. Примерами итеративных алгоритмов могут служить алгоритмы вычисления факториала натурального числа, последовательности чисел Фибоначчи, вычисление суммы членов последовательности с заданным числом слагаемых и т.д. Итеративные процессы программируются обычно с помощью циклических конструкций.

Пример. Вычисление факториала числа n.

int factor (int n)

{

int f = 1;

for (int i = 2; i <= n; i++) f *= i;

return k;

}