[AIUTO] Pseudocodice quadrato perfetto.--

di il
1 risposte

[AIUTO] Pseudocodice quadrato perfetto.--

Ciao a tutti,
ho avuto oggi il mio primo approccio alla programmazione.
Ci è stato affidato un problema da svolgere: creare uno pseudocodice per un ipotetico programma che verifichi se un numero "n" sia quadrato perfetto o meno.

Questa è la mia idea, qualcuno più esperto di me (credo chiunque su questo forum) potrebbe darmi qualche dritta?

Leggi (n)
Leggi (i)
i=1

Finchè (i < o = n)
>>>Se (i*i=n)
>>>>>> Stampa ("n è un quadrato perfetto")
>>>Altrimenti
>>>Leggi (i)
>>>i=i+1

Altrimenti
>>>Stampa("n non è un quadrato perfetto")

1 Risposte

  • Re: [AIUTO] Pseudocodice quadrato perfetto.--

    L'idea è buona, solo un paio di cose
    Uno: non capisco perchè c'è 'Leggi (i)' nel primo altrimenti;
    Due: che cos'è quel "i< o=n"? Non basta "i < n"?
    Tre: l'altrimenti finale non è correlato a nessun se. Per ovviare a questo problema, io farei così:

    Leggi (n)
    Leggi (i)
    i=1
    s=1

    Finchè (i < n)
    >>>Se (i*i=n) :
    >>>>>> s=0
    >>>Altrimenti :
    >>>i=i+1

    Se (s=0):
    >>>Stampa("n è un quadrato perfetto")
    Altrimenti:
    >>>Stampa("n non è un quadrato perfetto")

    E' come se creassi un etichetta "s" segnata con 1, e sovrascritta con 0 solo se n è un quadrato perfetto.

    Quattro: adesso non so bene i presupposti del problema, ma se n fosse negativo il ciclo va all'infinito per scrupolo metti prima del ciclo un "Se (n>0)"; ovviamente se n fosse invece negativo non potrebbe essere un quadrato perfetto.

    Cinque: ti consiglio di far terminare il ciclo a (n/2) +1 invece che a n, che su numeri molto grandi risparmi un bel po' di iterazioni. Adesso senza dimostrazione matematica, vedi da solo che le radici di numeri interi positivi sono sempre minori della metà più 1

    Ehi, comunque sono tutte piccole cosette!! Il grosso c'era, l'idea era quella giusta
Devi accedere o registrarti per scrivere nel forum
1 risposte