Операции отношений. Логические операции.

Базовые типы данных

В языке C применяются данные двух категорий: простые (скалярные) и сложные (составные) типы данных. К основным (базовым) типам данных относятся целый, вещественный и символьный типы. В свою очередь, данные целого типа могут быть короткими (short), длинными (long) и беззнаковыми (unsigned). Сложные типы данных подразделяются на массивы, структуры (struct), объединения или смеси (union), перечисления (enum).

Декларирование объектов. Идентификаторы

При декларировании объектов в языке С используются их идентификаторы, которые могут включать цифры (0...9), латинские прописные (A...Z) и строчные (a...z) буквы, символ подчеркивания (_). Первый символ идентификатора не может быть цифрой. В языке С буквы нижнего регистра (a….z) отличаются от букв верхнего регистра (A ….Z), т.е. PI, Pi и pi – различные идентификаторы. Принято использовать в идентификаторах переменных строчные буквы, а в именованных константах – прописные. Длина идентификатора определяется реализацией транслятора C и редактора связей (компоновщика). Современная тенденция - снятие ограничений длины идентификатора.

Разделители идентификаторов объектов:

- пробелы;

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

- комментарии (играют роль пробелов).

Комментарий - любая последовательность символов, начинающаяся парой символов /* и заканчивающаяся парой символов */ или начинающаяся // и до конца текущей строки.

 

Функции вывода информации

Для вывода информации в языке С используются следующие функции: Функция putchar() обеспечивает вывод одиночного символа без перехода на новую строку. Функция puts() используется для вывода строки символов с переходом на начало новой строки. Функция printf() предназначена для форматированного вывода данных. Ее формат: рrintf(<управляющая строка>, <список аргументов>);

Функции ввода информации

Функция getch () используется для ввода одиночных символов. Функия gets () обеспечивает ввод строки символов до нажатия клавиши ENTER. Функция scanf предназначена для форматированного ввода информации любого вида.

 

5 Операции присваивания. Приоритет операций

Операция присваивания имеет две формы записи: 1) Полная форма:имя_переменной=выражение;

Сначала вычисляется выражение, а затем результат присваивается имени_переменной. С помощью одного оператора можнo присвоить одно значение несколь­ким переменным,например: x=y=z=0; 2)Сокращенная форма:

имя_переменной операция=выражениe;где операция – одна из арифметических операций (+ , -, *, /, %);

Операции отношений. Логические операции.

В качестве условий в языке С используют следующие операции отношений: < (меньше), <= (меньше или равно), > (больше), >= (больше или равно), != (не равно), = = (равно). Пары символов = =, !=, <=, >= разделять нельзя. Общий вид условия: <выражение_1> <знак_операции> <выражение_2>Операндами могут быть любые простые типы. Значения операндов после вычисления перед сравнением преобразуются к одному типу. В качестве условий используются и более сложные выражения, содержащие логические операции. Приведем их перечень в порядке убывания приоритета: ! ( логическое НЕТ), &&(логическое И), || (логическое ИЛИ). Пары символов &&и ||разделять нельзя.

8 Операторы if , if/else

Оператор условного перехода if применяется для выбора одной из ветвей вычислений. Общая форма записи: if (условие ) оператор1; else оператор2;

Например: if(x>y) max=x;

else max=y;

Если оператор1 или оператор2 содержит два и более операторов, то они заключаются в фигурные скобки {}, т.е. применяется составной оператор. Оператор if проверяет истинность или ложность условия. Если условие истинно (не равно 0), то выполняется оператор1, иначе, при ложности условия (=0), выполняется оператор2. Вторая часть оператора (else оператор2;) может отсутствовать. Такую его форму называют “сокращенной”. Тогда в случае ложности условия управление передается на следующий за if оператор. Если оператор1 и оператор2 в свою очередь являютя операторами if , то такой оператор называю вложенным. При этом ключевое слово else принадлежит ближайшему предшествующему if. Общий вид вложенного оператора if: if (условие1) оператор1; else if(условие2) оператор2; else оператор3;

Оператор switch

Switch – оператор выбора. Общая форма оператора выбора:

switch(выражение)
{
caseconsnant1: операторы;

break;

caseconsnantN: операторы;

break;
default:операторы;

}

где consnant1…consnantN - целые или символьные константы; default - выполняется, если результат выражения не совпал ни с одной константой; может отсутствовать; break -oператор завершения работы switch. После выполнения одной из ветвей case все остальные ветви будут опущены. Если оператор break не записан, то выполняются операторы следующей ветви case. Оператор switch проверяет, совпадает ли значение выражения с одним из значений, приведенных ниже констант. При совпадении выполняются операторы, стоящие после совпавшей константы.

Оператор For

Основная форма оператора цикла for имеет вид: for (выражение_1; выражение_2; выражение_3 ) оператор;

где выражение_1 – инициализация начального значения параметра цикла;

выражение_2 – проверка условия на продолжение цикла;

выражение_3 – изменение параметра цикла (коррекция параметра);

оператор – простой или составной оператор языка С.

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

 

Оператор While

Основная форма циклического оператора while: while (условие) оператор;

где оператор – это простой, составной или пустой оператор.

Цикл выполняется до тех пор, пока условие принимает значение «истина», т.е. выражение в скобках возвращает ненулевой результат. Это цикл с предусловием – сначала проверяется условие, затем выполняется оператор. Поэтому цикл while не выполнится ни разу, если изначально результат вычисления условия будет равен 0.

 

13 Оператор do/while

Основная форма оператора do – while:

Do

Оператор;

While (условие);

где оператор – это простой, составной или пустой оператор.

Оператор do–while – оператор цикла с постусловием, т.е. сначала выполняется оператор, а затем проверяется условие на истинность. Так как в цикле do–while условие проверяется в конце цикла, то цикл будет выполнен хотя бы один раз.

 

Операторы Continue, break

break; - оператор выхода из цикла. Он нужен для завершения работы цикла, в котором находится break, управление передается на первый после цикла выполняемый оператор;

Досрочное завершение текущего циклического шага возможно при помощи дополнительного условия или оператора continue, который прерывает выполнение текущего шага цикла, т.е. пропускает операторы оставшейся части цикла и передает управление в головной оператор цикла для коррекции параметра и проверки условия.

 

15 Массивы. Ввод/вывод массива

Массив – конечномерная последовательность данных одного типа. Массив – объект сложного типа. Каждый элемент массива определяется именем массива и индексом (целое число), по которому к элементу массива производится доступ. Индексы у массивов в языке С начинаются с 0. В программе одномерный массив объявляется следующим образом: <Тип> <имя массива>[размер]; где, размер – количество элементов одномерного массива. Размер массива может задаваться константой или константным выражением. Нельзя задавать массив переменного размера, для этого существует отдельный механизм – динамическое выделение памяти. Пример объявления массива целого типа: int a[5]; в массиве а первый элемент а[0], второй – а[1], …, пятый - а[4]. В языке С не проверяется выход индекса за пределы массива.

Строки

В алгоритмическом языке PASCAL существует отдельный тип данных – строка, который объявляется с атрибутом string. В языке С отдельного типа данных «строки символов» нет. Работа со строками реализована путем использования одномерных массивов типа char, т.е. строка символов – это одномерный массив типа char, заканчивающийся нулевым байтом. Нулевой байт – это байт, каждый бит которого равен нулю, при этом для нулевого байта определена символьная константа ´ \0 ´(признак окончания строки или нуль-терминатор). Поэтому, если строка должна содержать k символов, то в описании массива необходимо указать k+1 элемент.