ESERCITAZIONE N. 5 ESERCIZIO N. 1 Autore: Biagio Brattoli S161894 I Corso.
-
Upload
nunziatella-festa -
Category
Documents
-
view
212 -
download
0
Transcript of ESERCITAZIONE N. 5 ESERCIZIO N. 1 Autore: Biagio Brattoli S161894 I Corso.
ESERCITAZIONE N. 5
ESERCIZIO N. 1
Autore: Biagio Brattoli S161894 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 Anum_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
DELL’ALGORITMO 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"
L’ULTIMO PASSO è QUELLO
DI TRADURRE IN LINGUAGGIO C
#include <stdio.h>#include <stdlib.h>
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 <stdio.h>#include <stdlib.h>
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");}