Операторы досрочного выхода из цикла — КиберПедия 

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

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

Операторы досрочного выхода из цикла

2022-10-27 25
Операторы досрочного выхода из цикла 0.00 из 5.00 0 оценок
Заказать работу

В языке С++ имеются операторы, которые позволяют досрочно прекратить выполнение цикла, либо какой-то его итерации. К ним относятся:

break; досрочно прекращение выполнения цикла. Далее управление переходит на оператор, следующий за оператором цикла.

continue; прекращает текущую итерацию цикла. Далее управление передается на проверку условия входа в цикл.

Пример. Оператор ЭВМ вводит последовательность из n чисел. Найти сумму положительных чисел до первого нуля.

int a, i, s=0;

for(i=1; i<=n; i++){

   cin >> a;

if (a ==0) break;// ввели 0, что означает прекратить суммирование

if (a <0) continue;/* ввели отрицательное число, значит его суммировать не нужно, поэтому дальнейшие команды пропускаем и переходим на начало цикла, ко вводу а*/

s = s + a;

}

cout << s;

Как видно из примера, внутри операторов цикла могут быть вложены условные операторы.

Контрольные вопросы и задания

1. Какие операторы в языке С++ используются для реализации разветвляющихся алгоритмов? Приведите их синтаксис.

2. Какие операторы в языке С++ используются для реализации циклических алгоритмов? Приведите их синтаксис.

3. Каково назначение операторов break, continue, goto?

4. В чем разница между операторами while и dowhile?

5. Написать программу, котораяпо заданным значениям двух углов треугольника определяет, является ли он прямоугольным. Если треугольник с заданными размерами углов не существует, то вывести сообщение об этом.

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

7. Написать программу, которая запрашивает у пользователя номер дня недели, затем выводит название дня недели или сообщение об ошибке, если введены неверные данные.

8. Написать программу, которая выводит на экран Ваше имя и фамилию 10 раз.

9. Написать программу, которая выводит в форме таблицы значения функции y = x 2 на отрезке [ a, b ] с шагом h.

10. *30 членов Совета директоров компании из 4-х кандидатов выбирают 31-го члена Совета. Причем каждый член Совета голосует ровно за одного из них. После голосования составляется протокол, в котором указывается только количество голосов за каждого кандидата. Написать программу для подсчета количества различных протоколов, которое может получиться. (Ответ: 5456.)

Массивы

 

Массив – структура или таблица однотипных элементов, занимающих непрерывную область памяти. Массив имеет: размер, имя, тип. Элементы обозначаются индексными именами. Нумерация элементов массива в языке С++ начинается с нуля.

Формат объявления массива.

тип имя [размер];

Пример. Объявить массив из 10 элементов.

intA [10];

Размер массива должен быть целочисленной константой. Задать константу-размер можно либо с помощью директивы define

# definen 5

либо создав константную переменную:

constn =5;

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

intA [ ]={4, 6, 7, 8, 9};

В этом случае размер массива вычисляется по формуле:

N=sizeof(A)/sizeof(A[0]);

Доступ к элементам массива осуществляется через индексные имена. Синтаксис:

имя[индекс];

Проход по элементам массива можно организовать с помощьюцикла for.

const n=6;

int A[n];

Ввести
for(i=0; i<n; i++)

cin>>A[i];

 

Вывести
for(i=0; i<n; i++)

cout<<"A["<<i<<"]="<<A[i]<<endl;

Строка в языке С++ – это массив символов, в конце которого находится символ «\0», который является признаком конца строки. На этом факте и строятся все алгоритмы по обработке строк.

Пример. Объявить строку из 50 символов:

charstr [51];

В данном объявлении 50 элементов будут заняты символами, а 51-й элемент – символ «\0».

Как и другие типы данных при объявлении строку можно проинициализировать. Пример.

charstr [10]="строка";

В данном объявлении 6 элементов будут заняты символами, 7-й элемент – символ «/0», три оставшиеся символы будут неопределенны.

В языке Си есть библиотека для обработки строк <string.h>.

#include<string.h>

gets (str); // вводстроки

puts (str); //вывестистроку

i =0;

while (str [ i ]){ //перебор всех символов

cout<<str[i];

i++;

}

Ввод - выводстрок. При считывании строк операция >>считает пробел нулевым символом. То есть с ее помощью можно ввести строки, состоящие из одного слова. Все напечатанное после пробела отбрасывается.

Для считывания строк, содержащих пробелы можно воспользоваться конструкцией cin. get ().

const int MAXL=80;

charstr[MAXL];

cout<<" Введитестроку ";

cin.get(str, MAXL);

cout <<"Вы ввели"<< str;

Первый аргумент метода cin. get () – адресмассива, куда будет помещена строка, второй аргумент – определяет максимальное количество считываемых символов, позволяя таким образом избежать переполнения. Данный метод может иметь третий аргумент – символ разделитель. В этом случае считывание будет происходить, пока не будет прочитано максимально допустимое количество символов, либо пока не встретился символ разделитель.По умолчанию значением этого аргумента является символ новой строки. Но если вызвать метод с другим значением аргумента, то признаком окончания ввода будет указанный символ. С помощью данного фрагмента программного кода

constintMAXL =180;

charstr [ MAXL ];

cout <<"Введитетекст";

cin. get (str, MAXL,'$ ');

cout <<"Вы ввели"<< str;

можно ввести текст, состоящий из нескольких строк, заканчивающийся символом ' $ '.

Поиск элемента в строке. В данном алгоритме используется цикл while, т.к. не известен, размер строки, сколько нужно итераций для прохода по ней,на каком месте стоит искомый элемент.Выход из цикла произойдет либо, когда встретится искомый символ, либо когда будет достигнут конец строки, т.е. встретится символ ' \0 '.

char s[ ]= " Привет ";

char el=' р '; int i=0;

while (s[i]!=el&&s[i]){

i++

;}

if (i<strlen(s)) cout<<" есть ";

elsecout <<"нет ";

Решение о том найден ли символ принимается на основании анализа индекса i. Если значение индекса меньше чем размер строки, это значит, что вышли из цикла ранее, чем достигли конца строки, встретив искомый символ. Если же значение индекса равно длине строки, то значит вышли из цикла, когда достигли конца строки, т.е. символ ' \0 '.

Строки в С++. В языке С++ для работы со строками существует класс string. Таким образом можно объявлять переменные данного типа и использовать встроенные функции класса.

string name;

cin>>name;

cout<< name<<endl;

Контрольные вопросы и задания

1. Что такое массив? Чем он характеризуется?

2. Приведите синтаксис объявления массива и доступа к его элементу.

3. Как организовать последовательный перебор всех элементов массива?

4. Какие индексы будут иметь первый и последний элементы массива?

5. Как трактуется строка в языке С++?

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

 


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

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

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

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

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...



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

0.018 с.