Базовые средства языка си
Алфавит языка – символы языка – неделимые знаки для записи текстов программы
Лексема – минимальная неделимая единица языка, имеющая самостоятельный смысл (main)
Выражение – задает правило вычисления некоторого значения
Оператор – задает законченное описание некоторого действия (if … then …)
Синтаксис языка – правила записи операторов и выражений (х=х+1)
Семантика языка – смысл операторов и выражений ( х=х+1; х++; )
Символы языка
Буквы A…Z a…Z и знак подчеркивания _(символ-буква)
Цифры 0…9
Знаки . , : ; ‘ “ () [] | + - * / % \ ? ! <> = & # ^ {}
Пробельные символы пробел, \t – табуляция (перейти на расстояние), \n – переход на след.строку.
Лексемы языка
Имена (идентификаторы – summa, x1)
Ключевые слова ЯП (for if do while …)
Знаки операций (+ - >> ++ * / % …)
Константы (-127 3.1415 “text”-строковая ‘A’-символьная )
Разделители (скобки, точка, запятая, пробел)
Пример float (ключ-слово) sum, x, y (имена) = (операция) 13.6 (const) ; // (разделители)
Идентификатор – имя программного объекта, используются:
-
Латинские буквы и «_» (начало имени)
-
Цифры 0…9
-
Прописные и строчные буквы – разные символы в именах
Имена должны иметь смысл и отражать тот объект, к которому относится это имя (sin(x), M_PI)
Длина имени (ВС ++ 3.1) – 32 символа
Имя не совпадает с ключевыми словами
Ключевые слова – зарезервированные имена, которые имеют специальное значение для ПК
Char const if else
Знаки операций – один или более символов определяющих действие над операндами (то над чем выполняется операция)
Операции унарные ( -3) и бинарные (х+4) и тернарные (операция условия ?: )
Все знаки операций кроме () {} [] и ? : - отдельные лексемы
Константы
Константа |
Тип |
Память (байт) |
Примеры |
Диапазон |
Целая |
Int |
2 |
127 -1024 |
-215 , 215-1 |
|
Long |
4 |
123335 -97483 |
-231 , 231-1 |
Вещественная |
Float Double |
4 8 |
2.5 1.3e-12 |
|
Символьная |
Char |
1 |
‘A’ ‘+’ ‘\n’ |
0…255 |
Строковая |
|
|
“string\n” |
|
Управляющие символы:
\a – звуковой сигнал (7-16-ый код)
\n – перевод строки (А)
\t – горизонтальная табуляция (9)
\\ - обратная косая черта (5С)
\’ – апостроф (27)
\” – кавычка (22)
\? – вопросительный знак (3F)
\0ddd – 8-ый код символа
\0xdd –16-ый код символа
Понятие типа в яп
Тип определяет:
-
Множество различных значений
-
Набор операций, которые можно применить к значениям данного типа
-
Формат внутреннего представления переменой в памяти ПК
-
Объем ОП для размещения значения данного типа
Для каждого типа есть спецификация ADT – абстрактного типа данных, определяющая данные и операции, допустимые над данными этого типа.
Целое число 25 – тип int – 0000000000011001 – в памяти ПК 2 байта = 16 бит
Пример ADT int в С++
Данные: целое число N со знаком (описания структуры данных)
Операции: пусть U и V целые выражения, N – целая переменная
Присваивание
= N=U присваивает значение выражения U переменной N
Бинарные арифметические операции
+ U+V сложение
- U-V вычитание
* U*V произведение
/ U/V целочисленное деление
% U%V остаток от деления целых чисел
Унарные арифметические операции
- -U изменение знака
+ +U то же что и U
Операции отношения (выражение отношения – истинность заданного условия)
== U==V результат TRUE если U эквивалентно V
!=
<
<=
>
>=
Конец ADT int