[Algoritmi] mi serve aiuto con questi algoritmi
Ciao a tutti!
Sono alle prime armi con gli algoritmi e non riesco a capire questi quesiti a risposta multipla
(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
Sono alle prime armi con gli algoritmi e non riesco a capire questi quesiti a risposta multipla


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
Qualche idea?
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
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
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.
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)
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..
grazie! da sola non ci sarei mai arrivata!:)
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.