Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
ESERCIZI INFORMATICA
Tipologia: Esercizi
1 / 11
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!
e-mail: [email protected]
1 Macchina di Turing
e richiesto di costruire una TM , il risultato potra anche essere differente dalla soluzione⇓ A B
STATO INPUT NUOVOSTATO CASELLA OUTPUT 0 A 1 ⇒ B 0 B 1 ⇒ - 1 A 2 - - 1 B 2 - A 2 - - - -
⇓ G G
STATO INPUT NUOVOSTATO CASELLA OUTPUT 0 G 1 ⇒ B 0 B 1 ⇒ - 1 G 2 ⇐ - 1 B 2 ⇒ - 2 G 4 - B 2 B 3 ⇐ - 3 - 4 - G 4 - - - -
la ferma?
STATO INPUT NUOVOSTATO CASELLA OUTPUT 0 x 1 ⇒ o 0 o 0 ⇒ x 1 x 1 ⇒ o 1 o 2 - - 2 - - - -
21 Architettura dei computer
e richiesto di costruire una porzione di assembler, il risultato potra anche essere differente1000 1001
1003 .... 1006 1007 1008 1009 100A 100B 100C
1002
mov $100A R mov 20 R add R2 R mov R1 $
0 400000
820 0 1000
744
10003
343234
80 325 67588567
....
R
R R
PC
CPU
RAM
PS
1000 1001
1003
1002
mov $100A R mov −10 R
0 400000
820 0 1000
744
130
80 325 67588567
1006 ....
mov R3 $100D
100C 100D 100E 100F
100B
100A
add −20 R add R2 R
....
R
R R
PC
CPU
RAM
PS
100F
1011
1010
mov $200F R
0 400000
820 10000 100E
0
130
80 325 4
1012 ....
200C 200D 200E 200F
200B
200A
100E add R2 R
add R2 R
mov R2 $200E
mov R2 $200D
....
R
R R
PC
CPU
RAM
PS
0 0 0 0 0 0 0 0 0 0^ Z
1000 1001
1003
1005 1006 1007 1008 1009 100A 100B
5 1002 add^ R1^ R 0 3 1000
1004
3 4
add −1 R jmpz $
mov R2 $100B
jmp $
....
R
R R
PC PS
CPU
RAM
0 0 0 0 0 0 0 0 0 0^ Z
1000 1001
1003
1005 1006 1007 1008 1009 100A 100B
1002
mov $100A R 10 20 3 1000
1004
3 4
mov 1 R
jmpz $ jmp $ mov R2 $100B
mov R2 R
add −1 R
....
R
R R
PC PS
CPU
RAM
Calcola il contenuto della locazione di RAM 100B
0 0 0 0 0 0 0 0 0 0^ Z
FFF
10 20 3 FFF
mov $100A R 1000 mov 0 R 1001
1003
1005 1006 1007 1008 1009 100A 100B
1002
1004
4
jmpz $ jmp $
mov R2 R add R1 R add −1 R
add −1 R jmpz $ jmp $ mov R3 $100B 3
....
R
R R
PC PS
CPU
RAM
Calcola il contenuto in 100B, sempre nel A.6, nel caso in cui inizialmente 100A contenesse 5
aggiunga 5 alla loro somma, e metta il risultato all’indirizzo 3005
Scrivi un pezzo di assembler che, dati due numeri n e m , che si trovano in RAM agli indirizzi 100A e 100B, calcoli nm , e lo scriva all’indirizzo 100C
def balbluz( s ): ... return s[ 0:2 ] + s ... balbluz( "sai" )
def pari( x ): ... return x == 2 * ( x / 2 ) ... [ pari( 4 ), pari( 3 ) ]
def maschfemm( s ): ... if s[ -1 ] == "o": ... return s[ 0:-1 ] + "a" ... if s[ -1 ] == "a": ... return s[ 0:-1 ] + "o" ... return s ... [ maschfemm( ’Carlo’ ), maschfemm( ’Angela’ ) ]
zione?
map (maschfemm, [ ’caro’, ’amico’, ’bravo’, ’e’, ’bello’ ] )
def somma( n ): ... s = 0 ... while n > 0: ... s = s + n ... n = n - 1 ... return s ... somma( 5 )
Avendo definito la funzione che segue, cosa risponder`a l’inteprete Python nella successiva istruzio- ne?
def conta( c, s ): ... n = 0 ... for l in s: ... if c == l: ... n = n + 1
... return n ...
conta( "b", "basta bere abbondantemente" )
Avendo definito la funzione che segue, cosa risponder`a l’inteprete Python nella successiva istruzio- ne?
def stringl( l ):
balbluz( "sai" ) ## P.11 Avendo definito la funzione che segue, cosa risponder
a l’inteprete Python nella successiva istruzione? >>> def pari( x ): ... return x == 2 * ( x / 2 ) ... >>> [ pari( 4 ), pari( 3 ) ] ## P.12 Avendo definito la funzione che segue, cosa rispondera l’inteprete Python nella successiva istruzione? >>> def maschfemm( s ): ... if s[ -1 ] == "o": ... return s[ 0:-1 ] + "a" ... if s[ -1 ] == "a": ... return s[ 0:-1 ] + "o" ... return s ... >>> [ maschfemm( ’Carlo’ ), maschfemm( ’Angela’ ) ] ## P.13 Avendo definito la funzione dell’esercizio P.12, cosa rispondera l’inteprete Python con questa istru- **zione?** map (maschfemm, [ ’caro’, ’amico’, ’bravo’, ’e’, ’bello’ ] ) ## P.14 Avendo definito la funzione che segue, cosa rispondera l’inteprete Python nella successiva istruzione? >>> def somma( n ): ... s = 0 ... while n > 0: ... s = s + n ... n = n - 1 ... return s ... >>> somma( 5 ) ## P. Avendo definito la funzione che segue, cosa rispondera l’inteprete Python nella successiva istruzio- ne?** >>> def conta( c, s ): ... n = 0 ... for l in s: ... if c == l: ... n = n + 1 ... return n ... >>> conta( "b", "basta bere abbondantemente" ) ## P. **Avendo definito la funzione che segue, cosa rispondera l’inteprete Python nella successiva istruzio- ne? >>> def stringl( l ): ... s = "" ... for w in l: ... s = s + " " + w ... return s ... stringl( [ ’tutto’, ’quello’, ’che’, ’vuoi’ ] )
minile e plurali, ovvero che sia risultati di questo tipo:
iss ( ’bella’ ) ’bellissima’ iss( ’brutti’ ) ’bruttissimi’ iss( ’cattivo’ ) ’cattivissimo’
Scrivi una funzione che produca il vezzeggiativo di un aggettivo dato, tenendo conto di maschi- le, femminile e plurali, tenendo conto della particolarit`a delle vocali finali, ovvero he riesca a dare risultati di questo tipo:
ucc( ’cara’ ) ’caruccia’ ucc( ’freddo’ ) ’fredduccio’ ucc( ’teneri’ ) ’tenerucci’ ucc( ’tiepide’ ) ’tiepiducce’
Riscrivi la funzione somma che effettua lo stesso calcolo di quella all’esercizio P.14, ma usando la ricorsione.
mai
1000 1001 1003 ....
3005
1002 add R2 R mov R1 $
0
820 0 1000
744
10003
3003 343234 3004
mov $3003 R mov $3004 R
R ....
R R
PC
CPU RAM
PS
0 0 0 0 0 0 0 0 0^ Z 0
1000 1001 1003 1005 1006 1007 1008 1009 100A 100B
10 1002 20 3 1000
1004
3 4 100B
mov R3 $100C
jmp $
jmpz $
add −1 R
mul R2 R
mov $100B R mov 1 R
mov $100A R
R ....
R R
PC PS
CPU RAM
def iss( p ): ... return p[ 0 : -1 ] + ’issim’ + p[ -1 ] ...
def ucc( p ): ... if p[ -1 ] in [ ’i’, ’e’ ]: ... return p[ 0 : -1 ] + ’ucc’ + p[ -1 ] ... return p[ 0 : -1 ] + ’ucci’ + p[ -1 ] ...
def somma( n ): ... if n < 1: ... return 0 ... return n + somma( n - 1 ) ... end