Introduzione al C. Esercitazione 1. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria Clinica

Documenti analoghi
Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

C O P Y R I G H T ( C ) W W W. F O N D A M E N T I. I N F O

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Tipi di dato. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Switch. Unità 3. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Le funzioni, e le istruzioni di input/output

Istruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi

Il compilatore Dev-C++

Informatica Applicata Laboratorio 1. Ing. Antonella Dimasi

Input/Output di numeri

LIBRERIE STANDARD in C. LIBRERIE STANDARD in C

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C: introduzione

Alcuni esercizi. 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli

Linguaggio C: Introduzione ad ambienti di sviluppo integrati (IDE) e a Dev-C++ Università degli Studi di Brescia

Le librerie standard. ! La libreria standard del C è in realtà un insieme di librerie

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Introduzione a. Funzioni di Ingresso e Uscita. Compilazione

Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media.

Input/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari

Struttura dei programmi C

Scrittura formattata - printf

INTRODUZIONE ALLA PROGRAMMAZIONE

Stringhe Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

IL PRIMO PROGRAMMA IN C

Introduzione al C. Esercitazione 6. Raffaele Nicolussi. Corso di Fondamenti di Informatica Ingegneria Clinica

Puntatori. Unità 6. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Approfondimento : printf

Istruzioni di ciclo. Unità 4. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Programmazione di base

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi

Laboratorio di Programmazione: Linguaggio C Lezione 21 del 19 maggio 2014

Espressione di chiamata di funzione

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010

ESEMPIO: le variabili LETTURA/SCRITTURA DI VARIABILI. Specifica Leggere da tastiera un intero, un carattere, un float e un double. Stamparli a video.

Introduzione a Visual Studio 2005

Linguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin

Esercizi Array. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Header. Unità 9. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 04 Input/Output

PER UTILIZZARE LCC IN LAB

Esercizi Array Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Funzioni di I/O per numeri. Input e output di valori numerici. Input formattato scanf. Stream preesistenti

Introduzione al Linguaggio C ed all IDE DEV-C++

Lezione 6 Introduzione al C++ Mauro Piccolo

Controllo del flusso di esecuzione Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

IDE DevC

Operazioni sulle stringhe Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Esercitazione 4. Comandi iterativi for, while, do-while

giapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL

Array. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Impianti di Elaborazione (allievi Gestionali)

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

La programmazione in linguaggio C

PROGRAMMAZIONE: ESERCITAZIONE N. 6

Il linguaggio C Il linguaggio C. Caratteristiche del C. Caratteristiche del C. Linguaggi di Programmazione I. Ferdinando Cicalese

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it

Variabili e Istruzioni

Primi passi col linguaggio C

Corso di Informatica 1 Esercitazione n. 4

Fondamenti di Informatica L-A

Linguaggio C Informatica Grafica

Esercizio 1 - cicli. Esercizio 1 cicli - Soluzione

Fondamenti di Informatica T-1 Modulo 2

1 PANORAMICA SUL LINGUAGGIO C

Laboratorio di informatica Ingegneria Clinica. Esercitazione 2 10 Ottobre 2011

Tipi di dato semplici

Linguaggio C Struttura dei programmi

Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Perché il linguaggio C?

INTRODUZIONE. ALLA PROGRAMMAZIONEColonna 1. in linguaggio C

Esercitazione 3. Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf

Esercizi di programmazione in C

Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto.

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Introduzione al linguaggio C

Algoritmi e basi del C Struttura di un programma

INFORMATICA. Strutture iterative

Unità 3 Istruzioni condizionali

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola.

Introduzione al DEV C++

SOLUZIONE ESERCIZIO 1

Gli Operatori. Università degli Studi di Brescia

Programmazione I - Laboratorio

Compendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica)

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Caratteri e stringhe

ISTRUZIONI DI ITERAZIONE

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Puntatori. Unità 6. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Passaggio parametri puntatore Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Informatica e elementi di informatica medica. Laboratori del 26 e del 29 Marzo 2010

Programmazione di base

Le basi del linguaggio Java

Esercizi. La funzione swapint() primo tentativo

Transcript:

Corso di Fondamenti di Informatica Ingegneria Clinica Domenico Daniele Bloisi

Informazioni Generali ing. Domenico Daniele Bloisi Dipartimento di Informatica e Sistemistica Stanza B213, secondo piano Via Ariosto 25 (adiacente Piazza Dante, Vittorio Emanuele, Tram 3 fermata via Labicana) mailto:bloisi@dis.uniroma1.it http://www.dis.uniroma1.it/~bloisi Pagina 2

Ricevimento Martedì 15.15-17.15 Giovedì 15.45-17.45 Via Ariosto 25, Stanza B213 Si consiglia di inviare una e-mail per conferma mailto:bloisi@dis.uniroma1.it Pagina 3

Perché il C? Il C è un linguaggio professionale ampiamente utilizzato per varie ragioni: ha strutture di alto livello può maneggiare attività di basso livello produce programmi efficienti Pagina 4

