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

166 Глава 2

от объема продаж за неделю. Например, продавец, который продал за неделю химикалий на $5000 получит $200 плюс 9% от $5000, то есть всего $650. Разработайте программу на С++, которая должна вводить для каждого продавца объем его продаж за последнюю не­делю, рассчитывать и выводить на экран его заработок. Данные вводятся поочередно для каждого продавца. Например:

Введите объем продаж в долларах (-1, если ввод закончен):

5000.00

Заработок: $650.00

Введите объем продаж в долларах (-1, если ввод закончен):

1234.56

Заработок: $311.11

Введите объем продаж в долларах (-1, если ввод закончен):

1088.89

Заработок: $298.00

Введите объем продаж в долларах (-1, если ввод закончен): -1

2.19. Разработайте программу на С++, которая должна определять зара­ ботную плату для каждого из нескольких служащих. Компания вы­ плачивает каждому служащему повременную зарплату за первые 40 часов работы и выплачивает в полуторном размере за все рабочие часы сверх 40. Вам дан список сотрудников компании, число часов, отработанных каждым за последнюю неделю, и почасовая ставка каждого сотрудника. Программа должна ввести эти данные для каж­ дого сотрудника, рассчитать и вывести на экран его суммарную зарплату. Например:

Введите число рабочих часов (-1, если ввод закончен) : 39 Введите почасовую ставку работника ($00.00) : 10.00 Зарплата: $390.00

Введите число рабочих часов (-1, если ввод закончен) : 40 Введите почасовую ставку работника ($00.00): 10.00 Зарплата: $400.00

Введите число рабочих часов (-1, если ввод закончен) : 41 Введите почасовую ставку работника ($00.00): 10.00 Зарплата: $415.00

Введите число рабочих часов (-1, если ввод закончен) : -1

2.20. Во многих компьютерных приложениях часто используется поиск максимального числа, (т.е. максимального из заданной группы чисел). Например, программа, которая определяет победителя со­ ревнования продавцов, должна вводить объемы продаж каждого про­ давца. Тот, у кого объем продаж выше, является победителем. На­ пишите псевдокод программы, а затем и саму программу на С++, которая вводит последовательно 10 чисел, определяет наибольшее из них и печатает его значение. Подсказка: ваша программа должна использовать следующие три переменные:

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

counter: счетчик для счета до 10 (для хранения количества введен­ных чисел и определения момента, когда введены все 10 чисел).

number: текущее введенное число. largest: максимальное найденное число.

2.21. Напишите программу на С++, использующую цикл и управляющую последовательность табуляции \t для печати следующей таблицы значений:

N lO*N 100*N 1000*N

1

10

100

1000

2

20

200

2000

3

30

300

3000

4

40

400

4000

5

50

500

5000

2.22. Используя подход упражнения 2.20, найдите два наибольших зна­чения из 10 чисел. Указание: вы можете ввести каждое число только один раз.

2.23.Модифицируйте программу на рис. 2.11 так, чтобы подтверждалась достоверность вводимой оценки. При любом вводе, даже если вве­дено не 1 или 2, сохраняйте цикл, пока пользователь не введет правильное значение.

2.24. Что напечатает следующая программа?

#include <iostream.h> main ()

int count = 1;

while (count <= 10) {

cout « (count % 2 ? "****" : « endl;

++count;

return 0;

2.25. Что напечатает следующая программа?

#include <iostream.h> main ()

int row = 10, column; while (row >= 1) { column = 1; while (column <= 10) {

cout « (row % 2 ? "<" : ">"); ++column;

--row;

cout « endl;

return 0;