Risultati da 1 a 2 di 2
  1. #1
    New Member
    Data Registrazione
    13-04-2020
    Messaggi
    1

    flow chart con Algobuild

    Ciao, sono un principiante della programmazione e sono alle prese con un problema: devo costruire il flow chart per determinare la somma dei primi N numeri naturali positivi interi. Devo necessariamente usare il ciclo "for" di Algobuild. Potete aiutarmi, GRAZIE

  2. #2
    Senior Member
    Data Registrazione
    14-09-2010
    Messaggi
    456
    Salve,
    innanzitutto occorre ricordare che il costrutto for (esattamente for-do nel caso di Pascal/Delphi) viene utilizzato nel caso in cui si conosca esattamente il numero di volte che un blocco di istruzioni deve essere eseguito (in pratica il numero di cicli è definito a priori).
    Dunque hai bisogno di un contatore, che assume la funzione di variabile di controllo, allo scopo di controllare l'esecuzione del ciclo; tale variabile può essere di un qualsiasi tipo scalare.
    Il contatore viene incrementato di 1 automaticamente ad ogni iterazione e ovviamente all'interno del ciclo non può essere modificato.
    Quindi N contiene il numero di iterazioni (in pratica quanti sono i numeri naturali da sommare), inizializziamo la somma a 0 (somma:=0) e il contatore I a 1 (I:=1).
    Ora "iteriamo": somma <-- somma+1 e I <-- I+1.
    Facciamo il test: I>N ?
    Se è FALSE, torniamo all'iterazione, se è TRUE usciamo dal ciclo e visualizziamo la somma finale.
    Ricapitolando (in una sorta di diagramma di flusso in pseudo-codifica):

    1) START
    2) N (richiesta di quanti numeri naturali si devono sommare);
    3) somma:=0;
    4) I:=1;
    5) somma <-- somma+1; (questo è l'inizio del ciclo)
    6) I <-- I+1;
    7) I>N ?
    Se FALSE, tornare al punto 5) (cioè "cicliamo").
    Se TRUE, usciamo e visualizziamo il risultato della variabile somma.

    Da notare che nel diagramma di flusso l'inizializzazione del contatore I di controllo viene fatta all'esterno del ciclo for ma in realtà essa avviene all'interno del for (cioè for I := 1 to N do ... in Pascal/Delphi) e il suo incremento è automatico a ciascuna esecuzione del ciclo.
    Dunque è errato scrivere I := I+1 all'interno del ciclo.
    Ciao, a presto e buona domenica

    P.S. A breve inizierà il mio corso di Delphi/Object-Pascal, non mancate !!!!!

Tag per Questa Discussione

Segnalibri

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •