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

Конструкция операторов цикла - C++

Восстановить пароль Регистрация
 
Аркалык
13 / 13 / 4
Регистрация: 24.09.2013
Сообщений: 138
05.11.2013, 10:58     Конструкция операторов цикла #1
Разработать алгоритм и программу для вычисления суммы с заданным числом членов.
---------
Помогите решить задачу. Вот что я сам начертил, но результата не дает:
Конструкция операторов цикла
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include<conio.h>
#include<stdio.h>
#define n 128
void main()
{
clrscr();
float s=0;
for(int i=2; i<=n; i*2)
s=1.0-(1.0/i+1.0/i-1.0/i);
printf("s=%6.2f",s);
getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DarkMasterW
4 / 4 / 0
Регистрация: 25.10.2013
Сообщений: 227
05.11.2013, 11:03     Конструкция операторов цикла #2
Цитата Сообщение от Аркалык Посмотреть сообщение
s=1.0-(1.0/i+1.0/i-1.0/i);
Вы делите 1.0 каждый раз на одно и то же число.
Аркалык
13 / 13 / 4
Регистрация: 24.09.2013
Сообщений: 138
05.11.2013, 11:11  [ТС]     Конструкция операторов цикла #3
DarkMasterW, Почему на одно и тоже число? У меня же цикл стоит
C++
1
for(int i=2; i<=n; i*2)
Что i каждый раз будет умножатся на 2, пока не будет равен n(128).
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
05.11.2013, 11:16     Конструкция операторов цикла #4
Нет.

Берем первый виток цикла.

s=1.0-(1.0/2+1.0/2-1.0/2);

Могу написать решение, конечно. Но, я думаю, будет лучше, если Вы сами разберетесь.
feo153
1 / 1 / 0
Регистрация: 16.09.2013
Сообщений: 20
05.11.2013, 11:21     Конструкция операторов цикла #5
for(int i=2; i<=n; i*2)

в цикле, то у вас и ошибка, вот так попробуйте в последнем выражении i*=2
DarkMasterW
4 / 4 / 0
Регистрация: 25.10.2013
Сообщений: 227
05.11.2013, 11:28     Конструкция операторов цикла #6
Цитата Сообщение от Аркалык Посмотреть сообщение
DarkMasterW, Почему на одно и тоже число? У меня же цикл стоит
C++
1
for(int i=2; i<=n; i*2)
Что i каждый раз будет умножатся на 2, пока не будет равен n(128).
Будет, но только при новом витке цикла, а не при каждом обращении к инкременту. На втором витке у вас будет делиться опять на одно и тоже число, только уже 4.
Аркалык
13 / 13 / 4
Регистрация: 24.09.2013
Сообщений: 138
05.11.2013, 11:30  [ТС]     Конструкция операторов цикла #7
Проверьте пожалуйста, похоже решил задачу: Решение: s=0.99
На Dev-C++
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<conio.h>
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define n 128
void clear(void)
{
     system("cls");
     }
int main()
{
float s=0;
for(int i=2; i<=n; i*=2)
s=1.0-(1.0/i+1.0/i-1.0/i);
printf("s=%6.2f",s);
getch();
}
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
05.11.2013, 11:34     Конструкция операторов цикла #8
Нет не решил, там все так же осталось деление на одно и то же число.
DarkMasterW
4 / 4 / 0
Регистрация: 25.10.2013
Сообщений: 227
05.11.2013, 11:36     Конструкция операторов цикла #9
Цитата Сообщение от Аркалык Посмотреть сообщение
s=1.0-(1.0/i+1.0/i-1.0/i);
Все та же ошибка. Поймите вы внутри строки используете переменную не изменяя ее. Внутри этой строки она статична. Само выражение ошибочно построено.

// Самый верный способ проверки простеньких задач бумажка и ручка. Ну или калькулятор. Результат 0,625.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
05.11.2013, 11:39     Конструкция операторов цикла #10
Цитата Сообщение от Аркалык Посмотреть сообщение
for(int i=2; i<=n; i*=2)
s=1.0-(1.0/i+1.0/i-1.0/i);
теперь посмотри
C++
1
2
for(int i=0;i<n;i++)
s+=pow(-1.0,i)/pow(2.0,i);
видишь разницу??
можно сделать и без pow
каждая итерация цикла должна рассчитывать одно слагаемое
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2013, 11:52     Конструкция операторов цикла
Еще ссылки по теме:

C++ Конструкция цикла for, для удаления элементов во время перечисления из контейнера STL
C++ Является ли такая конструкция реализацией цикла

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

Или воспользуйтесь поиском по форуму:
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
05.11.2013, 11:52     Конструкция операторов цикла #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
using namespace std;
 
int main() {
    int n = 10;
    double sum = 1;
    int num = -1, den = 2;
    for ( int i = 0; i < n; i++ ) {
        sum += num / (double)den;
        num = -num;
        den *= 2;
    }
    std::cout << sum << std::endl;
    return 0;
}
Yandex
Объявления
05.11.2013, 11:52     Конструкция операторов цикла
Ответ Создать тему
Опции темы

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