Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Цикл do




Пріоритети арифметичних операцій і операцій відношення

Кілька операторів в циклі while

Цикл while

Цикл for виконує послідовність дій визначене число раз. Для випадку, коли це число зарані невідоме, використовується інший цикл – while.

Далі приведено приклад програми, де користувачу пропонується ввести серію значень. В тому випадку, коли введене значення рівне 0, відбувається вихід з циклу. очевидно, в цьому випадку число повторень циклу зарані невідоме.

 

#include <iostream>

using namespace std;

int main()

{

int n=99;

while (n!=0)

cin>>n;

cout<<endl;

return 0;

}

Зовні цикл while нагадує спрощений варіант циклу for. Він містить умову для продовження циклу, але не містить ні ініціалізуючих, ні інкрементуючих виразів. Тому змінну циклу слід ініціалізувати до початку виконання тіла циклу. Тіло циклу повинне містити оператор, що змінює значення змінної циклу, інакше цикл буде безконечним.

Тіло циклу повторюється доти, доки залишається істинним умова циклу.

 

Подальший приклад показує можливість використання кількох операторів в тілі циклу while.

Задача спроектована так: виводяться четверті степені послідовних цілих чисел, причому значення, які виводяться, повинні бути не більшими за 9999. Попередньо ми не знаємо, яке число буде джерелом такого результату.

#include <iostream>

#include <iomanip>

using namespace std;

int main

{

int pow=1;

int numb=1;

while (pow<1000)

{cout<<setw(2)<<numb;

cout<<setw(5)<<pow<<endl;

++numb;

pow=numb*numb*numb*numb;

}

cout<<endl;

return 0;

}

Після кожної ітерації ми збільшуємо значення числа numb на одиницю, але нам не треба використовувати значення numb в операторі циклу while, оскільки виконання циклу залежить лише від значення змінної pow.

 

Далі приведена програма генерує послідовність чисел Фібоначчі. Як ми вже знаємо, числа Фібоначчі використовують при розрахунку визначного математичного числа – «золотого перерізу».

#include<iostrem>

using namespace std;

int main()

{const unsigned long limit=4294967296;

unsigned long next=0;

unsigned long last=1;

while(next<limit/2)

{cout<<last<<” “;

long sum=next+last;

next=last;

last=sum;

}

cout<<endl;

return 0;

}

 

 

Умова продовження циклу виглядає так:

(next<limit/2)

Ділення повинне відбутися перед порівнянням. Щоб гарантувати це, можна використати додаткові дужки

(next<(limit/2))

Але насправді вони не потрібні, оскільки арифметичні операції мають вищий пріоритет, ніж операції відношення. Можемо бути певними, що операція ділення виконається раніше, ніж операція порівняння.

 

В циклі while умова продовженн6я виконання циклу поміщалася на початку циклу. Це означало, що у випадку невиконання циклу при першій перевірці тіло циклу взагалі не виконувалося. В деяких випадках це доцільно, але інколи необхідно виконати тіло циклу хоча б один раз незалежно від істинності умови, що перевіряється. Тоді слід використовувати цикл do, в якому умова продовження циклу розміщується не перед, а після тіла циклу.

В далі приведеному прикладі користувачу пропонується ввести два числа – ділене і дільник, виконується операція цілочисельного ділення, виводить частку й остачу, а потім задається питання, чи продовжити роботу.

 

#include<iostream>

using namespace std;

int main()

{long dividend,divisor;

char ch;

do

{

cout<<”dividend=”;cin>>dividend;

cout<<”divisor=”;cin>>divisor;

cout<<”chastka=”<<dividend/divisor;

cout<<”ostacha=”<<dividend%divisor;

cout<<”\ncontinue?(y/n)”;

cin>>ch;

}

while (ch!=’n’));

return 0;

}




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


Дата добавления: 2014-01-04; Просмотров: 225; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.