[Algoritmi] mi serve aiuto con questi algoritmi

SeRe_NeRe92
Ciao a tutti!
Sono alle prime armi con gli algoritmi e non riesco a capire questi quesiti a risposta multipla :cry: (le lettere sono le possibili risposte). Potete darmi una mano? Ve ne sarei davvero grata :-)

1) leggi A
2) se A>5 vai al 6
3) leggi B
4) A <- A+B
5) se A < 30 and A > -30 vai al 4
6) stampa A
7) fine

A) se si immette 3 per A e 5 per B, stampa 33
B) se si immette 10 per A poi chiede il valore di B
C) se si immette 3 per A e 1 per B stampa 40
D) se si immette 10 per A stampa 30
E) stampa sempre il valore iniziale di A

-------
1) leggi A e B
2) se A > 12 allora B <- B - A + 8 altrimenti A <- A + 2
3) se A <= B allora vai al punto 2
4) stampa A + B + 5
5) fine

A) se si immette 0 come valore iniziale di A e 17 come valore iniziale di B allora stampa 13
B) se si immette 0 come valore iniziale di A e 17 come valore iniziale di B allora stampa 31
C) se si immette 0 come valore iniziale di A e 17 come valore iniziale di B allora stampa 17
D) se si immette 0 come valore iniziale di A e 17 come valore iniziale di B allora stampa 30
E) se si immette 0 come valore iniziale di A e 17 come valore iniziale di B allora stampa 40
------------

1) Si consideri il seguente algoritmo:
1) leggi A
2) se A>5 allora leggi B altrimenti B <- 2
3) A <- A - B
4) B <- B + A
5) se A>B allora B <- B + 2
6) se A>B allora B <- B * 2
7) A <- A + 1
8) se A > B allora vai al 5
9) stamp

A) se si immette 10 per A e -50 per B stampa 60
B) se si immette 7 per A e 1 per B stampa 8
C) se si immette 10 per A e -50 per B stampa 63
D) non e' corretto perche' a volte non chiede il valore di B
E) se si immette 7 per A e 1 per B stampa 0
---------------------

1) leggi A e B
2) se A>0 vai all'8
3) A <- A*2
4) se A<0 vai all'8
5) A <- A+B
6) stampa A
7) fine
8) A <- B
9) vai al 6

A) stampa sempre il valore iniziale di A piu' quello iniziale di B
B) stampa sempre il valore iniziale di A per 2
C) se si immette 2 per B, allora stampa 3
D) stampa sempre il valore iniziale di A
E) stampa sempre il valore iniziale di B
---------------------

1) leggi A
2) R <- 0
3) se (A % 2) = 1 allora vai al punto 9
4) R <- R * 2
5) A <- A / 2
6) se A > 0 vai al punto 3
7) stampa R
8) fine
9) A <- A - 1
10) R <- R + 1
11) vai al punto 4

A) se si immette 13 come valore iniziale di A allora stampa 20
B) se si immette 13 come valore iniziale di A allora stampa 22
C) se si immette 13 come valore iniziale di A allora stampa 21
D) se si immette 13 come valore iniziale di A allora stampa 17
E) se si immette 13 come valore iniziale di A allora stampa 13
------------------
1) leggi A e B
2) se A < B e B < 2 * A allora A <- A * 2
3) se A > 5 allora A <- A - 1 altrimenti B <- A + 2
4) B <- B + 1
5) se A < 12 vai al punto 2
6) stampa A + B
7) fine

A) se si immette 5 come valore iniziale di A e 7 come valore iniziale di B allora stampa 25
B) se si immette 5 come valore iniziale di A e 7 come valore iniziale di B allora stampa 10
C) se si immette 5 come valore iniziale di A e 7 come valore iniziale di B allora stampa 5
D) se si immette 5 come valore iniziale di A e 7 come valore iniziale di B allora stampa 7
E) se si immette 5 come valore iniziale di A e 7 come valore iniziale di B allora stampa 15
--------------------------

1) leggi A e B
2) se A > 12 allora B <- B - A + 8 altrimenti A <- A + 2
3) se A <= B allora vai al punto 2
4) stampa A + B + 5
5) fine

A) se si immette 5 come valore iniziale di A e 22 come valore iniziale di B allora stampa 32
B) se si immette 5 come valore iniziale di A e 22 come valore iniziale di B allora stampa 17
C) se si immette 5 come valore iniziale di A e 22 come valore iniziale di B allora stampa 31
D) se si immette 5 come valore iniziale di A e 22 come valore iniziale di B allora stampa 30
E) se si immette 5 come valore iniziale di A e 22 come valore iniziale di B allora stampa 13
---------------------------

1) A <- 3
2) leggi B
3) B <- B * A
4) C <- B * 3
5) se B=C allora vai all'8
6) se B>C allora C <- C + 1 altrimenti B <- B + 1
7) vai al 5
8) stampa B + C
9) fine

A) se si immette 2 per B stampa 36
B) se si immette 5 per B stampa 50
C) se si immette -1 per B stampa -5
D) se si immette -1 per B stampa -4
E) se si immette 2 per B stampa 50
--------------------

