Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratorny_praktikum_pravka_Kruglikov.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
545 Кб
Скачать
☆
    1. Структура программы

Программа на языке C/C++ имеет следующую структуру:

#директивы препроцессора

.........

#директивы препроцессора

функция а ( )

операторы

функция в ( )

операторы

void main ( ) //функция, с которой начинается выполнение программы

операторы

описания

присваивания

функция

пустой оператор

составной

выбора

циклов

перехода

Директивы препроцессора ‑ управляют преобразованием текста программы до ее компиляции. Задача препроцессора ‑ преобразование текста программы до ее компиляции. Правила препроцессорной обработки определяет программист с помощью директив препроцессора. Директива начинается с символа #. Например:

  1. #define ‑ указывает правила замены в тексте.

#define ZERO 0.0 ‑ Означает, что каждое использование в программе имени ZERO будет заменяться на 0.0. Это один из способов создания констант. Современные компиляторы для описания констант используют ключевое слово const. Рекомендуется использовать его.

  1. #include< имя заголовочного файла>

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

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

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

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

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

float x; //переменная

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

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

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

Константа ‑ это значение, которое не может быть изменено. Синтаксис языка определяет 5 типов констант:

  • символы;

  • константы перечисляемого типа;

  • вещественные числа;

  • целые числа;

  • нулевой указатель (NULL).

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

тип список_имен_переменных;

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

тип данных

название

размер, бит

диапазон значений

unsigned char

беззнаковый целый длиной не менее 8 бит

8

0.. 255

char

целый длиной не менее 8 бит

8

-128.. 127

enum

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

16

-32768.. 32767

unsigned int

беззнаковый целый

16

0.. 65535

short int (short)

короткий целый

16

-32768.. 32767

unsigned short

беззнаковый короткий целый

16

0.. 65535

int

целый

16

-32768.. 32767

unsigned long

беззнаковый длинный целый

32

0.. 4294967295

long

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

32

-214748348.. 2147483647

float

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

32

3.4Е-38.. 3.4Е+38

double

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

64

1.7Е-308.. 1.7Е+308

long double

вещественный максимальной точности

80

3.4Е-4932.. 1.1Е+4932

В соответствии с синтаксисом языка переменные автоматической памяти после определения по умолчанию имеют неопределенные значения. Переменным можно присваивать начальные значения, явно указывая их в определениях:

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

Этот прием называется инициализацией. Примеры:

float pi = 3.14, cc=1.3456;

unsigned int year = 1999;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]