Skip to content

Практическая работа №3

Условные конструкции и программирование циклов

Section titled “Условные конструкции и программирование циклов”

Цель работы: Научиться создавать программы с использованием операторов ветвления (if, switch) и циклов (while, do-while, for)

Основные теоритические положения

Section titled “Основные теоритические положения”

1. Условные конструкции

Section titled “1. Условные конструкции”
if (условие) {
// блок кода, если условие истино (true)
} else if (другое_условие) {
// блок кода, если условие истино (true)
} else {
// блок кода, если все условия не истины (false)
}
switch (выражение) {
case значение_1:
// код для значения_1
break;
case значение_2:
// код для значения_2
break;
default:
// код по умолчанию, если выражение не совпадает с одним из значений
break;
}

2. Циклические конструкции

Section titled “2. Циклические конструкции”
while (условие) {
// Код, выполняется пока условие истино (true)
}
do {
// код, выполняется хотя бы один раз
} while (условие);
for (инициализация; условие; изменение) {
// Код, выполняемый в цикле
}
// пример
for (int i = 0; i < 10; i++) {
cout << i << endl;
}

Существует два основных оператора для работы с циклами:

  • Оператор break - служит для выхода из цикла полностью
  • Оператор continue - пропускает лишь одну итерацию и не выходит из цикла

Компиляция и запуск программы

Section titled “Компиляция и запуск программы”
Terminal window
g++ *имя_файла*.cpp -o *название_файла_для компиляции*
./*название_скомпилированного_файла*

Для каждого задания необходимо:

  1. Составить схему алгоритма программы;
  2. Написать программу на языке программирования C++;
  3. Произвести отладку программы на различных входных данных.

Задания для выполнения

Section titled “Задания для выполнения”

1 Счастливое число Пользователь вводит целое положительное число. Программа должна определить, является ли число “счастливым”. Число называется счастливым, если сумма цифр числа равна произведению цифр числа. Пример: число 123 - счастливое, так как 1 + 2 + 3 = 1 * 2 * 3

1.2 Обратный порядок Пользователь вводит целое число. Программа должна вывести число в обратном порядке. Например: число 12345, необходимо вывести 54321

1.3 Задача о бактериях Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12,…, 24 часа.

1.4 Числа Фибоначчи Пользователь вводит число N. Программа должна вывести последовательность Фибоначчи до N числа. Формула Фибоначчи:

F(0)=0
F(1)=1
F(n)=F(n-1)+F(n+2)
Ограничение: 0 ≤ n ≤ 45

1.5 Задача - Инопланетяне существуют?

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

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

В городе, где живёт Максим, 200 тысяч жителей. Необходимо определить, через сколько часов и минут все жители города узнают об НЛО, при условии, что информация об этом будет распространяться только из уст в уста


  1. В чём разница между циклом while и do-while?
  2. Когда целесообразно использовать оператор switch вместо if-else?
  3. Как предотвратить зацикливание программы?
  4. Какие существуют способы прерывания цикла?
  5. Как работает оператор continue в цикле?
  6. Как проверить корректность вводимых пользователем данных?
  7. Какие преимущества предоставляют блок-схемы при проектирование алгоритмов?

Рекомендуемая литература

Section titled “Рекомендуемая литература”
  1. LearnCPP.com - лучший онлайн-учебник по C++ (на английском)
  2. GeeksforGeeks.org - статьи и примеры по программированию
  3. Огнева М. В., Кудрина Е. В. “Программирование на языке С++. Практический курс”