Главная » Просмотр файлов » 246071-Либерти-Освой-самостоятельно-С-за-21-день

246071-Либерти-Освой-самостоятельно-С-за-21-день (852741), страница 30

Файл №852741 246071-Либерти-Освой-самостоятельно-С-за-21-день (Освой С++ самостоятельно за 1 день. Книга) 30 страница246071-Либерти-Освой-самостоятельно-С-за-21-день (852741) страница 302021-10-05СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 30)

В этом случае программа выводит сообщение о победе,работациклапрерываетсяоператоромbreakиуправлениепередаетсявстроку46.Использованиеконструкцииwhile(true)В качестве условия, проверяемого при переходе на очередную итерацию цикла, можетвыступать любое выражение, корректное с точки зрения синтаксиса языка C++. Циклвыполняется до тех пор, пока это выражение истинно. Для организации так называемыхбесконечных циклов в качестве такого выражения применяется логическая константа true.Листинг7.5демонстрируетпримербесконечногоцикла,выполняющегосчетдодесяти.Листинг7.5.Ещеодинпримериспользованияоператораwhile1://Листинг7.5.2://Пример"бесконечного"цикла3:4:#include<iostream.h>5:6:intmain()7:{8:intcounter=0;9:10:while(true)11:{12:counter++;13:if(counter>10)14:break;15:}16:cout<<"Counter:"<<counter<<"\n";17:return0;18:}Результат:Counter:11Анализ:Понятно,чтоусловиепродолженияцикла,заданноевстроке10,будетвыполнятьсявсегда.Втелецикла(строка12)значениепеременнойcounterувеличиваетсянаединицу.Работацикла продолжается до тех пор, показначение counter не превысит 10.

Выполнение циклапрерывается оператором break в строке 14, и на экран выводится значение переменной counter(строка16).Несмотрянаточтоданнаяпрограммаработает,ееструктурунельзяназватьоптимальной.Это типичный пример некорректного использования оператора while. Правильным решениембылабыорганизацияпроверкизначенияcounterвусловиипродолженияцикла.ГибкийсинтаксисязыкаC++позволяетрешитьоднуитужезадачумножествомразличныхспособов. Поэтому важно научиться выбирать средство, наиболее подходящее в конкретнойситуации.Организацияцикловспомощьюконструкцииdo...whileПриорганизациицикловспомощьюоператораwhileвозможнаситуация,когдателоциклавообще не будет выполняться.

Поскольку условие продолжения цикла проверяется в началекаждойитерации,принарушенииистинностивыражения,задающегоэтоусловие,выполнениецикла будет прервано еще до запуска первого оператора тела цикла. Пример такой ситуацииприведенвлистинге7.6.Листинг7.6.Преждевременноезавершениецикласwhile1://Листинг7.6.2://Еслиусловиепродолженияцикланевыполняется,3://телоциклапропускается.4:5:#include<iostream.h>6:7:intmain()8:{9:intcounter;10:cout<<"Howmanyhellos?:";11:cin>>counter;12:while(counter>0)13:{14:cout<<"Hello!\n";15:counter--;16:}17:cout<<"CounterisOutPut:"<<counter;18:return0;19:}Результат:Howmanyhellos?:2Hello!Hello!Counteris0utPut:0Howmanyhellos?:0Counteris0utPut:0Анализ: В строке 10 вам предлагается ввести начальное значение счетчика, котороезаписываетсявпеременнуюcounter.Встроке12этозначениепроверяется,азатемвтелециклауменьшается на единицу.

При первом запуске программы начальное значение счетчикаравнялосьдвум,поэтомутелоциклавыполнялосьдважды.Вовторомслучаебыловведеночисло0. Понятно, что в этом случае условие продолжения цикла не выполнялось и тело цикла былопропущено.Врезультатеприветствиенебыловыведенониразу.Как же поступить, чтобы сообщение выводилось по крайней мере один раз? С помощьюоператораwhileэтосделатьневозможно,таккакусловиепроверяетсяещедовыполнениятелацикла. Один из способов решения этой проблемы — использование оператора if для контроляначальногозначенияпеременнойcounter.If(counter<1)//контрольначальногозначенияcounter=1;Правда,этодовольно<<корявый>>выходизситуации.Использованиеконструкцииdo...whileПри использовании конструкции do...while условие проверяется после выполнения телацикла.Этогарантируетвыполнениеоператоровциклапокрайнеймереодинраз.Влистинге7.7приведен измененный вариант предыдущей программы, в котором вместо оператора whileиспользуетсяконструкцияdo...while.Листинг7.7.Использованиеконструкцииdo...while1://Листинг7.7.2://Примериспользованияконструкцииdo...while3:4:include<iostream.h>5:6:intmain()7:{8:intcounter;9:cout<<"Howmanyhellos?";10:cin>>counter;11:do12:{13:cout<<"Hello\n";14:counter--;15:}while(counter>0);16:cout<<"Counteris:"<<counter<<endl;17:return0;18:}Результат:Howmanyhellos?2HelloHelloCounteris:0Анализ: В строке 9 пользователю предлагается ввести начальное значение счетчика,которое записывается в переменную counter.

В конструкции do.. while условие проверяется вконцекаждойитерации,чтогарантируетвыполнениетелациклапоменьшеймереодинраз.Встроке 13 на экран выводится текст приветствия, а в строке 14 значение переменной counterуменьшается на единицу. Условие продолжения цикла проверяется в строке 15.

Если оноистинно, выполняется следующая итерация цикла ,(строка 13). В противном случае циклзавершаетсяиуправлениепередаетсявстроку16.При использовании в конструкциях do.. .while операторы break и continue дают тот жерезультат, что и при использовании с оператором while. Единственное различие этих двухметодоворганизациицикловсостоитвпроверкеусловияпродолженияцикла.Впервомслучаеоноконтролируетсяпередвыполнениемтелацикла,авовтором—посленего.ОператорforДля организации цикла с помощью оператора while необходимо выполнить триобязательных действия: установить начальные значения переменных цикла, а затем на каждойитерации проконтролировать выполнение условия продолжения цикла и изменить значениепеременнойцикла(листинг7.8).Листинг7.8.Ещеодинпримериспользованияоператораwhile1://Листинг7.8.2://Ещеодинпримериспользованияоператораwhile3:4:#include<iostream.h>5:6:intmain()7:{8:intcounter=0;9:10:while(counter<5)11:{12:counter++;13:cout<<"Looping!";14:}15:16:cout<<"\nCounter:"<<counter<<"\n";17:return0;18:}Результат:Looping!Looping!Looping!Looping!Looping!Counter:5.Анализ:Встроке8переменнаяциклаcounterинициализируетсянулевымзначением.Затемв строке 10 проверяется условие продолжения цикла, а в строке 12 значение счетчикаувеличивается на единицу.

В строке 13 на экран выводится сообщение, наглядноиллюстрирующеециклическийпроцесс.Конечно,вциклевашейпрограммымогутвыполнятьсяиболеесерьезныеоперации.Оператор for позволяет объединить три операции, необходимые для работы цикла, в одну.Кратко эти операции можно охарактеризовать так: инициализация, проверка условия иприращениесчетчикацикла.Выражениесоператоромforсостоитизсамогоэтогооператора,закоторым в круглых скобках следуют три выражения, устанавливающих параметры выполненияцикла.Выражениявкруглыхскобкахразделяютсясимволамиточкисзапятой.Первое выражение цикла for устанавливает начальное значение счетчика цикла. Счетчик,как правило, представляет собой целочисленную переменную, которая объявляется иинициализируется прямо в цикле for, хотя в C++ допускается использование в этом местелюбого выражения, выводящего начальное значение счетчика каким-то косвенным путем.Второйпараметрциклаforопределяетусловиепродолженияцикла,котороетакжеможетбытьпредставленолюбымвыражением.Этоусловиевыполняеттежефункции,чтоивконструкцииwhile.Третийпараметрустанавливаетзначениеприращениясчетчикацикла(поумолчаниюшагприращения равен единице).