Perché C? UNIX developed (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti di sviluppo prodotti a partire da BCPL. Si tratta di un assemblatore noioso, lungo ed incline agli errori Un nuovo linguaggio "B" come secondo tentativo nel 1970 Un linguaggio "C" totalmente nuovo come successore di "B" nel 1971 Dal 1973 UNIX OS, quasi totalmente scritto in C Pagina 5

C come cautela Il suo principale inconveniente e' quello di avere un metodo scadente per l'identificazione di errori, che può escluderne l'utilizzo ai principianti. Comunque con un minimo di diligenza si può risolvere elegantemente questo problema, in quanto si possono violare le regole del C non appena si sono imparate (non molti linguaggi lo permettono). Nel caso in cui venga fatto correttamente e con attenzione, questo porta a sfruttare le potenzialità della programmazione C. Pagina 6

Iniziamo a programmare Cosa occorre: Carta e Penna Un Editor di Testo Un compilatore Ambiente di Sviluppo Integrato IDE Pagina 7

Ambiente di Sviluppo DevC++ reperibile @ http://www.bloodshed.net/dev/devcpp.html Pagina 8

Ambiente di Sviluppo (2) Nel caso in cui il download non sia automatico Pagina 9

Procedura di installazione Il file di installazione è devcpp-4.9.9.2_setup.exe Si tratta dell ultima release (beta) Passo 1: doppio click su devcpp-4.9.9.2_setup.exe Scegliere Esegui Pagina 10

Procedura di installazione (2) Passo 2: cliccare su OK Passo 3: scegliere italiano Passo 4: selezionare Accetto Pagina 11

Procedura di installazione (3) Passo 5: cliccare su Avanti Passo 6: cliccare su Installa Pagina 12

Procedura di installazione (4) Passo 7: cliccare su Si Passo 9: cliccare su Fine L installazione è terminata Pagina 13

First time Configuration Passo 1: Cliccare su OK Passo 2: Scegliere Italian e Use XP Theme Cliccare su Next Pagina 14

First time Configuration (2) Passo 3: Cliccare su Next Pagina 15

First time Configuration (3) Passo 4: Cliccare su Next Pagina 16

First time Configuration (4) Passo 5: Cliccare su Ok Ora è tutto pronto per iniziare Pagina 17

Creazione Nuovo Progetto Click su File Pagina 18

Nuovo Progetto Nuovo Progetto Pagina 19

Nuovo Progetto (2) 1. Selezionare Empty Project 2. Selezionare C e Linguaggio Predefinito. Scegliere un nome 4. Cliccare su OK Pagina 20

Nuovo Progetto (3) Scegliere Salva Pagina 21

Nuovo Progetto (4) Pagina 22

Nuovo File Sorgente File Nuovo File Sorgente Pagina 23

Nuovo File Sorgente (2) Scegliere Yes Pagina 24

Nuovo File Sorgente (3) Dev-C++ crea un nuovo file denominato SenzaTitolo Si scriva il programma e si scelga salva (Menu File Salva) Pagina 25

Nuovo File Sorgente (4) Importante, il file sorgente deve avere estensione.c il nome scelto è provasorgente.c Scegliere Salva Pagina 26

Nuovo File Sorgente (5) Per compilare Se la compilazione ha successo Pagina 27

Primo programma con Dev-C++ Per compilare Per eseguire Pagina 28

Problemi pratici (tastiera italiana) Come si scrive la graffa aperta ( { )? Alt + 123 oppure AltGr + Shift + è oppure Fn + Alt + 123 (per i portatili) Come si scrive la graffa chiusa ( })? Alt + 125 oppure AltGr + Shift + + oppure Fn + Alt + 125 (per i portatili) Pagina 29

Problemi pratici Perché se clicco su esegui in Dev-C++ non vedo l output o meglio appare e scompare immediatamente dopo? Perché il programma termina immediatamente dopo aver eseguito le istruzioni in esso contenute. Per visualizzare l output aggiungere come ultima istruzione system( PAUSE ); (N.B. va inserita all inizio del file sorgente la riga #include <stdlib.h>) Nel caso in cui ciò non dovesse funzionare, è possibile eseguire il programma direttamente da prompt di DOS, eseguendo il file <nomeprogetto>.exe creato da Dev-C++ in fase di compilazione Pagina 30

La funzione printf L istruzione printf è una funzione C che visualizza ciò che viene passato come argomento ad essa Fa parte della libreria stdio.h int printf(char *format, args ) Ritorna il numero di caratteri stampati Pagina 31

Argomenti di printf (char *format) I formati possibili sono: %c per il singolo carattere %d per numeri decimali %o per numeri ottali %x per numeri esadecimali %u per unsigned int %f per float o double %s per stringhe %e per formato scientifico Tra % e la lettera si può inserire un segno meno che significa giustificazione a sinistra, un numero intero che dà l'ampiezza del campo che può essere seguito da un punto e da un altro intero che da il numero di cifre decimali o il numero di caratteri per una stringa. Pagina 32

Esempio d uso per printf dà come risultato: 1^ volta con il C 123.9877 #include <stdio.h> #include <stdlib.h> main() { int x = 1; printf( %d^ volta con il C\n, x); printf( %3.4f\n",123.987654); system( PAUSE ); } Pagina 33

Alcune sequenze di escape \ \ \? \\ \a (alarm) \n (new line) \t (tab) La lista completa sul libro di testo alla voce: sequenze di escape Pagina 34

Esempio d uso per printf (2) #include <stdio.h> #include <stdlib.h> main() { int y; y = printf( seconda volta con il C\n ); printf( y = %d\n", y); system( PAUSE ); } dà come risultato: seconda volta con il C y = 23 Pagina 35

La funzione scanf La funzione che permette l'input di un elenco di variabili e': int scanf(char *format, args...) che legge dallo standard input e assegna all'elenco di variabili i valori letti. Ritorna il numero di caratteri letti. NB. E' richiesto l'indirizzo della variabile o un puntatore. Pagina 36

Esempio d uso per scanf #include <stdio.h> #include <stdlib.h> main() { printf( inserisci un intero:\n ); int x; ATTENZIONE alla & scanf( %d", &x); printf( Ho letto %d\n, x); system( PAUSE ); } Se inserisco una lettera ottengo comunque un intero (che è la codifica di quella lettera) Pagina 37

Esempio d uso per scanf (2) #include <stdio.h> #include <stdlib.h> main() { printf( inserisci una stringa:\n ); char string[80]; ATTENZIONE niente & scanf( %s", string); printf( Ho letto %s\n, string); system( PAUSE ); } Pagina 38

Esercizio Realizzare un programma C che sia in grado di richiedere all utente Nome Cognome Età Per poi stampare a video le risposte Pagina 39

Soluzione Esercizio #include <stdio.h> #include <stdlib.h> main() { printf("\tsalve\n\n\n"); printf("inserisci il tuo nome:\n"); char string_nome[80]; scanf("%s", string_nome); printf("inserisci il tuo cognome:\n"); char string_cognome[80]; scanf("%s", string_cognome); printf("inserisci la tua eta':\n"); int int_eta; scanf("%d", &int_eta); printf("nome: %s COGNOME: %s ETA\': %d\n", string_nome, string_cognome, int_eta); system("pause"); } Pagina 40

scanf va usata con attenzione #include <stdlib.h> #include <stdio.h> main() { } printf( inserisci una stringa:\n ); char string[8]; ATTENZIONE i caratteri sono solo 8 scanf("%s", string); printf( Ho letto %s\n, string); system( PAUSE ); E se la stringa che l utente inserisce è > 8 caratteri? Pagina 41

scanf va usata con attenzione (2) E se la stringa che l utente inserisce è > 8 caratteri? Risposta: il comportamento non è prevedibile BUFFER OVERFLOW Pagina 42

L istruzione if L'istruzione if può avere tre forme di base: if (expression) statement if (expression) statement1 else statement2 if (expression1) statement1 else if (expression2) statement2 else statement3 Le parentesi graffe non sono obbligatorie in caso di una sola istruzione dopo l if. Altrimenti (due o più operazioni) sono obbligatorie. E consigliabile utilizzarle sempre per aumentare la leggibilità del codice Pagina 43

Operatori relazionali, di uguaglianza e logici I seguenti simboli possono essere utilizzati all interno delle parentesi tonde dell if > < >= <= ==!= &&! Nota bene: dopo l if NON va mai il punto e virgola Pagina 44

Esempio d uso per l istruzione if #include <stdio.h> #include <stdlib.h> main() { printf("inserisci la tua eta':\n"); int int_eta; scanf("%d", &int_eta); if (int_eta >= 18) printf("sei maggiorenne\n"); else if (int_eta < 18 && int_eta >= 0) printf("sei minorenne\n"); else{ printf( Errore\n ); printf( valore negativo\n ); } system("pause"); } Pagina 45

Esercizio Scrivere un programma che studi le soluzioni dell equazione di secondo grado Pagina 46

Soluzione #include <stdio.h> #include <stdlib.h> main() { printf("programma per la soluzione di ax^2+bx+c\n\n"); printf("inserisci a:\n"); int int_a; scanf("%d", &int_a); printf("inserisci b:\n"); int int_b; scanf("%d", &int_b); printf("inserisci c:\n"); int int_c; scanf("%d", &int_c); int delta = int_b*int_b - 4*int_a*int_c; if(delta > 0) printf("le radici sono reali e distinte\n"); else if(delta == 0) printf("le radici sono reali e coincidenti\n"); else printf("le radici sono immaginarie\n"); system("pause"); } Pagina 47

Esercizio Scrivere un programma che data in ingresso una data in formato giorno mese anno stampi il giorno successivo Esempio Se l input è: 1 2 2007 il programma stampa: 2 2 2007 Pagina 48