Операторы инкремента и декремента. Побитовые операторы языка — КиберПедия 

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Операторы инкремента и декремента. Побитовые операторы языка

2017-11-28 193
Операторы инкремента и декремента. Побитовые операторы языка 0.00 из 5.00 0 оценок
Заказать работу

С++. Оператор инкремента ++ добавляет 1 к своему операнду, а оператор декремента – вычитает 1. Данные операторы имеют две формы: префиксную (++n) и постфиксную (n++). В первом случае значение переменной сначала увеличивается на 1, а затем используется в выражении, во втором случае – сначала используется, а затем увеличивается. То есть, если n = 5, то x = n++; установит x равным 5, а n равным 6.

Побитовые операторы

В Си имеется шесть операторов для манипулирования с битами. Их можно применять только к целочисленным операндам:

& - побитовое И.

| - побитовое ИЛИ.

^ - побитовое исключающее ИЛИ.

<< - сдвиг влево.

>> - сдвиг вправо.

~ - побитовое отрицание (унарный).

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

Выражения вида i = i+2 можно записывать в сокращенном виде i+=2. Оператор +=, как и оператор =, называется оператором присваивания. Большинству бинарных операторов соответствуют операторы присваивания op=, где op – один из операторов: + - *: % << >> & ^

Операторы присваивания. Условный оператор. Оператор sizeof.

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

Выражения вида i = i+2 можно записывать в сокращенном виде i+=2. Оператор +=, как и оператор =, называется оператором присваивания. Большинству бинарных операторов соответствуют операторы присваивания op=, где op – один из операторов: + - *: % << >> & ^

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

Инструкции вида if (a>b) z = a; else z = b; в Си можно записать с помощью тернарного (имеющего три операнда) оператора?: (оно запишется так: z = (a>b)?a:b;).

Операторы, которые будут рассмотрены позже

Оператор () относится к вызову функции. Операторы -> и. (точка) обеспечивают доступ к элементам структур. Оператор sizeof предназначен для получения размера объекта. Оператор * представляет собой косвенное обращение по указателю. Оператор & предназначен для получения адреса объекта. Оператор [] предназначен для индексации элементов массива. Оператор:: - оператор разрешения области видимости. Оператор new предназначен для создания динамического объекта, delete – для удаления динамического объекта.

8. Конструкция ветвления в языке С++: назначение, синтаксис,

примеры использования.

Порядок, в котором выполняются вычисления, определяется инструкциями управления. Выражение, скажем, x = 0, или i++, или printf(…) становится инструкцией, если в конце его поставить точку с запятой. Фигурные скобки используются для объединения объявлений в составную инструкцию, или блок (например, фигурные скобки, обрамляющие тело функции main, или скобки, объединяющие инструкции внутри цикла for). После правой фигурной закрывающей скобки точка с запятой не ставится.

Конструкция if-else Синтаксис конструкции:

if (выражение)

инструкция1;

[else инструкция2];

Сначала вычисляется выражение, если оно истинно (то есть отлично от нуля), выполняется инструкция 1, иначе инструкция 2.

Else связывают с ближайшим if, у которого нет else.

Например, в наборе инструкций:

if (a > 3)

if (b <=5)

c = 10;

else c = 20;

else относится ко второму if, что подчеркнуто с помощью отступов (обратите внимание на необходимость правильно форматировать ваш код).

Конструкция else-if.

Синтаксис конструкции:

if (выражение)

инструкция1;

else if (выражение)

инструкция2;

[else if (выражение)

инструкция3;]

[else инструкцияN;]

Выражения вычисляются по порядку: как только встречается выражение со значением «истина», выполняется соответствующая ему инструкция; на этом последовательность проверок завершается. Последняя else часть срабатывает, если не выполняются все предыдущие проверки.

9. Оператор выбора switch в С++: назначение, синтаксис, примеры

Использования.

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

switch (выражение) {

case конст-выр: инструкции;

case конст-выр: инструкции;

default: инструкции;

}

Каждая ветвь case помечена одной или несколькими целочисленными константами или же константными выражениями. Если выяснилось, что ни одна из констант не подходит, то выполняется ветвь, помеченная словом default, если таковая имеется.

Инструкция break выполняет немедленный выход из переключателя switch:

switch (a){

case 1: cout << "Вы ввели 1"; break;

case 2: cout << "Выввели 2"; break;

case 3: cout << "Вы ввели 3"; break;

default: cout << "Вы неверно ввели число!"; break;

}

