/*payroll1.c*/main() { floatrate, hours, total; printf(Введите оплату одного часа работы: ); scanf(%f, rate); printf(Введите количество отработанных часов: ); scanf(%f, hours); total = (40 * rate) + ((hours -40) * (rate*2)); printf(Ваш недельный заработок: %f, total); }
Если вы находите, что использование скобок сбивает вас с толку, разбейте уравнение на несколько отдельных частей. В Листинге 5 приведен текст программы, которая выполняет тот же расчет недельного заработка, но проводит его в несколько последовательных этапов, определяя для этого дополнительные переменные. Результат каждого отдельного вычисления присваивается конкретной переменной и может быть выведен на экран, что делает получаемую информацию даже несколько более наглядной. Этот прием позволяет полностью контролировать весь процесс вычисления и с большей легкостью находить ошибки.
Листинг 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);}
Используемые алгоритмы обработки данных
Некоторые часто используемые алгоритмы обработки данных содержат арифметические операторы. Многие из них применяются настолько часто, что программисты даже не думают о них как об алгоритмах. Два наиболее важных из них называются «счетчиком» и «аккумулятором».
Счетчики
Счетчик — это переменная, которая увеличивает свое значение на единицу каждый раз, когда происходит определенное событие. Алгоритм счетчика таков:
variable = variable + 1
Учитель математики скажет вам, что эта формула бессмысленна, так как соответствующее уравнение не имеет решений, но в программировании на компьютере такая инструкция является вполне законной.
Рис.9. Алгоритм счетчика
Компьютер сначала вычислит значение в правой части, а потом присвоит полученное значение переменной в левой части (рис.9). Таким образом, одна и та же переменная никогда не будет иметь два значения одновременно. С точки зрения компьютера, смысл выражения можно передать так:
Новое значение переменной равно старому значению плюс 1
Давайте проследим за работой алгоритма счетчика, так, как она показана на рис.10. У нас есть переменная count, которой присвоено начальное значение, равное нулю:
intcount;count=0;
Теперь вступает в действие алгоритм
count = count + 1;
Рис.10. Выполнение алгоритма счетчика
Компьютер выполняет эту инструкцию так:
count = 0 + 1
К начальному значению переменной count, которое равно 0, добавлен литерал, имеющий значение 1. В результате вычислений получено значение 1, которое теперь присваивается переменной count. Значение переменной изменяется с 0 на1. Затем та же процедура повторяется снова:
count = count + 1;
Компьютер выполняет эту операцию как
count = 1 + 1
К текущему значению переменной count, равному 1, прибавляется литерал со значением 1. В результате они дают 2, и это новое значение присваивается переменной. С каждым новым выполнением этой операции, значение переменной count возрастает на единицу (инкремент).
Разумеется, можно присвоить переменной любое начальное значение и увеличивать его на любое отличное от единицы число. Если присвоить переменной count начальное значение, равное 1, при выполнении инструкции
count = count + 2;
значение переменной всегда будет нечетным числом: 1, 3, 5, 7 и так далее. Используя переменную count, можно считать пятерками, count = count + 5, или десятками, count = count + 10, или как угодно еще.
Чтобы считать в сторону уменьшения, достаточно слегка изменить алгоритм:
variable = variable — 1
Теперь при каждом выполнении операции значение переменной будет уменьшаться на единицу (декремент).
Операторы инкремента
Счетчики используют настолько часто, что в языке Си существуют специальные операторы инкремента и декремента переменной. Оператор ++variable увеличивает значение переменной на единицу еще до выполнения соответствующей инструкции. Оператор выполняет то же действие, что и инструкция
variable = variable + 1;
В качестве примера действия оператора инкремента, рассмотрим следующую программу:
/*count.c*/main(){intcount = 0;printf(Первое значение переменной \count равно %d, count);printf(Второе значение переменной \count равно %d, ++count);printf(Последним значением переменной \count является %d, count);}
Результат работы программы отображается в виде сообщений:
Первое значение переменной count равно 0Второе значение переменной count равно 1Последним значением переменной count является 1
Перед выполнением второй функции printf() компилятор увеличивает значение переменной count на 1. Тот же эффект был бы достигнут и при использовании инструкции
count = count + 1;printf(Второе значение переменнойcountравно %d\n, count);
Использование оператора инкремента позволяет увеличить значение переменной без введения в текст программы отдельной инструкции присваивания.
Необходимо помнить, что оператор инкремента реально изменяет значение переменной. Проверьте, понимаете ли вы разницу между оператором инкремента ++count и выражением, приведенным в следующей строке:
printf(Второе значение переменной count равно %d\n, count+1);
Выражение count+1 не изменяет значения, присвоенного переменной count. В результате выполнения этой инструкции значение переменной, увеличенное на единицу, только отображается на экране, но не заносится в память. Пример программы, в которой используются выражения вместо операторов инкремента, приведен в Листинге6.
Статьи к прочтению:
- Листинг 4. работа программы основывается на указаниях пользователя.
- Листинг 5. программа, в которой используется указатель для возврата значений.
Бандитская Империя Бердымухамедова — Недельный Обзор Туркменистан 9 Октября (ENG CC)
Похожие статьи:
-
Листинг 1. программа расчета стоимости товаров с учетом налога на предметы роскоши.
Лабораторная работа №6 УПРАВЛЕНИЕ УСЛОВИЯМИ If — маленькое слово с большими возможностями Это короткое слово имеетбольшой вес. Инструкция if используется…
-
Листинг 1. программа расчета и отображения накладной.
Лабораторная работа №4 ОПЕРАТОРЫ В процессе обработки программа превращает данные, которые мы вводили в компьютер, в информацию, которую компьютер…