Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2017, 15:36   #1
KaizeRr
Новичок
Джуниор
 
Регистрация: 20.09.2013
Сообщений: 2
По умолчанию Реализовать задачу при помощи цикла while

Рассмотреть указанную последовательность в цикле и выйти из цикла, достигнув указанного условия с выдачей порядкового номера члена, при котором достигнуто условие. Если же за n оборотов цикла условие не достигнуто, напечатать об этом сообщение.
#include <iostream>

using namespace std;
int main()
{
setlocale(LC_ALL, "Rus");

double a, b;
int m, n;
cout « "Введите количество оборотов";
cin » m;
n = 1;
a = 10;
b = a;

while (fabs(1 - b)<0,0001) {
if (n == m) {
cout « "За указанное количество оборотов не удалось";
return 0;
}
else
b = (a + 1 / a) / 2;

n = n + 1;
}
cout « n « a;
return 0;
}
Изображения
Тип файла: png vir.PNG (4.1 Кб, 97 просмотров)

Последний раз редактировалось KaizeRr; 31.03.2017 в 15:52.
KaizeRr вне форума Ответить с цитированием
Старый 31.03.2017, 18:48   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

1. При вставке, код надо обрамлять специальным тегом,
что легко сделать, если выделить код и нажать кнопку # на панели редактора. Она там очень хорошо видна.
2.
Код:
while (fabs(1 - b)<0,0001) {
if (n == m) {
cout « "За указанное количество оборотов не удалось";
return 0;
}
else
b = (a + 1 / a) / 2;

n = n + 1;
}
В условии цикла выполняется сравнение fabs(1 - b)<0,0001, но при вычислении b используется переменная a, которая в теле цикла не меняется.
Перед началом цикла переменной b присваивается начальное значение и далее, в соответствии с формулой, это значение должно улучшаться.
Т.е. вставь выражение:
Код:
...
b = (b + 1 / b) / 2;
...
и будет лучше ...
3. Условный оператор проверяет число "оборотов". Но, только на мой взгляд, будет лучше, если условие написать иначе
Код:
n = 0;
if (n > m) { ...
Но это так ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[РЕШЕНО] Как при помощи модуля CRt реализовать вывод сообщения на экран которое будет периодически менять свой цвет? baton00711 Паскаль, Turbo Pascal, PascalABC.NET 5 21.02.2016 15:20
Разработать функцию возведения в натуральную степень при помощи цикла.(Delphi) KalininGleb Помощь студентам 1 05.02.2015 19:15
(java)Требуется решить задачу нахождения минимума на отрезке при помощи очереди на двух стеках. Помогите реализовать Isildyr71 Помощь студентам 0 19.04.2014 15:16
Помогите решить задачу при помощи классов Amen Помощь студентам 3 06.03.2009 08:20