Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

I Алфавит C включает- строчные и прописные буквы латинского алфавита мы их будем называть буквами

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 24.11.2024

Базовые элементы языка С

2.1 Алфавит и словарь языка

2.2 Константы и переменные

2.3 Типы данных

2.4 Выражения, операнды, операции.

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

Программа на С формируется с помощью конечного набора знаков, образующих алфавит языка, и состоит из букв, цифр и специальных символов. Алфавит (или множество литер) языка программирования C++ основывается на множестве символов таблицы кодов ASCII. Алфавит C++ включает:

  •  строчные и прописные буквы латинского алфавита (мы их будем называть буквами),
  •  цифры от 0 до 9 (назовём их буквами-цифрами),
  •  символ '_' (подчерк - также считается буквой),
  •  набор специальных символов:
    " { } , | [ ] + - % / \ ; ' : ? < > = ! & # ~ ^ . *
  •  прочие символы.

Комбинации специальных символов образуют составные символы:

<< поразрядный сдвиг влево

>> поразрядный сдвиг

= =тождественно равно

<= меньше или равно

>= больше или равно

!= не равно

&& И

||  ИЛИ

? : операция условия

Неделимые последовательности знаков алфавита образуют слова, отделенные друг от друга разделителями и несущие определенный смысл в программе.  Алфавит C++ служит для построения слов, которые в C++ называются лексемами. Различают пять типов лексем:

  •  идентификаторы,
  •  ключевые слова,
  •  знаки (символы) операций,
  •  литералы,
  •  разделители.

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

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

Зарезервированные слова являются составной частью языка, имеют фиксированное начертание и раз и навсегда определенный смысл.

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

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

Правила написания идентификаторов в С

  1.  Первым символом должна быть буква или знак подчеркивания
  2.  Идентификатор может состоять только из букв, цифр или знака подчеркивания.
  3.  Максимальная длина идентификатора 32 символа
  4.  Все идентификаторы регистро чувствительны
  5.  Идентификаторы разделяются хотя бы одним пробелом
  6.  Зарезервированные слова не могут использоваться в качестве идентификаторов.

При написании идентификаторов можно использовать как прописные так и строчные буквы, однако между ними существует существенная разница для транслятора (идентификаторы регистро чувствительны).

Ключевые слова и имена

Часть идентификаторов C++ входит в фиксированный словарь ключевых слов. Эти идентификаторы образуют подмножество ключевых слов (они так и называются ключевыми словами). Прочие идентификаторы после специального объявления становятся именами. Имена служат для обозначения переменных, типов данных, функций и меток. Обо всём этом позже.

Ниже приводится список ключевых слов:

asm auto break case catch char class const continue default do double else enum extern float for friend goto if inline int long new operator private protected public register return short signed sizeof static struct switch template this throw try typedef typeid union unsigned virtual void volatile while.

Символы операций и разделителей

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

Слеующие последовательности специальных символов и букв алфавита образуют множество символов операций (часть из них в зависимости от контекста может быть использована в качестве разделителей):

,

!

!=

|

|=

%

%=

&

&&

&=

()

*

*=

+

++

+=

-

--

-=

->

->*

.

.*

/

/=

::

<

<<

<=

<<=

>

>>

>=

>>=

==

?:

[]

^

^=

~

||

#

##

sizeof

new

delete

typeid

throw

Кроме того, к числу разделителей относятся следующие последовательности специальных символов:

...

;

{}

Литералы

В C++ существует четыре типа литералов:

  •  целочисленный литерал,
  •  вещественный литерал,
  •  символьный литерал,
  •  строковый литерал.

