Основы алгоритмического языка С++

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

?димых пользователем с клавиатуры, нажатие клавиши Esc должно приводить к выходу из программы.

 

Можно ли во вложенном цикле for использовать переменную управления внешним циклом в качестве границы диапазона значений для внутренних циклов?

 

Да. С++ не только не запрещает такое использование, на самом деле оно в порядке вещей. Рассмотрим простой пример.

for ( int i = 1; i <= 100; i += 5)

for ( int j = i; i <= 100; j++)

cout < i * j << endl;

 

Ограничивает ли С++ вложение циклов разных типов?

 

Нет. В программе на С++ вы можете вкладывать любые комбинации циклов.

 

СТРУКТУРА ПРОГРАММЫ

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

Исходная программа

Исходная программа- это совокупность следующих объектов: директив, указаний компилятору, объявлений и определений. Директивы задают действия препроцессора по преобразованию текста программы перед компиляцией. Указания компилятору- это команды, выполняемые компилятором во время процесса компиляции. Объявления задают имена и атрибуты переменных, функций и типов, используемых в программе. Определения- это объявления, определяющие переменные и функции.

Определение переменной в дополнении к ее имени и типу задает начальное значение объявленной переменной. Кроме того, определение предполагает распределение памяти для переменной.

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

Исходная программа может содержать любое число директив, указаний компилятору, объявлений и определений. Любой из объектов программы имеет определенный синтаксис, описанный в этом руководстве,и каждая составляющая может появляться в любом порядке, хотя влияние порядка, в котором следуют переменные и функции может быть использовано в программе (см. раздел 3.5 "Время жизни и видимость").

Нетривиальная программа всегда содержит более одного определения функции. Функция определяет действия, выполняемые программой.

В следующем примере иллюстрируется простая исходная программа на языке Си.

int x = 1;/* Variable definitions */

int y = 2;

extern int printf(char *,...);/* Function declaration */

main () /* Function definition for main function */

{

int z; /* Variable declarations */

int w;

z = y + x; /* Executable statements */

w = y - x;

printf("z = %d \nw = %d \n", z, x);

}

Эта исходная программа определяет функцию с именем main и объявляет функцию printf. Переменные x и y задаются своими определениями. Переменные z и w только объявляются.

ОБЪЯВЛЕНИЯ

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

[...],

где:

- имя определяемого типа;

- идентификатор, который может быть модифицирован при объявлении указателя, массива или функции;

- задает значение или последовательность значений, присваиваемых переменной при объявлении.

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

Язык Си определяет стандартное множество типов данных. К этому множеству можно добавлять новые типы данных посредством их объявлений на типах данных уже определенных.

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

В Си определено четыре спецификатора класса памяти, а именно: auto, extern, register и static.

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

Объявления функций описаны в разделе 4.4.

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

Перечислимые типы также рассматриваются как основные типы. Спецификаторы перечислимых типов рассмотрены в разделе 4.7.1. Типы signed char, signed int, signed short int и signed long int вместе с соответствующими двойниками unsigned называются типами целых.

Спецификаторы типов float и double относятся к типу "плавающих". В объявлениях переменых и функций можно использовать любые спецификаторы "целый" и "плавающий".

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

Можно задать дополнительные спецификаторы типа путем объявления typedef, описанного в разделе 4.7.2.

При записи спецификаторов типов допустимы сокращения как показано в табл. 4.2. В целых типах ключевое слово signed может быть опущено. Так, если ключевое слово unsigned опускается в записи спецификатора типа, то тип целого будет знаковым, даже если опущено ключевое слово signe