Info su esoneri, esami e verbalizzazioni
- Come detto a lezione, data la distanza dalla fine del corso,
gli 'esoneri' verteranno sull'intero programma
e saranno quindi de facto delle vere e proprie prove d'esame.
- Chi ottiene un voto sufficiente (e del quale si accontenta,
ricordando che chi si accontenta gode...) ha bello che superato
l'esame.
- Chi non ce la dovesse fare il 7 gennaio, o volesse migliorare
il voto, può ritentare il 14.
(Così pure, chi per motivi vari non può il 7 può provare
direttamente il 14.)
- Gli 'esoneri' si terranno dell'Aula 17 di Via Tiburtina,
con le modalità sperimentate nella 'prova' del 10 dicembre(*)
con inizio alle ore 8:30.
- Tutti gli studenti hanno diritto a partecipare, ma essendo
queste delle possibilità al di fuori del calendario ufficiali
degli esami, sarà data priorità a coloro che hanno partecipato alla
'prova' di dicembre.
In particolare,
- prenotarsi mediante
mail al docente, con subject
LabC: prenotazione esonero 7 gennaio (e simile per il 14);
- nel caso (estremamente improbabile) che si dovesse superare
la capienza dell'aula la priorità sarà data
- a chi ha partecipato alla 'prova' del 10 dicembre
(indipendentemente dall'esito e anche nel caso di ritiro);
- agli altri in ordine di arrivo delle prenotazioni.
- Per motivi burocratici, le verbalizzazioni potranno essere
effettuate soltanto nelle date ufficiali degli esami,
come da Infostud. (Ulteriori dettagli seguiranno.)
(*) L'eventuale bonus della 'prova'
di dicembre sarà attribuito contestualmente al voto degli 'esoneri'.
Curiosità dell'aritmetica modulare,
mostrate direttamente con i seguenti comandi R (il link
è solo per chi vuole approfondire privatamente; ai fini del corso
le righe che seguono sono più che sufficienti):
- ( m = 21 )
- ( n = 1:m - 1 )
- (n + 2) %% m
- (n + 10) %% m
- (n + m) %% m
- ( nr = (n + 7) %% m )
- (nr - 7) %% m
- (nr - 9) %% m
Possiamo applicare queste proprietà per implementare
il famoso cifrario di Cesare, seppure, per semplicità,
con le 26 lettere dell'alfabeto
inglese invece che con le 21 di quello latino:
- letters[ ( (0:25) + 3 ) %% 25 + 1]
Ecco quindi dei problemi in C
- Si inizializzi un vettore di interi con i 26 valori
da 0 a 25; si scriva quindi una function del tipo
- void ciclaI (int n, int v[n], int pos)
che ruoti ciclicamente i valori di 'pos' posizioni
(anche negative).
- Si scriva una function che,
dato un carattere indicante una lettera dell'alfabeto
(minuscola o maiuscola: si metta un controllo al fine
di non agire su altri codici ascii), la ruoti ciclicamente
di 'pos' posizioni (pos=3 corrisponde al cifrario di Cesare;
pos=-3 alla sua decodifica).
Primitiva:
- char cifrarioC (char c, int pos)
- Si scriva quindi un programma che legga da riga di comando
(ovvero facendo uso di argv) un carattere che indichi se si vuol
fare la codifica ('c') o la decodifica ('d') seguito
dalle parole da criptare/decriptare, ad esempio
- ./cesare c veni vidi vici
→ il programma stampa quindi le parole codificate,
in maiuscolo e senza spazi.
(Alternativamente, al posto di 'c' o 'd', si può
mettere un intero che indichi di quante posizioni ruotare le
lettere)
Torna alla pagina del corso