Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Lekcja 30-zadanie domowe nr2

Ostatnio zmodyfikowano 2012-09-15 13:06
Autor Wiadomość
trojanagent
Temat założony przez niniejszego użytkownika
Lekcja 30-zadanie domowe nr2
» 2012-09-13 21:59:29
Witam. Mam problem z zadaniem domowym nr 2. Mianowicie mam dylemat skoro wypisywane numery na ekran to numery piłek to czy w takim wypadku 123 i 321 to taka sama kombinacja? Wydaje mi się że nie. Oto wykonane zadanie 2 w podstawowej wersji tj 5 pilek 3 pudelka
C/C++
#include <iostream>
#include <cstdlib>
#include <cstdio>

using namespace std;

int main()
{
    int ile = 0;
   
    for( int a = 1; a <= 5; a++ )
    {
        for( int b = 1; b <= 5; b++ )
        {
           
            for( int c = 1; c <= 5; c++ )
           
            { if( a == b || c == b || c == a )
                     continue;
               
                cout << a << b << c << d << endl;
            }
           
           
        }
    }
   
    cout << ile;
    return 0;
}
Program wypisuje kombinacje poprawnie zaczynajac od pierwszej mozliwej tj 123 itd. Liczba kombinacji liczona z zasady mnozenia wynosi 5*4*3=60 i zgadza sie po dodaniu licznika z wynikiem programu. Problem pojawia sie jednak podczas modyfikacji tego programu i dodaniu jednej piłki i jednego pudełka wiecej.

C/C++
#include <iostream>
#include <cstdlib>
#include <cstdio>

using namespace std;

int main()
{
    int ile = 0;
   
    for( int a = 1; a <= 6; a++ )
    {
        for( int b = 1; b <= 6; b++ )
        {
           
            for( int c = 1; c <= 6; c++ )
            { for( int d = 1; d <= 6; d++ )
                { if( a == b || c == b || c == a || d == a || d == b || d == c )
                         continue;
                   
                    cout << a << b << c << d << endl;
                    ile++; }
               
            }
        }
    }
   
    cout << ile;
    return 0;
}

W moim rozumieniu program powinien wypisywac kombinacje zaczynajac od 1234 na 6543 konczac niestety zaczyna od 2145 mimo ze wskazania licznika i regula mnozenia 6*5*4*3=360 sie zgadzaja to jednak nie rozumiem dlaczego kombinacje nie sa wypisywane od 1234 mimo takiego przebiegu petli. Z gory dziekuje za pomoc.
P-64900
trojanagent
Temat założony przez niniejszego użytkownika
znaczniki
» 2012-09-13 22:07:51
Chciałbym jeszcze dodać że nie znalazłem żadnego faQ ani wskazówki na forum jak dodawać kod w znacznikach c++ prosiłbym o poprawienie więc mojego postu.

Edit juz mam :)
P-64901
trojanagent
Temat założony przez niniejszego użytkownika
??
» 2012-09-13 22:39:21
Czy to ze pomijane jest wystwietlanie czesci kombinacji z poczatku moze byc zwiazane z tym ze cmd przechowuje ok 300 linijek w pamieci??
P-64903
DejaVu
» 2012-09-13 22:54:35
Poprawiłem treść drugiego zadania.

numery piłek to czy w takim wypadku 123 i 321 to taka sama kombinacja?
Tak, 123 i 321 to ta sama kombinacja.
P-64905
trojanagent
Temat założony przez niniejszego użytkownika
:)
» 2012-09-14 09:25:46
Czyli racje mam z tym ze cmd nie wyswietla wszystkich kombinacji jesli jest ich wiecej od 300?? Tak jakby zastepuje pierwsze wyswietlenia nastepnymi?? Mozna jakos rozszerzyc te 300 linijek?
P-64908
Mrovqa
» 2012-09-14 09:36:45
@up można. Da się też zmienić rozmiary okna ;)
PPM na pasku tytułu konsoli -> Właściwości -> Układ -> Rozmiar bufora okna - i tu modyfikujesz co chcesz :)
P-64909
DejaVu
» 2012-09-14 14:50:37
Do zadania drugiego nie potrzeba 300 linijek...
P-64915
trojanagent
Temat założony przez niniejszego użytkownika
» 2012-09-14 22:21:21
Tyle kombinacji wychodzi gdy zwiekszam liczbe piłek do 6 i pudełek do 4:) 6*5*4*3=360 ale i tak ta zmiana bufora nic nie daje bo nadal wyświetla mi od 2145:(
P-64945
« 1 » 2
  Strona 1 z 2 Następna strona