1) leggi A
2) leggi B
3) C <- 0
4) se A>3 vai al 12
5) se B>2 vai al 9
6) C <- C+(A*B)
7) B <- B+1
8) vai al 5
9) B <- 0
10) A <- A+1
11) vai al 4
12) stampa C
13) fine

A) se si immette 2 per A e 0 per B stampa 14
B) se si immette 2 per A e 0 per B non termina
C) se si immette 2 per A e 0 per B stampa 16
D) se si immette 2 per A e 0 per B stampa 15
E) se si immette 2 per A e 0 per B stampa 20

Risposte
apatriarca
Qualche idea?

sapo931
Ho risolto i primi 5. La risposta grassettata è quella giusta. In rosso ho spiegato perchè le altre sono sbagliate. Lo svolgimento dell'algoritmo, se necessario, è nello spoiler.

1) leggi A
2) se A>5 vai al 6
3) leggi B
4) A <- A+B
5) se A < 30 and A > -30 vai al 4
6) stampa A
7) fine

A) se si immette 3 per A e 5 per B, stampa 33
B) se si immette 10 per A poi chiede il valore di B No, per il passo 2) va a 6) e poi esce (10>5)
C) se si immette 3 per A e 1 per B stampa 40 No, Stamperebbe 31]
D) se si immette 10 per A stampa 30 siccome 10 > 5, va alla 6) e stampa A = 10
E) stampa sempre il valore iniziale di A Solo se A <=5

-------
1) leggi A e B
2) se A > 12 allora B <- B - A + 8 altrimenti A <- A + 2
3) se A <= B allora vai al punto 2
4) stampa A + B + 5
5) fine

Soluzione:


A) se si immette 0 come valore iniziale di A e 17 come valore iniziale di B allora stampa 13
B) se si immette 0 come valore iniziale di A e 17 come valore iniziale di B allora stampa 31
C) se si immette 0 come valore iniziale di A e 17 come valore iniziale di B allora stampa 17
D) se si immette 0 come valore iniziale di A e 17 come valore iniziale di B allora stampa 30
E) se si immette 0 come valore iniziale di A e 17 come valore iniziale di B allora stampa 40
------------

1) Si consideri il seguente algoritmo:
1) leggi A
2) se A>5 allora leggi B altrimenti B <- 2
3) A <- A - B
4) B <- B + A
5) se A>B allora B <- B + 2
6) se A>B allora B <- B * 2
7) A <- A + 1
8) se A > B allora vai al 5
9) stamp

"Soluzione"

A) se si immette 10 per A e -50 per B stampa 60
B) se si immette 7 per A e 1 per B stampa 8
C) se si immette 10 per A e -50 per B stampa 63
D) non e' corretto perche' a volte non chiede il valore di B
E) se si immette 7 per A e 1 per B stampa 0
---------------------

1) leggi A e B
2) se A>0 vai all'8
3) A <- A*2
4) se A<0 vai all'8
5) A <- A+B
6) stampa A
7) fine
8) A <- B
9) vai al 6

A) stampa sempre il valore iniziale di A piu' quello iniziale di B Stampa sempre B
B) stampa sempre il valore iniziale di A per 2 Stampa sempre B
C) se si immette 2 per B, allora stampa 3 Stampa 2
D) stampa sempre il valore iniziale di A A viene sempre modificato
E) stampa sempre il valore iniziale di B
---------------------

1) leggi A
2) R <- 0
3) se (A % 2) = 1 allora vai al punto 9
4) R <- R * 2
5) A <- A / 2
6) se A > 0 vai al punto 3
7) stampa R
8) fine
9) A <- A - 1
10) R <- R + 1
11) vai al punto 4

Soluzione:




A) se si immette 13 come valore iniziale di A allora stampa 20
B) se si immette 13 come valore iniziale di A allora stampa 22
C) se si immette 13 come valore iniziale di A allora stampa 21
D) se si immette 13 come valore iniziale di A allora stampa 17
E) se si immette 13 come valore iniziale di A allora stampa 13

apatriarca
Mi sembrano corretti, l'esercizio a cui non hai saputo dare una risposta sembra in effetti essere incompleto.. Probabilmente veniva stampato uno tra A e B, ma senza sapere quale dei due non si può dire molto.

SeRe_NeRe92
Grazie infinite!!!! Finalmente sono riuscita a capirci qualcosa! Soltanto una cosa non mi è chiara nell'ultimo esercizio: sarà una domanda banale ma come va inteso %? (13%2 = 1, 12%2=0, 1%2 = 1)

apatriarca
Bhe.. In alcuni linguaggi (tendenzialmente quelli basati sul C), l'operatore % viene usato per indicare il resto della divisione (o il modulo - ci sono leggere differenze tra i due concetti). Quindi 13 % 2 = 1 perché 13 = 6*2 + 1..

SeRe_NeRe92
grazie! da sola non ci sarei mai arrivata!:)

SeRe_NeRe92
Comunque in effetti è incompleto il terzo esercizio, mea culpa, errore di battitura. L'algoritmo termina con stampa A, quindi se non erro la risposta giusta dovrebbe essere la C.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.