Risultati da 1 a 2 di 2
Discussione: flow chart con Algobuild
-
13-04-2020, 18.24.56 #1
- 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
-
23-08-2020, 15.30.02 #2
- Data Registrazione
- 14-09-2010
- Messaggi
- 634
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 !!!!!
Segnalibri