Программа 6. Максимальное из двух чисел
В данной программе оператор if используется для выбора максимального из двух вводимых чисел.
// Файл MaxOfTwo.cpp
// Программа вводит два целых числа и печатает наибольшее из них
#include <iostream.h>
#include <conio.h> // Для доступа к getch()
int main()
{
int x, y, max;
cout << "\nВведите первое число: "; cin >> x;
cout << "Введите второе число: "; cin >> y;
if(x > y)
max = x;
else
max = y;
cout << "Максимальное число max = " << max << "\n";
getch(); // Ожидаем нажатия любой клавиши
return 0;
}
Далее приведен диалог с программой:
Введите первое число: 32
Введите второе число: 66
Максимальное число max = 66
Операторы цикла
Операторы цикла дают возможность многократно выполнять один и тот же участок программы, проводя одинаковые вычисления с различными данными. В языке C++ имеются три вида циклов.
Цикл с предусловиемwhile
Данный цикл записывается в виде:
while(выр)
инструкция // Тело цикла
Сначала вычисляется выражение выр. Если оно истинно (не нуль), выполняется инструкция и снова вычисляется выр. Повторения цикла завершаются, когда выр станет ложным (нулем).
Инструкция, выполняемая в цикле, называется телом цикла.
Так как условие повторения проверяется до выполнения тела цикла, данный цикл называют циклом с предусловием.
Тело цикла может не выполниться ни одного раза, если выр окажется ложным при первом его вычислении.
Программа 7. Суммирование цифр целого
Программа, вводит целое число и формирует другое число, равное сумме десятичных цифр первого.
Алгоритм решения задачи состоит в том, что находится последняя цифра числа, как остаток от деления числа на 10. Например, если исходное число n = 1234, то выражение n % 10 равно 4. Значение этого выражения добавляется к переменной m, начальное значение которой равно 0. Затем у числа n отбрасывается последняя цифра путем присваивания ему значения n / 10. Описанные действия повторяются, пока число n не станет равным нулю. Для организации повторений использован цикл while, а условием повторения является n > 0.
// Файл SumDigit.cpp
#include <iostream.h>
#include <conio.h>
int main()
{
int n, // Заданное число
sum; // Сумма цифр
cout << "\nВведите целое число: ";
cin >> n; // Ввод числа
if(n < 0){ // Если число отрицательное
cout << "Требуется положительное число \n";
return 1; // Завершение программы
}
sum = 0;
while(n > 0){ // Пока в числе есть цифры, добавляем
sum = sum + n % 10; // к сумме последнюю цифру числа
n = n / 10; // и отбрасываем у числа последнюю цифру
}
cout << "Сумма цифр числа: " << sum << "\n";
getch();
return 0;
}
После ввода числа n в условном операторе if проверяется, не меньше ли оно нуля. Если результат сравнения есть истина, то есть введено отрицательное число, выводится предупреждающее сообщение и функция main завершается инструкцией return 1; при этом завершается и вся программа.
Возвращаемое функцией main значение может быть обработано внешней программой, например, операционной системой. Принято возвращать 0 при нормальном завершении программы и значение, отличное от 0, при возникновении каких-то проблем.
Если введенное число положительно, программа выполняется дальше. Переменной sum присваивается начальное нулевое значение, в ней будет накапливаться сумма цифр. Последняя цифра, получаемая в цикле как остаток от деления числа на 10, добавляется к сумме, затем последняя цифра числа отбрасывается путем его деления на 10. Вот пример работы данной программы:
Введите целое число: 1234
Сумма цифр числа: 10
Цикл for
Конструкция цикла for имеет вид:
for(выр1; выр2; выр3)
инструкция
Любое из трех выражений в скобках может отсутствовать, но точки с запятой опускать нельзя. Если отсутствует выр2, то оно считается истинным. Этот цикл эквивалентен конструкции:
выр1;
while(выр2){
инструкция
выр3;
}
Выражение выр1 вычисляется единственный раз перед началом работы цикла. Условием повторения цикла является истинность выр2. После выполнения инструкции в теле цикла вычисляется выр3.
Цикл for можно рассматривать как цикл с параметром, обеспечивающий заданное число повторений, например, цикл
for(i = 0; i < n; i++)
…
повторяется ровно n раз. Начальное значение для i равно 0, после каждого выполнения тела цикла i увеличивается на 1 за счет выражения i++. Таким образом, i пробегает последовательность значений: 0, 1, 2,…, n-1, n. После завершения работы цикла его параметр i сохраняет последнее полученное значение i = n, которое можно использовать в дальнейших вычислениях.