FACILI ALGORITMI,ENTRATE VI PREGO!!!!!!!!!!!!!!!!!!!!!!!
Salve a tutti!Riuscite a svolgere questi algoritmi?:
1)Programma che calcola le 4 operazioni sulla stessa coppia di numeri
2)Calcolo sulle diverse coppie di numero
3)Dato un varole temporale in ore,trasformalo in minuti e poi in secondi
Grazie mille:)!!
1)Programma che calcola le 4 operazioni sulla stessa coppia di numeri
2)Calcolo sulle diverse coppie di numero
3)Dato un varole temporale in ore,trasformalo in minuti e poi in secondi
Grazie mille:)!!
Miglior risposta
A prescindere dal linguaggio di programmazione gli algoritmi potrebbero essere i seguenti:
1)
:inizio
:inizializzazione variabili
n1; primo numero
n2; secondo numero
op; risultato operazioni
i; indicatore operazione
:input dati
routine di inserimento dati da tastiera, controllo congruenza dati immessi, caricamento dati nelle rispettive variabili
n1 contiene il primo numero
n2 contiene il secondo numero
:somma
i=1; indicatore posto a 1 (somma) nota valore scelto a piacere
op=n1+n2
---> saltare alla routine :stampa
:sottrazione
i=2
op=n1-n2
---> saltare alla routine :stampa
:moltiplicazione
i=3
op=n1*n2
---> saltare alla routine :stampa
:divisione
: controllo
se n2=0
divisione impossibile
---> saltare a :fine
i=4
op=n1/n2
---> saltare alla routine :stampa
:fine
:stampa
se i=1
routine di output a video "n1+n2=" op
rientro programma principale
se i=2
routine di output a video "n1-n2=" op
rientro programma principale
se i=3
routine di output a video "n1*n2=" op
rientro programma principale
routine di output a video "n1/n2=" op ; questa condizione non ha bisogno di controllo perchè le altre tre opzioni di i sono già state esaurite.
rientro programma principale
... il secondo non l'ho capito come problema, adesso penso al terzo
Aggiunto 4 minuti più tardi:
3)
:inizio
:inizializzazione variabili
th; tempo in ore
tm; tempo in minuti
ts; tempo in secondi
:input dati
routine di inserimento dati da tastiera, controllo congruenza dati immessi, caricamento dati nella variabile th
th contiene il valore delle ore
:calcoli
tm = th*60
ts = th*3600 (oppure puoi utilizzare ts=tm*60)
:output
routine di stampa a video dei valori di th, tm e ts
:fine
Spero di esserti stato utile...
:hi
Massimiliano
Aggiunto 23 minuti più tardi:
Forse per il secondo intendevi dire che hai due gruppi di numeri e vuoi fare le operazioni su ogni coppia di numeri appartenenti ai due gruppi.
Allora qui si può considerare, per semplicità due variabili array monodimensionali che contengono i tuoi due gruppi di numeri: gli array sono particolari variabili "contenitori" che possono, contenere ;) più dati insieme, che possono essere letti e o scritti, indicizzandoli all'interno della variabile.
Quindi, se noi abbiamo due array contenenti i nostri due gruppi di numeri:
a{n1,n2,n3,n4}
b{m1,m2,m3,m4}
noi potremmo fare una routine tipo
:inizializzazione variabili
ia=0, ib=0 ; indici degli array a e b
n1; primo numero
n2; secondo numero
op; risultato operazione
i; indicatore operazione
:recupero dati
n1=a(ia), n2=b(ib); recupera i rispettivi dati indicizzati da ia e ib negli array a e b e li inserisce in n1 e n2
[qui ci andrebbero gli stessi parti dell'algoritmo 1 da :somma]
:incremento ib
se ib=3 ---> salta a :incremento ia
ib=ib+1 ; incrementa l'indice ib
---> salta a :recupero dati
:incremento ia
ib=0 ; resetta l'indice ib
se ia=3 ---> salta a :fine
ia=ia+1 ; incrementa l'indice ia
---> salta a :recupero dati
:fine
In pratica lo schema di incremento di ia e ib è il seguente:
ia ib
0 0
0 1
0 2
0 3
1 0
1 1
1 2
1 3
2 0
2 1
2 2
2 3
3 0
3 1
3 2
3 3
in questo modo si riescono a recuperare tutte le coppie di numeri
1)
:inizio
:inizializzazione variabili
n1; primo numero
n2; secondo numero
op; risultato operazioni
i; indicatore operazione
:input dati
routine di inserimento dati da tastiera, controllo congruenza dati immessi, caricamento dati nelle rispettive variabili
n1 contiene il primo numero
n2 contiene il secondo numero
:somma
i=1; indicatore posto a 1 (somma) nota valore scelto a piacere
op=n1+n2
---> saltare alla routine :stampa
:sottrazione
i=2
op=n1-n2
---> saltare alla routine :stampa
:moltiplicazione
i=3
op=n1*n2
---> saltare alla routine :stampa
:divisione
: controllo
se n2=0
divisione impossibile
---> saltare a :fine
i=4
op=n1/n2
---> saltare alla routine :stampa
:fine
:stampa
se i=1
routine di output a video "n1+n2=" op
rientro programma principale
se i=2
routine di output a video "n1-n2=" op
rientro programma principale
se i=3
routine di output a video "n1*n2=" op
rientro programma principale
routine di output a video "n1/n2=" op ; questa condizione non ha bisogno di controllo perchè le altre tre opzioni di i sono già state esaurite.
rientro programma principale
... il secondo non l'ho capito come problema, adesso penso al terzo
Aggiunto 4 minuti più tardi:
3)
:inizio
:inizializzazione variabili
th; tempo in ore
tm; tempo in minuti
ts; tempo in secondi
:input dati
routine di inserimento dati da tastiera, controllo congruenza dati immessi, caricamento dati nella variabile th
th contiene il valore delle ore
:calcoli
tm = th*60
ts = th*3600 (oppure puoi utilizzare ts=tm*60)
:output
routine di stampa a video dei valori di th, tm e ts
:fine
Spero di esserti stato utile...
:hi
Massimiliano
Aggiunto 23 minuti più tardi:
Forse per il secondo intendevi dire che hai due gruppi di numeri e vuoi fare le operazioni su ogni coppia di numeri appartenenti ai due gruppi.
Allora qui si può considerare, per semplicità due variabili array monodimensionali che contengono i tuoi due gruppi di numeri: gli array sono particolari variabili "contenitori" che possono, contenere ;) più dati insieme, che possono essere letti e o scritti, indicizzandoli all'interno della variabile.
Quindi, se noi abbiamo due array contenenti i nostri due gruppi di numeri:
a{n1,n2,n3,n4}
b{m1,m2,m3,m4}
noi potremmo fare una routine tipo
:inizializzazione variabili
ia=0, ib=0 ; indici degli array a e b
n1; primo numero
n2; secondo numero
op; risultato operazione
i; indicatore operazione
:recupero dati
n1=a(ia), n2=b(ib); recupera i rispettivi dati indicizzati da ia e ib negli array a e b e li inserisce in n1 e n2
[qui ci andrebbero gli stessi parti dell'algoritmo 1 da :somma]
:incremento ib
se ib=3 ---> salta a :incremento ia
ib=ib+1 ; incrementa l'indice ib
---> salta a :recupero dati
:incremento ia
ib=0 ; resetta l'indice ib
se ia=3 ---> salta a :fine
ia=ia+1 ; incrementa l'indice ia
---> salta a :recupero dati
:fine
In pratica lo schema di incremento di ia e ib è il seguente:
ia ib
0 0
0 1
0 2
0 3
1 0
1 1
1 2
1 3
2 0
2 1
2 2
2 3
3 0
3 1
3 2
3 3
in questo modo si riescono a recuperare tutte le coppie di numeri
Miglior risposta
Risposte
Ciao, Alf!
Ero passata di qua per aiutarti come ti avevo promesso ieri.
Noto però con piacere che hai già avuto un ottimo aiuto da parte di Max, di conseguenza mi faccio umilmente da parte.
Oltretutto, come ti ho detto anche ieri, ne so veramente poco di algoritmi, quindi non ti sarei potuta essere di moltissimo aiuto, purtroppo.
Ciao!!!!
Ero passata di qua per aiutarti come ti avevo promesso ieri.
Noto però con piacere che hai già avuto un ottimo aiuto da parte di Max, di conseguenza mi faccio umilmente da parte.
Oltretutto, come ti ho detto anche ieri, ne so veramente poco di algoritmi, quindi non ti sarei potuta essere di moltissimo aiuto, purtroppo.
Ciao!!!!