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

ГЛАВА 4. ОПЕРАТОРЫ ЯЗЫКА С++

Общая структура программы на С++

Оператор объявления

Оператор присваивания

Составной оператор

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

Условные операторы

  • Условный оператор if

  • Оператор выбора switch

Операторы организации циклов

  • Оператор цикла while

  • Оператор цикла do – while

  • Оператор цикла for

  • Способы организации бесконечных циклов

Оператор break

Оператор continue

Общая структура программы на С++

Структура простой C++-программы, которая содержит ввод или вывод информации, имеет следующий вид:

#include <iostream>

using namespace std;

int main(){

оператор_1;

оператор_N

system("pause"); // для задержки экрана

return 0;

}

Переводом программы с языка программирования на машинный язык и анализом её синтаксиса занимается программа-компилятор. Иногда компилятор называют более общим термином – транслятор.

Директива препроцессора – это инструкция, записанная в исходном тексте С++-программы и выполняемая препроцессором. Строка, содержащая директиву препроцессора, начинается с символа '#' и не имеет точки с запятой в конце. Директива include <iostream> подключает заголовочный файл iostream, который необходим для поддержки С++-системы ввода-вывода (т.е. обеспечивает ввод-вывод информации).

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

using namespace std; обозначает, что используется пространство имён с именем std. Пространство имён – это некоторая объявляемая область видимости имён. Она необходима, чтобы избежать конфликтов идентификаторов. В пространстве имён std объявлена вся библиотека стандарта языка С++.

В программах на С++ предусмотрено использование комментариев – пояснительного текста, который не компилируется и, следовательно, не влияет на ход выполнения программы:

// Однострочный комментарий в С++

/* Многострочный комментарий в С++ */

Все С++-программы состоят из одной или нескольких функций. Функция – это логически завершённый фрагмент программы, который может быть вызван из других частей программы. Каждая функция имеет имя, и только одна из них называется main(). С функции main() начинается выполнение любой С++-программы, она всегда должна присутствовать в программе, и имя её менять нельзя. Если в программе только одна функция, то это функция main().

В фигурных скобках, ограничивающих функцию main(), записывается тело функции. Тело функции представляет собой последовательность операторов, задающих действия для выполнения функцией, и оно заключается в фигурные скобки, т.е. является блоком.

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

Для большинства ОС нулевое значение, возвращаемое функцией main(), свидетельствует о нормальном завершении программы. Оператор return используется для возврата значения из функции main() и при нормальном завершении функции должен возвращать значение 0.

// Пример 4.1. Первая С++-программа. Вычисление площади

// треугольника с длинами сторон a, b, c по формуле Герона.

#include <iostream> // для ввода-вывода

#include <math.h> // для функции sqrt()

using namespace std;

int main(){

float a, b, c; // объявление переменных a, b, c

float p, s; // объявление переменных p, s

cout<<"Vvedi a, b, c: ";

cin>>a>>b>>c; // ввод c клавиатуры

p = (a + b + c) / 2; // вычисление полупериметра

s = sqrt(p * (p - a) * (p - b) * (p - c)); // вычисление площади

cout<<"s = "<<s<<endl; // вывод на экран результата

system("pause"); // задержка экрана

return 0; // выход из main(), можно опустить

}

В теле функции main() приведённой программы объявлены переменные a, b, c, p, s, в результате чего под переменные будет выделена оперативная память в соответствии с их типом (по 4 байта).

Подключение заголовочного файла iostream обеспечивает ввод-вывод информации путём предоставления доступа к потокам ввода-вывода. Операция >> (извлечения из потока) обеспечивает считывание данных с клавиатуры через стандартный поток ввода cin (левый операнд операции), их преобразование в соответствии с типом правого операнда и присвоение полученных значений правому операнду (переменным a, b, c). Операция << (вставки в поток) обеспечивает вывод на экран через стандартный поток вывода cout значение правого операнда (строки "s=" и значения переменной s).

Подключение заголовочного файла <math.h> обеспечивает возможность использования в программе библиотечных математических функций и констант (в программе используется функция извлечения квадратного корня – sqrt()).

Оператор объявления

Все имена (идентификаторы) перед их использованием в программе на языке C++ должны быть объявлены (за исключением имени функции main()) с помощью оператора объявления. Оператор объявления состоит из названия типа и объявляемого имени (см. раздел объявление переменных). Оператор можно использовать для объявления переменных, именованных констант, функций и других данных:

int x; // объявление целой переменной x

double f, sum; // объявление f, sum типа double

Оператор присваивания

Только в том случае, когда в конце выражения с операцией (=) ставится точка с запятой, выражение становится оператором присваивания, например

x = y + z;

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

value1 = 5 * (value2 = 8);

В данном случае сначала переменной value2 будет присвоено значение 5, после чего это значение будет умножено на 8 и результат 40 будет записан в переменную value1.

Оператор присваивания также часто применяется для присваивания нескольким переменным одинакового значения, например:

x = y = z = 0;

Составной оператор

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

{

f = a + b; c = f * a; m = f * c;

}

Операторы, входящие в составной оператор, разделяются точкой с запятой.

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

{

f = a + b;

{ x = f * a; m = f * c; } c = f * x * m;

}

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

Пустой оператор в программе представляется отдельной точкой с запятой, которая в данном случае завершает пустое действие.

Условные операторы

В программировании очень редко встречаются задачи, которые можно решить, выполняя строго заданную линейную последовательность действий. Значительно чаще приходится выполнять те или иные действия, в зависимости от каких-либо условий. Для описания подобных случаев используются условные операторы, которые позволяют проверять условие и, в зависимости от его значения, выполнять различные части программы.

Условный оператор if

В С++ оператором проверки условия является оператор if который, позволяет выбрать один из двух возможных вариантов выполнения действий в зависимости от выполнения определенного условия. Общая форма записи оператора if имеет вид:

if (условие) оператор_1;[else оператор_2;]

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

При выполнении оператора if сначала вычисляется условие. Если результат – истина (любое отличное от нуля значение), то выполняется оператор_1. Если результат анализа условия – ложь (значение равно 0), то выполняется оператор_2. В случае отсутствия конструкции else, оператор_1 пропускается, и управление передаётся на оператор, следующий после if. Операторы, стояшие после if и else могут быть составными. Рассмотрим примеры оператора if:

  • if(x < y) min = x; // нахождение минимума

else min = y; // из двух чисел x и y

  • cin>>val; // проверка правильности ввода

if(val < 1 || val > 10) // переменной val, которая может

cout<<"Error vvoda"; // содержать числа от 1 до 10

  • if(x) y = 1 / x; // вычисление y по формуле y = 1 / x,

else сout<<"Error: x = 0 \n"; // если значение x не равно 0

  • if(val < 0) val = -val; // абсолютная величина числа

В языке С++ имеется короткий способ записи оператора ifelse с помощью условной операции (?), например:

min = (x < y) ? x : y; // нахождение min(x, y)

// Пример 4.2. Ввести с клавиатуры два целых числа a и b.

// Если значения a и b положительны, найти их произведение,

// в остальных случаях вычислить их сумму.

#include <iostream>

using namespace std;

int main(){

int a, b, rez;

cout << "Enter the number a, b: "; cin>>a>>b;

cout<<" a = "<<a<<" b = "<<b<<endl;

if(a > 0 && b > 0){rez = a * b; cout<<a<<" * "<<b <<" = ";}

else{rez = a + b; cout<<a<<" + "<<b<<" = ";}

cout<<rez<<endl;

}

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