Это особая категория слов языка. Для каждого подмножества литералов испольльзуются собственные правила словообразования. Мы не будем приводить здесь эти правила. Ограничимся лишь общим описанием структуры и назначения каждого подмножества литералов. После этого правила станут более-менее понятны.

  •  Целочисленный литерал служит для записи целочисленных значений и является соответствующей последовательностью цифр (возможно со знаком '-'). Целочисленный литерал, начинающийся с 0, воспринимается как восьмеричное целое. В этом случае цифры 8 и 9 не должны встречаться среди составляющих литерал символов. Целочисленный литерал, начинающийся с 0x или 0X, воспринимается как шестнадцатеричное целое. В этом случае целочисленный литерал может включать символы от A или a, до F или f, которые в шестнадцатеричной системе эквивалентны десятичным значениям от 10 до 15. Непосредственно за литералом может располагаться в произвольном сочетании один или два специальных суффикса: U (или u) и L (или l).
  •  Вещественный литерал служит для отображения вещественных значений. Он фиксирует запись соответствующего значения в обычной десятичной или научной нотациях. В научной нотации мантисса отделяется от порядка литерой E или e). Непосредственно за литералом могут располагаться один из двух специальных суффиксов: F (или f) и L или l).
  •  Значением символьного литерала является соответствующее значения ASCII кода (это, разумеется, не только буквы, буквы-цифры или специальные символы алфавита C++). Символьный литерал представляет собой последовательность из одной или нескольких литер, заключённых в одинарные кавычки. Символьный литерал служит для представления литер в одном из форматов представления. Например, литера Z может быть представлена литералом 'Z', а также литералами '\132' и '\x5A'. Любая литера может быть представлена в нескольких форматах представления: обычном, восьмеричном и шестнадцатеричном. Допустимый диапазон для обозначения символьных литералов в восьмеричном представлении ограничен восьмеричными числами от 0 до 377. Допустимый диапазон для обозначения символьных литералов в шестнадцатеричном представлении ограничен шестнадцатеричными числами от 0x0 до 0xFF. Литеры, которые используются в качестве служебных символов при организации формата представления или не имеют графического представления, могут быть представлены с помощью ещё одного специального формата. Ниже приводится список литер, которые представляются в этом формате. К их числу относятся литеры, не имеющие графического представления, а также литеры, которые используются при организации структуры форматов.

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

\0 \x00 null пустая литера

\a \x07 bel сигнал

\b \x08 bs возврат на шаг

\f \x0C ff перевод страницы

\n \x0A lf перевод строки

\r \x0D cr возврат каретки

\t \x09 ht горизонтальная табуляция

\v \x0B vt вертикальная табуляция

\\ \x5C \ обратная косая черта

\' \x27 '

\" \x22 "

\? \x3F ?

 

  •  Строковые литералы являются последовательностью (возможно, пустой) литер в одном из возможных форматов представления, заключённых в двойные кавычки. Строковые литералы, расположенные последовательно, соединяются в один литерал, причём литеры соединённых строк остаются различными. Так, например, последовательность строковых литералов "\xF" "F" после объединения будет содержать две литеры, первая из которых является символьным литералом в шестнадцатеричном формате '\F', второй - символьным литералом 'F'. Строковый литерал и объединённая последовательность строковых литералов заканчиваются пустой литерой, которая используется как индикатор конца литерала.

Константы и переменные

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

Константами называется элементы данных, значения которых известны заранее и в процессе выполнения программы не изменяются.

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

Общий синтаксис директивы #define:

 #define имя_константы значение_константы;

Директива #define дает указание транслятору вызвать препроцессор и выполнить замену имени константы ее значением в виде подставляемого текста. Замена происходит до того, как транслятор обработает операторы программы.

Вторым типом константы в языке С++ является формальная константа.

Общий синтаксис записи формальной константы:

Const тип_данных имя_константы = значение_константы;

Элемент тип_данных является необъязательным. Он определяет тип_данных элемента значение_константы. По умолчанию присваивается тип int.

Переменные в отличие от констант могут менять свои значения в процессе выполнения программы. Каждая переменная и константа принадлежат к определенному типу данных. Тип констант распознается компилятором без предварительного описания.

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

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

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

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

Тип переменных должен быть описан перед тем, как с переменными будут выполняться какие-либо действия. Числа разной величины с большей или меньшей точностью можно представить с помощью разных типов.

