Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Языки программирования (пособие).doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
965 Кб
Скачать
☆

2.3.5Бесконечный цикл for

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

for (;;) {

system("cls");

cout << "1 - Greeting!\n";

cout << "2 - Farewell!\n";

cout << "0 - Exit!\n";

cout << "Your choice - ";

int choice;

cin >> choice;

if (choice == 1) {

cout << "Hello!\n";

} else if (choice == 2) {

cout << "Bye!\n";

} else {

break; //Прервать цикл

}

system("pause");

}

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

  1. Объясните, как работает цикл for. Приведите примеры.

  2. Опишите некоторые разновидности цикла for. Приведите примеры.

  3. Что такое бесконечный цикл? Как он используется?

  4. Что такое вложенные циклы? Приведите примеры

  5. Объясните работу оператора break. Приведите примеры.

  6. Вычислите сумму целых чисел от 100 до 300 при помощи цикла for.

  7. Выведите целые числа от N до –N.

  8. Выведите нечетные числа от N до –N.

  9. Реализуйте меню при помощи бесконечного цикла.

  10. Вычислите факториал введенного с клавиатуры числа.

Тема 2.4. Массивы

2.4.1Зачем нужны массивы?

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

Рассмотрим задачу вычисления среднего возраста десяти человек. Вначале объявим 10 переменных, каждая из которых хранит возраст одного человека, затем вычислим их среднее и выведем результат на экран.

//Объявление и инициализации десяти переменных

int age_0 = 30; int age_1 = 21;

int age_2 = 22; int age_3 = 19;

int age_4 = 45; int age_5 = 18;

int age_6 = 15; int age_7 = 61;

int age_8 = 43; int age_9 = 39;

//Вычисление и вывод среднего

int sum = age_0 + age_1 + age_2 +

age_3 + age_4 + age_5 +

age_6 + age_7 + age_8 +

age_9;

float avg = (float) sum/10;

cout << "Средний возраст равен " << avg << " лет\n";

Как видно из представленного фрагмента кода, неудобство использования переменных заключается в том, что их пришлось объявить 10 штук и обработать 10 штук. Решить данную проблему при большем количестве переменных, скажем, при 1000, будет еще неудобнее. Кроме того, если в процессе написания программы количество требуемых переменных неизвестно, то придется существенно усложнять код. Решить эту, а также много других задач эффективно и красиво можно с помощью массивов.

2.4.2Объявление массива

Массив – это набор элементов, которые имеют одинаковый тип и хранятся в памяти строго последовательно. Обращение к элементу массива осуществляется по имени массива и номеру элемента в этом массиве. Номер элемента в массиве называется индексом. Индекс первого элемента равен 0, а индекс последнего – N-1, где N – это размер массива. При объявлении массива указывается тип его элементов, имя и размер:

<Тип> <Имя>[<Размер>];

Типом элементов массива может быть любой существующий в языке тип. Имя массива – это идентификатор, который следует выбирать так, чтобы он отражал суть содержимого массива. Например, абстрактный числовой массив можно назвать numbers, массив возрастов – ages, а массив весов – weights. Размер массива должен быть константой, а не переменной, поэтому существуют три способа объявления массива:

//Способ 1.

int numbers[10];

//Способ 2.

const int n = 10;

int numbers[n];

//Способ 3.

#define SIZE 10

int numbers[SIZE];

Поскольку размер массива не может быть переменной, то следующая запись недопустима и вызовет ошибку компиляции:

int size;

cout << "Введите размер массива:\n";

cin >> size;

int numbers[size]; //Ошибка

Размер массива указывать необязательно, если при его объявлении выполняется инициализация:

int ages[] = {23, 45, 56, 78, 54};

Каждый из элементов массива представляет собой переменную, другими словами, именованную ячейку памяти. Отличие элемента массива от обычной переменной заключается лишь в том, что обращение к обычной переменной происходит по ее имени, а к элементу массива обращаются по имени массива и индексу элемента в этом массива. Таким образом, элементу массива можно присвоить некоторое значение так же, как и переменной:

numbers[0] = 99;

Ввести значение элемента массива с клавиатуры при помощи функций ввода

cin >> numbers[1];

cin >> symbols[7];

или вывести на экран:

cout << numbers[3];

cout << symbols[5];