Кодовые таблицы ASCII и ANSI. Работа с символами и их кодами.



Описание языка С (используемые символы, константы, идентификаторы, ключевые слова, использование комментариев).Алфавит языка Си. Лексемы Алфавит языка программирования С основывается на множестве символов таблицы кодов ASCII. Алфавит С служит для построения слов, которые в Си называются лексемами. Различают пять типов лексем: идентификаторы; ключевые слова; знаки (символы) операций; литералы (с англ. константа) – запись в исходном коде компьютерной программы, представляющая собой фиксированное значение. 4 типа литералов: целочисленный, вещественный, символьный, строковый. Числовые литералы записываются непосредвенно числом. Строковые литералы представляют собой строку символов, заключенную в кавычки. Символьные литералы включают один символ. ; - разделители (пробел, символы горизонтальной и вертикальной табуляции, символ новой строки, комментарии).

Ключевые слова языка Си.

Ключевые слова – это зарезервированные идентификаторы, которые наделены определенным смыслом. Ключевые слова языка Си зарезервированы, т.е. нельзя использовать их для других целей, такие как задание имени переменной. 32 ключевых слова.

Циклы: for, while, do;

Принятие решения и выбор: if, else, switch, case, default.

Переходы: break, continue, goto;

Тип данных: char, int, short, long, unsigned, signed, float, double, struct, union, typedef, void.

Классы памяти: auto, extern, register, static.

Разное: sizeof, return

Применяемое только в некоторых системах: enum

Квалификатор типа: const, volatile.

Идентификаторы в языке Си.

В качестве идентификатора может быть использована последовательность строчных или прописных букв латинского алфавита и цифр, а также символов подчеркивания. Идентификатор может начинаться только с буквы или символа подчеркивания, но ни в коем случае ни с цифры. Строчные и прописные буквы в идентификаторе различаются.

Важной особенностью является то, что компилятор допускает любое количество символов в идентификаторе, хотя значимыми являются первые 31 символ. Идентификатор создается на этапе объявления переменной, функции, структуры и т.п. после этого его можно использовать в последующих операторах разрабатываемой программы.

Идентификатор не должен совпадать с ключевыми словами, с зарезервированными словами и именами функций из библиотеки компилятора языка С.

Следует обратить особое внимание на использование символа подчеркивания в качестве первого символа идентификатора, поскольку идентификаторы, построенные таким образом, могут совпадать с именами системных функций или переменных, в результате чего они станут недоступны.

Виды констант в языке Си.

Константа – это фиксированное значение, которое не может быть изменено программой. Константы также называются литералами.

5 видов констант: символьные, целые, вещественные, строковые, константы перечисляемого типа

 

№2 Общая структура функции. Прототип функции. Функция main.

Понятие функции. Функция - ряд последовательных инструкций, говорящих компьютеру как выполнять программу. Функция обеспечивает удобный способ отдельно оформить некоторые вычисления и пользоваться ими далее, не заботясь о том, как они реализованы.

Каждая функция должна иметь имя, которое используется для ее объявления, определения и вызова. В любой программе на СИ должна быть функция с именем main (главная функция), именно с этой функции, в каком бы месте программы она не находилась, начинается выполнение программы.

2. Структура функции - это совокупность элементов разного типа, объединенная под одним именем. (к элементам обращаются по имени элемента в данной структуре).

С использованием функций в языке СИ связаны три понятия - определение функции (описание действий, выполняемых функцией), объявление функции (задание формы обращения к функции) и вызов функции.

Определение функции задает тип возвращаемого значения, имя функции, типы и число формальных параметров, а также объявления переменных и операторы, называемые телом функции, и определяющие действие функции. В определении функции также может быть задан класс памяти.

3. Объявление функции имеет такой же вид, что и определение функции, с той лишь разницей, что тело функции отсутствует, и имена формальных параметров тоже могут быть опущены.

4. Общая структура программы. Все программы на языке СИ содержат директивы препроцессора, описания, определения, выражения, операторы и функции.

-Директива препроцессора -это команда препроцессора языка СИ (который автоматически вызывается на первом шаге компиляции программы). Две наиболее общих директивы препроцессора- это директива #define, которая подставляет текст вместо заданного идентификатора, и директива #include, которая включает в программу текст внешнего файла.

-Описания. Описание устанавливает имена и атрибуты переменных, функций и типов, используемых в программе. Глобальные переменные описываются вне функций и действуют от конца описания до конца файла. Локальная переменная описывается внутри функции и действует от конца описания до конца функции.

-Определение. Определение устанавливает содержимое переменной или функции. Определение также отводит память, требуемую для переменных и функций.

-Выражение. Выражение-это комбинация операций и операндов, которое принимает единственное значение.

-Оператор. Операторы управляют порядком выполнения программы на языке СИ.

-Функция. Функция-это набор описаний, определений, выражений и операторов, которое выполняет определенную задачу. Тело функции заключено в фигурные скобки. В языке СИ функции могут быть вложены друг в друга. -Функция main (главная).

Все программы на языке СИ, там где начинается выполнение программы, имеют функцию с именем main. Фигурные скобки, в которые заключено тело функции main, определяют начало и конец программы.

5. Передача параметров программе.

