- •Введение
- •1. Этапы и проблемы решения задач с использованием компьютера
- •Алфавит языка
- •Ключевые слова
- •Идентификаторы
- •Знаки операций
- •Константы
- •Комментарии
- •2.3. Структура и основные элементы программы
- •2.4. Трансляция программ и их выполнение
- •3. Стандартные (базовые) типы данных, операции и выражения
- •3.1. Типы данных, переменные и константы Понятие типов данных
- •Классификация простых предопределенных типов данных
- •Переменные, константы
- •3.2. Целочисленные типы данных
- •3.3. Вещественные типы данных
- •3.4. Логический тип данных
- •3.5. Символьный тип данных
- •3.6. Операции и выражения
- •Преобразования типов данных
- •Операция присваивания
- •Арифметические операции
- •Операции отношения
- •Логические операции
- •Поразрядные (битовые) операции
- •Операции составного присваивания
- •Условная операция
- •Операция sizeof
- •Приоритеты рассмотренных операций
- •3.7. Ввод и вывод простых типов данных
- •Вывод текстовых строк
- •Ввод/вывод арифметических типов данных
- •Форматирование ввода / вывода
- •4.1. Идеи структурного программирования
- •Условная инструкция (if)
- •Инструкция множественного выбора (switch)
- •Цикл с предусловием (while)
- •Цикл с постусловием (do while)
- •Итерационный цикл (for)
- •Инструкции перехода
- •5. Приемы программирования циклов
- •5.1. Рекуррентные вычисления
- •5.2. Инвариант цикла
- •6. Массивы
- •6.1. Понятие массива
- •6.2. Объявление массивов Объявление одномерных массивов
- •Объявление многомерных массивов
- •6.3. Ввод-вывод массивов
- •Вывод массивов
- •Ввод массивов
- •6.4. Текстовые строки как массивы символов
- •Определение текстовой строки
- •Ввод текстовых строк с клавиатуры
- •Обработка текстовых строк
- •Массивы текстовых строк
- •7. Разработка программ при работе с массивами
Классификация простых предопределенных типов данных
Основные (предопределенные) типы данных часто называют арифметическими, поскольку их можно использовать в арифметических операциях. Для описания основных типов определены следующие ключевые слова:
int(целый);
float(вещественный);
double(вещественный тип с двойной точностью);
bool(логический);
char(символьный).
Типы int, bool и charотносят к группе целочисленных (целых) типов, аfloat и double- к группе вещественных типов - типов с плавающей точкой. Код, который формирует компилятор для обработки целых величин, отличается от кода для величин с плавающей точкой.
Существует четыре спецификатора типа, уточняющих внутреннее представление и диапазон значений стандартных типов:
short (короткий);
long(длинный);
signed(знаковый);
unsigned(без знаковый).
Спецификаторы добавляются слева к названию типа, например, так:
short int– короткое целое;
unsigned short int- короткое целое без знака.
Спецификаторы могут в произвольном порядке. Например: unsigned short int эквивалентно short unsigned int.
Допустимы не все сочетания спецификаторов и типов данных. Например: unsigned double является недопустимым сочетанием. Есть и другие варианты. Допустимые сочетания спецификаторов и типов данных будут приведены при рассмотрении конкретных типов данных.
Переменные, константы
В программах данные представлены константами и переменными.
Переменная— это именованная область памяти, в которой хранятся данные определенного типа. Каждая переменная имеет имя и значение. Именем переменной является идентификатор, придуманный программистом, и служит для обращения к области памяти, в которой хранится значение этой переменной. Идентификатор переменной преобразуется в адрес памяти, где хранится переменная, в процессе компиляции программы. Перед использованием любая переменная должна быть описана.
Общее правил определения переменной можно сформулировать так:
[класс памяти] <тип данных> <идентификатор - имя> [инициализатор];
Понятие класс памяти определяет такие важные характеристики как время жизни и область видимости переменных. Эти понятия будет рассмотрено позднее, и в следующих примерах они пока не используется.
Примеры описания переменных:
int а; // переменнаяaтипаint (целого типа)
double х; // переменнаяхтипаdouble (вещественного типа с двойной точностью)
unsigned short int d; // переменнаяd– короткое целое без знака
Однотипные переменные можно определять в одной строке:
int i, j, k;
Описание переменной можно совместить с ее инициализацией:
int а = 1213; // переменнаяa инициализирована значением1213
double х = 0.003; // переменнаяхинициализирована значением0.003
unsigned short int d = 13; // переменнаяdинициализирована значением13
Существует альтернативный способ инициализации переменных. Следующие примеры эквивалентны предыдущим:
int а (1213); // переменнаяa инициализирована значением1213
double х (0.003); // переменнаяхинициализирована значением0.003
unsigned short int d (13); // переменнаяdинициализирована значением13
Определения неинициализированных и инициализированных однотипных переменных можно совмещать в одной строке:
int i = 0, j, k (10);
Инициализировать переменные можно не только конкретными значениями, как в предыдущих примерах. В качестве инициализирующего значения можно использовать любые допустимые выражения. Например:
double y = a * x; /* переменнаяyинициализирована значением равным произведению значений переменныхaиx*/
При инициализации переменной присваивается конкретное значение. Однако, если переменная не инициализирована, это не означает, что она не имеет значения. На самом деле она хранит некоторое значение, которое находилось в этой области памяти до определения переменной. Это значение невозможно предсказать. Такие случайные данные обычно называют “мусором”.
Во время выполнения программы значение переменной можно изменять.
Константа– это величина, значение которой в процессе работы программы не изменяется.
Константы бывают двух видов: константы – литералы и именованные константы.
Константы – литералыпредставляют собой сами значения. Например:
123 -245 0.003 -12.45 ’R’ ”Это текст”
Тип данных, которому принадлежит констант – литера, определяется компилятором автоматически по виду самого значения. Способы записи констант – литералов разных типов будет рассмотрены позже при изучении соответствующих типов данных.
Именованные константызадаются с помощью ключевого словаconst:
const double Pi = 3.14;
const int c1 = 1000, c2 = 2000;
const char point = ’.’;
Далее в программе можно использовать имена этих констант, а не сами значения. Удобство использования именованных констант обусловлено возможностью изменения значения константы (например, при модификации программы) только в одном месте программы – в определении константы. При этом во всех местах программы, где используется имя этой константы, будет применено ее новое значение.