Основные типы в C++ подразделяются на две группы: целочисленные типы и типы с плавающей точкой (для краткости их будем называть плавающими типами). Это арифметические типы.

В C++ нет жёсткого стандарта на диапазоны значений арифметических типов (в стандарте языка оговариваются лишь минимально допустимые значения). В принципе, эти диапазоны определяются конкретной реализацией. Обычно выбор этих характеристик диктуется эффективностью использования вычислительных возможностей компьютера. Зависимость языка от реализации создаёт определённые проблемы переносимости. C++ остаётся машинно-зависимым языком.

К стандартным скалярным типам относятся int, char, float, double, bool для представления соответственно данных целого типа, литер, чисел с плавающей запятой, чисел с плавающей запятой с двойтой точностью и логических переменных. Кроме того в С++ используются данные типа void для обозначение типа возвращаемого функцией значения в том случае, если она не генерирует никого результата (действует как процедура).

К целочисленным типам относятся типы, представленные следующими именами основных типов:

char

short

int

long

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

signed

unsigned

Эти модификаторы изменяют формат представления данных, но не влияют на размеры выделяемых областей памяти.

Модификатор типа signed указывает, что переменная может принимать как положительные, так и отрицательные значения. Возможно, что при этом самый левый бит области памяти, выделяемой для хранения значения, используется для представления знака. Если этот бит установлен в 0, то значение переменной считается положительным. Если бит установлен в 1, то значение переменной считается отрицательным.

Модификатор типа unsigned указывает, что переменная принимает неотрицательные значения. При этом самый левый бит области памяти, выделяемой для хранения значения, используется так же, как и все остальные биты области памяти - для представления значения.

В ряде случаев модификаторы типа можно рассматривать как имена основных типов.

К плавающим типам относятся три типа, представленные следующими именами типов, модификаторов и их сочетаний:

float

double

long double

Как и ранее, модификатор типа входит в число имён основных типов.

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

297.7              2.977*10**2             2.977E2

В научной нотации слева от символа E записывается мантисса, справа - значение экспоненты, которая всегда равняется показателю степени 10.

Таким образом, система представления данных в языке С++ обладает достаточной гибкостью, так как поддерживает модификаторы типа данных. Модификаторы типов signed, unsigned, sort, long  изменяют их точность и диапазон значений.

Общий синтаксис объявления переменных следующий:

type имя_переменной;

type имя_переменной = начальное_значение;

type имя_переменной_1[ = начальное_значение_1], type имя_переменной_2[ = начальное_значение_2], type имя_переменной_3[ = начальное_значение_3],…;

type{int, bool, char, signed char, unsigned char, unsigned int, short int, unsigned short int, long int, unsigned long int, float, double, long double }




1. Рекреационные ресурсы страны Италия
2. правового регулирования
3. Цена жизни Юрий Петрович ВласовЦена жизни ScnOCRConvertSpellCheck- rchimedes Цена жизни-
4. Лекция2. Классификация религий
5. Лекция 6 6
6. Я вернусь... правдивая история любви русской женшины и восточного мужчины
7. Observer КОНСТИТУЦИОННОПРАВОВОЙ МЕХАНИЗМ ВНЕШНЕЙ ПОЛИТИКИ РОССИИ- ТЕО
8. Проект комплексного обоснования перспектив туристского потенциала на территории Уральского Прикамь
9. Принципиальное устройство, безопасная эксплуатация сооружений водопользования
10. Отраслевая и межотраслевая горная рента в отраслях топливно-энергетического комплекс
11. Тема Художники и зрители
12. для станичной службы за каковую службу им дано было земли на пашню 1060 четвертей 1590 десятин и сенных покосо
13. Сущность человеческого бытия
14. Австралия в мировой экономике
15. тема экологического права План 1
16. Тема- Что такое вина.
17. ПОЯСНИТЕЛЬНАЯ ЗАПИСКА Студ
18. 1.Проблема целей обучения в историческом аспекте.html
19. 1Понятие цель структурная схема СУОТ
20. Возникает мелкая рытвина