Функция main, с которой начинается выполнение СИ-программы, может быть определена с параметрами, которые передаются из внешнего окружения, например, из командной строки. Во внешнем окружении действуют свои правила представления данных, а точнее, все данные представляются в виде строк символов. Для передачи этих строк в функцию main используются два параметра, первый параметр служит для передачи числа передаваемых строк, второй для передачи самих строк. Общепринятые (но не обязательные) имена этих параметров argc и argv. Параметр argc имеет тип int, его значение формируется из анализа командной строки и равно количеству слов в командной строке, включая и имя вызываемой программы (под словом понимается любой текст не содержащий символа пробел). Параметр argv это массив указателей на строки, каждая из которых содержит одно слово из командной строки. Если слово должно содержать символ пробел, то при записи его в командную строку оно должно быть заключено в кавычки.
Функция main может иметь и третий параметр, который принято называть argp, и который служит для передачи в функцию main параметров операционной системы (среды) в которой выполняется СИ-программа.

 

 

№3 Характеристика базовых типов данных. Тип void.

Следует различать тип данных и модификатор типа.

Имеются следующие базовые типы: char (символьный), int (целый), float (вещественный), double (вещественный с двойной точностью), void (пустой тип).

К модификатором относятся: unsigned (беззнаковый), signed (знаковый), short (короткий), long (длинный).

Тип данных и модификатор типа определяют:

-формат хранения данных в оперативной памяти;

-диапазон значений, в пределах которого может изменяться переменная;

-операции, которые могут выполняться над данными соответствующего типа.

Данные целого типа (signed char, unsigned char, signed int, unsigned int, signed short int, unsigned short int, signed long int, unsigned short int) . По умолчанию все переменные целого типа считаются signed. Ключевые слова signed и unsigned могут употребляться самостоятельно при определении переменной. В этом случае они рассматриваются соответственно как signed int и unsigned int.   

Вещественные типы данных. Для объявления переменных плавающего типа используются ключевые слова float, double, long double. Все числа с плавающей точкой представляются в виде двух частей – мантиссы М и порядка Р числа в двоичной системе счисления:

C=M*2(в степени Р).

Величины типа float занимают 4 байта. Величины типа double занимают 8 байт в памяти. Признаком константы с плавающей точкой является наличие в ее записи точки, символа Е или е.

Символьные данные.

Данные типа char занимают в памяти 1 байт. Код от 0 до 255 в этом байте задает один из 256 возможных символов. Тип char является типом «целое». Данные типа char могут рассматриваться и как данные со знаком (signed char) и без знака (unsigned char). В случае signed char диапазон значений от -128 до 127, а unsigned char от 0 до 255.

Константа типа char – это символ заключенный в одиночные кавычки. Каждому символу ставится в соответствие некоторый код. По этому коду из таблицы описания конфигурации символа выбирается изображение этого символа, которое выводится на экран.

Значением символьной константы является целое число. Например, символ '0' в коде ASCII имеет значение равное 48 в 10с/с. Символьные константы (точнее их коды) могут участвовать в операциях над числами так же, как и существующие другие целые.

Функция возвращает значение если ее выполнение заканчивается оператором return, содержащим некоторое выражение. Указанное выражение вычисляется, преобразуется, если необходимо, к типу возвращаемого значения и возвращается в точку вызова функции в качестве результата. Если оператор return не содержит выражения или выполнение функции завершается после выполнения последнего ее оператора (без выполнения оператора return), то возвращаемое значение не определено. Для функций, не использующих возвращаемое значение, должен быть использован тип void, указывающий на отсутствие возвращаемого значения. Если функция определена как функция, возвращающая некоторое значение, а в операторе return при выходе из нее отсутствует выражение, то поведение вызывающей функции после передачи ей управления может быть непредсказуемым.

№4*. Внутреннее битовое представление базовых типов данных. Операция sizeof.

Следует сделать следующее замечание: в языке СИ не определено представление в памяти и диапазон значений для идентификаторов с модификаторами-типа int и unsigned int. Размер памяти для переменной с модификатором типа signed int определяется длиной машинного слова, которое имеет различный размер на разных машинах. Так, на 16-ти разрядных машинах размер слова равен 2-м байтам, на 32-х разрядных машинах соответственно 4-м байтам, т.е. тип int эквивалентен типам short int, или long int в зависимости от архитектуры используемой ПЭВМ. Таким образом, одна и та же программа может правильно работать на одном компьютере и неправильно на другом. Для определения длины памяти занимаемой переменной можно использовать операцию sizeof языка СИ, возвращающую значение длины указанного модификатора-типа.

Отметим также, что восьмеричные и шестнадцатеричные константы также могут иметь модификатор unsigned. Это достигается указанием префикса u или U после константы, константа без этого префикса считается знаковой.

 

Кодовые таблицы ASCII и ANSI. Работа с символами и их кодами.

Кодовая страница (англ. code page) — таблица, сопоставляющая каждому значению байта некоторый символ (или его отсутствие). Обычно код символа имеет размер 8 бит, так что кодовая страница может содержать максимум 256 символов, из чего вытекает резкая недостаточность всякой 8-битной кодовой страницы для представления многоязычных текстов. К тому же часть символов используется как управляющие, из-за чего число печатных символов редко превышает 223.


Дата добавления: 2018-08-06; просмотров: 472; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!