Diario delle lezioni
Data | Argomenti trattati | Download |
---|---|---|
Lezione 1 24/09/2008 |
Introduzione
Cos’è un calcolatore Risoluzione di un problema Algoritmo Esempio MCD Cifrario di cesare |
Download |
Lezione 2 26/09/2008 |
Proprietà fondamentali algoritmi
Hardware e software Sistemi operativi Programmi Astrazione Linguaggio di programmazione Compilatore |
Download |
Lezione 3 29/09/2008 |
Linguaggio imperativo, funzionale e ad oggetti
Programma Es.: i blocchi Dal Problema al Programma Es.: somma primi 100 naturali Tracciamento Es.: somma numeri da N ad M Processo risoluzione programma Dati Classi di istruzioni Pseudo codice |
Download |
Lezione 4 01/10/2008 |
Istruzioni di lettura e scrittura
Istruzioni di assegnazione Istruzioni composta Istruzioni condizionali Istruzioni di controllo Livelli di rappresentazione Ciclo di vita di un programma Storia del linguaggio C |
Download |
Esercitazione 1 01/10/2008 |
Ambiente di sviluppo
Stampa di una linea di testo Variabile Assegnamento Area di un rettangolo |
Download |
Lezione 5 03/10/2008 |
Salve mondo
Le funzioni printf, include, scanf Com’è fatto un programma in C Quadrato di un numero Somma di due numeri Tipi di dati Rappresentazione in memoria Tavola ASCII |
Download |
Lezione 6 6/10/2008 |
Errori frequenti
Soluzione esercizi del laboratorio Il tipo di dato reale Espressioni Operatori matematici Esercizi vari |
Download |
Lezione 7 08/10/2008 |
Operatori di uguaglianza e relazionali
Priorità degli operatori Teorema di Bohm-Jacopini Strutture di selezione Esercizi vari |
Download |
Esercitazione 2 08/10/2008 |
Istruzioni di I/O
Operatori relazionali Istruzioni if – else Ramificazione del flusso Esercizi |
Download |
Lezione 8 10/10/2008 |
Soluzione esercizi
Scambio di due variabili Es.: individuare il tipo di un triangolo Strutture di selezione Esercizi vari |
Download |
Lezione 9 13/10/2008 |
Operatori logici
Esercizi sugli operatori logici IF equivalenti Ricerca del MIN e MAX di una sequenza di numeri Il calcolatore di Von Neumann: unità di I/O, Memoria, CPU Cenni sulla rappresentazione delle informazioni Informazioni rappresentabili Esempi di rappresentazioni Calcolatore elettronico: sottoinsiemi funzionali Struttura di Von Neumann Memoria principale Interazione CPU-Memoria principale Struttura della CPU Esecuzione delle istruzioni: fetch. decode, execute Linguaggi macchina Dispositivi di I/O Memoria secondaria KByte, MByte, GByte, … |
Download |
Lezione 10 20/10/2008 |
Interazione tra le unità
Sistemi operativi Struttura del bus Programmazione dei calcolatori Linguaggi assemblativi Assembler CPU didattica: somma di due numeri Linguaggi ad alto livello Compilatori |
Download |
Lezione 11 20/10/2008 |
Linguaggio macchina elementare
Istruzioni di trasferimento, aritmetiche di I/O e di salto e salto condizionato Esempio di programma Codici delle operazioni Allocazione in memoria di programma e dati Svantaggi del linguaggio assembler Novità dell’assembler codice-op mnemonici Le etichette Es. somma di due numeri con confronto finale |
Download |
Lezione 12 22/10/2008 |
Es. potenza di un numero
Cenni sulla complessità (approfonditi in seguito) Comportamento della CPU nell’interpretazione dell’assembler La SWITCH Due possibili espressioni per la switch Es. calcolare il giorno dopo di una determinata data considerando anche gli anni bisestili La FUNCTION Concetto di modulo di un programma Funzioni in C Es. cubo di un numero Prototipo Definizione Chiamata |
Download |
Esercitazione 3 22/10/2008 |
Es. coordinate rettangolo
I commenti in C Strutture di controllo IF e ? SWITCH While do-While FOR break e continue |
Download |
Lezione 13 27-29/10/2008 |
Prototipo, definizione, chiamata
Programma con funzioni Passaggio di argomenti Variabili locali Es.: funzioni in un programma Librerie matematiche Funzioni come scatole nere Le funzioni nel DevCpp Es. 1: min e max di 3 numeri Es. 2: semplice calcolatrice Es. 3: somma tra frazioni |
Download |
Esercitazione 4 29/10/2008 |
Array
Matrici Successione di Fibonacci Funzioni |
Download |
Lezione 14 31/10/2008 |
Rappresentazione dell’informazione
Analogico vs Digitale Rappresentazione ed interpretazione Valori numerici: numeri e numerali BIT Multipli del BIT Numeri a precisione finita Sistema di numerazione posizionale Notazione Esempi vari Numerazione binaria Conversione fra basi Conversione da base 10 a base B Algoritmo di conversione decimale -> binario Esempi Conversione fra basi: — Binario -> Ottale — Esadecimale -> Binario — Decimale -> Binario (generico) — Decimale -> Binario (solo per interi) — Binario -> Decimale (2 metodi) — Altri Esempi ed esercizi |
Download |
Lezione 15 03/11/2008 |
Rappresentazione dei caratteri
Codice ASCII Tipo char in C La rappresentazione dei numeri negativi Modulo e segno Complemento a 2 Complemento alla base di un numero Rappresentazione in complemento alla base Utilità del complemento alla base La rappresentazione in virgola fissa dei numeri razionali Problema dell’overflow Problema dello spreco di memoria Rappresentazione in virgola mobile Mantissa ed esponente Notazione scientifica normalizzata Problemi con l’uso della virgola mobile Cause principali di errore nel calcolo in virgola mobile Come ridurre l’overflow e l’underflow Proprietà aritmetiche in virgola mobile Somma in virgola mobile Operazioni binarie Istruzione for Esempi ed esercizi |
Download |
Lezione 16 05/11/2008 |
Istruzione for (continua)
Calcolo del fattoriale Stampa dei pari Piramide di asterischi Do While Operatori unari di decremento e decremento Operatori di assegnazione composta Espressioni con side-effect ed istruzioni Iterazione definita Errore nelle iterazioni Iterazione indefinita Min e Max Esempi ed esercizi |
Download |
Esercitazione 5 04/11/2008 |
Fattoriale di un numero
Esercizi vari sui caratteri Trasformazione da decimale a binario Piramide di asterischi Esercizi vari sulle for |
Download |
Esercitazione 3 19/10/2008 |
Installazione DevCpp
Il mistero delle {} System (“Pause”) Printf e Scanf if Esercizi vari |
Download |
Lezione 17 07/11/2008 |
Qualificatori di tipo
Tipi di dato primitivi Tipo :: short int Tipo :: int Tipo :: long int Tipo :: unsigned short int Tipo :: short Tipo :: unsigned long int Tipo :: byte Tipo :: float Tipo :: double Specifiche di conversione per tipi interi Operandi interi Tipo di una costante Operandi aritmetici per interi Operatori di assegnamento Conversione di tipo Espressioni che coinvolgono tipi di dato primitivi numerici diversi Assegnazioni fra tipi di dato primitivi numerici diversi Esempi ed esercizi |
Download |
Lezione 18 10/11/2008 |
Conversione esplicita :: il cast
Operatori logici Tabelle di verità Variabili e parametri Variabili globali Variabili e memoria Indirizzo Numero di byte occupati Il tipo puntatore Operatore indirizzo Dichiarazione e uso di puntatori Operatore di indirezione * Esempi ed esercizi |
parte 1 puntatori |
Esercitazione 6 12/11/2008 |
Serie di Taylor
Conta vocali Somma numeri da 1 a N Stampa i dispari e i pari Rettangolo di caratteri Trasforma da maiuscolo in minuscolo e viceversa Calcolo della media Sotto sequenza di 0 più lunga Verifica che un numero sia primo |
Download |
Lezione 19 17/11/2008 |
Il Debugger
Esecuzione da cursore Breakpoint Ispezione delle variabili getchar() Break Return Exit Soluzione per raffinamenti successivi Struttura di un programma C Funzione Unità chiamante e chiamata Parametri formali e attuali Associazione tra parametri formali e attuali Prototipo, definizione, chiamata Definizione di una funzione :: tipo di ritorno, lista di parametri, variabili locali, istruzioni Coercizione degli argomenti Esempi ed esercizi |
parte 1 parte 2 |
Lezione 20 19/11/2008 |
Legame per valore
Legame per riferimento Legami per riferimento e valore in C Blocchi Caratteristica delle variabili Tipo Valore Ciclo di vita Campo d’azione Regole di visibilità Formattazione dell’output Visualizzazione interi Visualizzazione numeri in virgola mobile Visualizzazione stringhe e caratteri Altri operatori di formattazione Visualizzare con le dimensioni di campo e la precisione Specifiche di precisione Array Inizializzazione Array Stampa degli Array Esempi ed esercizi |
Download |
Esercitazione 7 19/11/2008 |
Lunghezza sequenza
Conta spazi Conta a/A in una stringa di 50 caratteri Conta quanti voti A, B, C, D Indovina il numero |
Download |
Lezione 21 21 e 24/11/2008 |
Min e suo indice di un Array
Ricerca indice di un valore Area del rettangolo di punti P1, P2, P3, P4 Verifica della palindromia di una stringa Trova le posizioni di un numero in un Array e trasferiscine gli indici in un altro array Esercizi per casa |
Download |
Lezione 22 26-28/11/2008 |
Puntatori e Array
Modi alternativi per accedere agli elementi degli Array Memorizzazione degli Array in memoria Passare gli Array alle funzioni Esercizio del DNA Chiamata per indirizzo Esercizi per casa |
Download |
Esercitazione 8 26/11/2008 |
Esercizi vari presi dalla lezione 22 | Download |
Lezione 23 01/12/2008 |
Scambio di due variabili passate per indirizzo
Caricamento di un Array Es.: calcolo delle frequenze dei voti di una classe Es.: Array passati per riferimento, elementi passati per valore Qualificatore const Array Multidimensionali Inizializzazione Array bidimensionali e puntatori Array multidimensionale come argomento di funzione Memorizzazione di una matrice leggendo i dati da un file Esercizi per casa |
Download |
Lezione 24 03/12/2008 |
Le stringhe
-Memorizzazione -Inizializzazione -Lettura e scrittura Es.: conta parole Rappresentazione di dati eterogenei Strutture -Memorizzazione -Accesso ai campi Composizione di una strutturahttp://www.raffaele.nicolussi.name/LaboratorioInformatica-IngClinica/wp-admin/page.php?action=edit&post=139&_wp_original_http_referer=http%3A%2F%2Fw3.uniroma1.it%2FIngClinFondinf%2Fwp-admin%2Fedit-pages.php&message=1 Accesso diretto Accesso indiretto tramite puntatore Modi alternativi di definire una struttura typedef Inizializzazione Esercizi per casa |
Download |
Esercitazione 9 03/12/2008 |
Calcolo della frequenza dei voti di una classe di studenti
Calcolo dei valori della media, minimo e massimo dei voti di una classe di studenti Esercizi vari sulle matrici |
Download |
Lezione 25 05/12/2008 |
Nomi dei campi
Es.: trovare i contribuenti aventi una età compresa in un certo intervallo Utilizzo di strutture con funzioni Strutture nidificate Generazione di numeri casuali: rand, srand e time Esercizi per casa |
Download |
Lezione 26 10/12/2008 |
Esercizio Cripta
Esercizio Filtra I/O in C Stream File printf / frprintf – scanf / fscanf a confronto Descrittore di file Connessione Modalità d’uso Chiusura della connessione Eccezioni EOF Esempi Esercizi per casa |
parte 1 |
Esercitazione 10 10/12/2008 |
Esercizi vari sulle matrici
Esercizi su file |
Download |
Lezione 27 12/12/2008 |
Modalità di accesso ai file
I/O su stdin e stdout Gestione dinamica della memoria malloc, calloc, free Funzioni della libreria standard di Input : getchar, gets, getc, fgetc, fgets, scanf, fscanf, sscanf Funzioni della libreria standard di Output : putchar, puts, putc, fputc, fputs, printf, fprintf Libreria di gestione dei caratteri : isdigit, isalpha, isalnum, isxdigit, islower, isupper, tolower, toupper, isspace, iscntrl, ispunct, isprint, isgraph Funzioni per la conversione delle stringhe : atof, atoi, atol, strtod, strtol, strtoul Funzioni per la manipolazione delle stringhe : strcpy, strncpy, strcat, strncat, strcmp, strncmp Esercizio :: playlist Esercizi ed esempi |
Download |
Lezione 28 15/12/2008 |
Teoria della complessità
Misurazione delle risorse Determinazione della complessità Ipotesi esemplificativa Complessità in tempo, in spazio e asintotica Complessità del caso peggiore, medio e ottimo Notazioni: O, sigma e teta Esempi e proprietà Classi principali: costante, sottolineari, nlogn, polinomiali, esponenziali Esempio: ordinare un array Esempio: Selection Sort Calcolo dell complessità del Selection Sort |
Download |
Lezione 29 17/12/2008 |
Algoritmi di ricerca
Ricerca Sequenziale Ricerca Binaria Calcolo e confronto delle complessità Algoritmi di ordinamento Selection Sort Complessità del Selection Sort Bubble Sort Bubble Sort ottimizzato Complessità del Bubble Sort Esercizi per casa |
parte 1 parte 2 |
Esercitazione 11 17/12/2008 |
Prova d’esame | Download |
Lezione 30 19/12/2008 |
Soluzione e spiegazione dell’esercitazione | Scarica lo ZIP |
Esercitazione 12 13/01/2009 |
Prova d’esame | Download |
Esercitazione 13 23/01/2009 |
Prova d’esame | Download |