Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Введение в циклы





Операции, выражения и операторы

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

Другим аспектом обработки данных является такая организация программ, кото­рая обеспечит выполнение ими правильных действий в должном порядке. Язык С обладает несколькими языковыми средствами, которые помогают решить эту задачу. Одним из таких средств является цикл, и в этой главе вы получите о нем первое пред­ставление. Цикл позволяет повторять действия и делать программу более интересной и мощной.

Введение в циклы

В листинге 5.1 показана демонстрационная программа, выполняющая несложные арифметические действия для вычисления длины ступни в дюймах, для которой под­ходит мужская обувь размера 9 (применяемого в США). Чтобы вы лучше смогли оце­нить преимущества циклов, в этой первой версии программы иллюстрируются огра­ничения программирования без использования циклов.

Листинг 5.1. Программа shoesl.c

/* shoesl.c -- преобразует размер обуви в дюймы */

#include <stdio.h>

#define ADJUST 7.31 // один из видов символической константы

int main(void)

{

const double SCALE = 0.333; // еще один вид символической константы

double shoe, foot;

 

shoe = 9.0;

foot = SCALE * shoe + ADJUST;

printf("Размер обуви (мужской) длина ступни\n");

printf("%10.1f %15.2f дюймов\n", shoe, foot);

 

return 0;

}

Ниже приведен вывод:

Размер обуви (мужской) длина ступни

10.31 дюймов

Программа демонстрирует два способа создания символических констант и в ней применяются умножение и сложение. Она принимает размер обуви (если вы носите размер 9) и сообщает длину вашей ступни в дюймах. Вы можете заявить, что в состо­янии решить эту задачу вручную (или на калькуляторе) быстрее, чем будет произве­ден ввод этого кода с клавиатуры. Это правильное замечание. Написание одноразо­вой программы, обрабатывающей единственный размер обуви, является напрасной тратой времени и сил. Программу можно сделать более полезной, реализовав ее как интерактивную, но и в этом случае потенциал компьютера не будет задействован в полной мере.

Необходим какой-то способ, который позволил бы заставить компьютер выпол­нять повторяющиеся вычисления для заданной последовательности размеров обуви. В конце концов, это одна из причин применения компьютеров в арифметических вы­числениях. Язык С предлагает несколько методов реализации повторяющихся вычис­лений, и здесь мы рассмотрим один из них. Этот метод, называемый циклом while, позволит более эффективно использовать операции. В листинге 5.2 приведен усовер­шенствованный вариант программы для определения длины стопы по размеру обуви.

Листинг 5.2. Программа shoes2. с

/* shoes2.c -- вычисляет длину стопы для нескольких размеров обуви*/

#include <stdio.h>

#define ADJUST 7.31 // один из видов символической константы

int main(void)

{

const double SCALE = 0.333; // еще один вид символической константы

double shoe, foot;

 

printf("Размер обуви (мужской) длина ступни\n");

shoe = 3.0;

while (shoe < 18.5) /* начало цикла while*/

{ /* start of block */

foot = SCALE * shoe + ADJUST;

printf("%10.1f %15.2f дюймов\n", shoe, foot);

shoe = shoe + 1.0;

} /* конец блока */

printf("Если обувь подходит, носите ее.\n");

return 0;

}

Вот как выглядит сжатая версия вывода программы shoes2.с:

обуви (мужской) длина ступни
3.0 8.31 дюймов
4. 0 8.64 дюймов
5.0 8.97 дюймов
6.0 9.31 дюймов
16.0 12.64 дюймов
17.0 12.97 дюймов
18.0 13.30 дюймов

Если обувь подходит, носите ее.

Давайте посмотрим, как работает цикл while. Когда управление впервые доходит до оператора while, выполняется проверка того, принимает ли условие в круглых скобках значение true. В этом случае выражение условия имеет следующий вид:

shoe < 18.5

Символ < означает “меньше чем”. Переменная shoe инициализирована значением 3.0, что определенно меньше чем 18.5. Поэтому условие равно true и управление переходит на следующий оператор, который преобразует размер в дюймы. Затем программа выводит результат. Следующий оператор увеличивает значение shoe на 1.0, делая его равным 4.0:

shoe = shoe + 1.0;

В этой точке управление возвращается к порции while, чтобы проверить условие. Но почему именно в этой точке? Причина в том, что в следующей строке находится закрывающая фигурная скобка (}), а код использует пару таких скобок ({}) для обозначения границ цикла while. Операторы, находящиеся между двумя фигурными скобками, повторяются. Раздел программы внутри фигурных скобок и сами фигурные скобки называются блоком. А теперь вернемся к программе. Значение 4.0 меньше 18.5, поэтому все операторы, заключенные в фигурные скобки (блок), следующие за while, повторяются. (На компьютерном жаргоне можно сказать, что программа “проходит в цикле” по этим операторам.) Это продолжается до тех пор, пока переменная shoe не достигнет значения 19.0. Тогда условие shoe <18.5 получает значение false, потому что 19.0 не меньше 18.5. Как только это произойдет, управление передается первому оператору, следующему за циклом while. В данном случае им является финальный оператор printf ().

Рассмотренную программу можно легко модифицировать для выполнения других преобразований. Например, установив SCALE в 1.8 и ADJUST в 32.0, вы получите программу, которая преобразует значение температуры по Цельсию в значение по Фаренгейту. Присвоив SCALE значение 0.6214 и ADJUST — 0, вы реализуете преобразование километров в мили. Естественно, понадобится также соответствующим образом изменить выводимые сообщения. Цикл while предоставляет в ваше распоряжение удобное и гибкое средство управления внутри программы. Теперь давайте перейдем к ознакомлению с фундаментальными операциями, которые вы можете применять в своих программах.

Date: 2015-12-13; view: 298; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию