![]() ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Вызов функции с параметрами по умолчаниюdouble f; double sqr (double x) // определение функции { return x * x; } double ff (double x = sqr(f)) // вызов функции для вычисления // значения { return x; } int main (void) { f = 2; cout << "\n \n f =" < f < endl; cout << "\n ff (x = sqr(f)) =" << ff (); // вычисляется значение // по умолчанию cout << "\n ff(3) = " << ff (3) << endl; // умолчание // не используется return 0; } f = 2 ff (x = sqr(f)) = 4 ff (3) = 3 Вопрос 20. Рекурсия. Привести пример рекурсивной функции в С/C++. рекурсивной называется такая функция, которая может вызывать сама себя; для завершения процесса рекурсии в алгоритме рекурсивной функции обязательно должна быть ветка, обеспечивающая непосредственное завершение функции (процедуры). Рекурсивная функция "Факториал" #include "stdafx.h" #include <iostream> using namespace std; unsigned int factor (unsigned int); //прототип функции int main (void) { unsigned int n; // число, факториал которого надо вычислить unsigned int f; // факториал числа n cout << " Вычисление факториала: \n "; cout << " Введите число, факториал которого надо вычислить \n"; cin >> n; f = factor (n); cout << "Факториал числа “ << n << “равен” << f; return 0; } unsigned int factor (unsigned int k) { if (k == 1) return 1; else return k*factor(k-1); } Вопрос 21. Область видимости и "время жизни" переменных. Использование статических переменных в функции. Привести примеры. "Время жизни" —это время существования переменной во время работы программы. Глобальными в C++ называются переменные, объявленные вне любой функции. Их "время жизни" совпадает с временем работы программы. Имя глобальной переменной видно с момента объявления, т.е. в любой точке программы после объявления. Все переменные, объявленные в теле функции, как и параметры, передаваемые по значению, являются внутренними локальными переменными функции. Это одно из проявлений принципа инкапсуляции. l за пределами функции имена объявленных внутри нее переменных не видны, т. е. имя переменной нельзя использовать вне тела функции в других местах программы. Говорят, что область видимости локальных переменных — тело функции. l до входа в функцию локальных переменных не существует. Они "рождаются" при входе в функцию и "умирают" при выходе из нее. Говорят, что "время жизни" локальных переменных ограничено временем выполнения. функции. То же относится к параметрам. Данный механизм реализуется с помощью стека: локальные переменные и параметры автоматически размешаются в стеке программы при входе в функцию, а удаляются из стека при выходе из нее. Вопрос 22. Передача параметров в функцию по ссылке. Привести примеры определения и вызова таких функций в С/C++.. При передаче данных по ссылке в функцию, куда передаются данные, создаются синонимы исходных объектов. Поэтому работа в подпрограмме ведётся именно с исходными объектами. Если в подпрограмме ссылочная переменная изменит значение, то это сразу отразится на исходной переменной. В вызывающей функции параметр, передаваемый по ссылке, может быть только простой переменной любого известного типа. Вернёмся снова к примеру обмена, только данные передадим по ссылке. Пример: void Swap (int &a, int &b) // ссылки в заголовке { int t = а; а = b; b = t; } ………………………………. int х = 5, у = 3; Swap (x, у); cout << "х = " << х; cout << " у = " << у << endl; ………………………………. x = 3 y = 5 Вопрос 23. Перегрузка функций. Пример реализации перегруженной функции в С/C++. Использование одного имени для нескольких функций называется перегрузкой (overloading). Перегрузка функций — это одно из проявлений принципа полиморфизма, присущего объектно-ориентированным языкам программирования. Функции С++, вычисляющие абсолютное значение своего аргумента: int abs (int x); long labs (long x); double fabs (double x); long double fabsl (long double x); Пример: Перегрузку функций удобно применять там, где ряд функций выполняет однотипную работу над аргументами различных типов. Основное правило перегрузки заключается в том, что перегруженными считаются функции с различными списками параметров. Перегруженный вариант функции, вычисляющей абсолютное значение своего аргумента: int abs (int x); long abs (long x) { return labs(x);) double abs (double x) { return fabs(x); } long double abs (long double x) { return fabsl(x); } Вопрос 24. Одномерные массивы: объявление, инициализация, обработка, использование массивов в С/C++. Одномерный массив — массив, с одним параметром, характеризующим количество элементов одномерного массива. Фактически одномерный массив — это массив, у которого может быть только одна строка, и n-е количество столбцов. Столбцы в одномерном массиве — это элементы массива. Пример объявления: int month[12]; double mas[32]; char letter[40]; Каждый элемент массива имеет определенный номер, который в программировании обычно называют индексом. В C++ принято нумерацию элементов в массиве начинать с нуля. Инициализация массивов: 1) int month[7] = { 31, 28, 31, 30, 31, 30, 31 }; При инициализации массива разрешается не указывать количество элементов: int month[] = { 31, 28, 31, 30, 31, 30, 31, 31 }; Обнуление массива с заданным количеством элементов: int v[10] = {0}; 2) массив можно заполнить, вводя элементы массива с клавиатуры: for (int i = 0; i < 12; ++i) cin >> month [i]; Обработка массива: получение суммы элементов массива; поиск максимума, минимума и других задаваемых значений; сортировка массива; выполнение однотипных действий над всеми элементами массива. Пример использования: Вычисление суммы элементов массива вещественных чисел #include "stdafx.h" #include <iostream> using namespace std; int main (void) { double v [10] = { 1, 2, 3, 4, 5, 6 }; unsigned int n = sizeof (v) / sizeof (double); double s = 0; for (int i = 0; i < n; ++i) s += v [ i ]; cout << “Summa =“ << s << endl; return 0; } Вопрос 25. Одномерные массивы: последовательный поиск элементов в массивах и его организация на языке С/C++. Не нашли, что искали? Воспользуйтесь поиском:
|