Главная страница

Не зависят от конкретного компьютера Язык Си


Скачать 5.8 Mb.
НазваниеНе зависят от конкретного компьютера Язык Си
Дата24.10.2022
Размер5.8 Mb.
Формат файлаppt
Имя файлаINFORMATIKA_lektsii_IB-1.ppt
ТипПрограмма
#751529
страница6 из 16
1   2   3   4   5   6   7   8   9   ...   16

Оператор множественного выбора (переключатель)


Оператор switch (оператор множественного выбора или переключатель) используется для реализации выбора из нескольких вариантов.
Синтаксис:
switch (выражение) {
case значение1: [операторы1;]
case значение2: [операторы2;]

[default: операторы_для_несовпадения;]
}


123


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


124


Если break отсутствует, то будут выполняться все следующие операторы до тех пор, пока не встретится break или не закончится оператор switch.
Если вычисленное значение выражения не совпало ни с одним из указанных значений, и имеется секция default, то выполняются операторы, указанные в этой секции. Если секция default отсутствует, то оператор switch завершает работу.


125





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


Особенности:
    после switch может быть имя переменной или арифметическое выражение целого типа (int)
    или символьного типа (char)
    нельзя ставить два одинаковых значения:


switch ( i+3 ) {
case 1: a = b; break;
case 2: a = c;
}


switch ( x ) {
case 1: a = b; break;
case 1: a = c;
}


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


127


void Prim3_2(){
int x;
cout << "x = "; cin >> x;
switch (x) {
case 1: cout << "очень плохо"; break;
case 2: cout << "плохо"; break;
case 3: cout << "удовлетворительно"; break;
case 4: cout << "хорошо"; break;
case 5: cout << "отлично"; break;
default: cout << "значение вне диапазона";
}
cout << endl;
}


128





Цикл – это многократное выполнение одинаковых действий.


Циклические алгоритмы в С++


    Различают два вида циклов:
    цикл с известным числом шагов (например, выполнить действие 10 раз) – цикл for
    цикл с неизвестным числом шагов (делать, пока не выполнится условие останова цикла) – цикл while


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


Оператор цикла с параметром используется в тех случаях, когда известно количество итераций цикла
Итерацией называется один проход цикла
Синтаксис:





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


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

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


Выражение1 используется для объявления и (или) инициализации ранее объявленной переменной-счетчика, которая будет отвечать за истинность условия в цикле. Инициализация переменных выполняется один раз в начале исполнения цикла. Можно написать несколько операторов, разделив их запятой.
Переменная-счетчик всегда должна иметь целочисленный тип данных.
Выражение2 определяет условие выполнения цикла. Пока значение выражения, приведенное к типу bool, равно true, цикл выполняется.


131

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


Выражение3 определяет правило изменения параметров цикла (переменной счетчика). Модификация выполняется после каждой итерации цикла. Можно написать несколько операторов через запятую.


132

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


133


for (инициализация;
условие выполнения цикла;
модификация)
{
// тело цикла
}


Особенности:
    условие проверяется в начале очередного шага цикла, если оно ложно цикл не выполняется;
    модификация выполняется в конце очередного шага цикла;





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


Особенности:
    если условие никогда не станет ложным, цикл может продолжаться бесконечно (зацикливание)
    если в теле цикла один оператор, скобки {} можно не ставить:


for(i=1; i<8; i++) { i--; }


for (i = 1; i < 8; i++) a += b;





Сколько раз выполняется цикл?


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


a = 4


a = 1; b=2;
for(i=3; i >= 1; i--)a += b;


a = 7


a = 1;
for(i=1; i >= 3; i--)a = a+1;


a = 1


a = 1;
for(i=1; i<= 4; i--)a ++;


зацикливание


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


a = 7


Цикл for. Пример


Заголовок цикла записывается в круглых скобках, точка с запятой после заголовка не ставится!
Внутри заголовка:
1. На первом месте указано начальное значение изменяемого параметра цикла. В нашем примере изменяемым параметром является переменная i, она же служит счетчиком цикла. Начальное значение равно 1. Каждое новое значение переменной соответствует одному проходу цикла. После задания начального значения ставится точка с запятой.


