ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.06.2021
Просмотров: 1669
Скачиваний: 3

6
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.
Что такое препроцессор?

7
5.
Что такое директива препроцессора? Привести примеры директив
препроцессора.
6.
Составить программу, которая печатает текст «Моя первая программа на С++»

8
2. Базовые средства языка СИ++
2.1.
Состав языка
В тексте на любом естественном языке можно выделить четыре основных
элемента: символы, слова, словосочетания и предложения. Алгоритмический язык
также содержит такие элементы, только слова называют лексемами (элементарными
конструкциями ), словосочетания – выражениями, предложения – операторами.
Лексемы образуются из символов, выражения из лексем и символов, операторы из
символов выражений и лексем (Рис. 1.1)
Рис. 1.1. Состав алгоритмического языка
Таким образом, элементами алгоритмического языка являются:
1)
Алфавит языка СИ++,
который включает
-
прописные и строчные латинские буквы и знак подчеркивания;
-
арабские цифры от 0 до 9;
-
специальные знаки “{},| []()+-/%*.\’:;&?<>=!#^
-
пробельные символы (пробел, символ табуляции, символы перехода на новую
строку).
2)
Из символов формируются лексемы языка:
-
Идентификаторы
– имена объектов СИ-программ. В идентификаторе могут
быть использованы латинские буквы, цифры и знак подчеркивания. Прописные
и строчные буквы различаются, например, PROG1, prog1 и Prog1 – три
различных идентификатора. Первым символом должна быть буква или знак
подчеркивания (но не цифра). Пробелы в идентификаторах не допускаются.
-
Ключевые
(зарезервированные) слова – это слова, которые имеют специальное
значение для компилятора. Их нельзя использовать в качестве идентификаторов.
-
Знаки операций – это один или несколько символов, определяющих действие
над операндами. Операции делятся на унарные, бинарные и тернарную по
количеству участвующих в этой операции операндов.
-
Константы
– это неизменяемые величины. Существуют целые, вещественные,
символьные и строковые константы. Компилятор выделяет константу в качестве
лексемы (элементарной конструкции) и относит ее к одному из типов по ее
внешнему виду.
-
Разделители
– скобки, точка, запятая пробельные символы.
2.1.1.
Константы в Си++
Константа
– это лексема, представляющая изображение фиксированного
числового, строкового или символьного значения.
Константы делятся на 5 групп:
-
целые;
-
вещественные (с плавающей точкой);
Операторы
Выражения
Лексемы
Символы

9
-
перечислимые;
-
символьные;
-
строковые.
Компилятор выделяет лексему и относит ее к той или другой группе, а затем
внутри группы к определенному типу по ее форме записи в тексте программы и по
числовому значению.
Целые
константы
могут
быть
десятичными,
восьмеричными
и
шестнадцатеричными. Десятичная константа определяется как последовательность
десятичных цифр, начинающаяся не с 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Новая строка”,

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
к
)