Презентация "Язык программирования Си. Элементы языка, типы данных, переменные, программа"
Подписи к слайдам:
- Язык программирования Си
- Элементы языка, типы данных, переменные, программа
- Югов Иван Олегович
- МОУ Гимназия №10, г. Тверь
- Язык Си включает следующие элементы:
- Ключевые слова — оформляют различные конструкции языка: else, int, return;
- Знаки — играют разделительную роль и обозначают некоторые операции: ;, +, &, (;
- Литералы (константы) — фиксированные значения: false, 0, 'Z', 25.4E2, ¨Привет¨;
- Идентификаторы (имена) — определяют конкретные объекты программы: main, scanf, Temp, atan2;
- Директивы препроцессору — определяют, как должен быть обработан код программы перед компиляцией: #include, #define;
- Комментарии — любой текст, заключённый между символами /* и */ и не содержащий символов */: /* Вычисление длины окружности */.
- Целочисленные:
- char
- short int
- int
- long int
- long long int
- Логический
- Вещественные:
- float
- double
- long double
- «Пустой»:
- void
- Литерал — любое фиксированное значение, явно записанное в коде программы.
- У компилятора — правило:
- «Если что-то начинается с цифры, то это числовая константа»
- Поэтому:
- Числовая константа всегда начинается с цифры (не считая знаков +, − и десятичной точки)
- Перед указанием типа можно ставить signed (знаковый) или unsigned (беззнаковый).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
- По умолчанию всё — signed.
- «int» можно не писать: unsigned int ~ unsigned; long int ~ long.
- Определение разрядности типа — функция sizeof(). Возвращает размер в байтах: sizeof(int).
|
|
|
|
|
|
|
|
|
|
- По умолчанию всё — signed.
- Используемые системы счисления:
- десятичная: 5, +77, −190, 1000000000;
- восьмеричная — начинается с 0: 015, 0100000, −0777;
- шестнадцатеричная — начинается с 0x или 0X: 0x9A, 0X294, −0x100000f;
- двоичная (только для GCC) — начинается с 0b или 0B: 0b111, 0B100001, −0b1111110.
- Константы по умолчанию имеют тип (signed) int.
- Тип можно переопределить:
- беззнаковый — заканчивается символом u или U: 5u, 012U, 0x5CAu;
- длинное (long) — заканчивается символом l или L: 99l, 0xABCDL, −0315L;
- «очень длинное» (long long) — заканчивается символами ll или LL: 5LL; 0XBaLL; −0105ll.
- Непротиворечивые указания типа можно комбинировать: 5LU; 2ull.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Тип long double:
- в Microsoft Visual C++ соответствует типу double;
- может занимать 96 или 128 бит; работают всегда 80 бит.
- Вещественные числа — это потери точности,−0, NaN, ∞...
- Не используйте вещественные числа без необходимости.
- Обязательна точка, разделяющая целую и дробную части:
- −2.0, −0.5, 3.1415927.
- Одну из частей можно не указывать: 143., .005, −.0.
- Возможна экспоненциальная форма записи:
- целая или вещественная мантисса (не обязательно нормализованная);
- символ e или E;
- целый порядок в десятичной записи (допускаются ведущие нули):
- 6.02e23; −1.6e-19; 0.042E+09; -.52E+6; 4e4.
- Константы по умолчанию имеют тип double, но можно указать:
- обычной точности (float) — заканчивается символом f или F: 7.F, −0.6f, +1.99E+08F;
- двойной точности (double) — заканчивается символом d или D: 0.1D, −72.4d, +2.4E−03d;
- «длинное» вещественное (long double) — заканчивается символами l, L, dl или DL: 5.03L, 2E0dl, −4.935e+45L;
- шестнадцатеричное (только для GCC) — мантисса шестнадцатеричная, порядок целый десятичный. Разделитель — символ p или P, обозначающий степень двойки. Порядок обязателен: 0xAP1, −0x3.Fp+11, −0x2.ap−1 .
- 0x1P1 = 2.0, 0x0.BP+10 = 704.0, 0x1P1 = 0x8P−2 = 2.0.
- Непротиворечивые указания можно совмещать: 0xEP5dl, 10xP3LL.
- В стандартах языка Си полная поддержка логического типа отсутствует.
- Тип имеет имя _Bool.
- Определены два значения данного типа — 1 (истина) и 0 (ложь).
- При подключении заголовочного файла stdbool.h можно использовать имя типа bool и литералы true (истина) и false (ложь).
- Тип void используется, когда формально тип требуется указать, но на самом деле тип не нужен:
- при объявлении «процедур»;
- при объявлении нетипизированных указателей и т. п.
- Не существует значений типа void.
- Переменная — ячейка памяти, предназначенная для хранения некоторого значения.
- Переменная имеет:
- значение;
- тип — определяет, значения какого типа она может хранить;
- адрес в памяти, по которому можно обратиться к значению;
- имя (как правило), по которому можно обратиться к значению.
- Чтение значения из переменной — обращение к переменной (к значению переменной).
- Запись значения в переменную — присваивание значения переменной.
- Имя (идентификатор) — последовательность символов, определяющая переменную (и другие сущности):
- может состоять из заглавных и строчных латинских букв, цифр и знаков подчёркивания: A … Z, a … z, 0 … 9, _;
- не должно начинаться с цифры;
- не должно совпадать с ключевыми словами языка Си.
- Желательно не начинать имена с символа _.
- Регистр символов в именах различается: main ≠ Main.
- Переменные необходимо объявлять до их первого использования.
- Сначала указывается тип, затем список имён.
- Завершается объявление точкой с запятой:
- char a, b, c; unsigned char d, e, f;
- unsigned long long int P;
- signed long F;
- float Argument, Result;
- long double LongDouble;
- Присваивание значений переменным:
- a = –5; b = 0xA; P = 75000L; Result = 2.5E6L;
- Присваивание переменной начального значения — инициализация переменной.
- Инициализация возможна в объявлениях:
- int U = 2;
- double X = –5.2d, Y = 2.6d, R;
- Оператор присваивания может сам возвращать присваиваемое значение, поэтому можно писать так:
- a = b = c = 5;
- Программа на языке Си состоит из функций.
- Описание функции:
- тип имя(список формальных параметров)
- {
- тело функции
- }
- Здесь тип — тип возвращаемого функцией значения.
- Скобки { и } — начало и конец тела функции.
- Выполнение программы начинается с функции, имеющей имя main.
- void main(void)
- {
- }
- main()
- {
- }
- или
- Бывает и так:
- int main(int argc, char **argv)
- {
- return 0;
- }
- Переменные могут быть объявлены в любом месте функции (локально) или вне функций (глобально):
- int P;
- void main(void) {char A;}
- void other(void) {char B;}
- Глобальные переменные видны всем.
- Локальные переменные видны там, где они объявлены (после объявления).
- Область видимости переменной — совокупность всех областей программы, в которых значение переменной доступно для чтения и записи.
- Скобками { и } можно выделить блок:
- int main(int argc, char **argv)
- {
- int Z = 9, P = 2;
- {
- int Z = 7;
- }
- return 0;
- }
- Локальные переменные блока видны только в нём.
- Переменные функции видны и в ней, и в блоке.
- Локальные переменные временно перекрывают видимость «более глобальных».
- Переменную можно объявить с классом памяти:
- аuto (по умолчанию для локальных);
- static — позволяет сохранять значения между вызовами функции; инициализируется по умолчанию нулевым значением;
- register — попытаться ускорить работу с переменной; работает только для типов с размером, как у int; видимость переменных — как у auto;
- extern — переменная уже объявлена в другом файле; делает её видимой в данном файле.
- Объявление переменных с классом памяти:
- static unsigned long long int Loops = 100;
- extern int Size;
- auto R;
- Глобальные переменные — в сегменте данных программы.
- Локальные переменные с классом памяти static — также в сегменте данных.
- Прочие локальные переменные — в сегменте стека.
- Контролируйте стек, чтобы он не переполнился.
Информатика - еще материалы к урокам:
- Презентация "Создание визитной карточки" 8 класс
- Презентация "Алгоритмы на графах. Определение наличия циклов в графе"
- Презентация "Алгоритмы на графах. Топологическая сортировка отсечением вершин"
- Презентация "Кодирование вещественных чисел"
- Презентация "Кодирование целых чисел"
- Презентация "Элементы математической логики" 8 класс