10. Цикл for в С++: назначение, синтаксис, примеры использования.

Циклы while и for

В цикле while (выражение) вычисляется выражение. Если его значение ненулевое, то выполняется инструкция, и вычисление выражения повторяется. Этот цикл продолжается до тех пор, пока выражение не станет равным нулю, после чего вычисления продолжатся с точки, расположенной сразу за инструкцией. Пример (вычисление факториала):

cout << "Введите число: ";

int a;

cin >> a;

cout << a << "! = ";

int b = 1;

while (a) // пока а не равно нулю

b *= a--; // умножаем b на a, затем уменьшаем а на единицу

cout << b;

Синтаксис цикла for:

for (выражение1; выражение2; выражение3)

инструкция;

Данная инструкция эквивалента следующей:

выражение1;

while (выражение2) {

инструкция;

выражение3;

}

Пример (вычисление факториала):

cout << "Введите число: ";

int a, b = 1;

cin >> a;

for (int i = 1; i <= a; i++)

b*=i;

cout << a << "! = " << b;

Цикл for чаще всего используется в случае, когда число итераций цикла известно до того, как он начнет выполняться (например, действия, выполняемые для всех элементов массива).

11. Циклы while и do..while в С++: назначение, синтаксис, примеры

Использования

Цикл do-while

Синтаксис:

do

инструкция;

while (выражение);

Это так называемый цикл с постусловием. Его отличие от обычного while заключается в том, что условие продолжения работы цикла находится после его тела. Благодаря этому операторы, составляющие тело цикла, будут гарантированно выполнены хотя бы один раз.

Инструкции break и continue

Оператор break прекращает выполнение ближайшего внешнего для него оператора цикла.

const int M=3, N=2;

int a[M][N] = {{0,2}, {3,0}, {5,6}};

int sum = 0;

for (int i = 0; i < M; i++)

{

for (int j = 0; j < N; j++)

{

if (a[i][j]==0) break;

sum += a[i][j];

}

}

cout << sum << endl;

Оператор continue передает управление на ближайшую внешнюю проверку условия продолжения цикла.

const int M=3, N=2;

int a[M][N] = {{0,2}, {3,0}, {5,6}};

int sum = 0;

for (int i = 0; i < M; i++)

{

for (int j = 0; j < N; j++)

{

if (a[i][j]==0) continue;

sum += a[i][j];

}

}

cout << sum << endl;

13.Структура программы на языке С++. Функция main.

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

int main();

int main(int argc, char* argv[]);

Функция int _tmain(int argc, _TCHAR* argv[]) является макросом от компании Microsoft, который вызывает одну из двух функций:

int main(int argc, char* argv[]);или int wmain(int argc, wchar_t* argv[]); в зависимости от того, используется ли в проекте кодировка Unicode.

Перед именем каждой функции программы следует помещать сведения о типе воз-вращаемого значения (типе результата). Если функция ничего не возвращает, указывается тип void. Значение, возвращаемое функцией main(), может быть передано операционной системе для дальнейшего анализа.

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

14.Ввод-вывод в языке С++ с помощью функций printf(), scanf().

Для вывода информации в Си достаточно часто используется функция printf() (форматная строка, список аргументов);

Прототип этой функции находится в файле <stdio.h>. Форматная строка ограничена двойными кавычками и может включать произвольный текст, управляющие символы и спецификации преобразования данных. Список аргументов может отсутствовать.

Произвольный текст выводится на экран непосредственно без изменений: printf("Привет, мир!");

Управляющие символы (перевод строки, табуляция) позволяют влиять на размеще-ние информации на экране.

Спецификации преобразования данных предназначены для управления формой внешнего представления значений аргументов функции printf(). Обобщенный формат спецификации: %флажки ширина_поля.точность модификатор спецификатор. Обязательными являются только % и спецификатор.

Примеры спецификаторов:

d – для целых десятичных чисел (тип int); u – для целых десятичных чисел без зна-ка (unsigned); f – для вещественных чисел.

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

Точность - целое положительное число, определяющее количество цифр в дроб-ной части вещественного числа.

float f = 5.23232323;

printf("%5.3f",f);

Результат: 5,232.

В качестве модификаторов в спецификации преобразования используются симво-лы: h – для вывода значений short, l – для вывода значений long, L – для вывода значений типа long double. Например, для вывода переменной типа long int нужно использовать спецификатор формата %ld.

