Презентация на тему Язык программирования Си

Содержание

Слайд 2

Элементы языка

Язык Си включает следующие элементы:
Ключевые слова — оформляют различные конструкции языка: else,

Элементы языка Язык Си включает следующие элементы: Ключевые слова — оформляют различные
int, return;
Знаки — играют разделительную роль и обозначают некоторые операции: ;, +, &, (;
Литералы (константы) — фиксированные значения: false, 0, 'Z', 25.4E2, ¨Привет¨;
Идентификаторы (имена) — определяют конкретные объекты программы: main, scanf, Temp, atan2;
Директивы препроцессору — определяют, как должен быть обработан код программы перед компиляцией: #include, #define;
Комментарии — любой текст, заключённый между символами /* и */ и не содержащий символов */: /* Вычисление длины окружности */.

Слайд 3

Основные типы

Целочисленные:
char
short int
int
long int
long long int
Логический

Вещественные:
float
double
long double
«Пустой»:
void

Основные типы Целочисленные: char short int int long int long long int

Слайд 4

Числовые константы

Литерал — любое фиксированное значение, явно записанное в коде программы.
У компилятора — правило:
«Если что-то

Числовые константы Литерал — любое фиксированное значение, явно записанное в коде программы.
начинается с цифры, то это числовая константа»
Поэтому:
Числовая константа всегда начинается с цифры (не считая знаков +, − и десятичной точки)

Слайд 5

Целочисленные типы

Перед указанием типа можно ставить signed (знаковый) или unsigned (беззнаковый).

По умолчанию

Целочисленные типы Перед указанием типа можно ставить signed (знаковый) или unsigned (беззнаковый).
всё — signed.
«int» можно не писать: unsigned int ~ unsigned; long int ~ long.
Определение разрядности типа — функция sizeof(). Возвращает размер в байтах: sizeof(int).

Слайд 6

Целочисленные типы

По умолчанию всё — signed.

Целочисленные типы По умолчанию всё — signed.

Слайд 7

Целочисленные типы

Используемые системы счисления:
десятичная: 5, +77, −190, 1000000000;
восьмеричная — начинается с 0: 015, 0100000, −0777;
шестнадцатеричная —

Целочисленные типы Используемые системы счисления: десятичная: 5, +77, −190, 1000000000; восьмеричная —
начинается с 0x или 0X: 0x9A, 0X294, −0x100000f;
двоичная (только для GCC) — начинается с 0b или 0B: 0b111, 0B100001, −0b1111110.

Слайд 8

Целочисленные типы

Константы по умолчанию имеют тип (signed) int.
Тип можно переопределить:
беззнаковый — заканчивается символом u

Целочисленные типы Константы по умолчанию имеют тип (signed) int. Тип можно переопределить:
или U: 5u, 012U, 0x5CAu;
длинное (long) — заканчивается символом l или L: 99l, 0xABCDL, −0315L;
«очень длинное» (long long) — заканчивается символами ll или LL: 5LL; 0XBaLL; −0105ll.
Непротиворечивые указания типа можно комбинировать: 5LU; 2ull.

Слайд 9

Вещественные типы

Тип long double:
в Microsoft Visual C++ соответствует типу double;
может занимать 96 или 128 бит;

Вещественные типы Тип long double: в Microsoft Visual C++ соответствует типу double;
работают всегда 80 бит.
Вещественные числа — это потери точности,−0, NaN, ∞...
Не используйте вещественные числа без необходимости.

Слайд 10

Вещественные типы

Обязательна точка, разделяющая целую и дробную части:
−2.0, −0.5, 3.1415927.
Одну из частей

Вещественные типы Обязательна точка, разделяющая целую и дробную части: −2.0, −0.5, 3.1415927.
можно не указывать: 143., .005, −.0.
Возможна экспоненциальная форма записи:
целая или вещественная мантисса (не обязательно нормализованная);
символ e или E;
целый порядок в десятичной записи (допускаются ведущие нули):
6.02e23; −1.6e-19; 0.042E+09; -.52E+6; 4e4.

Слайд 11

Вещественные типы

Константы по умолчанию имеют тип double, но можно указать:
обычной точности (float) — заканчивается

Вещественные типы Константы по умолчанию имеют тип double, но можно указать: обычной
символом 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.

Слайд 12

Логический тип

В стандартах языка Си полная поддержка логического типа отсутствует.
Тип имеет имя

Логический тип В стандартах языка Си полная поддержка логического типа отсутствует. Тип
_Bool.
Определены два значения данного типа — 1 (истина) и 0 (ложь).
При подключении заголовочного файла stdbool.h можно использовать имя типа bool и литералы true (истина) и false (ложь).

Слайд 13

«Пустой» тип

Тип void используется, когда формально тип требуется указать, но на самом деле

«Пустой» тип Тип void используется, когда формально тип требуется указать, но на
тип не нужен:
при объявлении «процедур»;
при объявлении нетипизированных указателей и т. п.
Не существует значений типа void.

Слайд 14

Переменные

Переменная — ячейка памяти, предназначенная для хранения некоторого значения.
Переменная имеет:
значение;
тип — определяет, значения какого

Переменные Переменная — ячейка памяти, предназначенная для хранения некоторого значения. Переменная имеет:
типа она может хранить;
адрес в памяти, по которому можно обратиться к значению;
имя (как правило), по которому можно обратиться к значению.

Слайд 15

Переменные

Чтение значения из переменной — обращение к переменной (к значению переменной).
Запись значения в

Переменные Чтение значения из переменной — обращение к переменной (к значению переменной).
переменную — присваивание значения переменной.
Имя (идентификатор) — последовательность символов, определяющая переменную (и другие сущности):
может состоять из заглавных и строчных латинских букв, цифр и знаков подчёркивания: A … Z, a … z, 0 … 9, _;
не должно начинаться с цифры;
не должно совпадать с ключевыми словами языка Си.
Желательно не начинать имена с символа _.
Регистр символов в именах различается: main ≠ Main.

Слайд 16

Переменные

Переменные необходимо объявлять до их первого использования.
Сначала указывается тип, затем список имён.
Завершается

Переменные Переменные необходимо объявлять до их первого использования. Сначала указывается тип, затем
объявление точкой с запятой:
char a, b, c; unsigned char d, e, f;
unsigned long long int P;
signed long F;
float Argument, Result;
long double LongDouble;

Слайд 17

Переменные

Присваивание значений переменным:
a = –5; b = 0xA; P = 75000L; Result

Переменные Присваивание значений переменным: a = –5; b = 0xA; P =
= 2.5E6L;
Присваивание переменной начального значения — инициализация переменной.
Инициализация возможна в объявлениях:
int U = 2;
double X = –5.2d, Y = 2.6d, R;
Оператор присваивания может сам возвращать присваиваемое значение, поэтому можно писать так:
a = b = c = 5;

Слайд 18

Программа

Программа на языке Си состоит из функций.
Описание функции:
тип имя(список формальных параметров)
{
тело функции
}
Здесь

Программа Программа на языке Си состоит из функций. Описание функции: тип имя(список
тип — тип возвращаемого функцией значения.
Скобки { и } — начало и конец тела функции.

Слайд 19

Программа

Выполнение программы начинается с функции, имеющей имя main.

void main(void)
{
}

main()
{
}

или

Программа Выполнение программы начинается с функции, имеющей имя main. void main(void) {

Слайд 20

Программа

Бывает и так:
int main(int argc, char **argv)
{
return 0;
}

Программа Бывает и так: int main(int argc, char **argv) { return 0; }

Слайд 21

Переменные

Переменные могут быть объявлены в любом месте функции (локально) или вне функций

Переменные Переменные могут быть объявлены в любом месте функции (локально) или вне
(глобально):
int P;
void main(void) {char A;}
void other(void) {char B;}
Глобальные переменные видны всем.
Локальные переменные видны там, где они объявлены (после объявления).
Область видимости переменной — совокупность всех областей программы, в которых значение переменной доступно для чтения и записи.

Слайд 22

Переменные

Скобками { и } можно выделить блок:
int main(int argc, char **argv)
{
int Z

Переменные Скобками { и } можно выделить блок: int main(int argc, char
= 9, P = 2;
{
int Z = 7;
}
return 0;
}
Локальные переменные блока видны только в нём.
Переменные функции видны и в ней, и в блоке.
Локальные переменные временно перекрывают видимость «более глобальных».

Слайд 23

Переменные

Переменную можно объявить с классом памяти:
аuto (по умолчанию для локальных);
static — позволяет сохранять

Переменные Переменную можно объявить с классом памяти: аuto (по умолчанию для локальных);
значения между вызовами функции; инициализируется по умолчанию нулевым значением;
register — попытаться ускорить работу с переменной; работает только для типов с размером, как у int; видимость переменных — как у auto;
extern — переменная уже объявлена в другом файле; делает её видимой в данном файле.