Программирование >>  Структурное программирование 

1 ... 41 42 43 [ 44 ] 45 46 47 ... 342


Задание начального значения управляющей переменной

Проверка, не достигнуто ли конечное значение управляющей переменной


true к.

cout counter

> г

endl:

counter ++

Тело цикла Изменение

(это может быть управляющей

несколько операторов) переменной

Рис. 2.19. Блок-схема типичной структуры for

заголовок for. Обратите внимание на отличие операций отношения в циклах с уменьшением зшравляюш;ей переменной.

a) Изменение управляющей переменной от 1 до 100 с шагом 1.

for (int i = 1; i <= 100; i++)

b) Изменение управляющей переменной от 100 до 1 с шагом -1 (с уменьшением на 1).

for (int i = 100; i >= 1; i-) Типичная ошибка программирования 2.15

Использование несоответствующей операции отношения в условии продолжения цикла при счете циклов сверху вниз (например, использование i <= 1 при счете циклов сверху до 1).

c) Изменение управляющей переменной от 7 до 77 с шагом 7.

for (int i = 7; i <= 77; i += 7)

d) Изменение управляющей переменной от 20 до 2 с шагом -2.

for (int i = 20; i >= 2; i -= 2)

e) Изменение зшравляющей переменной в следующей последовательности: 2, 5, 8, 11, 14.

for (int j = 2; j <= 20; j += 3)

f) Изменение управляющей переменной в следующей последовательности: 99, 88, 77, 66, 55, 44, 33, 22, 11, 0.

for (int j = 99; j >= 0; j -= 11)

Следующие два примера содержат простые приложения структуры for. Программа на рис. 2.20 использует структуру for для суммирования всех четных чисел от 2 до 100.



Следующий пример вычисляет с помощью структуры for сложный процент. Рассмотрим следующую постановку задачи:

Некто внес $1000.00 на депозитный счет под 5 процентов годовых. Предполагая, что доход оставляется на депозите, рассчитать и напечатать суммы денег на счете в конце каждого года на протяжении 10 лет. Использовать для расчета следующую формулу:

apil+rf

р - первоначальный (основной) вклад г - ставка годового дохода п - число лет

а - сумма на депозите к концу п-го года.

Эта задача подразумевает использование цикла, в котором будут рассчитываться ежегодные суммы на депозите в течение 10-и лет. Решение приведено на рис. 2.21.

Суммирование с помощью for ♦include <iostream.h>

main () {

int sum = 0;

for (int number = 2; number <= 100; number += 2)

sum += number; cout Сумма равна sum endl;

return 0;

Сумма равна 2550

Рис. 2.20. Суммирование с помощью for

Отметим, что тело структуры for на рис. 2.20 в действительности может быть включено в правую часть заголовка for с помощью операции последо-вания (запятая):

for (int number = 2; number <= 100; sum += number, number += 2) ;

Задание начального значения sum = О также может быть включено в раздел задания начального значения структуры for.

Хороший стиль программирования 2.20

Хотя операторы, предшествующие for и операторы тела for могут часто включаться в заголовок for, избегайте делать это, чтобы не затруднять чтение программы.

Хороший стиль профаммирования 2.21

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



Расчет сложного процента

#include <iostream.h> ♦include <iomanip.h> #include <math.h>

main() {

double amount, principal = 1000.0, rate = .05;

cout Год setw(21) Сумма депозита endl;

for (int year = 1; year <= 10; year++) {

amount = principal * pow(1.0 + rate, year); cout << setw{3) year

<< setiosflags(ios::fixed I ios::showpoint)

setw(21) setprecision(2) amount endl;}

return 0;

Сумма депозита

1050.00

1102.50

1157.62

1215.51

1276.28

1340.10

1407.10

1477.46

1551.33

1628.89

Рис. 2.21. Расчет сложного процента с помощью for

Структура for выполняет операторы своего тела 10 раз, причем управляющая переменная изменяется от 1 до 10 с шагом 1. Хотя C-I-I- не имеет операции возведения в степень, но ее можно осуществить с помощью функции pow из стандартной библиотеки. Функция pow имеет два аргумента типа double и возвращает результат типа double. Тип double - это тип с плавающей точкой во многом похожий на float, но переменные типа double могут хранить значения, много большие, чем переменные типа float, и с большей точностью. Константы (такие, как 1000.0 и .05 на рис. 2.21) требуют в С-1-f- использования типа double.

Эта программа не будет компилироваться без включения math.h. Функция pow требует аргументов типа double. Заметьте, что year - целое. Файл math.h содержит информацию, которая дает указание компилятору преобразовать величину year во временное представление double перед вызовом функции. Эта информация содержится в прототипе функции pow. Прототипы функций будут рассмотрены в главе 3. Мы дадим сведения о функции pow и других функциях из библиотеки математических функций в главе 3.



1 ... 41 42 43 [ 44 ] 45 46 47 ... 342

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика