Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник Моя первая программа на С++.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆

40 * Rate /* обычный недельный заработок */ hours - 40 /* сверхурочные часы */

rate * 2 /* оплата сверхурочных */

где rate— плата за 1 час работы, а hours— общее количество проработанных часов. В этом уравнении на- до умножить количество сверхурочных часов на оплату в двойном размере, а затем прибавить получен- ный результат к обычной недельной оплате. Если вы напишете уравнение без учета приоритета операто- ров, оно будет выглядеть так:

total = 40 * rate + hours - 40 * rate * 2

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

Операция Результат

40 * rate

400

40 * rate

400

400 * 2

800

400 + 48

448

448 – 800 –352

Согласитесь, что получить недельный заработок в размере –352 доллара несколько обидно. Чтобы напи- сать правильное уравнение, используйте скобки: total = (40 * rate) +((hours - 40) * (rate * 2)) Теперь уравнение состоит из двух логических частей (полный текст программы приведен в Листинге6.4). В пер- вых скобках вычисляется обычная заработная плата, во вторых— оплата сверхурочных. Расчет сверх- урочных тоже состоит из двух частей, заключенных в собственные скобки. Си прежде всего выполнит операции во внутренних скобках. Порядок выполнения действий теперь станет таким:

Операция Резуль- тат

40 * rate

400

hours – 40

8

rate * 2

20

8 * 20

160

400 + 160

560

Листинг 6.4. Программа расчета недельного заработка с учетом сверхурочных.

/*payroll1.c*/ main()

{

float rate, hours, total;

printf("Введите оплату одного часа работы: "); scanf("%f", &rate);

printf("Введите количество отработанных часов: "); scanf("%f", &hours);

total = (40 * rate) + ((hours -40) * (rate*2)); printf("Ваш недельный заработок: %f", total);

}

Если вы находите, что использование скобок сбивает вас с толку, разбейте уравнение на несколько от- дельных частей. В Листинге6.5 приведен текст программы, которая выполняет тот же расчет недельного заработка, но проводит его в несколько последовательных этапов, определяя для этого дополнительные переменные. Результат каждого отдельного вычисления присваивается конкретной переменной и может быть выведен на экран, что делает получаемую информацию даже несколько более наглядной. Этот при- ем позволяет полностью контролировать весь процесс вычисления и с большей легкостью находить ошиб- ки.

Листинг 6.5. Программа, осуществляющая вычисление в несколько этапов.

/*payroll2.c*/ main()

{

float rate, hours, total, regular, extra, d_time, overtime; printf("Введите оплату одного часа работы: "); scanf("%f", &rate);

printf("Введите количество отработанных часов: "); scanf("%f", &hours);

regular = 40 * rate; extra = hours - 40; d_time = rate * 2;

overtime = extra * d_time; total = regular + overtime;

printf("Ваш недельный заработок: %f", total);

}

Используемые алгоритмы обработки данных

Некоторые часто используемые алгоритмы обработки данных содержат арифметические операторы. Мно- гие из них применяются настолько часто, что программисты даже не думают о них как об алгоритмах. Два наиболее важных из них называются «счетчиком» и «аккумулятором».