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

Найти значение выражения 1.1 – 1.2 + 1.3 – … - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 50, средняя оценка - 4.76
Morph3us
1 / 1 / 0
Регистрация: 23.12.2009
Сообщений: 45
16.01.2010, 23:12     Найти значение выражения 1.1 – 1.2 + 1.3 – … #1
Ребят, подскажите, как это задание решается на С++?
Дано целое число N (> 0). Найти значение выражения
1.1 – 1.2 + 1.3 – …
(N слагаемых, знаки чередуются). Условный оператор не использовать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2010, 23:12     Найти значение выражения 1.1 – 1.2 + 1.3 – …
Посмотрите здесь:

C++ Найти значение выражения 1.1-1.2+1.3-1.4-1.5 до n
C++ Найти значение выражения
Найти значение выражения C++
Найти значение выражения C++
Найти значение выражения C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
17.01.2010, 01:10     Найти значение выражения 1.1 – 1.2 + 1.3 – … #2
Заводишь переменную для суммы, заносишь туда 0. Заводишь переменную для абсолютного значения слагаемого и каждый шаг увеличиваешь на 0.1. Заводишь переменную для знака и каждый шаг умножаешь её на -1. На каждом шагу добавляешь к сумме (знак*слагаемое).
Morph3us
1 / 1 / 0
Регистрация: 23.12.2009
Сообщений: 45
17.01.2010, 01:15  [ТС]     Найти значение выражения 1.1 – 1.2 + 1.3 – … #3
Цитата Сообщение от Nick Alte Посмотреть сообщение
Заводишь переменную для суммы, заносишь туда 0. Заводишь переменную для абсолютного значения слагаемого и каждый шаг увеличиваешь на 0.1. Заводишь переменную для знака и каждый шаг умножаешь её на -1. На каждом шагу добавляешь к сумме (знак*слагаемое).
спасибо, но как записывать как ты выразился "каждый шаг увеличиваешь на 0.1. Заводишь переменную для знака и каждый шаг умножаешь её на -1. На каждом шагу добавляешь к сумме (знак*слагаемое)" ?
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
17.01.2010, 01:25     Найти значение выражения 1.1 – 1.2 + 1.3 – … #4
C++
1
2
3
4
5
6
7
8
9
float sign = 1;
float val = 1.1f;
float sum = 0;
for(int i=0; i<N; ++i)
{
    sum += sign*val;
    sign *= -1;
    val += 0.1f;
}
Morph3us
1 / 1 / 0
Регистрация: 23.12.2009
Сообщений: 45
17.01.2010, 01:48  [ТС]     Найти значение выражения 1.1 – 1.2 + 1.3 – … #5
Цитата Сообщение от Nick Alte Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
float sign = 1;
float val = 1.1f;
float sum = 0;
for(int i=0; i<N; ++i)
{
    sum += sign*val;
    sign *= -1;
    val += 0.1f;
}
мне это не понятно, через while(true), continue break for никак?
insideone
Модератор
Автор FAQ
 Аватар для insideone
3620 / 898 / 47
Регистрация: 10.01.2010
Сообщений: 2,421
17.01.2010, 14:47     Найти значение выражения 1.1 – 1.2 + 1.3 – … #6
да можно и через велосипед
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#define N 3
void main()
{
    float sign = 1;
    float val = 1.1f;
    float sum = 0;
    int i = 0;
    while (true)
    {
       switch (i){
       case (N): break;
       default:
          sum += sign*val;
          sign *= -1;
          val += 0.1f;
          i++;
          continue;
       }
       break;
    }
    std::cout<<"sum="<<sum<<"\n";
}
Morph3us
1 / 1 / 0
Регистрация: 23.12.2009
Сообщений: 45
17.01.2010, 18:18  [ТС]     Найти значение выражения 1.1 – 1.2 + 1.3 – … #7
спасибо, а ещё варианты есть?

Добавлено через 2 часа 7 минут
ничего не понимаю кароче...
insideone
Модератор
Автор FAQ
 Аватар для insideone
3620 / 898 / 47
Регистрация: 10.01.2010
Сообщений: 2,421
17.01.2010, 18:25     Найти значение выражения 1.1 – 1.2 + 1.3 – … #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
#define N 6
#define X 1.1
 
int main()
{
    int n = N-1, sign = 1; double res = X;
    while(n--)
    {
        res += (sign = -sign) * (X + (0.1 * (N-n-1)));
    }
    std::cout << res << std::endl;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
#define N 6
#define X 1.1
 
int main()
{
    int n = N; double res = 0;
    switch (n & 1){
    case 1: res = X + 0.1 * (n>>1); break;
    case 0: res = - 0.1 * (n>>1);
    }
    std::cout << res << std::endl;
}
Вот ещё 2 варианта, да можно вечно... А ничего понимать человек не может. Хоть что то да понимает. "ничего не понимаю" это отмазка разума чтобы дальше не понимать это глупость. если вы не понимаете как работает часть какой то системы вы говорите - ничего не понимаю? и смысл? не проще ли спросить как работает эта часть и все?... нет. ничего не понимаю бывает только если знаний 0. Спрашивайте конкретные вещи, на них всегда найдется ответ.
Посмотрите мой последний пример - тут даже цикла нет. Продумайте в голове каждую строчку и что будет в результате. Напишите на листке бумаги.
n & 1 - возвращает четное или нечетное число. case 1 - нечетное число case 0 - нечетное. выполнится только 1 строчка в зависимости от этого вычислится res по той или иной форумуле) проще некуда. подумайте над формулой, они простые.
n >> 1 попроще - это n / 2
Morph3us
1 / 1 / 0
Регистрация: 23.12.2009
Сообщений: 45
17.01.2010, 18:28  [ТС]     Найти значение выражения 1.1 – 1.2 + 1.3 – … #9
Чувак спасибо конечно, но я не учил этого
C++
1
2
#define N 6
#define X 1.1
Если спросят что это такое, то слов у меня не будет!)
insideone
Модератор
Автор FAQ
 Аватар для insideone
3620 / 898 / 47
Регистрация: 10.01.2010
Сообщений: 2,421
17.01.2010, 18:32     Найти значение выражения 1.1 – 1.2 + 1.3 – … #10
хех, можно и без этого. просто это сообщение компилятору что надо везде заменить N на 6 и т.д.
можешь записать это вначале проги в виде
const int N = 6; и const double X = 1.1;
Morph3us
1 / 1 / 0
Регистрация: 23.12.2009
Сообщений: 45
17.01.2010, 18:36  [ТС]     Найти значение выражения 1.1 – 1.2 + 1.3 – … #11
ну да ты прав, за пояснение благодарствую)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2010, 19:48     Найти значение выражения 1.1 – 1.2 + 1.3 – …
Еще ссылки по теме:

C++ Найти значение выражения
C++ Найти значение выражения
C++ Найти значение выражения

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

Или воспользуйтесь поиском по форуму:
schanker
 Аватар для schanker
5 / 5 / 0
Регистрация: 16.04.2010
Сообщений: 248
Записей в блоге: 1
16.04.2010, 19:48     Найти значение выражения 1.1 – 1.2 + 1.3 – … #12
Привет всем. Я наткнулся на это задачу. Только мне надо решить точно такое же условие, но в Pascal. Может кто поможет-а?
Заранее спасибо и извините, что не по теме.
Yandex
Объявления
16.04.2010, 19:48     Найти значение выражения 1.1 – 1.2 + 1.3 – …
Ответ Создать тему
Опции темы

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