logo
Харви Дейтел, Пол Дейтел Как программировать на С++ / 02-Deitel-Стр-115-214

170 Глава 2

один вида

cout « ' ';

и один вида

cout « endl;

  1. Напишите программу, которая постоянно печатает степени целого числа 2, соответственно 2, 4, 8, 16, 32, 64 и т.д. Число повторений вашего цикла не должно быть определено (т.е. вы должны создать бесконечный цикл). Что случилось, когда вы выполнили эту про­ грамму?

  2. Напишите программу, которая читает радиус (как значение типа float), рассчитывает и печатает диаметр, длину окружности и пло­ щадь круга. Для p используйте значение 3.14159.

  3. Чем ошибочен приведенный ниже оператор? Напишите правильный оператор, который бы выполнял то, что по всей вероятности пытался сделать программист.

cout « ++(x + у) ;

  1. Напишите программу, которая читает три ненулевых значения типа float, определяет и печатает, могут ли они представлять стороны треугольника.

  2. Напишите программу, которая читает три ненулевых целых числа, определяет и печатает, могут ли они представлять стороны прямо­ угольного треугольника.

  3. Компания хочет передавать данные по телефону, но она обеспокоена возможностью телефонного перехвата. Все передаваемые данные яв­ ляются четырехзначными целыми числами. Компания попросила вас написать программу, которая должна шифровать эти данные так, чтобы они могли передаваться с большей безопасностью. Ваша программа должна читать целые четырехзначные числа и шифро­ вать их следующим образом: заменять каждую цифру значением остатка от деления: (сумма этой цифры плюс 7) / 10. Затем менять местами первую цифру с третьей и вторую с четвертой. Затем печатать полученное зашифрованное целое. Напишите отдельную программу, которая вводила бы зашифрованные четырехзначные целые и дешифровала их, получая исходные числа.

2.38 Факториал неотрицательного целого n записывается как n! (произ­носится «эн факториал») и определяется следующим образом:

n!=7ix(n-l)x(n-2)x...xl (для значений n, больших или равных 1)

и

n!=l (для n=0).

Например, 5!=54321=20.

  1. Напишите программу, которая читает неотрицательное целое, рас­ считывает и печатает его факториал.

  2. Напишите программу, которая приблизительно рассчитывает зна­ чение математической константы e, используя формулу:

Управляющие структуры _ 171

зуя формулу:

x +

е = 1+

с) Напишите программу, которая рассчитывает значение ех, исполь-

r r2 r3 x + % X X

2.39. Найдите ошибки в следующих фрагментах (Замечание: ошибок может быть более одной):

a) For (x = 100, x >= 1, x++)

cout « x « endl;

b) Следующий фрагмент должен печатать, является ли целая вели­ чина value нечетной, или четной:

switch (value % 2) { case 0 :

cout « "Четное целое" « endl; case 1:

cout « "Нечетное целое" « endl; }

c) Следующий код должен выводить нечетные целые от 19 до 1:

for (x = 19; x >= 1; x += 2) cout « x « endl;

d) Следующий код должен выводить четные целые от 2 до 100:

counter = 2; do {

cout « counter « endl; counter += 2; } While (counter < 100);

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

5 100 200 300 400 500

где 5 показывает, что будет введено последовательно 5 чисел, ко­торые надо суммировать.

2.41. Напишите программу, которая подсчитывает и печатает среднее зна­ чение нескольких целых чисел. Полагайте, что последняя читаемая величина является меткой 9999. Типичная входная последователь­ ность может иметь вид

10 8 11 7 9 9999

показывающая, что должно быть посчитано среднее значение чисел, предшествующих 9999.

2.42 Что делает следующая программа?

#include <iostream.h> main ()