В этой части также может использоваться любое корректноевыражениеилиоператорC++.Нужнозаметить,что,хотяпараметрыциклаforмогутзадаватьсялюбымикорректнымивыражениямиC++,дляустановкивторогопараметраобязательнодолжноиспользоваться выражение, возвращающее логическое значение. Пример использования циклаforприведенвлистинге7.9.Листинг7.8.Примериспользованияциклаfor1://Листинг7.9.2://Примериспользованияциклаfor3:4:#include<iostream.h>5:6:intmain()7:{8:intcounter;9:for(counter=0;counter<5;counter++)10:cout<<"Looping!";11:12:cout<<"\nCounter:"<<counter<<".\n";13:return0;14:}Результат:Looping!Looping!Looping!Looping!Looping!Counter:5.Анализ: В строке 9 программы с помощью оператора for задается цикл, отсчитывающийчисло итераций с помощью переменной counter. После каждого цикла проверяется условиепродолжения цикла и значение переменной counter увеличивается на единицу.

Тело цикласостоит из одного оператора, записанного в строке 10. В реальных программах тело цикламожетсостоятьизлюбогоколичестваоператоров.СложныевыражениясоператоромforПри профессиональном использовании цикл for становится мощным и гибкиминструментом программирования. Тот факт, что оператор for допускает установку трехнезависимых параметров цикла (инициализацию, условие продолжения и шаг), открываетнеограниченныевозможностивуправленииработойцикла.ПараметрыциклаforСинтаксисустановокпараметровциклаforследующий:for(инициализация,проверка,операция)выражения;Выражение инициализации используется для установки начального значения счетчикациклаилидлявыполнениякакой-нибудьдругойоперации,подготавливающейработуцикла.ПодпроверкойпонимаютнекоевыражениенаязыкеC++,котороевыполняетсяпередкаждойновойитерацией цикла и возвращает логическое значение.

Если возвращается значение true, топрограмма выполняет строки тела цикла. после чего выполняется третье выражение впараметрахцикла,которое,какправило/приращиваетзначениесчетчиканазаданнуювеличину.Пример1://напечататьHelloдесятьразfor(int1=0;i<10;i++)cout<<"Hello!"<<endl;Пример2:for(int1=0;i<10;i++){cout<<"Hello!"<<endl;cout<<"thevalueofiis:"<<i<<endl;}Циклforработаетвтакойпоследовательности:1.Присваиваетсяначальноезначениесчетчикуцикла.2.Вычисляетсязначениявыражения,устанавливающегоусловиепродолженияцикла.3. Если выражение условия возвращает true, то сначала выполняется тело цикла, а затемзаданнаяоперациянадсчетчикомцикла.Накаждойитерациишаги2и3повторяются.МножественныеинициализациииприращениясчетчиковциклаСинтаксис задания цикла for позволяет инициализировать несколько переменныхсчетчиков, проверять сложные условия продолжения цикла или последовательно выполнятьнесколько операций над счетчиками цикла.

Если присваиваются значения несколькимсчетчикам или выполняется несколько операций, они записываются последовательно иразделяются запятыми. В листинге 7.10 инициализируются два счетчика, значения которыхпослекаждойитерацииувеличиваютсянаединицу.Листинг7.10.Использованиенесколькихсчетчиковвциклеfor1://Листинг7.10.2://Использованиенесколькихсчетчиков3://вциклеfor4:5:#include<iostream.h>6:7:intmain()8:{9:for(inti=0,j=0;i<3;i++,j++)10:cout<<"i:"<<i<<"j:"<<j<<endl;11:return0;12:}Результат:i:0j:0i:1j:1i:2j:2Анализ: В строке 9 переменные i и j инициализируются нулевыми значениями.

Затемпроверяется условие i<3 и, так как оно справедливо, выполняется первая итерация цикла. Накаждойитерацииосуществляетсявыводзначенийсчетчиковнаэкран.Послеэтоговыполняетсятретья часть конструкции for, в которой значения переменных-счетчиков увеличиваются наединицу.Послевыполнениястроки10иизменениязначенийпеременныхусловиепроверяетсяснова. Если условие все еще справедливо, запускается следующая итерация цикла. Этопроисходитдотехпор,покаусловиепродолженияцикланенарушится.Вэтомслучаезначенияпеременныхнеизменяютсяиуправлениепередаетсяследующемупослециклаоператору.НулевыепараметрыциклаforЛюбой параметр цикла for может быть опущен. Пропуск означает использование такназываемого нулевого параметра.

Характеристики

Тип файла
PDF-файл
Размер
5,25 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6358
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее