Оператор FOR

Язык С
Строк программы, исключая математическое обеспечение Является учебным введением в центральную часть языка “C” Hачинаем. Единственный способ освоить новый язык Оператор FOR Набор полезных программ Подсчет символов Подсчет слов Функции Аргументы - вызов по значению Область действия: внешние переменные Резюме Константы Описания Преобразование типов До 9 и буквы от а до F Операции и выражения присваивания Старшинство и порядок вычисления Операторы и блоки Переключатель Цикл DO - WHILE Оператор CONTINUE Основные сведения Функции, возвращающие нецелые значения Еще об аргументах функций Правила, определяющие область действия Статические переменные Блочная структура Рекурсия Указатели и адреса Указатели и массивы Адресная арифметика Указатели символов и функции Указатели - не целые До 12, а не от 0 до 11. Так как за экономию памяти у нас пока не награждают, такой способ проще, чем подгонка индек-сов Инициализация массивов указателей Указатели на функции Структуры Структуры и функции Указатели на структуры Мы продемонстрируем, как правильно выполнить эту задачу Поля Определение типа Обращение к стандартной библиотеке Форматный вывод - функция PRINTF Форматный ввод - функция SCANF Форматное преобразование в памяти Обработка ошибок - STDERR и EXIT Обращение к системе Низкоуровневый ввод/вывод - операторы READ и WRITE Произвольный доступ - SEEK и LSEEK Пример - распечатка справочников Пример - распределитель памяти Константы Синтаксическая нотация Преобразования Первичные выражения Унарные операции Аддитивные операции Операция присваивания Спецификаторы типа Описание структур и объединений Инициализация TYPEDEF Оператор SWITCH Внешнее определение функции Область действия внешних идентификаторов Неявные описания Явные преобразования указателей Анахронизмы Операторы
439386
знаков
0
таблиц
0
изображений

1.3. Оператор FOR.

Как и можно было ожидать, имеется множество различных

способов написания каждой программы. Давайте рассмотрим та-

кой вариант программы перевода температур:

MAIN() /* FAHRENHEIT-CELSIUS TABLE */

 {

INT FAHR;

FOR (FAHR = 0; FAHR <= 300; FAHR = FAHR + 20)

PRINTF(“%4D %6.1F\N”, FAHR, (5.0/9.0)*(FAHR-32.0));

 }

Эта программа выдает те же самые результаты, но выглядит

безусловно по-другому. Главное изменение - исключение боль-

шинства переменных; осталась только переменная FAHR , причем

типа INT (это сделано для того, чтобы продемонстрировать

преобразование %D в функции PRINTF). Нижняя и верхняя грани-

цы и размер щага появляются только как константы в операторе

FOR , который сам является новой конструкцией, а выражение,

вычисляющее температуру по цельсию, входит теперь в виде

третьего аргумента функции PRINTF , а не в виде отдельного

оператора присваивания.

Последнее изменение является примером вполне общего пра-

вила языка “C” - в любом контексте, в котором допускается

использование значения переменной некоторого типа, вы можете

использовать выражение этого типа. Так как третий аргумент

функции PRINTF должен иметь значение с плавающей точкой,

чтобы соответствовать спецификации %6.1F, то в этом месте

может встретиться любое выражение плавающего типа.

Сам оператор FOR - это оператор цикла, обобщающий опера-

тор WHILE. Его функционирование должно стать ясным, если вы

сравните его с ранее описанным оператором WHILE . Оператор

FOR содержит три части, разделяемые точкой с запятой. Первая

часть

 

FAHR = 0

выполняется один раз перед входом в сам цикл. Вторая часть -

проверка, или условие, которое управляет циклом:

 

FAHR <= 300

это условие проверяется и, если оно истинно, то выполняется

тело цикла (в данном случае только функция PRINTF ). Затем

выполняется шаг реинициализации


·     19 -

 

FAHR =FAHR + 20

и условие проверяется снова. цикл завершается, когда это ус-

ловие становится ложным. Так же, как и в случае оператора

WHILE , тело цикла может состоять из одного оператора или из

группы операторов, заключенных в фигурные скобки. Инициали-

зирующая и реинициализирующая части могут быть любыми от-

дельными выражениями.

