PDA

Visualizza la versione completa : [c] visualizzazione disegno(non banale)


cristianc
07-06-2008, 21:50
Lo scopo del programma e' semplice.Far disegnare al programma a video un disegno di questo tipo:

* * * * * * * * * * *
* Q Q Q Q Q Q Q *
* Q Q Q Q Q Q Q *
* Q Q Q Q Q Q Q *
* Q Q Q Q Q Q Q *
* * * * * * * * * * *

dove il numero delle righe e delle colonne sono date dall'utente in input.

Ora la cosa mi sembrerebbe una sciocchezza se i caratteri da stampare fossero tutti uguali.In tal caso utilizzerei dei cicli for annidati uno nell'altro.

In questo momento non mi vengono idee,che ne pensate?

menphisx
07-06-2008, 22:07
Utilizzare una matrice ?

cristianc
07-06-2008, 22:11
come potrei fare?

oregon
07-06-2008, 22:16
Dove trovi difficolta'? Mi sembra un compito banale con i for di cui parlavi ... prova ad impostare i cicli e mostra il codice ...

menphisx
07-06-2008, 22:22
Crei una matrice di n righe ed m colonne in cui in ogni cella viene memorizzato il carattere da stampare.
Ad esempio il carattere in posizione 3, 4 (quarto carattere, terza riga ) verra memorizzato nella cella 3, 4 (o 4, 3 come ti piace di pił).
Alla fine stampi tutta la matrice, ed avrai tutti i caratteri a schermo stampati correttamente.

cristianc
07-06-2008, 22:28
me l'ero scritto:

int i,j,lin,col;
printf("Numero di linee: ");
scanf("%d",&lin);
printf("Numero di colonne: ");
scanf("%d",&col);
for(i=0;i<lin;i++) {
printf("\n");
for(j=0;j<co;j++) printf("...")

pero' non va bene cosi'.

oregon
07-06-2008, 22:33
Tu hai mostrato un "disegno" che puo' ingenerare equivoci ... le lettere all'interno sono tutte eguali ... cosa devi visualizzare effettivamente?

Se i caratteri non sono tutti uguali tra loro, perche' hai mostrato tutte le Q ... ?

Da dove verrebbero questi caratteri ?

cristianc
07-06-2008, 22:36
mi viene richiesto di stampare un disegno con due caratteri: * e Q.
Praticamentre i primi formano la cornice e i secondi invece il contenuto.

oregon
07-06-2008, 22:38
E allora e' banale ... continua a scrivere il codice ... dividi il problema in 3 parti ...

1) visualizza la prima linea con gli asterischi

2) visualizza tante linee composte da asterischi e Q

3) visualizza l'ultima linea con gli asterischi

cristianc
08-06-2008, 14:46
Ti ringrazio del suggerimento,oregon.
In effetti stavo pensando un po a come fare e a metter giu una bozza.

Quindi teoricamente dovrei (partendo dall'inizio) creare un ciclo esterno (for con variabile i)
e tre interni (for con le j) ognuno per disegnare una parte del problema?

Loading