Хелпикс

Главная

Контакты

Случайная статья





1.1.5. Операторы ввода-вывода.



Досрочное завершение текущей итерации в операторе цикла. Иногда возникает потребность досрочно завершить текущий шаг цикла (как бесперспективный) и перейти к следующему шагу. Для этой цели в С++ предусмотрен оператор 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

 

Более подробно возможности ввода и вывода в С++ изложены во второй части пособия.

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.