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

[C++] Tablice dwuwymiarowe, zagnieżdżanie pętli FOR

Ostatnio zmodyfikowano 2014-12-08 23:52
Autor Wiadomość
luuuzik
Temat założony przez niniejszego użytkownika
[C++] Tablice dwuwymiarowe, zagnieżdżanie pętli FOR
» 2014-12-07 18:38:47
Witam. Mam mały problem odnośnie zagnieżdżania pętli FOR. Chciałem sobie narysować trójkąt z "jedynek" i "zer", które będą oparte na tablicy dwuwymiarowej trojkat[3][5]. Trójkąt ten wyglądać miałby następująco:

00100
01110
11111
W tablicy powinien on się zapisać następująco:
[0][0]=0
[0][1]=0
[0][2]=1
[0][3]=0
[0][4]=0
[1][0]=0
[1][1]=1
[1][2]=1
[1][3]=1

[1][4]=0
[2][0]=1
[2][1]=1
[2][2]=1
[2][3]=1
[2][4]=1


C/C++
#include <iostream>
using namespace std;

void rysowanie_trojkata( int trojkat[][ 5 ], int a, int b )
{
   
    for( a = 0; a < 5; a++ )
    {
        cout << "\n" << endl;
        for( b = 0; b < 5; b++ )
        {
            trojkat[ a ][ b ];
            cout << "1";
        }
    }
   
   
}
int main()
{
    int liczba, i, j, a, b;
    int trojkat[ 5 ][ 5 ];
    cout << "[1]Trojkat" << endl;
    cout << "Co ci wyswietlic?" << endl;
    cin >> liczba;
   
    switch( liczba )
    {
    case 1:
        {
            rysowanie_trojkata( trojkat, a, b );
            break;
        }
       
    }
    return 0;

Czy moglibyście mi podpowiedzieć jak poprawić funkcję rysowanie_trojkata, aby mogła na zmianę uzupełniać tablicę zerami i jedynkami jak wypisałem powyżej?
P-122493
pekfos
» 2014-12-07 18:41:05
Czy moglibyście mi podpowiedzieć
Użyj gdzieś wartości a.
P-122495
luuuzik
Temat założony przez niniejszego użytkownika
» 2014-12-08 22:39:47
Zrobiłem to w oparciu o funkcje ale coś mi źle wyszło:
C/C++
#include <iostream>
using namespace std;

void funkcja000( int trojkat[][ 5 ], int a, int b )
{
    for( b = 0; b < 2; b++ )
         trojkat[ a ][ b ] = 0;
   
}
void funkcja001( int trojkat[][ 5 ], int a, int b )
{
    for( b = 3; b < 5; b++ )
         trojkat[ a ][ b ] = 0;
   
}
void funkcja100( int trojkat[][ 5 ], int a, int b )
{
    for( b = 0; b < 1; b++ )
         trojkat[ a ][ b ] = 0;
   
}
void funkcja101( int trojkat[][ 5 ], int a, int b )
{
    for( b = 4; b < 5; b++ )
         trojkat[ a ][ b ] = 0;
   
}
void funkcja01( int trojkat[][ 5 ], int a, int b )
{
    for( b = 2; b == 2; b++ )
         trojkat[ a ][ b ] = 1;
   
}
void funkcja110( int trojkat[][ 5 ], int a, int b )
{
    for( b = 1; b < 4; b++ )
         trojkat[ a ][ b ] = 1;
   
}
void funkcja210( int trojkat[][ 5 ], int a, int b )
{
    for( b = 0; b < 5; b++ )
         trojkat[ a ][ b ] = 1;
   
}
void wiersz_pierwszy( int trojkat[][ 5 ], int a )
{
    funkcja000;
    funkcja001;
}
void wiersz_drugi( int trojkat[][ 5 ], int a )
{
    funkcja100;
    funkcja101;
}
void wiersz_trzeci( int trojkat[][ 5 ], int a )
{
    funkcja210;
}
void tworzenie_trojkata( int trojkat[][ 5 ] )
{
   
    wiersz_pierwszy;
    wiersz_drugi;
    wiersz_trzeci;
   
}
void rysowanie_trojkata( int trojkat[][ 5 ], int a, int b )
{
    for( a = 0; a < 3; a++ )
         cout << "\n";
   
    for( b = 0; b < 5; b++ )
         cout << trojkat[ a ][ b ];
   
}
int main()
{
    int liczba = 1, i, j, a, b;
    int trojkat[ 5 ][ 5 ];
    cout << "[1]Trojkat" << endl;
   
    switch( liczba )
    {
    case 1:
        {
           
            tworzenie_trojkata( trojkat );
            rysowanie_trojkata( trojkat, a, b );
            break;
        }
       
    }
    return 0;
}
P-122560
stryku
» 2014-12-08 23:34:06
Źle te funkcje wywołujesz
P-122565
darko202
» 2014-12-08 23:52:09
na początku w procedurze
C/C++
void rysowanie_trojkata( int trojkat[][ 5 ], int a, int b )
{
    for( a = 0; a < 5; a++ )
    {
        cout << "\n" << endl;
        for( b = 0; b < 5; b++ )
        {
            trojkat[ a ][ b ];
            cout << "1";
        }
    }
}
zapomniałeś o decyzji w zależności od wartości tabeli http://cpp0x.pl/kursy/Kurs-C++​/Poziom-1​/Instrukcja-warunkowa-if-else​/16
 if( trojkat[ a ][ b ] == 0 )  { ... }
else { ...}
 
w kolejnej odsłonie mnożysz funkcje które robią to samo - wystarczy Ci jedna wyświetlająca odpowiedni fragment tabeli;

np. void Fun(tab[, wiersz startowy, wiersz końcowy, kolumna startowa, kolumna końcowa)
 



P-122566
« 1 »
  Strona 1 z 1