ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 23.06.2021

Просмотров: 1669

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

1) #define - указывает правила замены в тексте. 
#define ZERO 0.0 
Означает  ,  что  каждое  использование  в  программе  имени  ZERO  будет 

заменяться на 0.0. 

2) #include< имя заголовочного файла>  - предназначена для  включения в текст 

программы  текста  из  каталога  «Заголовочных  файлов»,  поставляемых  вместе  со 
стандартными 

библиотеками. 

Каждая 

библиотечная 

функция 

Си 

имеет 

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

После  выполнения  препроцессорной  обработки  в  тексте  программы  не 

остается ни одной препроцессорной директивы. 

Программа  представляет  собой  набор  описаний  и  определений,  и  состоит  из 

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

За  заголовком  функции  размещается  тело  функции.  Тело  функции  -  это 

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

Определения - вводят объекты (объект - это именованная область памяти, 

частный  случай  объекта  -  переменная),  необходимые  для  представления  в  программе 
обрабатываемых данных. Примером являются  

int y = 10 ; //именованная константа 
float x ;   //переменная 
 

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

функций, описанных в других частях программы. 

Операторы    -  определяют  действия  программы  на  каждом  шаге  ее 

исполнения. 

Пример программы на Си: 
#include <stdio.h>  //препроцессорная директива 
void main() 

//функция 

//начало  

printf(“Hello! “); 

//печать 

//конец 

 
 

Контрольные вопросы 

1.

Из каких частей состоит программа на С++? 

2.

Чем определение отличается от объявления? 

3.

Перечислить этапы создания исполняемой программы на языке С++. 

4.

Что такое препроцессор? 


background image

5.

Что  такое  директива  препроцессора?  Привести  примеры  директив 
препроцессора. 

6.

Составить программу, которая печатает текст «Моя первая программа на С++» 

 
 
 
 
 


background image

2. Базовые средства языка СИ++ 

2.1.

Состав языка 

В  тексте  на  любом  естественном  языке  можно  выделить  четыре  основных 

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

 
 
 
 

 
 
 
 
 
 

Рис. 1.1. Состав алгоритмического языка 

Таким образом, элементами алгоритмического языка  являются: 

1)

Алфавит языка СИ++,

 который включает 

-

прописные и строчные латинские буквы и знак подчеркивания; 

-

арабские цифры от 0 до 9; 

-

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

-

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

2)

Из символов формируются лексемы языка: 

-

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

  –  имена  объектов  СИ-программ.  В  идентификаторе  могут 

быть использованы латинские буквы, цифры и знак подчеркивания. Прописные 
и  строчные  буквы  различаются,  например,  PROG1,  prog1  и  Prog1  –  три 
различных  идентификатора.  Первым  символом  должна  быть  буква  или  знак 
подчеркивания (но не цифра). Пробелы в идентификаторах не допускаются.   

-

Ключевые

  (зарезервированные)  слова  –  это  слова,  которые  имеют  специальное 

значение для компилятора. Их нельзя использовать в качестве идентификаторов.  

-

Знаки  операций  –  это  один  или  несколько  символов,  определяющих  действие 
над  операндами.  Операции  делятся  на  унарные,  бинарные  и  тернарную  по 
количеству участвующих в этой операции операндов. 

-

Константы 

– это неизменяемые величины. Существуют целые, вещественные, 

символьные и строковые константы. Компилятор выделяет константу в качестве 
лексемы  (элементарной  конструкции)  и  относит  ее  к  одному  из  типов  по  ее 
внешнему виду. 

-

Разделители

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

2.1.1.

Константы в Си++ 

Константа

  –  это  лексема,  представляющая  изображение  фиксированного 

числового, строкового или символьного значения.  

Константы делятся на 5 групп:  

-

целые; 

-

вещественные (с плавающей точкой); 

Операторы 

Выражения 

Лексемы 

Символы 


background image

-

перечислимые; 

-

символьные; 

-

строковые. 

Компилятор  выделяет  лексему  и  относит  ее  к  той  или  другой  группе,  а  затем 

внутри  группы  к  определенному  типу  по  ее  форме  записи  в  тексте  программы  и  по  
числовому значению. 

Целые 

константы 

могут 

быть 

десятичными, 

восьмеричными 

и 

шестнадцатеричными.  Десятичная  константа  определяется  как  последовательность 
десятичных цифр, начинающаяся не с 0, если это число не 0 (примеры: 8, 0, 192345). 
Восьмеричная константа – это константа , которая всегда начинается с 0. За  0 следуют 
восьмеричные 

цифры 

(примеры: 

016 

– 

десятичное 

значение 

14, 

01). 

