Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
8 / 8 / 1
Регистрация: 21.11.2012
Сообщений: 133
1
.NET 4.x

Как правильно организовать цикл for?

14.03.2013, 13:41. Просмотров 675. Ответов 9
Метки нет (Все метки)

Имеем два числа, например 30 и 42

Нужно в цикле перебрать их например 3 раза по следующему алгоритму:

int x = 30;
int y = 42;

1 итерация: x_y ; (x-1)_y ; x_(y-1) ; (x-1)_(y-1)
30_42 ; 29_42; 30_41 ; 29_41

(на второй итерации x и y нужно уменьшить на единицу) и опять
2 итерация: x_y ; (x-1)_y ; x_(y-1) ; (x-1)_(y-1)
29_41 ; 28_41 ; 29_40 ; 28_40

(и на третей итерации x и y нужно уменьшить на единицу) и снова
3 итерация: x_y ; (x-1)_y ; x_(y-1) ; (x-1)_(y-1)
28_40 ; 27_40 ; 28_39 ; 27_39
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2013, 13:41
Ответы с готовыми решениями:

Подскажите как правильно организовать цикл
Есть бд, необходимо вывести товары на вкладку Каталог. Вывожу товары в таблицу, в 1 строке должно...

Как правильно организовать следующий цикл?
Привет всем. У меня есть список(List) с вопросами и ответами. Каждому вопросу есть несколько...

Как правильно организовать цикл для сравнения?
Всем привет!!!!!!! помогите пожалуйста с вопросом. Не могу организовать правильный цикл. Мне...

Как правильно организовать цикл при вычислениях
Имеется формула: Условие первой точки: \varepsilon c1:=15*{10}^{-5} \varepsilon c2:=0...

9
323 / 316 / 150
Регистрация: 29.10.2012
Сообщений: 876
14.03.2013, 13:49 2
Например так можно сделать:
C#
1
2
3
4
5
6
7
8
9
10
11
static void Main(string[] args)
{
      int x = 30;
      int y = 42;
      for (int i = 0; i < 3; i++)
      {
          Console.WriteLine("{0}_{2} ; {1}_{2} ; {0}_{3} ; {1}_{3}", x, x-1, y, y-1);
          x--; y--;
      }
      Console.ReadKey();
}
1
Администратор
Эксперт .NET
8867 / 4251 / 743
Регистрация: 17.04.2012
Сообщений: 9,072
Записей в блоге: 14
14.03.2013, 13:51 3
Эх, не успел
C#
1
2
3
4
5
6
7
8
9
int x = 30;
int y = 42;
 
for (int i = 0; i < 3; i++) {
    Console.WriteLine("{0}_{1}", x, y);
    Console.WriteLine("{0}_{1}", x - 1, y);
    Console.WriteLine("{0}_{1}", x, y - 1);
    Console.WriteLine("{0}_{1}", --x, --y);
}
2
8 / 8 / 1
Регистрация: 21.11.2012
Сообщений: 133
14.03.2013, 15:57  [ТС] 4
А как быть с таким циклом?

Есть два числа: 15 и 25

Нужно получить

15_25
15_26
15_27

16_25
16_26
16_27

17_25
17_26
17_27

Чет не соображу как цикл организовать...

Добавлено через 26 минут
Пожалуйста, помогите с циклом!

Добавлено через 23 минуты
Изобрел такую ерунду:

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
int x = 15;
            int y = 25;
            int z = y;
 
            for (int i = 0; i < 3; i++)
            {
 
                richTextBox1.AppendText(x + " / " + z++ + "\n");
                if (z == y + 3)
                {
                    richTextBox1.AppendText("\n");
                    z = y;
                    for (int j = 0; j < 3; j++)
                    {
                        richTextBox1.AppendText(x + 1 + " / " + z++ + "\n");
                        if (z == y + 3)
                        {
                            richTextBox1.AppendText("\n");
                            z = y;
                            for (int f = 0; f < 3; f++)
                            {
                                richTextBox1.AppendText(x + 2 + " / " + z++ + "\n");
                            }
                        }
                    }
                }
            }
Выводит правильно, но мне нужно все это проделать в одном цикле...
0
Заблокирован
14.03.2013, 16:19 5
в качестве забавы не более
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 internal class Program
    {
        private static void Main(string[] args)
        {
            var p = new P(15, 25, 27);
            while (p.A < 18)
            {
                Console.WriteLine(p);
                ++p;
            }
 
            Console.ReadKey();
        }
 
        public class P
        {
            private int _a;
            private int _b;
            private readonly int _max;
            private readonly int _min;
 
            public int A
            {
                get { return _a; }
            }
 
            public P(int a, int b, int max)
            {
                _a = a;
                _b = b;
                _max = max;
                _min = b;
            }
 
            public static P operator ++(P p)
            {
                p._b = p._b + 1 > p._max ? p._min : p._b + 1;
                if (p._min == p._b) ++p._a;
                return p;
            }
 
            public override string ToString()
            {
                return string.Format("{0}_{1}", _a, _b);
            }
        }
    }
0
8 / 8 / 1
Регистрация: 21.11.2012
Сообщений: 133
14.03.2013, 16:28  [ТС] 6
А попроще нельзя? Например в цикле for?
0
Заблокирован
14.03.2013, 17:14 7
Цитата Сообщение от loro Посмотреть сообщение
p._b = p._b + 1 > p._max ? p._min : p._b + 1;
* * * * * * * * if (p._min == p._b) ++p._a;
вот тут все есть. дальше сам думай.
0
323 / 316 / 150
Регистрация: 29.10.2012
Сообщений: 876
14.03.2013, 18:52 8
Да что Вас в такие дебри то тянет, все гораздо проще делается:
C#
1
2
3
4
5
6
7
8
9
10
11
12
        static void Main(string[] args)
        {
            int a1 = 15;
            int a2 = 25;
 
            for (int i = a1; i < a1+3; i++)
                for (int j = a2; j < a2 + 3; j++)
                {
                    Console.WriteLine("{0}_{1}", i, j);
                }
            Console.ReadKey();
        }
Вот и все.
2
Миниатюры
Как правильно организовать цикл for?  
764 / 544 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
14.03.2013, 19:04 9
kmaffa, Да ну ,глядя на ваш код сразу бросается в глаза отсутствие рефлексии и неиспользование анонимных методов .Да и вообще какая программа без делегатов ??? ))
1
Заблокирован
14.03.2013, 19:27 10
Цитата Сообщение от loro Посмотреть сообщение
while (p.A < 18)
* * * * * * {
* * * * * * * * Console.WriteLine(p);
* * * * * * * * ++p;
* * * * * * }
Куда еще проще?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2013, 19:27

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как правильно организовать цикл для построения графика?
Нужно построить график экспоненты на промежутке с учетом изменения величины шага построения. В...

Правильно организовать цикл в цикле
проблема в том, что я не знаю, какой второй цикл мне нужен и в каком порядке поставить... do{...

Цикл: Как грамотно организовать цикл с получением количества верных и неверных ответов?
Доброго времени суток, товарищи. Вот есть у меня два рандомно генерируемых числа, проверка...

Как организовать цикл (С++)?
Как организовать цикл (С++), опроса (любой) клавиши клавиатуры? Например до 10 раз. Кто подскажет...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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