Цикл с постусловием do - while 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Цикл с постусловием do - while



 

Оператор цикла do - while называется оператором цикла с постус­ло­ви­ем и используется в тех случаях, когда необхо­ди­мо выполнить тело цикла хотя бы один раз. Формат опера­тора имеет следующий вид:

do тело_цикла while (условие);

Схема выполнения оператора do - while:

1. Выполняется тело_цикла.

2. Вычисляется значение условия.

3. Если условие ложно, то выполнение оператора do - while заканчи­ва­ется и выполняется следую­щий по порядку опе­ра­тор. Если усло­вие истинно, то выполнение оператора про­дол­жается с пункта 1.

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

 

Задача 18. Выдать на экран таблицу простых чисел, вычисляемых по известному трехчлену Эйлера: y = x2 – x + 41. Аргумент x изменяется от 1 до 40 с шагом 1.

Таблица состоит из двух столбцов: в первом содержатся значения аргумента x, а во втором – значения функции y. В программе реализована постраничная печать таблицы с приостановкой вывода на экран после каждых 23 строк.

 

#include <stdio.h>

#include <conio.h>

int main()

{

int x, y, line=1;

printf ("\t ТАБЛИЦА ПРОСТЫХ ЧИСЕЛ\n\n");

for(x=1; x<41; x++)

{

y = x*x - x + 41;

printf("\t %d \t\t %d\n",x, y);

line++;

// постраничная печать

if(line == 23)

{

line=1;

printf("\nДля продолжения -Enter");

getch();

}

}

getch();return 0;

}

 

 

Задача 19. Составить программу вычисления приближенного значения числа , используя следующее бесконечное произведение:

 

(формула Валлиса, 1656г).

 

Очевидно, что в знаменателе стоят квадраты последовательных нечётных чисел, начиная с 3, а числитель каждого сомножителя на единицу меньше знаменателя. Вычисления следует прекратить, когда очередной сомножитель будет отличаться от 1 не более, чем на заданное число ε = 1.0E-7, т.е.

 

, k=1, 2, …

 

 

#include "stdafx.h"

#include <stdio.h>

#include <conio.h>

#include <math.h>

int main()

{

double eps=1.0e-7, t, z, P=1, k=1;

 

do

{

z = (2*k + 1)*(2*k + 1);

t = z - 1;

P = P*t/z;

k++;

}

while(fabs(1 - t/z) >= eps);

printf("Приближенно pi = %lf\n ", P*4);

getch(); return 0;

}

 

 

Задача 20. Создание простейшего меню.

#include <stdio.h>

#include <iostream.h>

#include <conio.h>

int main ()

{

int choice;

do

{

clrscr();

cout<<"1) ВВОД ДАННЫХ "<<endl;

cout<<"2) ОБРАБОТКА "<<endl;

cout<<"3) ВЫВОД ДАННЫХ "<<endl;

cout<<"4) ВЫХОД "<<endl;

cout<<"\n\n ВАШ ВЫБОР ==> "; cin>>choice;

switch (choice)

{

case 1: cout<<"Вызов процедуры ВВОД ДАННЫХ "<<endl; break;

case 2: cout<<"Вызов процедуры ОБРАБОТКА ДАННЫХ "<<endl; break;

case 3: cout<<"Вызов процедуры ВЫВОД ДАННЫХ "<<endl; break;

case 4: cout<<"КОНЕЦ РАБОТЫ "<<endl; break;

default: cout<<"НЕТ ВЫБОРА... "<<endl;

}

getch();

}

while (choice!=4);

return 0;

}

 

 

Задача 21. Программа реализует модель кассового аппарата. Пользователь вводит число покупок и затем последовательно – стоимость каждой из них, а программа накапливает суммарную стоимость всех покупок выводит с помощью функции printf() на экран соответствующее сообщение.

#include <iostream.h>

#include <conio.h>

#include <stdio.h>

int main()

{

float s=0, p;

int k=1, m;

cout<<"Сколько покупок? ";

cin>>m;

while (k<=m)

{

cout<<"Стоимость "<<k<<"-й покупки = ";

cin>>p;

s+=p;

k++;

}

printf("С Вас причитается %.2f грн.",s);

getch(); return 0;

}

 

 

Задача 22. Решается та же задача, что и в предыдущем примере, но количество покупок заранее не известно, что вполне логично (вспомните, когда в супермаркете Вы оказываетесь перед кассой с полной корзиной продуктов). Кассир по очереди вводит стоимость каждой покупки, а когда покупки исчерпались, он нажимает клавишу с цифрой 0, а программа выводит на экран сообщение о количестве и стоимости всех покупок.

 

// Программа отлажена в Visual Studio 2008

#include "stdafx.h"

#include<conio.h>

#include<stdio.h>

#include <iostream>

using namespace std;

 

int main()

{

// Устанавливаем локализацию для выходного потока

wcout.imbue(locale("rus_rus.866"));

// Выводим строку на русском!

wcout<< L" Для завершения работы нажми цифру 0\n\n";

 

float s=0, p; int k=1;

while(1)

{

wcout<<L"Стоимость "<<k<<L"-й покупки: ";

cin>>p;

if(p==0)

break;

s+=p;

k++;

}

 

wcout<<L"Вы приобрели "<<k-1<<L" покупок"<<"\n";

wcout<<L"на сумму "<<s <<L"грн.";

getch(); return 0;

}

 

 



Поделиться:


Последнее изменение этой страницы: 2016-12-16; просмотров: 358; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.149.168 (0.011 с.)