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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
breeve
75 / 75 / 14
Регистрация: 01.08.2009
Сообщений: 177
#1

Цикл с увеличивающимся шагом - C++

02.10.2010, 23:04. Просмотров 920. Ответов 8
Метки нет (Все метки)

Необходимо написать цикл шаг которого будет увеличиваться.
Допустим есть массив из 100 int переменных равных нулю.
И есть последовательность:
0 2 5 9 14 20 27 35 44 ...
Суть последовательности заключается в том что промежуток между числами растет сначала 1, затем 2, 3 и тд.
И нужно в каждый элемент массива, соот. числу последовательности, приравнять к 1.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2010, 23:04     Цикл с увеличивающимся шагом
Посмотрите здесь:

Цикл for c шагом 0,2 - C++
#include <iostream> #include <conio.h> using namespace std; int main() { setlocale(LC_ALL, "Rus"); for (double i = 2.2; i...

Цикл For с шагом 0.1, 0.01 и т.д. - C++
Помогите пожалуйста, как зделать цикл For с шагом 0.1 или 0.01. Например, задаю диапазон от 0 до 10 с шагом 0.1, получается 100...

Найти сумму рядов, цикл с шагом - C++
Не пойму как составить цикл от 1 до 4 с шагом 0.2 что бы прога работала суму посчитать вот этого уравнения log(4*x+8)/exp(-x)+sin(2*x) ...

Создать цикл for, счетчик которого изменяется от 100 до 200 с шагом 2 - C++
Нужно создать цикл for, счетчик которого изменяется от 100 до 200 с шагом 2. Я написал цикл, но не получается установить шаг равный...

Цикл: Вывести на экран таблицу значений удвоенных косинусов в диапазоне от a до b с шагом h - C++
Доброго времени суток, уважаемые Форумчане! Вынуждена просить Вашей помощи в решении нескольких задач, так как сама на данный момент не...

Используя цикл с постусловием, составить программу табулирования функции F(x)=sin(x)-cos(x) на отрезке [a, b] с шагом h - C++
Помогите написать пожалуйста программу: Вот что получилось у меня, но это не правильно... #include <cstdlib> #include...

Изменения с шагом - C++
Необходимо вычислить значения функции при изменении х от xmin до xmax с шагом Δх. Как это сделать в этом коде? #include <stdio.h> ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
02.10.2010, 23:10     Цикл с увеличивающимся шагом #2
Попробуй так:
C++
1
2
3
4
for(size_t i=1, j=1;j<100;i++,j+=i)
{
arr[j]=1;
}
breeve
75 / 75 / 14
Регистрация: 01.08.2009
Сообщений: 177
02.10.2010, 23:14  [ТС]     Цикл с увеличивающимся шагом #3
Ты сам то понял что написал?)
i тогда вообще зачем?


Вообщем вопрос заключается в том, как математически описать такую последовательность.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
02.10.2010, 23:22     Цикл с увеличивающимся шагом #4
Вот весь код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <cstdlib>
#include <cstring>
 
int arr[100];
 
int main()
{
    using namespace std;
 
    memset(arr, 100, 0);
    for(size_t i=1, j=0;j<100;i++,j+=i)
        arr[j]=1;
    for(size_t i=0;i<100;i++)
        cout<<arr[i];
}
i нужна для того, потому что от нее зависит j.
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
02.10.2010, 23:23     Цикл с увеличивающимся шагом #5
breeve,
Вы сами сначала подумайте, что тут написано, а потом и претензии предъявляйте. i здесь, чтобы увеличивать этот ваш "промежуток между числами", который равен сначала 1, потом 2, 3 и т.д. А j - тот самый индекс, который соответствует очередному числу последовательности. И этот элемент мы приравниваем к 1.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
02.10.2010, 23:24     Цикл с увеличивающимся шагом #6
breeve, только ты путаешь что то. Последовательность у тебя начинается с шагом два, а ты просишь с начальным шагом 1. В общем сам поковыряй i, как нужно.
mrMRak
38 / 38 / 3
Регистрация: 02.06.2010
Сообщений: 105
02.10.2010, 23:26     Цикл с увеличивающимся шагом #7
он имел ввиду что между 0 и 2 элементами расстояние 1( элемент 1), а между 2 и 5 - соответвенно 3,4 значит 2 элемента..
ваш код правильный, только arr[j]=1; заменить на arr[j-1]=1;
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
02.10.2010, 23:28     Цикл с увеличивающимся шагом #8
выводит данную последоватеьность

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main()
{
 
    int i = 2;
    int tmp =0;
 
    while(i<100){
        cout<<tmp<<" ";
        tmp += i ;
 
        ++i;
    }
 
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2010, 23:45     Цикл с увеличивающимся шагом
Еще ссылки по теме:

Рандом с шагом - C++
Всем доброго времени суток. Пытаюсь сделать программу, которая выдаёт рандомные числа, с помощью rand(), c определенным шагом. Изучаю язык...

Протабулировать функцию с шагом - C++
Всем привет,нужно протабулировать функцию s(x) с шагом h и пока a &lt; b наша функция будет работать(и после каждой итерации делаем наш шаг...

Y=3sin(x+5) на отрезке [-2; 3] c шагом 0,25 - C++
Помогите пожалуйста доделать программу. Определить, до или после минимального значения функция Y принимает свое первое нулевое значение:...

Для х изменяющегося от a до b с шагом.... - C++
Всем добрый день!!!Если есть минутка, помогите сделать это задание!буду очень благодарен!! 1. Для х изменяющегося от a до b с шагом...

Функция y=f(x) в интервале [a,b] с шагом h - C++
Столкнулся с задачей которая мне ни как не понятна Вычислить и вывести на экран таблицу функцию y=f(x) в интервале с шагом h. Результаты...


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

Или воспользуйтесь поиском по форуму:
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
02.10.2010, 23:45     Цикл с увеличивающимся шагом #9
замени строчку, где memset, я стормозил
C++
1
 memset(arr, 0, 100*sizeof(int));
Добавлено через 9 минут
Вот в общем окончательный дееспособный код. Даже не поленился протестить.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <cstdlib>
 
int arr[100]={0};
 
int main()
{
    using namespace std;
 
    for(size_t i=1, j=0;j<100;i++,j+=i)
        arr[j]=1;
    for(size_t i=0;i<100;i++)
        cout<<arr[i];
}
Yandex
Объявления
02.10.2010, 23:45     Цикл с увеличивающимся шагом
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru