Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Spisok_voprosov (1).docx
Скачиваний:
15
Добавлен:
22.09.2019
Размер:
3.9 Mб
Скачать
  1. Составной оператор (синтаксис, логика работы, пример).

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

1 2 3 4 5 6 7

int a=5,b=15; if (b>a)   {   a=a+1;   b=b-2;  } cout << a << "  " << b;

Применяется в тех случаях, когда по синтаксису требуется 1 оператор, а нужно выполнять несколько, также он может применяться в качестве пустого оператора или {}. Позволяющих решать неоднозначность условного оператора в строку.

Пример:

#include <iostream>

#include <cmath>

int main()

{ double a,b,c;

cout<<" введите коэфициент a,b,c";

cin>>a>>b>>c;

double d=b*b-4*a*c;

if(d>0)

{

double x1= (-b+sqrt(d))/2/a;

double x2= (-b-sqrt(d))/2/a;

cout <<"x1"<<x1<<"x2"<<x2<<endl;

}

else

if(d==0)

{

double x= -b/2/a;

cout <<"x="<<x<<endl;

}

else

cout <<"сомнений нет"<<endl;

return 0;

}

  1. Неоднозначность условного оператора.

  1. Связь между несколькими условными операторами и сложными логическими выражениями.

  2. Оператор выбора (синтаксис, логика работы, пример).

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

{case значение 1;

Оп 1-1;

Оп 1-n;

Case значение 2;

Оп 2-1;

Оп 2-n;

Case значение m;

Оп m-1;

Оп m-n;

Default

Оп m+1;

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

Производится поиск значений равночисленный вычисляется поле case

Поиск осуществляется сверху вниз. Если указанное значение 2 или более раз, то операторы начинают выполняться с первого встречного. Если ни одно значение у case не подошло, то ищется метка default (эта метка может находится вначале или в середине), если эта метка найдена, то выполняются все операторы, до оператора with. Если на одна метка не совпадает и нет метки default, то действие не выполняется.

Пример:

//вычисление для недели по дню месяца, номера месяца и номера года #include <iostream>

using namespsce std;

int main()

{

int d, m, y;

cout<<"введите день, месяц и год";

cin>>d>>m>>y;

int tmp=(m<3?1:0);

int weekday=(((3*y-(7*(y+(m+9)/12)/4 +(23*m)/9 +d +2 +((y-tmp)/100 +1)*3/4 - 16)%7))+1);

switch (wekday)

{

case 1;

cout<<"понедельник"<<endl;

break;

case 2;

cout<<"вторник"<<endl;

break;

...

case 7;

cout<<"воскресенье"<<endl;

}

return 0;

}

  1. Цикл с предусловием.

Синтаксис while (усл)

Оператор

Сперва проверяется условие, если условие верно ,то проверяется оператор, а затем снова условие, до тех пор, пока условие не станет ложным.

Блок-схема

  1. Цикл с постусловием.

Цикл do/while

//аналог repeat/until

Синтаксис do

Оператор;

While(усл);

Сначала оператор, потом условие , пока оно не станет ложным

Пример

  1. Цикл с параметром.

  2. Взаимозаменяемость циклов.

While и do/while взаимозаменяемы, если тело цикла выполняется хотя бы 1 раз

  1. Оператор break.

Данный оператор прекращает ближайшего внешнего оператора switch,for,while и do/while/

Если он встретится выше операторов, то это приведет к синтаксической ошибке.

пример

  1. Оператор continue

Прекращает выполнение текущей итерации цикла и в операторах while и do/while переходит к проверке условия, а for к выражению изменения счетчика.

пример

  1. Оператор ?: (синтаксис, логика работы, пример).

Терна́рная усло́вная опера́ция (от лат. ternarius — «тройной») (обычно записывается как ?:) — во многих языках программирования операция, возвращающая свой второй или третий операнд в зависимости от значения логического выражения, заданного первым операндом. Как можно судить из названия, тернарная операция принимает всего три указанных операнда.

Синтаксис

логическое выражение ? выражение 1 : выражение 2

Алгоритм работы операции следующий:

Вычисляется логическое выражение.

Если логическое выражение истинно, то вычисляется значение выражения выражение 1, в противном случае — значение выражения выражение 2.

Вычисленное значение возвращается.

Нужно обратить внимание, что вычисляется только одно из выражений: выражение 1 или выражение 2. Это сделано для оптимизации и, в некотором смысле, соответствует принципу ленивых вычислений.

Пример

#include <iostream>

#include <fstream>

#include <string>

using namespace std;

int main(int argc, char** argv)

{

string name;

ofstream fout;

if (argc > 1 && argv[1])

{

name = argv[1];

fout.open(name.c_str(), ios::out | ios::app);

}

ostream& sout = name.empty() ? cout : fout;

return 0;

}

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