Форум программистов, компьютерный форум CyberForum.ru

Циклы, подскажите пожалуста - C++

Восстановить пароль Регистрация
 
nerei
0 / 0 / 0
Регистрация: 28.06.2012
Сообщений: 6
28.06.2012, 09:37     Циклы, подскажите пожалуста #1
По условию задачи нужно вычислить выражение, при вводе необходимых данных с клавиатуры.
Задача выглядит следующим образом Дан корень, по корнем единица корень третей степени из двух плюс корень n-ой степени из n и т.д
т.е это (n+(n1)^(n1+1)\2))^n\2 ... и т.д
Циклы, подскажите пожалуста
Вот такое решение я нашёл:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
 
 
int main()
{
    
    double s;
    int i,n;
 
    printf("Vvtdite n-->");
    scanf("%lf", &n);
    printf("Vvedite i-->");
    scanf("%d", &i);
 
    for(n=2;n<=10;n++)
        for(i=1;i<10;i++)
        s=(i+((i+1)*pow((n+1)\2))*pow(n\2);
        printf("RESULTAT S=%lf",s);
    
    return 0;
}
Я может чего нибудь важного тут не замечаю и сам принцип не понимаю, помогите пожалуйста, я уже совсем запутался :\
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2012, 09:37     Циклы, подскажите пожалуста
Посмотрите здесь:

C++ Помогите пожалуста!!!
C++ Задачи на циклы... подскажите
C++ Подскажите пожалуйста по С++:циклы,if else
C++ Pomogite пожалуста
C++ Найдите ошибку, пожалуста!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
28.06.2012, 11:06     Циклы, подскажите пожалуста #2
Вот посмотри, не проверял только правильность вычислений.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdio.h>
using namespace std;
int main ()
{
    int n;
    double s,f,sum;
    cout<<"Enter n=";
    cin>>n;
    s=0;
    for(double i=n;i>=1;i--)
    {
     f=pow(i+s,1.0/(i+1.0));
     s=f;                
    }
    cout<<"Koren="<<s;
    getch();
}
nerei
0 / 0 / 0
Регистрация: 28.06.2012
Сообщений: 6
28.06.2012, 13:54  [ТС]     Циклы, подскажите пожалуста #3
Да вычисляет, но начиная с n=6 считает одно и то же значение равное 1.58454
Я думал кстати о шаге "--" но только ещё сильнее запутался, так правильней наверное, начинать считать по порядку, начиная с заданного элемента.
Хотел спросить по поводу формулы, я только недавно за с++ сел поэтому для меня тут много непонятного, вот pow это же возведение в степень, x возводится в y? т.е. x*pow(y) ? Почему тогда тут перед pow не стоит значение ? И я правильно понимаю если в функуции pow в скобках стоят через запятую два выражения тут ("+". "/"), то они будут по очереди выполнятся или как? Не пойму...
Можете немного объяснить эту формулу, мне действительно интересно, к примеру почему дробь такая, ведь корень из выражения, это выражение в степени 1\2, n^1\2, а тут получается переменный знаменатель, ничего не пойму ... Извините за назойливость, просто для меня важно понять смысл, не хочу это так оставлять, я себе всю голову уже сломал с этой задачкой :\
ЛетающийЕнот
88 / 67 / 12
Регистрация: 28.06.2012
Сообщений: 161
28.06.2012, 13:59     Циклы, подскажите пожалуста #4
Цитата Сообщение от nerei Посмотреть сообщение
x возводится в y? т.е. x*pow(y) ? Почему тогда тут перед pow не стоит значение ?
Функция pow принимает 2 аргумента: основание и показатель степени соответственно. По свойству степени с рациональным показателем a1/b=b-ый корень из a.

Цитата Сообщение от nerei Посмотреть сообщение
если в функуции pow в скобках стоят через запятую два выражения тут ("+". "/"), то они будут по очереди выполнятся или как?
Запятая разделяет аргументы функции. Порядок вычисления аргументов не установлен стандартом.

Цитата Сообщение от nerei Посмотреть сообщение
но начиная с n=6 считает одно и то же значение равное 1.58454
Возможно, приращения достаточно малы?
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
28.06.2012, 14:02     Циклы, подскажите пожалуста #5
pow - возводит в степень, формат такой pow(a,b), т.е. а в степени b. Если вместо b будет 1/b то это уже корень. Изменяется потому, что в формуле корень не только квадратный, а кубический и т.д. в зависимости от числа n.
ЛетающийЕнот
88 / 67 / 12
Регистрация: 28.06.2012
Сообщений: 161
28.06.2012, 14:08     Циклы, подскажите пожалуста #6
Цитата Сообщение от nerei Посмотреть сообщение
Я думал кстати о шаге "--" но только ещё сильнее запутался, так правильней наверное, начинать считать по порядку, начиная с заданного элемента.
Мы вычисляем pow(1+pow(2+...,1/3),1/2)*
Поэтому мы идём от n к 1 (корень извлекается в обратном порядке же).

*как раз http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}^{1/b} = http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt[b]{a}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2012, 14:30     Циклы, подскажите пожалуста
Еще ссылки по теме:

Народ подскажите де ошибка пожалуста! Немогу разобратса((( C++
проверьте пожалуста задачу C++
C++ Подскажите как правильно сделать ! пожалуста с обяснением !

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

Или воспользуйтесь поиском по форуму:
nerei
0 / 0 / 0
Регистрация: 28.06.2012
Сообщений: 6
28.06.2012, 14:30  [ТС]     Циклы, подскажите пожалуста #7
Всё понял, спасибо за разъяснение, стало понятней, я просто сам зациклился на свойствах степени и тупо возводил корень в переменную степень т.е. как если бы (n^(1\2))^n тут я думал что числитель будет меняться а знаменатель будет постоянно делится на 2. Блин правда протупил, спасибо. )
Yandex
Объявления
28.06.2012, 14:30     Циклы, подскажите пожалуста
Ответ Создать тему
Опции темы

Текущее время: 23:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru