Parte Input e output in linguaggio i C. 3. Programmazione strutturata 1 (if, switch, comunque segnalare dei warning

Documenti analoghi
Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2

Lab 04 (parte A) Programmazione Strutturata

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

Lab 04 Programmazione Strutturata"

Fondamenti di Informatica T1. Lab 03 Istruzioni. Lab03 1

Esercizio 1" input tre numeri interi e stampi a video la loro somma e la media. n Realizzare un programma che legga da. Lab03 2

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

Lab 03 Istruzioni Prima Parte"

Struttura di un. Struttura dei programmi C

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

2 Operatori matematici e costrutto if

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

do { printf("inserisci due numeri reali:"); scanf("%f %f", &a, &b);

Fondamenti di Informatica. Ingegneria elettronica

do { printf("inserisci due numeri reali:"); scanf("%f %f", &a, &b); while(b!=0 && a/b<0);

Lab 04 Istruzioni, cicli e array"

Linguaggio C Informatica Grafica

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

Introduzione alla programmazione in linguaggio C

Nuovi tipi di dato e. Alessandra Giordani Lunedì 26 marzo

Fondamenti di Informatica L-A. Esercitazione 2

ciclo di vita della soluzione (informatica) di un problema

Fondamenti di Informatica L-A

Dati due punti sul piano calcolare la loro distanza

Laboratorio di Informatica I

Esercizio 1. Esercizio 1 - Soluzione

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Laboratorio. Due. 1) Switch 2) Costrutti Iterazione (For, While, do while)

Algoritmi e basi del C

INFORMATICA. Strutture iterative

Linguaggio C: introduzione

Perché il linguaggio C?

IL COSTRUTTO ITERAZIONE 2

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

Fondamenti di Informatica T1. Lab 03 Istruzioni. Lab03 1

I cicli. Iterazioni Calcolo della media Istruzioni break e continue

IEIM Esercitazione II Elementi di programmazione C. Alessandro A. Nacci -

Laboratorio di Informatica I

Fondamenti di Informatica e Laboratorio T-AB e Fondamenti di Informatica T1 Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione

Fondamenti di Informatica L-A. Esercitazione 3

Strutture di Controllo

Strutture di Controllo Iterative: Istruzioni While e Do

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

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi

I costrutti del C. Strutture condizionali Strutture iterative Introduzione alle funzioni

VT = { +, -, *, /, (, ), 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 } VN = {<E>, <T>, <F>, <num>, <cifra>, <cifra-non-nulla> }

Introduzione al linguaggio C Primi programmi

1

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

STRUTTURE DI CONTROLLO IN C. Docente: Giorgio Giacinto AA 2009/2010

Fondamenti di Informatica T-1 Modulo 2

Esercizi Programmazione I

Algoritmi e basi del C Struttura di un programma

ciclo di vita della soluzione (informatica) d un problema

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

INFORMATICA. Strutture condizionali

Cominciamo ad analizzare la rappresentazione delle informazioni... di Cassino. C. De Stefano Corso di Fondamenti di Informatica Università degli Studi

Char. Unità 2. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Istruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Algoritmi e basi del C Struttura di un programma

Controllo del flusso

Primi programmi in C

- Dispensa III - PROGRAMMAZIONE C (Parte I)

Informatica 2 modulo C Massimo Callisto De Donato

Introduzione al C. InformaticaB. Daniele Loiacono

Esercizio 1. Esercizio 2

IL COSTRUTTO ITERAZIONE

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Primi passi col linguaggio C

Fondamenti di Informatica T-1 Modulo 2

Introduzione al C. Lez. 1 Elementi. Rossano Venturini

Struttura di un linguaggio

Esercizi Programmazione I

Programmazione di base

L assegnamento. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time

Il C nel C++ Struttura di un linguaggio. Elementi lessicali. Spazi. Livello lessicale: Livello sintattico: Livello semantico:

Passaggio dei parametri

Perché il linguaggio C?

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.

Char. Parte 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

ITI M. FARADAY. Programmazione a. s

Dichiarazioni e tipi predefiniti nel linguaggio C

RICORSIONE, PUNTATORI E ARRAY. Quarto Laboratorio

LEZIONE 1 LE BASI DEL LINGUAGGIO C

Università degli Studi di Ferrara

Introduzione al C. Lez. 1 Elementi. Rossano Venturini

Stringhe. In C le stringhe ben formate sono in realtà array di caratteri terminati sempre da un carattere speciale, \0, detto anche

Transcript:

Obiettivi di questa esercitazione Fondamenti di Informatica T-1 Parte 2 Laboratorio 01 1. Input e output in linguaggio i C 2. Espressioni 3. Programmazione strutturata 1 (if, switch, do while) 1 2 Warning vs Errors (1) Il risultato del processo di compilazione i è: se il programma è sintatticamente corretto un file oggetto, pronto per essere sottoposto alla fase di linking altrimenti la notifica di una serie di errori In entrambi i casi, il compilatore può comunque segnalare dei warning Potenziali sorgenti di errori a run-time o di comportamenti non voluti 3 Warning vs Errors (2) Ci sono warning più o meno gravi Alcuni non rappresentano un vero problema spesso, invece, possono essere una vera fonte di errori a tempo di esecuzione Nota che gli errori che si verificano runtime sono i più difficili da prevedere/gestire Il livello di gravità di un warning può essere valutato solo dal programmatore, dipendentemente d dal contesto in cui si verifica Quindi È FONDAMENTALE CONSIDERARE CON ATTENZIONE TUTTI I WARNING EVENTUALMENTE GENERATI DAL COMPILATORE 4

Warning vs Errors (3) Un semplice programma: int main(void) id) float IVAperc = 0.2; float prezzo = 11200; printf("iva %f", IVAperc * prezzo); return (0); Warning vs Errors (4) float IVAperc = 0.2; warning C4305: 'initializing' : truncation from 'double' to 'float Non c è in realtà alcun troncamento (0.2 non richiede doppia precisione) i ma a default le costanti ti numeriche reali vengono tradotte in double Conviene seguire la sintassi corretta: float f = 0.2f; Supponiamo ora di modificare la definizione in int IVAperc = 0.2; warning C4244: 'initializing' : truncation from 'double' to int, possible loss of data 0.2 viene in effetti troncato a 0 Nell operazione IVAperc * prezzo, IVAperc viene promosso a float, ma ormai la perdita di informazione è avvenuta Il risultato è sempre e comunque 0 (GRAVE)! 5 6 Input e output in C (1) Input con formato: scanf( stringa stringa formato, lista variabili); Output con formato: printf( stringa formato, lista variabili); Tramite la stringa di formato, si specifica come Tramite i parametri successivi, si specifica che cosa 7 Esempio 1 input output Esempio 1 Echo di un numero intero Realizzare (cioè scrivere e compilare) un programma che legga da tastiera un numero intero e ne stampi il valore a video (echo) pseudo-algoritmo: Leggo da input un numero intero Salvo il numero letto in una variabile apposita Stampo a video il valore della variabile 8

