![]()
|
|||||||||||
1.1.5. Операторы ввода-вывода. ⇐ ПредыдущаяСтр 9 из 9 Досрочное завершение текущей итерации в операторе цикла. Иногда возникает потребность досрочно завершить текущий шаг цикла (как бесперспективный) и перейти к следующему шагу. Для этой цели в С++ предусмотрен оператор continue. Оператор continue в конструкциях while, for или do/while вызывает пропуск оставшейся части тела конструкции и начинает выполнение следующей итерации цикла. В циклах типаwhile и do/while немедленно после выполнения оператора continue производится проверка условия продолжения цикла. В циклахfor выполняется операция приращения, а затем уже проверяется условие продолжения. Например, требуется подсчитать количество натуральных чисел из первой тысячи, кратных семи:
for(i=1; i< =1000; i++){if(i%7! =0) continue; k++; };
(если число на 7 не делится без остатка, то мы его в расчет не принимаем, переходим к следующему шагу).
Вложенныециклы . Тело любого оператора цикла может содержать другие циклы. Такие конструкции называют вложенными циклами. Вложенные циклы (цикл в цикле) применяют обычно в задачах, когда требуется связать или сравнить каждый элемент одного множества с каждым элементом другого множества. Блок схема вложенных циклов для, например, циклов с предусловием выглядит так:
Здесь тело внешнего цикла (цикла 1) состоит из оператора внутреннего цикла (цикла 2). Условие выхода из всей конструкции – это условие внешнего цикла. На каждом шаге внешнего цикла полностью «отрабатывает» внутренний цикл. Таким образом, если внешний цикл перечисляет элементы некоторого множества X, а внутренний цикл – элементы множества Y, то за i-й шаг работы первого цикла для i-го элемента xi из X могут быть проверены все элементы yj из Y, т. к. второй цикл не завершит работу, пока истинно его условие. Пример программы с вложенными циклами в C++:
for (i=0; i< 7; i++)//начало внешнего цикла for (j=0; j< 5; j++)//тело внешнего цикла – внутренний цикл for if (i< =j) //тело внутреннего цикла – оператор if { a = i+j; b=a+a*j; }; //конецif, внутреннего for и внешнего for В примере внешний цикл работает 7 раз. На каждом его шаге 5 раз выполняется внутренний цикл, т. е. для каждого i счетчик j пробегает весь свой диапазон, от 0 до 4 включительно. Таким образом, тело внутреннего цикла – здесь это одиночный оператор if – выполняется 35 раз с различными значениями i и j. Циклы в теле другого цикла имеют точно такой же статус при исполнении, как и любой другой оператор, поэтому «вкладывать» один в другой можно циклы любого типа и глубина вложения (количество вложенных друг в друга циклов) может ограничиваться лишь реализацией языка программирования. 1. 1. 5. Операторы ввода-вывода. Эти действия выполняют ввод и вывод информации (значений переменных) в ходе работы программ. Операторы ввода-вывода с точки зрения выразимости алгоритма не имеют самостоятельного значения, т. к. могут быть заменены набором соответствующих присваиваний, но для написания программ они существенны, т. к. исполняются особым образом, с привлечением дополнительных устройств. Для более точного представления алгоритмов в блок-схемах эти операторы имеют специальное изображение, например,
![]()
или
Кроме того, для обозначения начала и конца алгоритма используют фигуры
и
В языке C++ ввод значения переменной можно осуществить с помощью объекта cin и операции > >, вывод данных с помощью объекта cout и операции < <. Формат этих операторов:
cout< < < значение для вывода на экран>;
cin> > < переменная, вкоторуювводитсязначениесклавиатуры>
Оператор cout< < выводит на экран как текст, заключенный в двойные кавычки ”…”, так и значения переменных, функций, выражений, например: cout< < ”Hello! ”; cout< < a; cout< < sin(a); cout< < a+b*с; Оператор cin> > заносит в переменную – правый аргумент значение, введенное с клавиатуры, например: сin> > х; cin> > b; В С++ реализуется потоковый ввод-вывод – вводимые и выводимые значения образуют входной и выходной потоки соответственно. Каждая из операций > > и < < завершается переходом к следующей позиции или значению потока, поэтому возможны цепочки этих операций. Например, предыдущие примеры можно переписать так:
cout< < ”Hello! ” < < a < < sin(a) < < a+b*с; сin> > х > > b;
При этом, если значение a, например, 8, функции sin(a), например, 0. 21, а значение выражения a+b*с равно 47, то на экран выведется строка Hello! 80. 2147 Если с клавиатуры введены значения 4 и 5, разделенные либо пробелом, либо нажатием клавиши ввода < Enter>, либо нажатием клавиши табуляции < tab> то переменная х получит значение 4, а переменная а – значение 5. Переход на следующую строку при выводе можно осуществить двумя способами – используя специальную функцию endl в качестве аргумента операции < < или применяя символ’\n’перехода на новую строку, удобный при выводе текстов. Например:
cout< < ”Vvedichislo \n ”; //вводим с клавиатуры, например, 7 cin> > a; cout< < ”Vvedennoe chislo= ”< < a< < endl; cout< < ”OK”;
В итоге на экранеувидим: Vvedichislo Vvedennoechislo=7 OK
Более подробно возможности ввода и вывода в С++ изложены во второй части пособия.
|
|||||||||||
|