For(выражение 1; выражение 2; выражение 3)



оператор;

выражение 3 (приращение) вычисляется после каждого прогона цикла;

выражение 1 (инициализация) вычисляется перед началом цикла;

выражение 2 (условие) - до и после каждого прогона цикла.

Оператор тела цикла выполняется до тех пор, пока истинно выражение 2.

Любое из выражений, или же все три, могут отсутствовать, но при этом должны сохраняться все точки с запятыми. Если выражение 2 опущено, то считается, что оно всегда истинно.

Фрагмент программы вычисления суммы чисел от 0 до 9:

#include <iostream.h>

void main() {

for(int counter=0, int add_counter=0; counter<10; counter++, add_counter+=counter)

// "," используется для последовательного вычисления нескольких операторов

cout<<"Значение counter "<<counter<<endl;

// endl означает переход на новую строку

cout<<"Значение суммы "<<add_counter<<endl;

}

Для организации цикла с предусловием используется оператор while:

while(выражение)

оператор;

Оператор тела цикла выполняется до тех пор, пока истинно выражение, записанное в скобках.

Выражение вычисляется до начала и после каждого прогона цикла. Цикл не выполняется ни разу, если выражение ложно (равно 0).

Фрагмент программы вычисления суммы чисел от 0 до 9:

#include <iostream.h>

Void main()

{

int counter=0, add_counter=0;

while(counter++<10) {

// тело цикла состоит не из одного оператора, поэтому заключено в { }

cout<<"Значение counter"<<counter<<endl;

add_counter+=counter; }

cout<<"Значение суммы "<<add_counter<<endl;

}

 

Цикл с пост-условием do while имеет вид:

Do

оператор;

While(условие);

Оператор тела цикла выполняется до тех пор, пока истинно условие. Условие проверяется после выполнения оператора тела цикла.

Фрагмент программы копирования строки в строку:

void main() {

char *р, *s;
s="string_s\0"; // строка заканчивается признаком конца - \0

do

*р++=*s++; // копирование строки

while(*s);

} // завершение цикла по концу строки

Оператор continue возвращает управление на начало цикла, пропуская стоящие после него операторы цикла.

Оператором break можно завершить цикл.

Оператор безусловного перехода goto метка; передает управление на оператор, перед которым стоит метка. Метка представляет собой идентификатор с двоеточием и может стоять перед любым выполняемым оператором.

Контрольные вопросы

1. Какие операции можно применять к указателям?

2. Каков результат выполнения оператора c[i]=i++; ?

3. Для чего и как происходит динамическое распределение памяти?

4. Что такое Esc-последовательность?

5. Для чего используются индексные выражения?

6. Каким образом выделяется память под массивы?

7. Что общего между массивами и указателями?

8. Как располагаются в памяти элементы многомерного массива?

9. Чем отличаются циклы с пост- и предусловием?

10. Каковы отличия действий операторов break и continue?

11.  Для чего применяется оператор switch?

12. Приведите примеры использования операторов ветвления.

 

 

Глава3. Использование библиотечных

Процедур СИ

О библиотеке СИ

Библиотека Си - это множество предопределенных функций и акро, предназначенное для использования в Си-программах. Применение библиотеки Си делает программирование более легким и обеспечивает следующее:

1) интерфейс с функциями ОС (такими, как открытие и закрытие файлов);

Использование быстрых и эффективных функций (таких, как строковые манипуляции) в общих задачах программирования.

Библиотека Си особенно важна при использовании базовых функций, которые не содержатся в языке. Это, например, функции ввода и вывода, распределения памяти и управления процессами.

Для обеспечения возможности контроля компилятором типов данных языка Си используются сопровождающие эту библиотеку include-файлы. Кроме определений и объявлений библиотечных функций как макро include-файлы содержат объявления функций со списками типов аргументов. Списки типов аргументов дают возможность компилятору контролировать обращение к библиотечным функциям. Это может быть полезным для обнаружения ошибок в программе, возникающих в результате несоответствия между типами фактических и формальных аргументов функций. Однако можно не использовать контроль типов аргументов.

К списку стандартных include-файлов библиотеки Си могут быть добавлены новые include-файлы, содержащие списки типов аргументов для всех функций библиотеки Си.

Вызов библиотек СИ

Вызов Библиотек языка СИ Прежде чем вызвать процедуру библиотеки Си из программы пользователя, нужно ее объявить в этой программе. Все библиотечные процедуры размещаются в объектном виде в библиотечных файлах, которые сопровождают программное обеспечение компилятора Си. Во время линкования программа увязывается с соответствующим файлом или файлами, чтобы разрешить ссылки на библиотечные функции и обеспечить коды для вызываемых библиотечных функций.

В большинстве случаев подготовка к вызову библиотечных функций может быть осуществлена одним из следующих способов:

1) включением стандартного #include-файла в программу. Многие процедуры требуют объявлений и определений. Для этого можно просто задать include-файлы, в которых определяются все требуемые объявления и определения;

Объявлением библиотечной функции, возвращающей значение любого типа, кроме integer. Предполагается, что все функции возвращают значение integer, если они заранее не объявлены. Обеспечить эти объявления можно используя библиотечные include-файлы, содержащие объявления функций программы.

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


Дата добавления: 2019-09-13; просмотров: 231; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!