Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2009 лекции ПЯВУ часть1.doc
Скачиваний:
23
Добавлен:
27.03.2015
Размер:
823.3 Кб
Скачать

Комментарии

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

Однострочные комментарии начинаются с символа «//» и заканчиваются в конце текущей строки.

Многострочные комментарии начинаются с символов «/*» и заканчиваются парой «*/». Вложенных комментариев не бывает. Независимо от количества символов «/*», следующих друг за другом, их действие заканчивается на ближайшем символе «*/».

Тема 3

Операторы и выражения

Понятие оператора

Пустой операторсостоит из одного символа – «;». Он не выполняет никаких действий. Используется как заполнитель в других, более сложных операторах.

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

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

Оператор return

Имеет две формы:

return;

return выражение;

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

Вторая форма кроме этого еще и возвращает значение в место вызова. Тип выражения в операторе returnи тип возвращаемого значения должны совпадать.

Оператор returnможет отсутствовать в функции, но лучше его явно указывать.

Оператор if(ЕСЛИ)

Этот оператор позволяет изменять порядок выполнения программы в зависимости от истинности условия [1]. Структура ifявляется структурой с одним входом и одним выходом. Структураif/else (ЕСЛИ/ИНАЧЕ)предусматривает действия в случае ложного условия (см. рис. 3.1)

if (x>y)

cout << 1 << endl;

else if (x>z)

cout << 2 << endl;

else if (y>z)

cout << 3 << endl;

else

cout << 4 << endl;

Рис. 3.1 Использование структуры if/else

Структуры выбора ifобычно предполагает наличие в своем теле только одного оператора. Чтобы включить несколько операторов в тело структуры, необходимо заключить их в фигурные скобки{}. Тогда оператор будет составным.

В С++ есть операция, аналогичная структуре if/else. Это единственная тернарная операция условия?:. Использование ее выглядит следующим образом:

x > y ? z = 1 : z = 0 ;

С использованием оператора if/elseэто же выражение можно записать так:

if(x>y)

z = 1;

else

z = 0;

Оператор while(пока)

Задача.Найти среднее арифметическое оценок группы по предмету. Пользователь вводит оценки с клавиатуры, признак конца ввода оценок - -1.(рис 3.2.)

#include <iostream >

using namespace std;

int main()

{

int counter, grade, total;

float average;

total = 0;

counter = 0;

cout << "Enter the grade or -1 for stopping: ";

cin >> grade;

while (grade != -1)

{

total = total + grade;

counter++;

cout << "Enter the grade or -1 for stopping: ";

cin >> grade;

}

average = (float)total / counter;

cout << "The average grade is " << average << endl;

return 0;

}

Рис. 3.2. Поиск среднего арифметического оценок

Средние значения не всегда выражаются целыми числами [1]. Часто среднее значение имеет величину типа 7,2или-93,5. Подобные числа записываются как числа с плавающей точкой и представляются типом данныхfloat. Переменнаяaverageобъявлена как переменная типаfloat, чтобы учесть дробную часть результатов вычислений. Однако результат вычисленияtotal/counterявляется целым числом, поскольку иtotalиcounter– переменные целого типа. Деление двух целых чисел осуществляется как целочисленное деление, при котором любая дробная часть-результат теряется. Поскольку сначала осуществляется деление, дробная часть потеряется прежде, чем результат будет записан в переменнуюaverage. Чтобы осуществлять над целыми числами вычисления с плавающей запятой, надо создавать для вычислений временные величины с плавающей запятой. В С++ для решения этой задачи используется унарная операция приведения к типу. Оператор

average = (float)total / counter;

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