PROBLEMA Algoritmo

Pubblicità
Ah ok, quindi al posto del ; devo inserire AND?
Per quanto riguarda l'ultimo diagramma che ho mandato, cosa ne dici?
Mettiamola così:
senza operatori booleani i flowchart diventano grossi come cartelloni pubblicitari e ingestibili.
D'altra parte se non consoci tali operatori il prof. potrebbe obiettare "chi ti ha fatto i compiti?"
Non mi sento di darti un consiglio: come ti dico, sbaglio!

Personalmente non ho MAI usato diagrammi di flusso, vanno bene solo per esempi giocattolo e sono molto meno chiari di un testo informale in pseudocodice.
Vanno bene per spiegare ad un principiante come funziona una istruzione condizionale o un ciclo ma anche in questo caso se ne puòò fare tranquillamente a meno.
 
Personalmente non ho MAI usato diagrammi di flusso, vanno bene solo per esempi giocattolo e sono molto meno chiari di un testo informale in pseudocodice.
Vanno bene per spiegare ad un principiante come funziona una istruzione condizionale o un ciclo ma anche in questo caso se ne puòò fare tranquillamente a meno.

Nel 1987 mi sono serviti per fare un gran bel figurone ad un corso di Fox (per chi non sa cos'è: un compilatore di macro DB-III.. a sua volta database relazionale per MS-DOS.. che segue DB-II anche per CP/M... DB-I non è mai esistito)
:) :) :)



Inviato dal mio Nexus 5 utilizzando Tapatalk
 
Non so che linguaggio stai usando, ma nel caso sia C++, senza darti la soluzione posso proporti la struttura del test e lasciare il completamento degli elementi mancanti a te, come esercizio extra :)
Tutto ciò che ti serve scrivere è una classe Range con dentro 2 int, un costruttore che prende il valore del primo ed ultimo elemento, ed infine una funzione "Include" con signature "bool (int)" che controlla se il valore passato è nel range [first,last]

Edit: ho letto ora gli altri commenti e forse ti sto confondendo le idee piu che altro... nel caso ignora il mio commento :D
Quello che cercavo di sottolineare è che puoi strutturare la cosa in modo che sembri una comune frase, come a punto nel codice sotto "if (Range.Includes(MyNumber))" che sarebbe una cosa tipo "Se l'intervallo contiene il mio numero", in questo modo ti viene molto piu semplice ragionarci su :)

C++:
int main()
{
    vector<Range> Ranges{
            Range(4, 10),
            Range(5, 20)
    };

    int MyNumber = 4;
    for (auto& Range : Ranges)
    {
        cout << "Range [" << Range.first << "," << Range.last << "] ";
 
        if (Range.Includes(MyNumber))
        {
            cout << "includes " << MyNumber << endl;
        }
        else
        {
            cout << "does not include " << MyNumber << endl;
        }
    }
}
Output n=4:
Range [4,10] includes 4
Range [5,20] does not include 4
 
Ultima modifica:
Non so che linguaggio stai usando, ma nel caso sia C++, senza darti la soluzione posso proporti la struttura del test e lasciare il completamento degli elementi mancanti a te, come esercizio extra :)
Tutto ciò che ti serve scrivere è una classe Range con dentro 2 int, un costruttore che prende il valore del primo ed ultimo elemento, ed infine una funzione "Include" con signature "bool (int)" che controlla se il valore passato è nel range [first,last]

Edit: ho letto ora gli altri commenti e forse ti sto confondendo le idee piu che altro... nel caso ignora il mio commento :D
Quello che cercavo di sottolineare è che puoi strutturare la cosa in modo che sembri una comune frase, come a punto nel codice sotto "if (Range.Includes(MyNumber))" che sarebbe una cosa tipo "Se l'intervallo contiene il mio numero", in questo modo ti viene molto piu semplice ragionarci su :)

C++:
int main()
{
    vector<Range> Ranges{
            Range(4, 10),
            Range(5, 20)
    };

    int MyNumber = 4;
    for (auto& Range : Ranges)
    {
        cout << "Range [" << Range.first << "," << Range.last << "] ";
 
        if (Range.Includes(MyNumber))
        {
            cout << "includes " << MyNumber << endl;
        }
        else
        {
            cout << "does not include " << MyNumber << endl;
        }
    }
}
Output n=4:
Ma se non sa fare un diagramma di flusso e non ha mai visto un linguaggio di programmazione.. certo che gli stai confondendo le idee!

Inviato dal mio Nexus 5 utilizzando Tapatalk
 
Ma se non sa fare un diagramma di flusso e non ha mai visto un linguaggio di programmazione.. certo che gli stai confondendo le idee!

Lol :D
Cmq onestamente io non so neppure cosa sia un diagramma di flusso (o almeno non lo conosco sotto questo nome), ragione in più per la quale il mio reply sopra potrebbe essere totalmente fuori strada :\
 
i famigerati flowchart
non preoccuparti non ti sei perso niente :ok:
Non sono qui a difenderli, ma come ogni cosa non sono il male assoluto e non bisogna abusarne, ma anche al di fuori dell'ambito della programmazione ci sono situazioni in cui possono essere utili a fare chiarezza ai neofiti soprattutto.
La conoscenza fa sempre bene, suggerire l'ignoranza non è mai buona cosa!

Inviato dal mio Nexus 5 utilizzando Tapatalk
 
Io trovo i flowchart utili nell'imparare a programmare.
Ecco, vedi.

Probabilmente con i linguaggi procedurali sono più utili. Anch'io non li uso più da tanto tempo, però aldilà dell'esperienza poi maturata, ci sono ambiti in cui non esiterei ancora oggi ad utilizzarli. Mi ricordo che mi trovavo benissimo con l'assembler, una volta ho fatto un simulatore di circuiti logici con lo z80: ho ancora da qualche parte le cartelline con pacchetti di flowchart.. non c'era modo migliore per tradurlo in codice!

Inviato dal mio Nexus 5 utilizzando Tapatalk
 
Si, magari con la OOP hanno meno senso, ma per la scrittura di un algoritmo un flowchart è già utile visivamente: se ha troppi giri o incroci è fatto male.
 
Pubblicità
Pubblicità
Indietro
Top