for (int i = 1; i <= 10; i++) - заголовок цикла
{
x=i;
y=2*x-5;
cout << y << endl;
}





тело цикла





2. На втором месте в заголовке указано конечное значение переменной. В нашем примере конечное значение переменной i равно 10. Снова ставим точку с запятой.
3. И, наконец, на третьем месте, указан шаг изменения переменной или шаг цикла. Шаг цикла — это значение, на которое будет увеличиваться или уменьшаться переменная при каждом проходе (i++ означает увеличение на единицу).
За заголовком цикла идет тело цикла, которое записывается в фигурных скобках.


Цикл for. Пример





#include
#include
using namespace std;
int t, dt=10;
int main() {
setlocale (0, "");
for (t=0; t<=60; t=t+dt)
cout << "Время в сек: " << t << endl;
return 0;
}


В качестве изменяемого параметра цикла может выступать любая физическая величина.
Пример цикла for с параметром «время».


Задание. Определить значения переменных а, sum после выполнения цикла.


Цикл for. Задание





int a = 5;
int sum=0;
for( i = 1; i <= 4; i++ )
{
a = a + 2;
sum=sum+a;
}
cout << a << endl;
cout << sum << endl;


Задание. Определить значения переменных а, sum после выполнения цикла.


Цикл for. Задание





int a = 5;
int sum=0;
for( i = 1; i <= 4; i++ )
{
a = a + 2;
sum=sum+a;
}
cout << a << endl;
cout << sum << endl;


i=1, a=7, sum=7
i=2, a=9, sum=16
i=3, a=11, sum=27
i=4, a=13, sum=40


(i=1; i<=4; i++)


a=a+2;
sum=sum+a;


Вывод a, sum


Ввод a, sum


Когда мы не знаем, сколько итераций должен произвести цикл, нам понадобится цикл while или do...while. Синтаксис циклов while и do…while в C++ выглядит следующим образом:
while: do…while:
while (условие) do
{ {
Тело цикла; Тело цикла;
} }
while (условие);
Циклы будут выполняться до тех пор, пока выполняется условие, указанное в круглых скобках.


Циклы while и do…while





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


Оператор цикла с предварительной проверкой условия
Синтаксис:
while (выражение) оператор
Оператор может быть составным (блоком). В этом случае не забудьте поставить фигурные скобки.





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


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





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


Цикл с предусловием выполняется так:
Вычисляется выражение
Если оно истинно (не 0) выполняется оператор
Снова вычисляется выражение
Если оно ложно – выход из цикла








Цикл с предусловием: алгоритм


начало


count


конец


нет


да


n != 0?


count = 0;


count = count + 1;
n = n / 10;


обнулить счетчик цифр


ввод n


выполнять «пока n !=





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


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


a = 4; b = 6;
while ( a > b ) a = a– b;


a = 4; b = 6;
while ( a < b ) d = a + b;





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


Особенности:
    можно использовать сложные условия:
    если в теле цикла только один оператор, скобки {} можно не писать:


while ( a < b && b < c ) { ... }


while ( a < b ) a ++;





Сколько раз выполняется цикл?


a = 4; b = 6;
while ( a < b ) a ++;


2 раза
a = 6


a = 4; b = 6;
while ( a < b ) a += b;


1 раз
a = 10


a = 4; b = 6;
while ( a > b ) a ++;


0 раз
a = 4


a = 4; b = 6;
while ( a < b ) b = a - b;


1 раз
b = -2


a = 4; b = 6;
while ( a < b ) a --;


зацикливание


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


Напишем программу, которая вводит с клавиатуры символы до тех пор, пока не будет введен символ «.». Для контроля введенные символы выводятся на экран.
Так как условие проверяется в начале каждой итерации, перед выполнением цикла переменной sym нужно присвоить значение, отличное от точки (например, символ «*»), чтобы цикл выполнился хотя бы один раз.




1   2   3   4   5   6   7   8   9   ...   16


написать администратору сайта