Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch"

Transcript

1 Esercitazione 5 Procedure e Funzioni Il comando condizionale: switch

2 Comando: switch-case switch (espressione) { /* espressione deve essere case costante1: istruzione1 di tipo int o char */ [break]; case costante2: istruzione2 /* costante2 deve essere una costante int o char */ [break]; case costante3: istruzione3 [break]; [default: istruzione ]

3 Comando: switch-case switch (espressione) { case costante1: case costante2: case costante3: [default: istruzione1 [break]; istruzione2 [break]; istruzione3 [break]; istruzione ] se il valore di espressione è uguale a costante1 viene eseguita istruzione1 provoca l uscita immediata dallo switch-case viene eseguita se espressione non corrisponde a nessuna costante

4 Comando: switch-case /* Esempio utilizzo switch-case */ #include <stdio.h> int main ( ) { int x; printf ( Digita una cifra: ); scanf ( %d, &x); switch (x) { case 0 : printf ( zero\n ); break; case 1 : printf ( uno\n ); break; case 2 : printf ( due\n ); break; case 3 : printf ( tre\n ); break; case 4 : printf ( quattro\n ); break; case 5 : printf ( cinque\n ); break; default : printf( non previsto ); break;

5 Comando: switch-case /* Scrivere un programma che riceve in input un numero intero x e stampa pari se x {0,2,4, dispari se x {1,3,5, altrimenti altro */ #include <stdio.h> int main ( ) { int x; printf ( Digita una cifra: ); scanf ( %d, &x); switch (x) { case 0 : case 2 : case 4 : printf ( pari\n ); break; case 1 : case 3 : case 5 : printf ( dispari\n ); break; default : printf ( altro\n ); break;

6 Esercizio Scrivere un programma che legge una data (il giorno, il mese e l anno) e determina la data del giorno successivo. #include <stdio.h> int main ( ) { int giorno, mese, anno,giorni_del_mese; /* lettura della data */ printf("data (giorno, mese, anno)? "); scanf("%d%d%d", &giorno, &mese, &anno);

7 /* calcola il numero dei giorni del mese */ switch (mese) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: giorni_del_mese = 31; break; case 4: case 6: case 9: case 11: giorni_del_mese = 30; break; case 2: // bisestile se divisib. per 4 ma non per 100 opp. divisib per 400 if ( (anno % 4 == 0 && anno % 100!=0) (anno %400 ==0) ) giorni_del_mese = 29; else giorni_del_mese = 28; break; /* fine switch */

8 /* aggiorna la data del mese successivo */ if (giorno == giorni_del_mese) { giorno = 1; if (mese == 12) { mese = 1; anno++; else mese++; else giorno++; /* stampa la data aggiornata */ printf("\n Il giorno successivo e : %d/%d/%d", giorno, mese, anno); /* fine */

9 Esercizio Scrivere un programma che calcola l area di un poligono che può essere o un triangolo (T) o un rettangolo (R). ALGORITMO chiedere all utente di inserire il carattere T se si vuole calcolare l area di un triangolo, il carattere R se si vuole calcolare l area di un rettangolo chiedere all utente di inserire i valori della base e dell altezza invocare una funzione generica area che calcola l area del poligono specificato dall utente

10 #include <stdio.h> /* dichiarazione della funzione generica area */ double area (double, double, char); /* tipo dei parametri formali */ int main ( ) { /* inizio della funzione principale */ double b, h, a; char p; printf ( Inserire poligono (T per triangolo/r per rettangolo): \n ); scanf ( %c, &p); printf ( Inserire base: \n ); scanf ( %lf, &b); printf ( Inserire altezza: \n ); scanf ( %lf, &h);

11 a = area (b, h, p); /* invocazione della funzione area */ /* parametri attuali */ printf ( Area: %lf, a); /* fine della funzione principale main */ /* definizione della funzione area */ double area (double base, double altezza, char poligono) { /* parametri formali */ switch (poligono) { case T : return (base * altezza)/2.0; case R : return base * altezza; default: return -1; /* fine della funzione area */

12 Esercizio Dire quali delle seguenti invocazioni della funzione area (definita sopra) sono corrette. double area (double, double, char); 1) char p = T ; a = area (12, 7.0, p); 2) a = area (12, 7.0, T ); 3) a = area ( T, 12, 7.0); 4) a = area (12, 7.0);

13 Soluzione 1) char p = T ; a = area (12, 7.0, p); /* invocazione corretta */ 2) a = area (12, 7.0, T ); /* invocazione corretta */ 3) a = area ( T, 12, 7.0); /* invocazione errata */ 4) a = area (12, 7.0); /* invocazione errata */ I parametri attuali devono essere dello stesso tipo, nello stesso numero e ordine dei parametri formali.

