Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Заблокирован
1

Можно ли написать более оптимальный код, используя цикл while?

27.07.2015, 23:16. Показов 1550. Ответов 29
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
собственно сабж.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
 
using namespace std;
 
int main()
{
    int x, y, s, step = 1;
 
    cout << "Vvedite x" << endl;
    cin >> x;
    cout << "Vvedite y" << endl;
    cin >> y;
 
    if (y == 0)
    {
        cout << "S ravno 0" << endl;
    }
 
 
    if (y >= 1)
    {
        s = x;
        while (step < y )
        {
        s *= x;
        step ++;
        }
    cout << "x v stepeni y = " << s;
    }
 
    return 0;
}
если есть более простые варианты, хотелось бы их увидеть
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.07.2015, 23:16
Ответы с готовыми решениями:

Можно ли написать более оптимальный или простой код, используя цикл for?
собственно сабж. #include &lt;iostream&gt; using namespace std; int main() { int sum, count,...

Можно ли написать этот код более компактно?
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; void main() { int x, y; cout &lt;&lt;...

Может ли человек порождать более оптимальный pure javaScript-код, чем TypeScript?
Доброе утро! Можем ли мы вручную порождать более оптимальный и красивый код, нежели TypeScript?...

как можно более просто написать эту программку(более понятным языком для начинающего)
7. Установить, четным или нечетным является число цифр в записи данного натурального числа. Если...

29
Байт
28.07.2015, 23:27     Можно ли написать более оптимальный код, используя цикл while?
  #21

Не по теме:

Цитата Сообщение от _Ivana Посмотреть сообщение
Зря вы от хаскеля отвернулись
Да ни от чего я не отворачивался! Просто у меня всего 4 лапы + 1 хвост + 1 пасть, которая жрать хочет.:D

0
Croessmah
28.07.2015, 23:35
  #22

Не по теме:

Цитата Сообщение от Байт Посмотреть сообщение
+ 1 пасть, которая жрать хочет
:popcorn:

0
Заблокирован
29.07.2015, 16:52  [ТС] 23
Цитата Сообщение от Renji Посмотреть сообщение
Ну, если гоняться именно за оптимальностью (а не простотой):
а если за простотой?
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
30.07.2015, 10:39 24
Цитата Сообщение от rep plz Посмотреть сообщение
а если за простотой?
Пост 6 чем-то не устраивает?
0
Заблокирован
30.07.2015, 12:26  [ТС] 25
Цитата Сообщение от Байт Посмотреть сообщение
Пост 6 чем-то не устраивает?
меня устраивает. но хочется вариантов просто я не исключаю возможности что опытные программисты могут упростить еще и его
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
30.07.2015, 17:29 26
Цитата Сообщение от rep plz Посмотреть сообщение
просто я не исключаю возможности что опытные программисты могут упростить еще и его
скорее всего, это будет выглядеть так:
C++
1
s = std::pow ( x , y ) ;
2
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
30.07.2015, 23:17 27
Цитата Сообщение от rep plz Посмотреть сообщение
я не исключаю возможности что опытные программисты могут упростить еще и его
Странно искать упрощений в ситуации, когда некоторые естественные приемы (например, цикл for) по каким-то неведомым причинам запрещены.
И еще вопрос. А зачем оно вам?
И еще. Какие ваши критерии "простоты"?
0
_Ivana
30.07.2015, 23:27
  #28

Не по теме:

подпись особенно понравилась :D

0
Заблокирован
31.07.2015, 07:36  [ТС] 29
Цитата Сообщение от Байт Посмотреть сообщение
Странно искать упрощений в ситуации, когда некоторые естественные приемы (например, цикл for) по каким-то неведомым причинам запрещены.
для вас может быть странно. для меня нет.
Цитата Сообщение от Байт Посмотреть сообщение
И еще вопрос. А зачем оно вам?
я учусь. и единственный кто может мне объяснить что я делаю так, а что нет, это вы. и если я не задам какого-либо вопроса, не спрошу о чем-то, возможно я никогда об этом не узнаю.
Цитата Сообщение от Байт Посмотреть сообщение
И еще. Какие ваши критерии "простоты"?
я не буду озвучивать свои критерии простоты. могу лишь повториться - я просто учусь

Добавлено через 4 минуты
Байт, спросите себя, как бы вы поступили на месте новичка, если бы хотели знать что программисты считают более простым способом, а что более сложным? а что более оптимальным?
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
31.07.2015, 07:55 30
rep plz, while вместо for нужен на паскале из-за того, что там счётчик цикла может только увеличиваться/уменьшаться строго на 1. for на c/c++ - оператор цикла вообще не со счётчиком, а с величиной, произвольно изменяемой в заголовке цикла и управляющей циклом, его гибкость позволяет полностью заменить while, которому остаются ровно три роли:
1. Цикл с условием выхода в теле. Прерывается оператором break.
2. Цикл с условием, зависящим только от величин, меняющихся только вне самого цикла. Прерывается путём изменения неких величин в другом потоке (возможно даже принадлежащем другому процессу), или при обработке прерывания, или исключения.
3. Бесконечный цикл. Если и прерывается, то только при снятии процесса, или выключении всего компьютера.
На c/c++ for и в этих случаях может заменить while, но в этих случаях он проигрывает по удобству, да и просто лучше соответствует формулировке задачи. В остальных же случаях удобней for, даже в тех, когда условие выхода из цикла сложней, чем сравнение величины с ограничением, для чего вообще то тоже предназначен while, а не for, но на c/c++ for даже в этих случаях применяется вместо while удобнее, чем сам while. Не говоря уж об аддитивных счётчиках с не единичным шагом, аддитивных счётчиках с переменным шагом, или мультипликативных счётчиках.
1
31.07.2015, 07:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.07.2015, 07:55
Помогаю со студенческими работами здесь

Изменить код, используя цикл
Помогите разобраться с циклом, Есть код, его надо изменить под циклический, как сделать х3,...

Оптимизировать код, используя цикл
k = -a(1, 1) / a(2, 1) For i = 1 To 3 a(2, i) = a(2, i) * k + a(1, i) ...

Переписать код, используя другой цикл
Перепишите, пожалуйста, код, используя только цикл &quot;While&quot; int N=100; cout &lt;&lt; setw(7) &lt;&lt;...

Можно ли инициализировать динамический массив не используя цикл?
Когда создавали статический массив, можно было сделать так: int array={1,5,14,23,32,45,67}; Можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru