SETTIMANA 1 Assegnamento: - rendere in forma di sequenza di istruzioni di assegnamento il seguente semplice algoritmo: "Si assegnino i valori 100 e 150 rispettivamente a due variabili di nome x e y; infine, si assegni a x il suo stesso valore sommato al triplo del valore di y" [ NB: accetto sia l'operatore = che <- ] Costrutto di sequenza: - calcolare l'area di un triangolo equilatero dopo aver letto il valore del lato, supposto intero [NB: parole riservate int, leggi, scrivi] Selezione [ NB: accetto tutti gli operatori di diseguaglianza e caldeggio l'uso di == ]: - calcolare il massimo tra due numeri interi - calcolare la funzione pari(x) = 0 se x è pari, 1 se x è dispari - calcolare la distanza |x-y| tra due numeri relativi x e y, senza disporre dell'operatore di valore assoluto Iterazione: - calcolare il massimo tra n numeri interi - calcolare la funzione mcd(x,y) adoperando l'algoritmo di Euclide - contare i valori pari e quelli dispari in una sequenza di n numeri interi - calcolare la distanza massima tra n numeri relativi compresi tra -2^7 e 2^7-1; Sol (così specifico anche la sintassi del pseudocodice): signed n,m,min,max,dist; leggi n; min = 2^7-1; max = -2^7; QUANDO n > 0 leggi m; SE m > max ALLORA max = m; FINESE SE m < min ALLORA min = m; FINESE n = n-1; RIPETI dist = max-min; scrivi dist; SETTIMANA 2 Rappresentazione in base generica: - Dire se i seguenti numeri hanno senso nelle basi 3, 16, e infine 5: 122, 248, 24531, B7C [risposta: base 3: SI, NO, NO, NO base 5: SI, in generale NO, NO, in generale NO (cioè: dipende dai simboli scelti) base 16: SI, SI, SI, SI] Conversioni da base generica a base 10 - Convertire 386 da base 9 a base 10 - Convertire B7C da base 16 a base 10 - Convertire 0.38 da base 9 a base 10 fino alla quinta cifra significativa - Convertire 0.B7 da base 16 a base 10 fino alla quinta cifra significativa Conversioni da/a base generica - Convertire 386.38 da base 9 a base 16 fino alla quinta cifra significativa - Convertire B7C.B7 da base 16 a base 9 fino alla quinta cifra significativa Algoritmi per la rappresentazione di numeri - Scrivere in linguaggio pseudocodice un programma che estrae le cifre di un numero intero e le stampa, una alla volta, a partire da quella meno significativa (cioè più a destra) - Scrivere in linguaggio pseudocodice un programma che estrae le cifre della parte decimale di un numero intero e le stampa, una alla volta, a partire da quella più significativa (cioè più a sinistra) [SUGG.: eliminare dapprima la parte intera] - Scrivere in linguaggio pseudocodice un programma che, assunto il numero intero in ingresso essere in base 4, lo converte nella base 10 - Scrivere in linguaggio pseudocodice un programma che, assunto il numero intero in ingresso essere in base 10, lo converte nella base 3 - [IMPEGNATIVO] Scrivere in linguaggio pseudocodice un programma che, lette la base di partenza, quella finale, e il numero (non necessariamente intero) da convertire, restituisce il numero convertito nella base finale eventualmente approssimato alla quinta cifra decimale SETTIMANA 3 - avendo 6 bit a disposizione, si diano gli intervalli numerici ottenibili in rappresentazione binaria senza segno, modulo e segno, complemento a uno, complemento a due - si esegua la seguente somma tra numeri in base 6: 544.3 + 401.343 - si esegua la seguente somma tra numeri in base 16: D1C + F401 - è data la seguente rappresentazione in complemento a due a 8 bit: 11010010. Si dica se la quantità rappresentata è positiva o negativa - avendo 8 bit a disposizione, eseguire le seguenti operazioni in rappresentazione binaria modulo e segno e poi in binaria complemento a due, segnalando possibili overflow: 60+40, 60-40, -60+40, -60-40, 100+40, 100-40, -100+40, -100-40 - si dica di quanti bit si deve comporre una locazione di memoria di 512 Gbit