- •Линейные и разветвляющиеся вычислительные процессы Краткие теоретические сведения
- •Классификация данных
- •Декларирование объектов
- •Структура программы
- •Константы
- •Операции Операции выражения
- •Арифметические операции
- •Операция присваивания
- •Сокращенная запись операции присваивания
- •X##; - постфиксную.
- •Преобразование типов операндов арифметических операций
- •Операция приведения типа
- •Операции сравнения
- •Логические операции
- •Побитовые логические операции, операции над битами
- •Операция «,» (запятая)
- •Функции вывода информации
- •Функции ввода информации
- •Ввод - вывод потоками
- •Стандартные математические функции
- •Синтаксис операторов языка Си
- •Операция присваивания
- •Условные операторы
- •If (условие ) оператор1;
- •If (условие1) оператор1;
- •Условная операция "? :"
- •Оператор выбора switch
- •Программирование циклических вычислительных процессов
- •Циклические операторы while и do–while
- •Вложенные циклы
- •Программирование циклических вычислительных процессов с использованием одномерных массивов и строк Краткие теоретические сведения
- •Строки, как одномерные массивы символов
- •Указатели и операции над адресами
- •Операции над указателями (адресная арифметика)
- •Связь указателей и массивов
- •Пример 1: Упорядочить по алфавиту массив строк (не более 20) длиной не более 10 символов в каждой:
- •Многомерные массивы, динамическое распределение памяти Краткие теоретические сведения
- •Массивы указателей
- •Указатели на указатели
- •Динамическое размещение данных
- •Проверить, является ли введенная строка полиндромом (справа-налево читается также как и слева-направо).
- •Функции пользователя Краткие теоретические сведения
- •Декларация функций.
- •Вызов функции.
- •Изменение значений параметров.
- •Область действия переменных
- •Классы памяти.
- •Рекурсивные функции.
- •Операция typedef
- •Указатели на функции
- •Примеры работы с функциями
- •Программирование алгоритмов с использованием структур Краткие теоретические сведения Структуры
- •Декларация структурного типа данных
- •Создание структурных переменных
- •Обращение к полям структур
- •Вложенные структуры
- •Использование typedef
- •Массивы структур
- •Размещение структурных переменных в памяти
- •Пример на использование структур
Линейные и разветвляющиеся вычислительные процессы Краткие теоретические сведения
Язык С/C++ отражает возможности современных компьютеров. Программы на С/C++ отличаются компактностью и быстротой исполнения. Структура языка С/C++ побуждает программиста использовать в своей работе нисходящее программирование, структурное программирование, пошаговую разработку модулей.
Большинство трансляторов языка C/C++ - компиляторы. Система программирования языка включает препроцессор, компилятор, редактор связей, библиотекарь, редактор текста, отладчик и интегрированную управляющую среду.
Алфавит языка С/C++
В языке С/C++ используются наборы символов:
1) строчные (A,B,C,…….,Y,Z) и прописные (a,b,c,………,y,z) буквы латинского алфавита;
2) арабские цифры от 0до9;
3) специальные символы:
+(плюс),-(минус),*(звездочка ),/(дробная черта),=(равно),>(больше),<( меньше),;(точка с запятой ),&(амперсанд ),[ ](квадратные скобки),{ }(фигурные скобки),( )(круглые скобки),_(знак подчеркивания), (пробел ),. (точка),, (запятая),:(двоеточие),#(номер),%(процент),~ (поразрядное отрицание),? (знак вопроса),!( восклицательный знак),\(обратный слэш).
Классификация данных
В языке C применяются данные двух категорий: простые (скалярные) и сложные (составные) типы данных. К основным (базовым) типам данных относятся целый, вещественный и символьный типы. В свою очередь, данные целого типа могут быть короткими (short), длинными (long) и беззнаковыми (unsigned). Приведем размеры и возможные диапазоны базовых типов данных (таблица 1):
Таблица 1
Наименование типа |
Тип данных |
Объем памяти, байт |
Диапазон значений |
Символьный |
char |
1 |
-128…127 |
Целый |
int |
2 |
-32768…32767 |
Короткий |
Short |
2(1) |
-32768…32767(-128…127) |
Длинный |
Long |
4 |
-2147483648…2147483647 |
Беззнаковый целый |
Unsigned int |
2 |
0…65535 |
Беззнаковый длинный |
Unsigned long |
4 |
0…424967295 |
Вещественный |
Float |
4 |
3,14*10-38…3,14*1038 |
Вещественный с двойной точностью |
Double |
8 |
1,7 *10-308 1,7 *10308 |
Сложные типы данных подразделяются на массивы, структуры (struct), объединения или смеси (union), перечисления (enum). Более подробно они рассмотрены в других лабораторных работах данного практикума.
Декларирование объектов
Все объекты (переменные, массивы и т.д.), с которыми работает программа в С, необходимо декларировать. При декларировании объекты можно инициализировать (задать начальные значения).
Например: int j=10, m=3, n;
float c=-1.3, l=-10.23, n;
При декларировании объектов в языке С используются их идентификаторы, которые могут включать цифры (0...9), латинские прописные (A...Z) и строчные (a...z) буквы, символ подчеркивания (_). Первый символ идентификатора не может быть цифрой. В языке С/C++ буквы нижнего регистра (a….z) отличаются от букв верхнего регистра (A ….Z), т.е. PI, Pi и pi – различные идентификаторы. Принято использовать в идентификаторах переменных строчные буквы, а в именованных константах – прописные.
Например: const float PI=3.1415926;
float pi=3.14;
Длина идентификатора определяется реализацией транслятора C и редактора связей (компоновщика). Современная тенденция - снятие ограничений длины идентификатора.
Разделители идентификаторов объектов:
- пробелы;
- символы табуляции, перевода строки и страницы;
- комментарии (играют роль пробелов).
Комментарий - любая последовательность символов, начинающаяся парой символов /* и заканчивающаяся парой символов */ или начинающаяся // и до конца текущей строки.