Выбор между операторами WHILE и FOR произволен и основы-

вается на том , что выглядит яснее. Оператор FOR обычно удо-

бен для циклов, в которых инициализация и реинициализация

логически связаны и каждая задается одним оператором, так

как в этом случае запись более компактна, чем при использо-

вании оператора WHILE , а операторы управления циклом сосре-

дотачиваются вместе в одном месте.

Упражнение 1-5.

Модифицируйте программу перевода температур таким обра-

зом, чтобы она печатала таблицу в обратном порядке, т.е. От

300 градусов до 0.

1.4. Символические константы.

Последнее замечание, прежде чем мы навсегда оставим

программу перевода температур. Прятать “магические числа”,

такие как 300 и 20, внутрь программы - это неудачная практи-

ка; они дают мало информации тем, кто, возможно, должен бу-

дет разбираться в этой программе позднее, и их трудно изме-

нять систематическим образом. К счастью в языке “C” предус-

мотрен способ, позволяющий избежать таких “магических чи-

сел”. Используя конструкцию #DEFINE , вы можете в начале

программы определить символическое имя или символическую

константу, которая будет конкретной строкой символов. Впос-

ледствии компилятор заменит все не заключенные в кавычки по-

явления этого имени на соответствующую строку. Фактически

это имя может быть заменено абсолютно произвольным текстом,

не обязательно цифрами

 

#DEFINE LOWER 0/* LOWER LIMIT OF TABLE */

#DEFINE UPPER 300 /* UPPER LIMIT */

#DEFINE STEP 20 /* STEP SIZE */

MAIN () /* FAHRENHEIT-CELSIUS TABLE */

{

INT FAHR;

FOR (FAHR =LOWER; FAHR <= UPPER; FAHR =FAHR + STEP)

PRINTF(“%4D %6.1F\N”, FAHR, (5.0/9.0)*(FAHR-32));

}

 

 

величины LOWER, UPPER и STEP являются константами и поэ-

тому они не указываются в описаниях. Символические имена

обычно пишут прописными буквами, чтобы их было легко отли-

чить от написанных строчными буквами имен переменных. отме-

тим, что в конце определения не ставится точка с запятой.

Так как подставляется вся строка, следующая за определенным

именем, то это привело бы к слишком большому числу точек с

запятой в операторе FOR .

 

·     20 -


Информация о работе «Язык С»
Раздел: Информатика, программирование
Количество знаков с пробелами: 439386
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
48443
0
0

... основаниям. При этом философская абстракция языка оказывается неразрывно связана с основными темами и движениями философии в целом. Более конкретно, на ранние стадии традиционно рассматриваемого в рамках АФ анализа обыденного языка глубокое влияние оказала философия Дж. Э. Мура, особенно его учение о здравом смысле, согласно которому такие понятия, как «человек», «мир», «я», «внешний мир», « ...

Скачать
43709
0
0

... и других странах СНГ, а также облегчение доступа к русской и мировой культуре и науке. Таким образом, судя по данным наших исследований, востребованность русского языка осталась в республике достаточно высокой. Многие представители современной молдавской молодежи продолжают, как их отцы и деды, тянуться к русской культуре, научным и техническим достижениям России. Русский язык остается языком ...

Скачать
39778
0
1

... рисуночное словесно-слоговое письмо). Памятники среднеэламского периода (14—12 вв. до н.э.) выполнены аккадской клинописью. Памятники новоэламского периода относятся к 8—6 вв. до н.э. Был официальным языком в персидском государстве Ахеменидов в 6—4 вв. предполагается, что он, подвергшись влиянию древнеперсидского, сохранился до раннего средневековья. 7. Бурушаски язык Язык бурушаски ( ...

Скачать
64931
0
0

... /диалект), скифский, согдийский, среднеперсидский, таджикский, таджриши (язык/диалект), талышский, татский, хорезмийский, хотаносакский, шугнано-рушанская группа языков, ягнобский, язгулямский и др. Они относятся к индоиранской ветви индоевропейских языков. Области распространения: Иран, Афганистан, Таджикистан, некоторые районы Ирака, Турции, Пакистана, Индии, Грузии, Российской Федерации. Общее ...

0 комментариев


Наверх