Помогите со вложенными циклами!!!!!!!!!!!!
От: rex79  
Дата: 02.05.02 09:31
Оценка:
Привет мужики.

Я учусь программировать на С сам дома(собираюсь постуавть на следующий год)

Я тут немогу пешить проимер со вложенными циклами for- янепонимаю как они работают

Вот пример с книги

#include<stdio.h>
#define ROWS 6
#define CHARS 6
main()
{
int row;
char ch;
for(row=0;row<ROWS;row++)
{
for(ch='A';ch<('A'+CHARS);ch++)
printf("%c",ch);
printf("\n");
}
return 0;

прога выдаёт такое

ABCDEF
ABCDEF
ABCDEF
ABCDEF
ABCDEF
ABCDEF

что и требуется......

НО я не понимаю как это работает....

если кто может объяснить поподробнее,,,,,,,,,,,,

большое спосибо[email]rex79 mailru.com[/email]
Сложно..но нужно
Re: Помогите со вложенными циклами!!!!!!!!!!!!
От: &reY Украина http://www.livejournal.com/~1000turov/
Дата: 02.05.02 09:39
Оценка: 3 (1)
Здравствуйте rex79, Вы писали:

R>если кто может объяснить поподробнее,,,,,,,,,,,,

ну, подробно обьяснять пока что не буду, лучше я тебе код в нормалном виде представлю

#include<stdio.h>
#define ROWS 6
#define CHARS 6
main()
{
  int row;
  char ch;
  for(row=0;row<ROWS;row++)
  {
    for(ch='A';ch<('A'+CHARS);ch++)
      printf("%c",ch);
    printf("\n");
  }
  return 0;
}


если что еще не понятно, пиши
Re: Помогите со вложенными циклами!!!!!!!!!!!!
От: Mr-Twister http://cosmozo.narod.ru/
Дата: 02.05.02 09:41
Оценка:
Здравствуйте rex79, Вы писали:
#include<stdio.h> 
#define ROWS 6 
#define CHARS 6 
main() 
{ 
int row; 
char ch; 
for(row=0;row<ROWS;row++) //сначала проходит этот цикл
{ 
for(ch='A';ch<('A'+CHARS);ch++) //*Затем крутится этот цикл пока не закончится, затем опять выполняется внешний ,увеличивая на 1 row *//
printf("%c",ch); 
printf("\n"); 
} 
return 0; 
}
дас ист нихьт фантастиш, дас ист руссиш Ванюшка
Re: Помогите со вложенными циклами!!!!!!!!!!!!
От: Mr-Twister http://cosmozo.narod.ru/
Дата: 02.05.02 09:45
Оценка:
Здравствуйте rex79, Вы писали:
#include<stdio.h> 
#define ROWS 6 
#define CHARS 6 
main() 
{ 
int row; 
char ch; 
for(row=0;row<ROWS;row++) //*сначала проходит этот цикл , выполняется 1 раз, и затем переходит на внутренний *//
{ 
for(ch='A';ch<('A'+CHARS);ch++) //*Затем крутится этот цикл пока не закончится, затем опять выполняется внешний ,увеличивая на 1 row *//
printf("%c",ch); 
printf("\n"); 
} 
return 0; 
}
дас ист нихьт фантастиш, дас ист руссиш Ванюшка
Re: Помогите со вложенными циклами!!!!!!!!!!!!
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 02.05.02 10:24
Оценка:
Здравствуйте rex79, Вы писали:

R>#include<stdio.h>

R>#define ROWS 6
R>#define CHARS 6
R>main()
R>{
R>int row;
R>char ch;
R>for(row=0;row<ROWS;row++)
R>{
R>for(ch='A';ch<('A'+CHARS);ch++)
R>printf("%c",ch);
R>printf("\n");
R>}
R>return 0;

Давай разберем твой код, команду for (кол-во) команда, можно заменить на последовательное выполнение команды кол-во раз. Для данного случая это будет так:

//1-ый ряд 
for(ch='A';ch<('A'+CHARS);ch++)
  printf("%c",ch);
printf("\n");

//2-ый ряд 
for(ch='A';ch<('A'+CHARS);ch++)
  printf("%c",ch);
printf("\n");

//3-ий ряд 
for(ch='A';ch<('A'+CHARS);ch++)
  printf("%c",ch);
printf("\n");

//4-ый ряд 
for(ch='A';ch<('A'+CHARS);ch++)
  printf("%c",ch);
printf("\n");

//5-ый ряд 
for(ch='A';ch<('A'+CHARS);ch++)
  printf("%c",ch);
printf("\n");

//6-ой ряд 
for(ch='A';ch<('A'+CHARS);ch++)
  printf("%c",ch);
printf("\n");


Теперь можно развернуть каждый внутренний for:
//1-ый ряд 
printf("%c",'A'); //первый символ
printf("%c",'B'); //второй символ
printf("%c",'C'); //третий символ
printf("%c",'D'); //четвертый символ
printf("%c",'E'); //пятый символ
printf("%c",'F'); //шестой символ
printf("\n");

(...)

//6-ой ряд 
printf("%c",'A');
printf("%c",'B');
printf("%c",'C');
printf("%c",'D');
printf("%c",'E');
printf("%c",'F');
printf("\n");


Вот мы и получили на экране:
ABCDEF\n
ABCDEF\n
ABCDEF\n
ABCDEF\n
ABCDEF\n
ABCDEF\n
Re[2]: Помогите со вложенными циклами!!!!!!!!!!!!
От: Юнусов Булат Россия  
Дата: 02.05.02 10:43
Оценка:
Часто еще путают ROW и COL, причем даже люди у которых с англицким вроде неслабо
Идентификаторы меняешь на Y X — понимается легче
Re[3]: Помогите со вложенными циклами!!!!!!!!!!!!
От: Кодт Россия  
Дата: 02.05.02 11:22
Оценка: 2 (1)
Здравствуйте Юнусов Булат, Вы писали:

ЮБ>Часто еще путают ROW и COL, причем даже люди у которых с англицким вроде неслабо

ЮБ>Идентификаторы меняешь на Y X — понимается легче

(а уж вектор-столбец и вектор-строка... это ваще мрак)
Перекуём баги на фичи!
Re: Помогите со вложенными циклами!!!!!!!!!!!!
От: rex79  
Дата: 02.05.02 13:23
Оценка:
Здравствуйте rex79, Вы писали:

R>Привет мужики.


R>Я учусь программировать на С сам дома(собираюсь постуавть на следующий год)


R>Я тут немогу пешить проимер со вложенными циклами for- янепонимаю как они работают


R>Вот пример с книги


R>#include<stdio.h>

R>#define ROWS 6
R>#define CHARS 6
R>main()
R>{
R>int row;
R>char ch;
R>for(row=0;row<ROWS;row++)
R>{
R>for(ch='A';ch<('A'+CHARS);ch++)
R>printf("%c",ch);
R>printf("\n");
R>}
R>return 0;

R>прога выдаёт такое


R>ABCDEF

R>ABCDEF
R>ABCDEF
R>ABCDEF
R>ABCDEF
R>ABCDEF

R>что и требуется......


R>НО я не понимаю как это работает....


R>если кто может объяснить поподробнее,,,,,,,,,,,,


R>большое спосибо[email]rex79 mailru.com[/email]


Мужики,Спосибо большое!!!!!!
Так значит сначало произходит внешний цикл,затем он пригает на внутренний и когда заканчиваеться он снова пригает на внешний OK?

но уменя вчастности возник вопрос с условием второго цикла ch<('A'+CHARS);
Я несовсем его понимаю

то есть

for(ch='A';ch<('A'+CHARS);ch++)
printf("%c",ch);
printf("\n");


я непонимаю как работает условие.......
Сложно..но нужно
Re[2]: Помогите со вложенными циклами!!!!!!!!!!!!
От: George_Seryakov Россия  
Дата: 02.05.02 13:56
Оценка:
Здравствуйте rex79, Вы писали:

R>но уменя вчастности возник вопрос с условием второго цикла ch<('A'+CHARS);

...
R>я непонимаю как работает условие.......

Приучайся смотреть дебаггером работающий код. Проясняет.
GS
Re[3]: Помогите со вложенными циклами!!!!!!!!!!!!
От: rex79  
Дата: 02.05.02 14:02
Оценка:
Здравствуйте George_Seryakov, Вы писали:

GS>Здравствуйте rex79, Вы писали:


R>>но уменя вчастности возник вопрос с условием второго цикла ch<('A'+CHARS);

GS>...
R>>я непонимаю как работает условие.......

GS>Приучайся смотреть дебаггером работающий код. Проясняет.


Да смотрел я дебагером-нихрена не понятно.......

он паказывает что проходит первый цикл,и навтором онисполняет условие,,,но непаказывает переход на перыый цикл...
Сложно..но нужно
Re[4]: Помогите со вложенными циклами!!!!!!!!!!!!
От: George_Seryakov Россия  
Дата: 02.05.02 14:06
Оценка: 3 (1)
Здравствуйте rex79, Вы писали:

R>>>но уменя вчастности возник вопрос с условием второго цикла ch<('A'+CHARS);

...
R>>>я непонимаю как работает условие.......

GS>>Приучайся смотреть дебаггером работающий код. Проясняет.


R>Да смотрел я дебагером-нихрена не понятно.......


Но ты, я надеюсь, понимаешь, что это твоя проблема? Должно быть понятно.
GS
Re[2]: Помогите со вложенными циклами!!!!!!!!!!!!
От: Юнусов Булат Россия  
Дата: 02.05.02 15:07
Оценка: 3 (1)
Здравствуйте rex79, Вы писали:
R>я непонимаю как работает условие.......

Немножко упростим, перейдем к цифрам, тогда понятнее.


#include <stdio.h> 

void main() 
{
    int condition = 'A' + 6;
    printf("\ncondition == %d\n", condition); 

    for(int y=0; y<6; ++y) 
    { 
        for(int x = 'A'; x < condition; ++x) 
        {
            printf("%d ", x); 
        }
        printf("\n"); 
    } 
}


Вывод такой
condition == 71
65 66 67 68 69 70
65 66 67 68 69 70
65 66 67 68 69 70
65 66 67 68 69 70
65 66 67 68 69 70
65 66 67 68 69 70
Re[2]: Помогите со вложенными циклами!!!!!!!!!!!!
От: Mr-Twister http://cosmozo.narod.ru/
Дата: 02.05.02 17:11
Оценка: 3 (1)
Здравствуйте rex79, Вы писали:
R>for(ch='A';ch<('A'+CHARS);ch++)
R>я непонимаю как работает условие.......

Сначала ch присваивается 'A', дальше проверяется условие, ch < ('A' + CHARS) Которое по другому можно представить согласно таблицы кодов ASCII так: 65 < (65 + 6)
По таблице ASCII (65 + 6) == ('A' + CHARS) == G == 71(номер кода по таблице ASCII).
Дальше ch++, происходит увеличение на следующую букву и ch становится равной B == 66, и так будет chувеличиваться на 1-у(к примеру согласно таблицы ASCII)пока условие будет верно 65 < (65 + 6) или ch < ('A' + CHARS) .
дас ист нихьт фантастиш, дас ист руссиш Ванюшка
Re: Помогите со вложенными циклами!!!!!!!!!!!!
От: rex79  
Дата: 11.05.02 05:43
Оценка:
Здравствуйте rex79, Вы писали:

R>Привет мужики.


R>Я учусь программировать на С сам дома(собираюсь постуавть на следующий год)


R>Я тут немогу пешить проимер со вложенными циклами for- янепонимаю как они работают


R>Вот пример с книги


R>#include<stdio.h>

R>#define ROWS 6
R>#define CHARS 6
R>main()
R>{
R>int row;
R>char ch;
R>for(row=0;row<ROWS;row++)
R>{
R>for(ch='A';ch<('A'+CHARS);ch++)
R>printf("%c",ch);
R>printf("\n");
R>}
R>return 0;

R>прога выдаёт такое


R>ABCDEF

R>ABCDEF
R>ABCDEF
R>ABCDEF
R>ABCDEF
R>ABCDEF

R>что и требуется......


R>НО я не понимаю как это работает....


R>если кто может объяснить поподробнее,,,,,,,,,,,,


R>большое спосибо[email]rex79 mailru.com[/email]


Спосибо всем!!!!!!
Прогу вроде как написал
да только хотелось рекамендациибчто и где можно сделать лучше,,,
да и какие допущенны ошибки



вот код

#include<stdio.h>
#define STOLB 5
#define SIMVOL 5
main()
{
int stolb,sim;
char f='f';
for(stolb=0;stolb<STOLB;stolb++)
{
for(sim=SIMVOL-(0+stolb);sim<=SIMVOL;sim+
printf("%c",f);
printf("\n");
}
return 0;

да вот беда ейчас надо по заданию напечатать примерно таким образом

F
FE
FED
FEDC
FEDCB
FEDCBA

что то не пойму ,как зто сделать,,,,,
помогите,,
Сложно..но нужно
Re[2]: Помогите со вложенными циклами!!!!!!!!!!!!
От: Xenia США  
Дата: 11.05.02 06:24
Оценка: 3 (1)
R>да вот беда ейчас надо по заданию напечатать примерно таким образом

R>F

R>FE
R>FED
R>FEDC
R>FEDCB
R>FEDCBA

R>что то не пойму ,как зто сделать,,,,,

R>помогите,,
#include <iostream.h>
#include <conio.h>
const R = 7;
void main()
{
    clrscr(); //очистка экрана
    char ch = 'F';
    for(int i=1;i<R;i++)
     {
        for (int j=ch;j>ch-i;j--)
              cout<<char(j); // это вывод на экран
         cout<<endl; //перевод каретки на новую строку
     }
}

Извини, но я терпеть не могу printf().
Re[2]: Помогите со вложенными циклами!!!!!!!!!!!!
От: Аноним  
Дата: 11.05.02 12:48
Оценка:
Здравствуйте rex79, Вы писали:

R>что то не пойму ,как зто сделать,,,,,

R>помогите,,

Уважаемый rex79!
Не сочтите за грубость, но вопросы, которые Вы задаете, мягко сказать, ... ну Вы поняли, да? Непонимание того, о чем Вы спрашиваете свидетельствует о полном нежелании (не исключаю, отсутствие возможности) прочитать самую тоненькую брошурку по С/С++. И раз уж Вам так все терпеливо рассказывают и расставляют по полочкам, мой Вам совет, ставьте людям оценки (это нужно нажать на 1,2 или 3 в заголовке сообщения).
Re[3]: Помогите со вложенными циклами!!!!!!!!!!!!
От: rex79  
Дата: 12.05.02 07:11
Оценка:
Здравствуйте Аноним, Вы писали:

А>Здравствуйте rex79, Вы писали:


R>>что то не пойму ,как зто сделать,,,,,

R>>помогите,,

А>Уважаемый rex79!

А>Не сочтите за грубость, но вопросы, которые Вы задаете, мягко сказать, ... ну Вы поняли, да? Непонимание того, о чем Вы спрашиваете свидетельствует о полном нежелании (не исключаю, отсутствие возможности) прочитать самую тоненькую брошурку по С/С++. И раз уж Вам так все терпеливо рассказывают и расставляют по полочкам, мой Вам совет, ставьте людям оценки (это нужно нажать на 1,2 или 3 в заголовке сообщения).

вы конечно правы-я впервом топике темы написал,что учусь я дома посамоучителю,та что понимаете ,что я неочень схватываю тему
А оченки в педь буду ваставлять,коль они имеют для вас большое значение...
Сложно..но нужно
Re[4]: Помогите со вложенными циклами!!!!!!!!!!!!
От: Xenia США  
Дата: 12.05.02 07:39
Оценка:
R>вы конечно правы-я впервом топике темы написал,что учусь я дома посамоучителю,та что понимаете ,что я неочень схватываю тему
R>А оченки в педь буду ваставлять,коль они имеют для вас большое значение...
А по какому самоучителю учишься? Может тебе попалась просто плохая книга? От первой книги какую прочтешь по С++ многое зависит. А вообще-то конечно до таких вещей полезно дойти самому. Кстати, очень правильно советовали пользоваться отладчиком, в частности режимом пошагового выполнения программы. Сразу видно будет, в какой последовательности программа выполняется.
Re[3]: Помогите со вложенными циклами!!!!!!!!!!!!
От: Рома Россия  
Дата: 12.05.02 08:10
Оценка:
Здравствуйте Аноним, Вы писали:

А>Здравствуйте rex79, Вы писали:


R>>что то не пойму ,как зто сделать,,,,,

R>>помогите,,

А>Уважаемый rex79!

А>Не сочтите за грубость, но вопросы, которые Вы задаете, мягко сказать, A>... ну Вы поняли, да? Непонимание того, о чем Вы спрашиваете свидетельствует о полном нежелании (не исключаю, отсутствие возможности) прочитать самую тоненькую брошурку по С/С++.
Тут дело, наверное, не в C++. А в отсутствии алгоритмического мышления.
C++ не самый простой язык для изучения. rex79, может тебе сначала попробовать что-нибудь попроще, типа BASIC'a или Pascal'я. Выработать на них навыки составления простых алгоритмов, а уже потом переходить на C++
Re[4]: Помогите со вложенными циклами!!!!!!!!!!!!
От: Аноним  
Дата: 12.05.02 21:19
Оценка:
Здравствуйте rex79, Вы писали:

А>>Уважаемый rex79!

А>>Не сочтите за грубость, но вопросы, которые Вы задаете, мягко сказать, ... ну Вы поняли, да? Непонимание того, о чем Вы спрашиваете свидетельствует о полном нежелании (не исключаю, отсутствие возможности) прочитать самую тоненькую брошюрку по С/С++. И раз уж Вам так все терпеливо рассказывают и расставляют по полочкам, мой Вам совет, ставьте людям оценки (это нужно нажать на 1,2 или 3 в заголовке сообщения).

R>вы конечно правы-я впервом топике темы написал,что учусь я дома посамоучителю,та что понимаете ,что я неочень схватываю тему

R>А оченки впредь буду ваставлять,коль они имеют для вас большое значение...
Тут есть некоторое недопонимание. Оценки имеют бОльшее значение для тебя, и вот почему:
Когда "Отцы-Основатели" :) создали в форумах систему оценок (баллов, "спасибов", как угодно), они привнесли в форум дух соревновательности и конкуренции. Утверждение может показаться очень спорным, особенно тем, кому оценки действительно не нужны :), но так оно есть. А конкуренция всегда идет на пользу потребителю — тебе. Ставя оценки ты поддерживаешь этот дух, продвигая отвечающих тебе людей в Тор-е. И дело не в игре на человеческом тщеславии, просто... Повисишь в форуме подольше (а это наверное самый лучший в РуНете :super: ) поймешь о чем я.
К модераторам:
Можете стирать этот постинг к чертовой матери, просто так написал.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.