Esempio 1 - Soluzione int main() int value; Esercizio 1 Esercizio i 1 Echo di caratteri tastiera tre caratteri e ne stampi il valore a video (echo) scanf( %d, &value); printf( Valore letto:%d\n, value); 9 10 Esempio 2 espressioni condizionali Esempio 2 Stabilire il massimo tra due valori input due numeri reali, e ne stampi a video il valore massimo Al fine di determinare il massimo, si utilizzino le sole espressioni condizionali Esempio 2 - Soluzione int main() float num1, num2, max; scanf( %f %f, &num1, &num2); max = ((num1 > num2)? num1 : num2); printf( Max: %f\n, max); 11 12

Esercizio 2 Esercizio i 2 Elaborazione di numeri reali input un numero reale, e stampi a video: 1. il suo valore assoluto 2. il valore assoluto della sua parte intera 13 Esercizio 3 Esercizio i 3 Stampa di caratteri in ordine alfabetico input tre caratteri e li stampi in ordine alfabetico. A tal scopo, si rammenti la rappresentazione dei caratteri in linguaggio C Si utilizzino solo le espressioni condizionali (e non l istruzione if ad esempio) 14 Esempio 3 cicli Esempio 3 echo di caratteri Realizzare un programma che legga ciclicamente da input un carattere e lo stampi a video Il programma deve terminare quando l utente inserisce il carattere 0 Esempio 3 - Soluzione int main(void) char c; do scanf("%c", " &c); printf("%c", c); while(c > 0); 15 16

Esercizio 4 (1) Esercizio i 4 - Calcolo l di un aritmo in base qualunque Realizzare un programma che chieda all utente due numeri razionali, uno detto base B e l altro detto valore X (a cui applicare il aritmo) Se e solo se B e X sono entrambi positivi,, il programma deve fornire come risposta il aritmo in base B di X......altrimenti deve stampare un messaggio di errore 17 Esercizio 4 - Analisi del problema Si rammenti che, data una funzione aritmica i in base k, un aritmo in una base diversa B è così definito: B ( x ) = k k ( x) ( B) Approccio bottom-up: posso sfruttare del codice già fatto? Si consideri l uso delle funzioni (X) (aritmo naturale) e 10(X), disponibili in math.h 18 Esercizio 4 - Schema di soluzione Sh Schema di soluzione Acquisizione INPUT base e valore del aritmo Validazione INPUT Base > 0, Valore > 0 Che tipo di ciclo? Algoritmo Calcolo del aritmo Stampa OUTPUT Stampa del risultato 19