Функция scanf, обеспечивающая ввод, является аналогом printf. Она читает симво-лы из стандартного входного потока, интерпретирует их согласно спецификациям фор-матной строки и рассылает результаты в свои остальные аргументы.

15. Потоковый ввод-вывод в языке С++ (cin, cout).

Для того чтобы использовать стандартные потоки для ввода и вывода, необходимо включить заголовочный файл <iostream>. Для ввода используется операция >>, для вывода – операция <<. Компилятор определяет тип вводимой/выводимой переменной и соответствующим образом форматирует её.

 

#include <iostream>

using namespace std;

 

cin >> x; // Ввод значения в переменную x из стандартного потока cin

cout << x; // Вывод значения переменной x в стандартный поток cout

cin >> x >> y; // Ввод двух переменных

cout << "x = " << x << "\ny = " << y << endl; // Функция endl осуществляет перевод строки

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

 

cin >> x;

if (cin.fail())

cout << "Произошла ошибка при вводе\n";

16. Одномерные массивы в С++. Способы инициализации массивов.

Массив – это конечная именованная последовательность однотипных величин. Размерность массива – количество его элементов. Описание массива в программе отличается от описания простой переменной тем, что за именем переменной следуют квадратные скобки, в которых записывается размерность массива. Например: int a[3]; // массив из 3 целых чисел

float b[5]; // массив из 5 действительных чисел

char c[15]; // массив из 15 символов

Каждый элемент массива имеет свой номер, который называется индексом элемента. Индексация (то есть нумерация) элементов в С++ начинается с нуля. Например, массив int a[3] будет содержать элементы a[0], a[1], a[2].

Начальные значения элементов массива можно задать с использованием фигурных скобок, например:

int a[3]={1,2,3}; // a[0]=1, a[1]=2, a[2]=3

Значения элементам присваиваются по порядку. Если размерность массива больше, чем число введенных элементов, остальные будут проинициализированы нулями:

float b[5] = {5.5, 1.2, 1.3}; // b[0]=5.5, b[1]=1.2, b[2]=1.3, b[3]=0, b[4]=0

Размещение элементов массива в памяти выполняется на этапе компиляции, поэтому размерность массива задается константой или константным выражением.

const int M = 5, N = 3;

int a[M*N]={};

Допустимо не задавать размерность массива, в этом случае память будет выделена по числу элементов в списке инициализации:

double d[] = {1.5,2.5,3.5};

Для доступа к элементам массива используются квадратные скобки:

// d[0]=1.5, d[1]=2.5, d[2]=0

double d[3]={1.5,2.5};

d[2]=3.5; // d[2]=3.5

double sum = 0; // переменная для хранения суммы

for (int i = 0; i < 3; i++) sum += d[i]; cout << "Сумма:" << sum << endl; // Сумма: 7,5

17. Двумерные массивы в С++. Пример объявления двумерного массива (индексация его элементов показана на рис. 1):

int a[4][5]; // массив из 4 элементов, каждый из кот. является массивом из 5 эл-в. Двумерный массив располагается в памяти последовательно по строкам (в порядке наиболее быстрого изменения последнего индекса).

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

int mass2 [][2] = { {1, 1}, {0, 2}, {1, 0} };

int mass2 [3][2] = {1, 1, 0, 2, 1, 0};

Пример работы с двумерным массивом (программа ищет номер строки двумерного массива, в которой больше всего нулей):

const int M = 4, N = 5; // размерности массива

int b[M][N]; // описание массива

int i, j; // счетчики циклов

for (i = 0; i<M; i++) // ввод массива

for (j = 0; j<N; j++) scanf("%d", &b[i][j]);

int istr = -1, max_count = 0; // номер искомой строки, максимальное количество

for (i = 0; i<M; i++)

{ // просмотр массива по строкам

int count = 0;

for (j = 0; j<N; j++) if (b[i][j] == 0) count++;

if (count > max_count)

{

istr = i; max_count = count;

}

}

printf("Исходный массив:\n");

for (i = 0; i<M; i++){

for (j = 0; j<N; j++) printf("%d ", b[i][j]);

printf ("\n");}

if (istr == -1) printf("Нулевых элементов нет");

else printf("Hoмep строки: %d", istr + 1);

 


Поделиться с друзьями:

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.057 с.