Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [c++] programma che stampa asterischi?

    salve a tutti ragazzi, il seguente programma stampa asterischi:
    codice:
    void scrivi(int n, int k=0){if (k==n) return;
    if (k <= n/2) {
    for (int i=0; i<k; i++)
    cout << ' ';
    cout << '*' << endl;
    }
    else
    {for (int j=0; j< n-k-1; j++)
    cout << ' ';
    cout << '*' << endl;
    }
    scrivi(n, k+1);
    }
    e li stampa in questo modo:
    codice:
    *
      *
        *
      *
    *
    dove il numero degli asterischi è dato dalla variabile n (in questo caso 5), nel ciclo for viene dichiarata una nuova int che serve per vedere in quale posizione si trova il programma e stampare quindi un asterico o uno spazio. non ho però ben capito come realmente riesce a farlo, come si "orienta" per scrivere lo spazio o l'asterisco?

    grazie delle risposte!

  2. #2
    n rappresenta il numero di asterischi da stampare che corrisponde anche al numero di righe, mentre k corrisponde all'indice della riga che andremo a stampare.

    Se k == n allora vuol dire che abbiamo terminato di stampare tutte le righe, mentre se k <= n/2 allora si trova nella metà alta delle righe altrimenti nella seconda. Nel primo caso dovrà stampare un numero di spazi pari al numero di riga corrente e poi l'asterisco, invece nel secondo dovrà stampare un numero di spazi non più pari al numero di riga, ma al totale delle righe meno la riga corrente meno 1 perché si parte da 0.

    L'ultima riga è per far continuare l'algoritmo.

  3. #3
    Quote Originariamente inviata da lovesemiramide Visualizza il messaggio
    n rappresenta il numero di asterischi da stampare che corrisponde anche al numero di righe, mentre k corrisponde all'indice della riga che andremo a stampare.

    Se k == n allora vuol dire che abbiamo terminato di stampare tutte le righe, mentre se k <= n/2 allora si trova nella metà alta delle righe altrimenti nella seconda. Nel primo caso dovrà stampare un numero di spazi pari al numero di riga corrente e poi l'asterisco, invece nel secondo dovrà stampare un numero di spazi non più pari al numero di riga, ma al totale delle righe meno la riga corrente meno 1 perché si parte da 0.

    L'ultima riga è per far continuare l'algoritmo.
    si in effetti poi riguardando il codice ho capito tutto. grazie mille comunque!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.