Шестнадцатеричные  константы  –  последовательность  шестнадцатеричных  цифр, 
которым предшествуют символы 0х или 0Х (примеры: 0хА, 0Х00F). 

В зависимости от значения целой константы компилятор по-разному представит 

ее в памяти компьютера (т. е. компилятор припишет константе  соответствующий тип 
данных).  

Вещественные  константы  имеют  другую  форму  внутреннего  представления  в 

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

и 

с 

плавающей 

точкой. 

Вид 

константы 

с 

фиксированной 

точкой:[цифры].[цифры] (примеры: 5.7, .0001, 41.).Вид константы с плавающей точкой: 
[цифры][.][цифры]E|e[+|-][цифры] (примеры:0.5е5, .11е-5, 5Е3). В записи вещественных 
констант  может  опускаться  либо  целая,  либо  дробная  части,  либо  десятичная  точка, 
либо признак экспоненты с показателем степени. 

Перечислимые  константы  вводятся  с  помощью  ключевого  слова  enum.  Это 

обычные  целые  константы,  которым  приписаны  уникальны  и  удобные  для 
использования обозначения. Примеры: enum { one=1, two=2, three=3,four=4}; 

  enum  {zero,one,two,three}  –  если  в  определении  перечислимых 

констант опустить знаки = и числовые значения, то значения будут приписываться по 
умолчанию.  При  этом  самый  левый  идентификатор  получит  значение  0,  а  каждый 
последующий будет увеличиваться на 1. 

  enum { ten=10, three=3, four, five, six}; 

  enum  {Sunday,  Monday,  Tuesday,  Wednesday,  Thursday,  Friday, 

Saturday} ; 

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

Символьные  константы,  состоящие  из  одного  символа,  имеют  тип  char  и  занимают  в 
памяти один байт, символьные константы, состоящие из двух символов, имеют тип int 
и  занимают  два  байта.  Последовательности,  начинающиеся  со  знака  \  ,  называются 
управляющими, они используются: 
-

Для представления символов, не имеющих графического отображения, например: 

\a – звуковой сигнал, 
\b – возврат на один шаг, 
\n – перевод строки, 
\t – горизонтальная табуляция. 

-

Для представления символов:  \ , ’ ,  ? , ” ( \\, \’ ,\? ,\” ). 

-

Для  представления  символов  с  помощью  шестнадцатеричных  или  восьмеричных 
кодов (\073, \0хF5). 

Строковая  константа  –  это  последовательность  символов,  заключенная  в 

кавычки.  Внутри строк также могут использоваться управляющие символы. Например: 
“\nНовая строка”, 


background image

10 

“\n\”Алгоритмические языки программирования высокого уровня \”” . 
 
 
 

2.2. Типы данных в Си++ 

Данные отображают в программе окружающий мир. Цель программы состоит в 

обработке  данных.  Данные  различных  типов  хранятся  и  обрабатываются  по-разному. 
Тип данных определяет: 

1)

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

2)

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

3)

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

В зависимости от требований задания программист  выбирает  тип для объектов 

программы.  Типы  Си++  можно  разделить  на  простые  и  составные.  К  простым  типам 
относят  типы,  которые  характеризуются  одним  значением.    В  Си++  определено  6 
простых типов данных: 

int (целый) 
char (символьный) 
wchar_t (расширенный символьный) 
bool (логический) 
float(вещественный) 
double (вещественный с двойной точностью) 
 
Существует  4  спецификатора  типа,  уточняющих  внутреннее  представление  и 

диапазон стандартных типов 

short  (короткий) 
long (длинный) 
signed (знаковый) 
unsigned (беззнаковый) 
 

2.2.1. Тип int 

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

компилятора.  Для  16-разрядного  процессора  под  него  отводится  2  байта,  для  32-
разрядного – 4 байта. 

Если перед int стоит спецификатор short, то под число отводится 2 байта, а если 

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

short int  - занимает 2 байта, следовательно, имеет диапазон –32768 ..+32767; 
long  int  –  занимает  4  байта,  следовательно,  имеет  диапазон  –2  147  483  648..+2 

147 483 647 

Тип int  совпадает с типом short int на 16-разрядных ПК и с типом long int на 32-

разрядных ПК. 

Модификаторы  signed  и  unsigned  также  влияют  на  множество  допустимых 

значений, которые может принимать объект: 

unsigned short int  - занимает 2 байта, следовательно, имеет диапазон 0 ..65536; 
unsigned long int – занимает 4 байта, следовательно, имеет диапазон 0..+4 294 967 

295. 

2.2.2. Тип char 

Значениями  этого  типа  являются  элементы  конечного  упорядоченного 

множества  символов.  Каждому  символу  ставится  в  соответствие  число,  которое 

целочисленные 

с плавающей точкой 
 (число=мантисса х 10

к