
- •Вопрос 1. История языков программирования от машинного кода до современных языков структурного программирования.
- •Вопрос 3. Понятие о синтаксисе языка программирования. Основные типы данных языка с.
- •Вопрос 14. Цикл с выходом из середины. Привести блок схемы и примеры реализации.
- •Вопрос 15. Итерационные алгоритмы. Привести примеры реализации итерационных алгоритмов в задачах вычисления суммы бесконечного ряда с заданной точностью (нет ничего)
- •Вопрос 21. Область видимости и "время жизни" переменных. Использование статических переменных в функции. Привести примеры.
- •Void Swap ( int &a, int &b ) // ссылки в заголовке
- •2) Массив можно заполнить, вводя элементы массива с клавиатуры:
- •Вопрос 26. Что такое вложенные циклы? Проанализировать работу программы, содержащей вложенные циклы.
- •Int MyArray1 [ 10 ]; // Одномерный массив размерности 10
- •Int MyArray2 [ 20 ][ 10 ]; // 20 одномерных массивов
- •Int MyArray3 [ 30 ][ 20 ][ 10 ]; // 30 двумерных массивов
- •Вопрос 36. Функции сравнения строк. Проиллюстрировать работу функций на примерах
- •Вопрос 37. Функции преобразования числа в цифровую строку и обратно. Проиллюстрировать работу функций на примерах.
- •Int value; //Запись &value означает «адрес объекта value».
- •1) С использованием имени переменной.
- •2) С использованием адреса переменной.
- •Int *ap [15]; // Массив из 15 указателей на int
- •Вопрос 40. Передача массивов в качестве параметров в функцию. Привести пример передачи массива вещественных чисел в функцию, вычисляющую сумму его элементов.
- •Вопрос 41. Статическое и динамическое выделение памяти. Операторы new и delete.
- •Вопрос 44. Привести пример реализации алгоритма обработки и преобразования матриц, используя динамическое выделение памяти и технику работы с указателями.
- •Вопрос 45. Понятие структуры. Описание, инициализация структур. Доступ к полям структур. Примеры использования структур.
- •Вопрос 46. Массивы структур. Привести пример обработки массива структур.
- •Вопрос 47. Передача структур в качестве параметров в функцию. Привести пример функции, обрабатывающей структуру.
- •Передача целых структур функциям
- •Вопрос 48. Указатели на структуру. Использование структур с функциями. Передача структуры в функцию по значению, по ссылке и с использованием техники работы с указателями
- •Объявление указателя на структуру
- •Использование указателей на структуры
Вопрос 21. Область видимости и "время жизни" переменных. Использование статических переменных в функции. Привести примеры.
"Время жизни" — это время существования переменной во время работы программы.
Глобальными в C++ называются переменные, объявленные вне любой функции. Их "время жизни" совпадает с временем работы программы. Имя глобальной переменной видно с момента объявления, т.е. в любой точке программы после объявления.
Все переменные, объявленные в теле функции, как и параметры, передаваемые по значению, являются внутренними локальными переменными функции. Это одно из проявлений принципа инкапсуляции.
за пределами функции имена объявленных внутри нее переменных не видны, т. е. имя переменной нельзя использовать вне тела функции в других местах программы. Говорят, что область видимости локальных переменных — тело функции.
до входа в функцию локальных переменных не существует. Они "рождаются" при входе в функцию и "умирают" при выходе из нее. Говорят, что "время жизни" локальных переменных ограничено временем выполнения. функции. То же относится к параметрам. Данный механизм реализуется с помощью стека: локальные переменные и параметры автоматически размешаются в стеке программы при входе в функцию, а удаляются из стека при выходе из нее.
Вопрос 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};