Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
53
Добавлен:
28.03.2015
Размер:
252.93 Кб
Скачать

Типовые примеры

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

Подсчет суммы цифр в числе

Требуется разработать алгоритм подсчета суммы цифр в целом положительном числе, представленном в десятичной системе счисления. Например, в числе 351210сумма цифр равна 1110, что определяется с помощью простого суммирования. Нам необходимо построить алгоритм, который будет автоматически выполнять указанное действие.

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

Идея решения задачи заключается в использовании целочисленного деления и вычисления остатка от целочисленного деления. Так, если мы возьмем остаток деления исходного числа на 10, то получим самую младшую цифру исходного числа. Далее следует исходное число разделить на 10 и опять вычислить остаток от деления полученного результата на 10. В результате мы получим цифру, расположенную в разряде десятков исходного числа. Этот процесс следует продолжать до тех пор, пока результатом деления на 10 не окажется ноль. Для лучшей иллюстрации сказанного рассмотрим рис. 2.15, где представлена блок-схема алгоритма. Она соответствует словесному описанию механизма получения суммы цифр. Теперь алгоритм можно реализовать в виде программы (листинг 2.15). Здесь, учитывая блок-схему, мы воспользовались знакомым циклом с предусловием.

Листинг 2.15. Программа подсчета суммы цифр в десятичном числе

#include <iostream>

using namespace std;

#include <conio.h>

#include <math.h>

void main()

{

int N,A,Summa;

cout << "Введите целое число";

cin >> N;

Summa=0;

while (N > 0)

{

A= N % 10;

Summa= Summa+A;

N= N / 10;

}

cout << "/nSumma="<<Summa;

_getch();

}

Рис. 2.15. Блок-схема к программе листинга 2.15

Анализ четности пары чисел

Требуется написать программу, которая определяет, имеется ли среди введенных с клавиатуры целых чисел AиBхотя бы одно четное. Вариант реализации требуемого алгоритма представлен в листинге 2.16. Здесь мы сначала вычисляем остатки от деления двух исходных чисел на 2. Если оба этих остатка равны единице, то, следовательно, среди введенных чисел четных нет. В противном случае имеется хотя бы одно четное число.

Листинг 2.16. Проверка наличия четных чисел

#include <iostream>

using namespace std;

#include <conio.h>

#include <math.h>

void main()

{

int A,B;

cout << "Введите целое число A ";

cin >> A;

cout << "Введите целое число B ";

cin >> B;

A= A % 2;

B= B % 2;

A= A + B;

if ( A == 2)

cout << "Четных чисел нет";

else

cout << "Четное число есть";

_getch();

}

Реализуем еще один вариант решения, который связан с разработкой программы, использующей логическое ИЛИ. В этом случае (листинг 2.17) вместо арифметического сложения остатков от деления используется логическая операция —дизъюнкция. А именно: вычисляется дизъюнкция условий равенства нулю остатков от деления исходных чисел на 2. Если хотя бы один остаток от деления равен нулю, то на экран будет выведено соответствующее сообщение о наличии четных чисел.

Листинг 2.17. Вариант алгоритма с использованием дизъюнкции

#include <iostream>

using namespace std;

#include <conio.h>

#include <math.h>

void main()

{

int A,B;

cout << "Введите целое число A ";

cin >> A;

cout << "Введите целое число B ";

cin >> B;

A= A % 2;

B= B % 2;

if ((A == 0)|| (B == 0))

cout << "Четное число есть";

_getch();

}

Соседние файлы в папке файлы по информатике