Corso di Laurea Scienze Prof. San. Tec., Area Tecnico-Assistenziale SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Anno Accademico 2005-2006 Prof. Fausto Passariello Corso Integrato Metodologia della Ricerca e Valutazione della Qualità PROGRAMMAZIONE PROGRAMMA = ALGORITMO ALGORITMO Insieme finito di Istruzioni Agente di calcolo Utilità di calcolo (Archivio e Ricerca) Modalità di calcolo per passi discreti Calcolo deterministico 1
ALGORITMO Nessun limite finito a: Dati in ingresso Insieme di istruzioni Capacità di memoria Capacità di calcolo Lunghezza o durata del calcolo AMBIENTE DI PROGRAMMAZIONE INFORMAZIONI PRE-DEFINITE Definizioni di base da includere Librerie di base PROGRAMMI D AMBIENTE Compilatore Linker ELABORAZIONI UTENTE Utilità Istruzioni di Pre-Processore Interfaccia Utente Programma Dichiarazione di Risorse AMBIENTE DI PROGRAMMAZIONE INTERFACCIA UTENTE Linea di Comando IDE (Integrated Development Environment) Make File 2
CICLO DI SVILUPPO DI UN PROGRAMMA Scrittura Compilazione Controllo Recupera Salva Nuova Versione PRODUZIONE DI UN PROGRAMMA Definizioni Istruzioni al compilatore Programma utente Dichiarazione risorse Compilatore Programma oggetto Risorse oggetto Librerie Linker Programma eseguibile Brian W. Kernighan Dennis M. Ritchie Edizione Italiana del 1985 dell edizione originale del 1978 3
5 TIPI DI DATO FONDAMENTALI char int float double void carattere intero virgola mobile doppia precisione senza valore MODIFICATORI DI TIPO signed unsigned long short con segno senza segno lungo corto OPERATORI ARITMETICI + - * / addizione sottrazione moltiplicazione divisione 4
INDICE DI MASSA CORPOREA (BMI) BMI = W -------------- ; H 2 W Peso (Kg) H Altezza (m) ISTRUZIONI DI CONTROLLO If If else if.else switch ISTRUZIONE IF If (expression) statement; else statement; If (expression) statement; else if (expression) statement; else if (expression) statement;..; else statement; 5
ISTRUZIONE SWITCH switch(variabile) { case 0 : break; case 1 : break;. default: break; } ISTRUZIONI DI ITERAZIONE for while do-while ISTRUZIONE FOR for (initialisation; condition; increment) statement; int i; for (i=0; i<10; i++) printf( i=%d\n, i); 6
ISTRUZIONE WHILE while (expression) statement; int i=0; while (i<10) printf( i=%d\n, i++); ISTRUZIONE DO-WHILE do statement; while (expression) int i=0; do printf( i=%d\n, i++); while (i<10) ISTRUZIONI DI SALTO return goto break continue 7
ESTENSIONI DEI FILE.h.c.cpp.o (obj).exe header sorgente c sorgente cpp oggetto eseguibile TASTIERA { } ~ alt 123 alt 125 alt 126 OPERATORI RELAZIONALI > maggiore >= maggiore o uguale < minore <= minore o uguale == uguale!= diverso 8
- C style tipo nome (argomenti) dichiarazione argomenti { istruzioni return } - C++ style tipo nome (dich. argomenti) { istruzioni return } FUNZIONI INCREMENTO O DECREMENTO OPERAZIONE PRE POST INCREMENTO ++i i++ DECREMENTO --i i-- int i=0; // i ==0 i+= 3; // i == 3 i -= 3; // i == 0 ARRAY COLLEZIONE ORDINATA DI OGGETTI DELLO STESSO TIPO esempio: int az[27], c[3]; // tutti interi double se[14]; // tutti double char senzasenso[34]; // tutti char 9
OPERATORI UNARI ~ negazione & indirizzo - meno * contenuto NOTAZIONE & ampersand ( e commerciale) - legge l indirizzo di un oggetto * star (asterisco) - legge il contenuto di un indirizzo PUNTATORI Un puntatore è una variabile che contiene l indirizzo di un altra variabile Se la variabile x ha tipo T e se p è un puntatore a x allora T *p è la dichiarazione di tipo del puntatore 10
DICHIARAZIONI int i[10], *pi, ir&; ARRAY pi = &i[0] ; i[0] = *pi; i[2] = *(pi+2); COMMENTI // commento monolinea C++ style /* commento multilinea C style */ ESERCITAZIONI Uso di un ambiente integrato di sviluppo (IDE) ad esempio C-DEV++ Scrittura, Compilazione, Produzione di un programma eseguibile Hello World! per linea di comando Versioni diverse del calcolo del Body Mass Index (BMI) Valutazione di un analisi di laboratorio rispetto ai limiti normali 11
ARGOMENTI FACOLTATIVI Input e Output su File Strutture Classi: costruttore, distruttore Classi: ereditarietà, incapsulamento Hello World! Su Windows Input e Output su una finestra PROVA PRATICA DI PROGRAMMAZIONE (1) Scrivere un programma che mandi a schermo un messaggio del tipo: Il nostro gruppo si compone di n. studenti. Essi sono: -., anni, -., anni, etc. SUGGERIMENTO: modifica Hello World! PROVA PRATICA DI PROGRAMMAZIONE (2) Scrivere un programma che calcoli e stampi il quadrato dei numeri interi da 1 a 10: Il quadrato di 1 e 1 Il quadrato di 2 e 4.. Il quadrato di 10 e 100 SUGGERIMENTO: usa un ciclo for 12
Sito web del Corso http://web.tiscali.it/afunc/siselin ARGOMENTI NON TRATTATI ISTRUZIONI DI PRE-PROCESSORE # INCLUDE # DEFINE # UNDEF 13
MACRO #define nome(args) esempio: #define square(x) x*x CICLO CONTINUO for (; ;){..} while (true) {..} do{..} while (true); OPERATORI LOGICI && AND OR 14
OPERATORI BITWISE (orientati ai bit) LOGICI SCORRIMENTO (shift) & AND OR << a sinistra >> a destra if(e1) else e2; e3; Shortcut: e1? e2 : e3; IF shortcut (scorciatoia) 15