14 Passaggio dei parametri I parametri formali sono quelli dichiarati per tipo, numero e ordine nella definizione della funzione. I parametri attuali sono invece quelli che vengono passati alla funzione all atto della chiamata (o invocazione). Passaggio dei parametri per valore In C il passaggio dei parametri avviene sempre e soltanto per valore. Ciò significa che all atto dell invocazione di una funzione ogni parametro formale è inizializzato con il valore del corrispondente parametro attuale.

15 Passaggio dei parametri #include <stdio.h> void f (int y) { y++; return; main ( ) { int x = 4; f (x); 4 x ambiente di main 4 y ambiente di f

16 Esercizio /* Scrivere una funzione che calcola il fattoriale di un numero dato */ int fattoriale (int n) /* n è il parametro formale della procedura */ { int i; /* i e fact sono variabili locali alla procedura */ int fact =1; for (i=2; i<=n; i++) fact = fact *i; return fact;

17 Craps: un gioco di dadi Scriviamo un programma che simula il noto gioco d azzardo craps basato sull uso di una coppia di dadi a sei facce. Il gioco inizia con un giocatore che lancia due dadi: se ha totalizzato 7 o 11 il giocatore ha vinto, se ha totalizzato 2 o 12 il giocatore ha perso, altrimenti, se il totale è il numero n, il giocatore deve continuare a lanciare i dadi fino a quando o totalizza di nuovo il numero n, e in questo caso ha vinto oppure totalizza un 7 e così ha perso

18 Craps: un gioco di dadi Scriviamo l algoritmo per il programma craps: lancia due dadi e trovane la somma se la somma è 7 o 11 il giocatore ha vinto, se la somma è 2 o 12 il giocatore ha perso, Funzione tira_dadi altrimenti, se la somma è il numero n, fisso il punteggio ad n e continuo il gioco finché non ho né vinto né perso lancio di nuovo i dadi se la somma è uguale al punteggio il giocatore ha vinto se la somma è 7 il giocatore ha perso stampa a video il risultato del gioco Funzione stampa_risultato

19 Craps: un gioco di dadi /***************************************************************************** *********************** programma per giocare a craps *****************/ #include<stdio.h> #include<stdlib.h> /* prototipi delle funzioni usate */ int tira_dadi(void); /* simula il lancio dei dadi */ void stampa_risultati(int risult); /* se l argomento è 1 stampa Hai vinto se l argomento è 2 stampa Hai perso */

20 int main ( ) { int stato_gioco, somma_dadi, punteggio; somma_dadi = tira_dadi( ); /* effettua il primo lancio */ switch(somma_dadi) { case 7: case 11: stato_gioco=1; break; /* vince al primo lancio */ case 2: case 12: stato_gioco=2; break; /* perde al primo lancio */ default: stato_gioco=0; /* memorizzo il punteggio punteggio=somma_dadi; e continuo a giocare */ while (stato_gioco==0) { // continua a lanciare finché non somma_dadi = tira_dadi( ); if (somma_dadi ==punteggio) stato_gioco=1; // vince con il punteggio else if (somma_dadi==7) stato_gioco=2; // opp perde con il 7 stampa_risultati( stato_gioco); /* chiusa la funzione main */

21 int tira_dadi ( ) { int dado1, dado2, somma; dado1 = 1+ rand()%6; dado2 = 1+ rand()%6; somma = dado1+dado2; /** definizioni delle funzioni usate **/ printf( Il giocatore ha tirato %d + %d = %d, dado1, dado2, somma); return somma; void stampa_risultati (int finale) { if (finale == 1) printf( Hai vinto!\n ); else printf( Hai perso \n ); return;

22 Conversione di base Scrivere una funzione ricorsiva che dato un numero intero positivo n stampa la sua rappresentazione binaria. ESEMPIO: Convertire il numero 35 dalla base 10 alla base 2 35 : 2 = 17 resto 1 17 : 2 = 8 resto 1 8 : 2 = 4 resto 0 4 : 2 = 2 resto 0 2 : 2 = 1 resto 0 1 : 2 = 0 resto 1 La rappresentazione binaria del numero 35 é

23 Soluzione #include <stdio.h> void convert (int n) { int k; k = n/2; if (k > 0) convert(k); printf( %d, n%2); int main( ) { int n; printf ( Dammi un numero intero positivo: \n ); scanf( %d, &n); printf( la conversione binaria di %d e :, n); convert(n);

24 Esercizio Dire per quali valori dei parametri attuali la seguente procedura termina. int prova_costrutti (int x, int y) { int z = 0; if (y = z) return 1; else { while (x!= y) prova_costrutti (2*x, 2*y); return z;

25 Esercizio int prova_costrutti (int x, int y) { int z = 0; x =? y =? z = 0 if (y = z) return 1; else { while (x!= y) prova_costrutti (2*x, 2*y); return z; x =? y = 0 z = 0 La procedura termina quando viene chiamata con x = 0.

26 Esercizio Per quali valori dei parametri attuali la seguente procedura termina correttamente? Quali sono i possibili valori restituiti? int foo (int a, int b) { int z=0; if (b=0) return 3; else { while (a == 3) z = foo(a, 2*b); return z;

27 Soluzione int foo (int a, int b) { /* procedura ricorsiva */ int z=0; if (b=0) /* la condizione è sempre falsa */ return 3; else { while (a == 3) /* se viene eseguito questo ciclo z = foo(a, 2*b); non termina mai */ return z; La procedura termina se a!= 3. In tal caso restituisce 0.

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan venus.unive.it/borg [email protected] Ricevimento lunedì, prima o dopo lezione 1 Le funzioni in C Le funzioni vengono utilizzate per 3 motivi: Riusabilità

Dettagli

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} } ERRATA CORRIGE Pulizia del buffer di input: come fare? (1) Dopo aver richiamato getchar() per prelevare un carattere dal buffer di input, inseriamo una seconda chiamata a getchar(), senza assegnare il

Dettagli

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

Dettagli

Studio sulla funzione rand del linguaggio C

Studio sulla funzione rand del linguaggio C Studio sulla funzione rand del linguaggio C di Cavenaghi Mattia matricola 64096 Progetto di Tecniche di Simulazione matricola 64096 Indice: Introduzione Le regole del Craps pag. Il codice del gioco pag.

Dettagli

Esercitazione 6. Array

Esercitazione 6. Array Esercitazione 6 Array Arrays Array (o tabella o vettore): è una variabile strutturata in cui è possibile memorizzare un numero fissato di valori tutti dello stesso tipo. Esempio int a[6]; /* dichiarazione

Dettagli

Esercitazione 3. Espressioni booleane I comandi if-else e while

Esercitazione 3. Espressioni booleane I comandi if-else e while Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if

Dettagli

Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013

Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013 Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013 Damiano Macedonio Giochi d Azzardo Note Iniziali Per generare un numero casuale basta includere la libreria stdlib.h e utilizzare

Dettagli

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

Dettagli

Istruzioni Condizionali in C

Istruzioni Condizionali in C Concetti chiave Istruzioni Condizionali in C Tipi di Istruzioni Condizionali Espressioni Blocchi d istruzioni Istruzioni Condizionali: if-else Istruzioni Condizionali: switch-case Istruzione break Istruzioni

Dettagli

Istruzioni iterative (o cicliche)

Istruzioni iterative (o cicliche) Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Istruzioni iterative (o cicliche) Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria

Dettagli

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

Esercitazione 4. Comandi iterativi for, while, do-while Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti

Dettagli

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

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Dettagli

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Le Strutture di controllo Del Linguaggio C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni STRUTTURE DI CONTROLLO PRIMITIVE SEQUENZA SELEZIONE (o scelta logica) ITERAZIONE NON PRIMITIVE

Dettagli

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

Esercitazione 3. Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf Riassunto Esercitazione 3 Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf Sono state introdotte anche le seguenti relazioni: uguaglianza:

Dettagli

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

Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media. Esercizio 1 Realizzare un programma che legga da input tre numeri interi e stampi a video la loro somma e la media. #include Esercizio 1 - Soluzione int main() int num1, num2, num3, somma; float

Dettagli

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length); Fondamenti di Informatica L-A (A.A. 004/005) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista I Prova Intermedia del 11/11/004 - durata h - COMPITO B Esercizio 1 (punti 1) Una associazione di

Dettagli

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

Stringhe. In C le stringhe ben formate sono in realtà array di caratteri terminati sempre da un carattere speciale, \0, detto anche Fondamenti di Informatica T-1 modulo 2 Laboratorio 04: stringhe 1 Stringhe In C le stringhe ben formate sono in realtà array di caratteri terminati sempre da un carattere speciale, \0, detto anche terminatore

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Reti di Calcolatori

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Reti di Calcolatori Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Reti di Calcolatori Architettura del calcolatore Elementi di Programmazione Esempi di algoritmi e programmi Conversione

Dettagli

Esercizi Programmazione I

Esercizi Programmazione I Esercizi Programmazione I 9 Novembre 201 Esercizio 1 Valutare e dare il tipo delle seguenti espressioni condizionali. 1 char a= a, b= b ; // a ha v a l o r e decimale 97 2 i n t i= 1, j= 2 ; 3 double x=

Dettagli

Il linguaggio C. Notate che...

Il linguaggio C. Notate che... Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione

Dettagli

Esercitazione 12. Esercizi di Ricapitolazione

Esercitazione 12. Esercizi di Ricapitolazione Esercitazione 12 Esercizi di Ricapitolazione Esercizio Scrivere un programma che, dato un numero intero positivo, stampa la sua rappresentazione binaria. ALGORITMO Scriviamo una procedura stampa_bin che,

Dettagli

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

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare

Dettagli

Linguaggio C. Esercizio 1

Linguaggio C. Esercizio 1 Linguaggio C Esercizi su puntatori e liste Walter Didimo (e-mail:[email protected]) supplemento al Corso di Calcolatori Elettronici (Riccardo Torlone) 1 Esercizio 1 Siano p e q due puntatori a variabili

Dettagli

Le funzioni, e le istruzioni di input/output

Le funzioni, e le istruzioni di input/output Linguaggio C Le funzioni, e le istruzioni di input/output 1 Funzioni! Sono sottoprogrammi per svolgere un particolare compito! Sequenze di istruzioni (raggruppate tramite le parentesi graffe) alle quali

Dettagli

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

Dettagli

Algoritmi e basi del C Struttura di un programma

Algoritmi e basi del C Struttura di un programma Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio [email protected] Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21

Dettagli

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Esercizi di programmazione in C

Esercizi di programmazione in C Esercizi di programmazione in C Esercizio 1 Scrivere un programma in linguaggio C che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi. Il programma, a partire dal

Dettagli

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

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol. Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione prof. Lorenzo Porcelli e mail: [email protected] sito: users.iol.it/genna18 Risoluzione di un problema Dato

Dettagli

Esercizio 1: funzione con valore di ritorno di tipo puntatore

Esercizio 1: funzione con valore di ritorno di tipo puntatore Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 7 Esercitazione: 14 dicembre 2005 Esercizi su ricorsione, manipolazione stringhe, strutture dinamiche Problema: Esercizio

Dettagli

Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit

Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1 Corso di Laurea Ingegneria Civile Fondamenti di Informatica Esercizi sui metodi Carla Limongelli Maggio 2010 Esercizi 1 Passaggio di parametri di tipo primitivo Indicare che cosa viene visualizzato sullo

Dettagli

La gestione dei caratteri in C

La gestione dei caratteri in C in C In C i caratteri sono gestiti mediante variabili di tipo char (interi a 8 bit) Ad ogni carattere corrisponde un codice numerico ASCII (American Standard Code for Information Interchange) Un esempio

Dettagli

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

Introduzione al C. Esercitazione 6. Raffaele Nicolussi. Corso di Fondamenti di Informatica Ingegneria Clinica Corso di Fondamenti di Informatica Ingegneria Clinica Esercitazione 6 Raffaele Nicolussi Esercizio 1 Si scriva una funzione in linguaggio C che riceve in ingresso un numero intero A letto da tastiera,

Dettagli

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2 Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Passaggio dei parametri per valore/riferimento 2. Trattamento degli errori: funzioni che restituiscono anche codici di errore

Dettagli

Linguaggio C: le funzioni

Linguaggio C: le funzioni Linguaggio C: le funzioni prof. Lorenzo Porcelli e mail: [email protected] sito: http://users.iol.it/genna18 Introduzione attraverso un esempio Problema: Conoscendo le misure di n rettangoli, determinare

Dettagli

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2 Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Array 2 Esercizio 1 Creare un programma che legga da input un numero non noto a priori di interi (al più 10) terminati da 0.

Dettagli

Definizione di metodi in Java

Definizione di metodi in Java Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un

Dettagli

Informatica 1. Prova di recupero 21 Settembre 2001

Informatica 1. Prova di recupero 21 Settembre 2001 Informatica 1 Prova di recupero 21 Settembre 2001 Si risolvano i seguenti esercizi. Ai fini della determinazione del voto finale il loro punteggio andrà sommato al punteggio del laboratorio. Il tempo complessivo

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione II Tatiana Zolo [email protected] 1 IL PROGRAMMA C++ Istruzioni (espressioni terminate da ; ) istruzioni di dichiarazione (es. int x = 0;); istruzioni di assegnamento

Dettagli

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

Alcuni esercizi. 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Alcuni esercizi 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli Esercizio 1 (valutazione in cortocircuito) int main() int a=5, b=5, c=5; if (a>0 (a=a+1) ) printf( %d, a); if (b>0

Dettagli

La gestione della memoria dinamica Heap

La gestione della memoria dinamica Heap Laboratorio di Algoritmi e Strutture Dati La gestione della memoria dinamica Heap Prof. Luigi Lamberti 2005 Cenni sui Processi Un Programma è un insieme di Istruzioni memorizzato in un file con le costanti

Dettagli

Linguaggio C - Funzioni

Linguaggio C - Funzioni Linguaggio C - Funzioni Funzioni: Il linguaggio C è di tipo procedurale; ogni programma viene suddiviso in sottoprogrammi, ognuno dei quali svolge un determinato compito. I sottoprogrammi si usano anche

Dettagli

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari 7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa

Dettagli

5 - Istruzioni condizionali

5 - Istruzioni condizionali 5 - Istruzioni condizionali Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Esercitazione 3. Corso di Fondamenti di Informatica

Esercitazione 3. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 3 Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti

Dettagli

ESERCIZI DI PROGRAMMAZIONE DA SVOLGERE INDIVIDUALMENTE - parte 1 -

ESERCIZI DI PROGRAMMAZIONE DA SVOLGERE INDIVIDUALMENTE - parte 1 - ESERCIZI DI PROGRAMMAZIONE DA SVOLGERE INDIVIDUALMENTE - parte 1 - Elementi di Informatica e Programmazione Università di Brescia 1 1: ESERCIZI DI BASE - di livello di difficoltà inferiore rispetto all

Dettagli

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere

Dettagli

Esercizi di programmazione in linguaggio C - Costrutto iterazione

Esercizi di programmazione in linguaggio C - Costrutto iterazione Esercizi di programmazione in linguaggio C - Costrutto iterazione prof. Roberto uligni 1. [potenze1] Scrivere un programma che visualizzi il valore di tutte le prime n potenze di 2 con n richiesto all'utente

Dettagli

Le Funzioni e la Ricorsione

Le Funzioni e la Ricorsione Aula V Dip. di Matematica G. Castelnuovo Univ. di Roma La Sapienza Le Funzioni e la Ricorsione Igor Melatti Slides disponibili (assieme ad altro materiale) in: http://www.dsi.uniroma1.it/ melatti/programmazione1.2007.2008.html

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E03 Esempi di algoritmi e programmi A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di algoritmi e

Dettagli

# include<stdio.h> int main() { // Dichiarazioni int n; int i;

# include<stdio.h> int main() { // Dichiarazioni int n; int i; /* CALCOLIAMO I DIVISORI DI UN NUMERO. INSERIAMO UN CONTROLLO CHE IL NUMERO SIA EFFETTIVAMENTE POSITIVO UTILIZZIAMO IL DO...WHILE PER SEMPLIFICARE IL CODICE # include int main() // Dichiarazioni

Dettagli

Capitolo 5 - Funzioni

Capitolo 5 - Funzioni Capitolo 5 - Funzioni Divide and conquer Introduzione Costruire un programma da pezzi più piccoli o da singole componenti Questi pezzi più piccoli sono chiamati moduli Ogni singolo pezzo è più facilmente

Dettagli

Es 1. Scrivere un programma che verifica se una terna di numeri interi e' pitagorica

Es 1. Scrivere un programma che verifica se una terna di numeri interi e' pitagorica Es 1. Scrivere un programma che verifica se una terna di numeri interi e' pitagorica 1. Analisi del problema INPUT (variabili e tipo)? Tre numeri interi x,y,z:int OUTPUT? Si/No MA... Capire il problema:

Dettagli

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

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...

Dettagli

CORSO DI PROGRAMMAZIONE

CORSO DI PROGRAMMAZIONE ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE ISTRUZIONE DI SELEZIONE MULTIPLA DISPENSA 02.03 02-03_Switch_[ver_15] Questa dispensa è rilasciata sotto la licenza Creative Common

Dettagli

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it

Dettagli

IL PRIMO PROGRAMMA IN C

IL PRIMO PROGRAMMA IN C IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE

Dettagli

Scelte ed alternative. Esercizi risolti

Scelte ed alternative. Esercizi risolti 1 Esercizio Indovina cosa... Esercizi risolti Determinare che cosa fa il seguente frammento di programma in linguaggio C: int a, b, c; scanf("%d", &a); scanf("%d", &b); if(a>b) { c = a ; a = b ; b = c

Dettagli

Esercitazione 7. Procedure e Funzioni

Esercitazione 7. Procedure e Funzioni Esercitazione 7 Procedure e Funzioni Esercizio Scrivere un programma che memorizza in un array di elementi di tipo double le temperature relative al mese corrente e ne determina la temperatura massima,

Dettagli

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2 Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Passaggio dei parametri per valore/riferimento 2. Trattamento degli errori: funzioni che restituiscono anche codici di errore

Dettagli

Corso di Informatica 1 Esercitazione n. 4

Corso di Informatica 1 Esercitazione n. 4 Corso di Informatica 1 Esercitazione n. 4 Marco Liverani Esercizio n. 1 Letti in input due numeri interi n > 0 e k > 1 costruire un array A di n numeri interi casuali minori di 100 che non siano multipli

Dettagli

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A. Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente

Dettagli

Esempio: L EURO-CONVERTITORE (1) Scopo

Esempio: L EURO-CONVERTITORE (1) Scopo Esempio: L EURO-CONVERTITORE (1) Scopo Realizzare un sistema software per la conversione di euro in lire. In particolare, si vuole, definire un euro-covertitore e, dati due oggetti di tipo euro convertitore

Dettagli

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire: Sviluppo di programmi Per scrivere un programma C corretto bisogna: E ora, finalmente Si comincia! DD Cap. pp.4974 Analizzare il problema (input, output, casi estremali) 2. Progettare una soluzione (algoritmo)

Dettagli