ESERCITAZIONE N. 5 ESERCIZIO N. 1 Autore: Biagio Brattoli S I Corso
IL PROBLEMA CHIEDE DI STAMPARE UN NUMERO DISPARI DI ASTERISCHI NELLA PRIMA RIGA, DUE IN MENO NELLA SECONDA E COSì FINO A CHE NON NE RIMANE SOLO UNA ********* ******* ***** *** *
ALLORA: Leggo num_asterischi While (num_asterischi > 0) stampa_una_riga decremento num_asterischi di 2 Ora ci concentriamo su stampa_una_riga
AD OGNI RIGA DEVO STAMPARE UN CERTO NUMERI DI SPAZI, UN NUMERO DI ASTERISCHI PARI A num_asterischi num_asterischi DIMINUISCE DI 2 AD OGNI GIRO
IL NUMERO DI SPAZI È ZERO LA PRIMA RIGA, 1 LA SECONDA, 2 E COSì VIA… leggo num_ast num_spazi = 0 while (num_ast > 0) stampa un numero di blank pari a num_spazi stampa un numero di asterischi pari a num_ast vai_a_capo incrementa di 1 num_spazi decrementa di 2 num_asterischi
FINITA LA PARTE PRINCIPALE DELLALGORITMO INSERISCO I CONTROLLI E SPECIFICO QUALE CICLO UTILIZZARE
leggo num_ast if(num_ast e' dispari) num_spazi = 0 while (num_ast > 0) contatore = 0 while(contatore < num_spazi) stampa_1_spazio contatore = 0 while(contatore < num_ast) stampa_1_asterisco vai_a_capo incrementa di 1 num_spazi decrementa di 2 num_ast else stampa "errore"
LULTIMO PASSO è QUELLO DI TRADURRE IN LINGUAGGIO C
#include main() { int num_ast, spazi, contatore; system ("CLS"); scanf ("%d", &num_ast); if ((num_ast % 2) == 1) /*se dispari*/ { spazi = 0; while (num_ast > 0) /*per le righe*/ { contatore = 0; while (contatore < spazi) { printf (" "); contatore++; }
contatore = 0; while (contatore < num_ast) /*stampa gli asterischi*/ { printf ("*"); contatore++; } printf ("\n"); spazi = spazi +1; num_ast = num_ast -2; } else printf ("Numero non dispari"); system ("PAUSE"); }
IN ALTERNATIVA POSSIAMO UTILIZZARE I CICLI FOR
#include main() { int num_ast, N,spazi, contatore; system ("CLS"); scanf ("%d", &num_ast); if ((num_ast % 2) == 1) /*se dispari*/ { spazi = 0; for (N = num_ast; N > 0; N = N - 2) /*per le righe*/ { for (contatore = 0; contatore < spazi; contatore++) printf (" ");
for (contatore = 0; contatore < N; contatore++) printf ("*"); printf ("\n"); spazi = spazi + 1; } else printf ("Numero non dispari"); system ("PAUSE"); }