Среда программирования

Состав языка

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

- Алфавит языка, или его символы — это основные неделимые знаки, с помощью которых пишутся все тексты на языке.

- Лексема, или элементарная конструкция, — минимальная единица языка, имеющая самостоятельный смысл.

- Выражение задает правило вычисления некоторого значения.

- Оператор задает законченное описание некоторого действия.

Алфавит языка

Алфавитом языка называется совокупность символов, используемых в языке.

В алфавит языка Си входят:

· прописные и строчные буквы латинского алфавита (A,B,C,...,Z,a,b,c,...,z)

· цифры (0,1,2,3,4,5,6,7,8,9)

· специальные знаки " ' {} [] () | + - * / % \ ; . , : ? < > _ ! & # ~ ^

- неизображаемые символы ("обобщенные пробельные символы"), такие как пробел, табуляция, переход на новую строку.

Лексемы (CTokens)

Из символов алфавита формируются лексемы. В программах на языке Си базовые элементы, опознаваемые компилятором, называются лексемами (английский термин - "token).". В их состав входят:

- идентификаторы;

- ключевые (зарезервированные) слова;

- управляющие последовательности;

- знаки операций;

- константы;

- комментарии;

- разделители (скобки, точка, запятая, пробельные символы).

 

Ключевые слова

Ключевые слова — это зарезервированные идентификаторы, которые имеют специальное значение для компилятора. Их можно использовать только в том смысле, в котором они определены. Список ключевых слов C++ приведен в табл. 1.1.

Таблица 1.1. Список ключевых слов C++

asm else new this
auto enum operator throw
bool explicit - private true
break export protected try
case extern public typedef
catch false register typeid
char float reinterpretcast typename
class for return union
const friend short unsigned
cohstcast goto signed using
continue if sizeof virtual
default inline static void
delete int staticcast volatile
do long struct wchart
double mutable switch while
dynamiccast namespace template    

По смысловой нагрузке служебные слова группируются следующим образом:

Спецификаторы типов:

char символьный

double вещественный двойной точности

enum перечисляемый

float вещественный

int целый

long длинное целый

short короткое целое

struct структура

signed знаковый

union объединение

unsigned беззнаковый

void отсутствие значения

typedef синоним обозначения типа

Квалификаторы типа:

const квалификатор объекта, имеющего постоянное значение

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

Классы памяти:

auto автоматический

extern внешний

register регистровый

static статический

Элементы операторов:

break прервать

continue продолжить

do выполнять

for для

goto перейти

if если

return возврат

switch переключатель

while пока

Специальные идентификаторы:

default по умолчанию

case вариант

else иначе

sizeof размер

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

Управляющая последовательность Наименование Шестнадцатиричное значение
\a \b \t \n \v \f \r \” \’ \\ \ddd   \xddd Звонок Возврат на шаг Горизонтальная табуляция Новая строка Вертикальная табуляция Перевод формата Возврат каретки Кавычки Апостроф Обратная дробная черта Символ из набора кодов ПЭВМ в восьмиричном представлении Символ из набора кодов ПЭВМ в шестнадцатиричном представлении A B C D 5C     ddd

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

К знакам пунктуации относятся:

[ ] ( ) { } * , : = ; ... #

Эти символы имеют в Си специальное назначение, которое мы будем раскрывать по мере изучения языка. Заметим здесь лишь, что знак (pound sign (#)) может использоваться только в директивах препроцессора языка Си.

Operators - знаки операций. В качестве знаков операции в языке Си могут выступать:

[ ] ( ) . -> ++ -- & * + - ~ ! sizeof / % << >> < > <= >= == != ^ | && || ? : = *= /= %= += -= <<= >>= &= ^= |= , # ##

Идентификаторы

Идентификаторы - это имена, которые вы используете для переменных, типов, функций и меток вашей программы.

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

1. первым символом имени должна быть либо буква, либо символ подчеркивания

2. после первого символа можно использовать любую комбинацию букв и цифр, нельзя использовать не буквенно-цифровые символы вроде # или $

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

4. в качестве идентификаторов нельзя использовать ключевые слова

Стандарт ANSI разрешает 6 значащих символов для имен внешних идентификаторов и 31 для внутренних. На внешние идентификаторы (объявленные как глобальные или внешние extern) могут налагаться дополнительные ограничения, поскольку они могут быть связаны с иным программным обеспечение, по своему определяющем это понятие.

Существует несколько альтернативных правил именования, но всегда важно то, что имя должно облегчать понимание читаемой программы. Это значит, что имя Square переменной, предназначенной для хранения вычисляемой площади, лучше, чем имя s. Можно давать имена вида AgeInYears, т.е. состоящие из сплошь записанных слов, каждое из которых начинается с прописной буквы. Другой подход - age_in_years - отделение слов символом подчеркивания.

Вопрос 2

Константы

Константами называют неизменяемые величины. Различаются целые, вещественные, символьные и строковые константы. Компилятор, выделив константу в качестве лексемы, относит ее к одному из типов по ее внешнему виду1.

Форматы констант, соответствующие каждому типу, приведены в табл

Таблица 1Константы в языке C++

Константа формат Примеры  
Целая     Десятичный последовательность десятичных цифр, начинающаяся не с нуля, если это не число нуль 8, 0,199226  
Восьмеричный нуль, за которым следуют восьмеричные цифры (0,1,2,3,4,5,6,7) 01, 020, 07155    
Шестнадцатеричный Ох или ОХ, за которым следуют шестнадцатеричные цифры (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) OxA, OxlB8, OXOOFF  
Вещественная   Десятичный [цифры] [цифры]2 5.7, .001,35.  
 
Экспоненциальный [цифры][][цифры]{Е;е}[+;-][цифры]3 0.2E6, .11e-3 5Е10  
Символьная   Один или два символа, заключенных в апострофы ‘А’,’ю', '\0', '\n', '\х07'  
Строковая   Последовательность символов, заключенная в кавычки "Здесь был Vasia"  

 

Вещественная константа в экспоненциальном формате представляется в виде мантиссы и порядка. Мантисса записывается слева от знака экспоненты (Е или е), порядок — справа от знака Значение константы определяется как произведение мантиссы и возведенного в указанную в порядке степень числа 10. Обратите внимание, что пробелы внутри числа не допускаются, а для отделения целой части от дробной используется не запятая, а точка.

 

Символьные константы, состоящие из одного символа, занимают в памяти один байт и имеют стандартный тип char. Двухсимвольные константы занимают два байта и имеют тип int, при этом первый символ размещается в байте с меньшим адресом.

Здесь следует особо оговорить, что существует еще одна специальная константа - NULL. Эта константа задает "пустое" значение указателя - одного из элементов языка Си, который будет рассматриваться нами позже.

 

Комментарии

Комментарий либо начинается с двух символов «прямая косая черта» (//) и заканчивается символом перехода на новую строку, либо заключается между символами-скобками /* и */. Внутри комментария можно использовать любые допустимые на данном компьютере символы, а не только символы из алфавита языка C++, поскольку компилятор комментарии игнорирует.

 

Переменные и константы. Типы данных: целый, вещественный, символьный; их представление в оперативной памяти. Размеры данных.

Прежде всего отметим, что любая программа определяет некоторый набор действий над данными. Мы вводим в компьютер числа, буквы и слова и ожидаем, что он проводить над ними какие-то операции. Значения некоторых данных устанавливаются до начала выполнения программы и сохраняются неизменными в течение всего времени работы программы. Такие данные называются константами. Правила записи констант в программе, мы с вами уже рассмотрели. Значения других данных могут изменяться (в частности, путем присваивания новых значений) во время выполнения программы. Эти данные называются переменными. И переменные, и константы занимают определенные участки в памяти компьютера.

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

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

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

Тип данных определяет:

- внутреннее представление данных в памяти компьютера;

множество значений, которые могут принимать величины этого типа;

- операции и функции, которые можно применять к величинам этого типа.

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

Основные типы данных

Основные (стандартные) типы данных часто называют арифметическими, поскольку их можно использовать в арифметических операциях. Для описания основных типов определены следующие ключевые слова:

- int (целый);

- char (символьный);

- wchar_t (расширенный символьный);

- bool (логический);

- float (вещественный);








Дата добавления: 2017-01-13; просмотров: 831;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.019 сек.