Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
infa (1).docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
318.43 Кб
Скачать

65. Применение оператора цикла while для суммирования рядов.

В следующем примере приведен пример суммирования ряда, значения которого отличаются на 1.

#include <iostream>

#include <cmath>

using namespace std;

int main(){

int S = 0;

int i=1;

while (i <= 20){

S=S+i;

i=i+1;

}

cout<< S;

return 0;

}

66. Оператор выбора (switch). Выбор на множестве условий.

Оператор switch предназначен для организации выбора из множества различных вариантов. switch ( выражение ) { [объявление] [ case КонстантноеВыражение1]: [ список-операторов1] [ case КонстантноеВыражение2]: [ список-операторов2] [ default: [ список операторов ]] } Тело оператора smitch состоит из нескольких операторов, помеченных ключевым словом Сase с последующим Константным Выражением. Следует отметить, что использование целого константного выражения является существенным недостатком, присущим рассмотренному оператору. Если ни одно из константных выражений не равно выражению, то управление передается на оператор, помеченный ключевым словом default, а в случае его отсутствия управление передается на следующий после switch оператор.

67. Оператор switch – использование break

Оператор switch дает возможность сопоставления значения с множеством констант. Использование оператора break позволяет в необходимый момент прервать последовательность выполняемых операторов в теле оператора switch, путем передачи управления оператору, следующему за switch.

69. Динамическое распределение памяти. Указатели. Создание указателей. Выделение памяти.

В С++ объекты могут быть размещены либо статически – во время компиляции, либо динамически – во время выполнения программы, путем вызова функций из стандартной библиотеки.Часто возникают ситуации, когда заранее не известно, сколько объектов – чисел, строк текста и прочих данных будет хранить программа. В этом случае используется динамическое выделение памяти, когда память занимается и освобождается в процессе исполнения программы. При использовании динамической памяти (ДП) отпадает необходимость заранее распределять память для хранения данных, используемых программой. Управление динамической памятью – это способность определять размер объекта и выделять для его хранения соответствующую область памяти в процессе исполнения программы. Динамическое распределение памяти — способ выделения оперативной памяти компьютера для объектов в программе, при котором выделение памяти под объект осуществляется во время выполнения программы.

При динамическом распределении памяти объекты размещаются в т.н. «куче» (англ. heap): при конструировании объекта указывается размер запрашиваемой под объект памяти, и, в случае успеха, выделенная область памяти, условно говоря, «изымается» из «кучи», становясь недоступной при последующих операциях выделения памяти. Противоположная по смыслу операция — освобождение занятой ранее под какой-либо объект памяти: освобождаемая память, также условно говоря, возвращается в «кучу» и становится доступной при дальнейших операциях выделения памяти.

Для управления динамическим распределением памяти используется «сборщик мусора» — программный объект, который следит за выделением памяти и обеспечивает её своевременное освобождение. Сборщик мусора также следит за тем, чтобы свободные блоки имели максимальный размер, и, при необходимости, осуществляет дефрагментацию памяти.

Указатель (англ. pointer) — переменная, диапазон значений которой состоит из адресов ячеек памяти или специального значения — нулевого адреса. Последнее используется для указания того, что в данный момент там ничего не записано.

При использовании в программах на C++ требуется выполнять явное преобразование типа указателя. Если необходимо создать символьную cтроку в динамической памяти, то сначала надо объявить указатель char *S1, а затем выделить область под символьную строку с помощью функции malloc():

S1=(char*)malloc(V);

где V – выражение, значением которого является целые неотрицательные числа, например, V=10, V=10+7 и т. д.

Ядром динамического выделения памяти языка С являются функции malloc() и free(), являющиеся частями стандартной библиотеки. Всякий раз, когда функцией malloc() осуществляется запрос на выделение памяти, выделяется порция имеющейся в наличии свободной памяти. Всякий раз, когда эта память освобождается с помощью функции free(), эта память возвращается назад системе.

Язык С++ определяет два оператора динамического выделения памя­ти — new и delete.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]