Corso di Fondamenti di Informatica II

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Corso di Fondamenti di Informatica II"

Transcript

1 Corso di Fondamenti di Informatica II Lezione Introduttiva (richiami del C++) Francesco Fontanella

2 Docente Francesco Fontanella http: webuser.unicas.it/fontanella Tel: Ricevimento: lunedì dalle alle (presso il mio studio) 2

3 Sito Web del Corso 3

4 Organizzazione del Corso ed Esame Lezione teoriche: Lunedì dalle 11:00 alle 13:00 ( aula 1N.2) giovedì dalle 11:00 alle 13:00 ( aula 1N.2) In alcuni casi anche il martedì dalle 9:00 alle 12:00 (aula 1N.2) Esercitazioni al calcolatore in laboratorio: martedì 9:00-13:00 (aula A1) L'esame prevede: Prova pratica al calcolatore; Prova orale; 4

5 Materiale Didattico Libro di testo: Guida al C++ (4 ed.) di H. SCHILDT, McGraw-Hill Italia. Materiale fornito dal docente (slides delle lezioni) e alcune dispense. Alcuni link utili: Documentazione linguaggio C e C++: Corso C++ del CNR 5

6 Ambiente di Sviluppo L'ambiente utilizzato è NetBeans, ambiente free prodotto da Sun Microsystem. I file e le istruzioni per l'installazione sono disponibili sul sito del prof. Tortorella. 6

7 Programma del Corso Richiami del linguaggio C++; I puntatori; La ricorsione; Il sistema di I/O del C++; Strutture dati avanzate ; Programmazione orientata agli oggetti; 7

8 Richiami del C++ 8

9 Un programma in C++ void main() { int a; float f;... Dichiarazioni di variabili: servono ad allocare spazio in memoria durante l'esecuzione del programma } if (a==0) {... }... Istruzioni:effettuano i calcoli manipolando i dati presenti in memoria. 9

10 Definizioni di variabili Esempio: int x; Con l istruzione viene definita una variabile intera x che occupa 4 registri da 1 byte a partire dall indirizzo x 10

11 Istruzioni di Calcolo e Assegnazione L effetto è di aggiornare il valore di una variabile di un certo tipo con il valore ottenuto dalla valutazione di un espressione dello stesso tipo. Il formato è: variabile = espressione; left_value = right_value Esempi: a=4; a=a+1; cond= x > y; b=0; a=a+b; cond=(a>=0) && (a<=9); b=a; 11

12 Il Costrutto if Sintassi if(condizione) istruzione; L istruzione è eseguita solo se condizione è vera (valore true) L istruzione può essere costituita da un blocco. 12

13 Il Costrutto If -else Sintassi if(condizione) istruzione_1; else istruzione_2; Note istruzione_1 è eseguita se condizione è vera (valore true); istruzione_2 è eseguita se condizione è falsa (valore false) 13

14 Costrutti di Ciclo Servono a ripetere più volte l esecuzione di un istruzione A seconda di come viene definito il numero di ripetizioni si distinguono in: Costrutti di ciclo a condizione Costrutti di ciclo a conteggio Nei costrutti di ciclo a condizione non si definisce esplicitamente il numero di ripetizioni dell esecuzione, ma si valuta al termine del ciclo un espressione logica che, fin quando risulta vera, causa un ulteriore esecuzione dell istruzione. Nei costrutti di ciclo a conteggio il numero di ripetizioni è fissato. 14

15 Costrutti di Ciclo: do-while E un costrutto di ciclo a condizione Sintassi do istruzione while(condizione) NOTE Si esegue l'istruzione; Si valuta la condizione: SE è vera, si torna a eseguire l istruzione; ALTRIMENTI si esce dal ciclo; 15

16 Costrutti di Ciclo: while E un costrutto di ciclo a condizione Sintassi while(condizione) istruzione NOTE Si valuta la condizione: SE risulta vera, si esegue l istruzione e quindi si torna a verificare la condizione; ALTRIMENTI si esce dal ciclo; 16

17 Costrutti di Ciclo: for E un costrutto di ciclo a conteggio. Si definisce esplicitamente il numero di ripetizioni dell esecuzione; Il conteggio viene gestito grazie ad una variabile (variabile di conteggio) che assume un valore iniziale e viene incrementata di un valore fisso ad ogni ripetizione del ciclo finché non raggiunge o supera un valore finale. 17

18 Costrutti di Ciclo: for Sintassi for (initialization; condition; increase) Note istruzione Si esegue inizialization Si verifica se condition Se è true: si esegue istruzione Si esegue increase e si torna a valutare condition Se è false: Si termina il ciclo 18

19 Le Istruzioni di I/O Il C++ usa il concetto di stream (flusso) per realizzare le operazioni di I/O con le periferiche, compresi i dispositivi come la tastiera e lo schermo. Uno stream è un oggetto dove un programma può inserire o estrarre dati, in maniera indipendemente dai dispositivi fisici coinvolti. La libreria standard C++ include il file header iostream dove sono dichiarati gli oggetti stream di input e output. 19

20 Le Operazioni di Input Sono realizzate grazie all oggetto cin. Quando viene eseguita, l istruzione cin >> x; il programma si mette in attesa di input da tastiera per poi memorizzare il dato inserito nella variabile x. L input dalla tastiera viene elaborato solo dopo che è stato premuto il tasto di INVIO (o RETURN). Solo a questo punto la sequenza di caratteri letta viene interpretata ed il valore ottenuto viene assegnato. 20

21 Le Operazioni di Output Sono realizzate grazie all oggetto cout. L istruzione cout << x produce l'insieme di caratteri da stampare e li invia allo schermo. Possono essere stampate più espressioni nella stessa istruzione: cout << Il doppio di << x << e << 2*x << endl; 21

22 Gli Array Spesso l informazione da elaborare è costituita da un insieme di valori, piuttosto che da un valore solo. In C++ questa possibilità è offerta dagli array. Un array è un insieme di variabili, tutte dello stesso tipo, identificato da un nome unico. Gli elementi dell array sono disposti in memoria in posizioni consecutive. 22

23 Gli Array: definizione Per definire una variabile array, è necessario specificare: il nome della variabile; il tipo degli elementi il numero degli elementi presenti (cardinalità dell array) Esempi Definizione di un array contenente 20 interi: int v[20]; Definizione di un array contenente 10 float: float v[10]; 23

24 Accesso agli Elementi di un Array Per accedere ai singoli elementi di un array, è necessario specificare il nome della variabile array e la posizione dell elemento di interesse tramite un valore intero (variabile o costante) che si definisce indice. L'indice parte ad zero! I valori dell'indice si trovano nell'intervallo compreso tra 0 e N-1 24

25 Inizializzazione di un Array Un array può essere inizializzato in fase di definizione: int numeri[6] = {10,20,30,40,50,60}; La dimensione dell array può essere anche implicita: int numeri[] = {10,20,30,40,50,60}; 25

26 Sottoprogrammi Un sottoprogramma è una particolare unità di codice che non può essere eseguita autonomamente, ma soltanto su richiesta del programma principale o di un altro sottoprogramma. Un sottoprogramma viene realizzato per svolgere un compito specifico (p.es. leggere o stampare gli elementi di un array, calcolare il valore di una particolare funzione matematica, ecc.) per il quale implementa un opportuno algoritmo. Per questo scopo, il sottoprogramma utilizza variabili proprie, alcune delle quali sono impiegate per scambiare dati con il programma dal quale viene attivato. Un sottoprogramma può essere attivato più volte in uno stesso programma o anche utilizzato da un programma diverso da quello per cui era stato inizialmente progettato. 26

27 Sottoprogrammi: definizione Nel definire un sottoprogramma è quindi necessario precisare: Quale operazione esso realizza; Qual è il flusso di dati tra il sottoprogramma ed il codice che lo ha attivato ed, in particolare: Quali sono i dati in ingresso al sottoprogramma; Quali sono i dati in uscita dal sottoprogramma; L esecuzione delle istruzioni di un sottoprogramma è provocata da una particolare istruzione del programma che lo attiva (istruzione di chiamata, per cui il programma è anche detto chiamante). La chiamata di un sottoprogramma determina la sospensione dell esecuzione delle istruzioni del programma chiamante, he riprenderà dopo l esecuzione dell ultima istruzione del sottoprogramma (tipicamente, un istruzione di ritorno). 27

28 Sottoprogrammi: Flusso di Dati Il programma chiamante ed il sottoprogramma scambiano dati attraverso una lista di variabili, definite all interno del sottoprogramma, dette argomenti o parametri formali del sottoprogramma. Esse sono destinate ad ospitare i dati di ingresso e/o di uscita del sottoprogramma. Con la istruzione di chiamata, il programma chiamante fornisce al sottoprogramma una lista di parametri effettivi, costituiti dai valori effettivi di ingresso su cui il sottoprogramma deve operare e dalle variabili del programma chiamante in cui i valori di uscita del sottoprogramma dovranno essere memorizzati. La corrispondenza tra parametri effettivi e formali è fissata per ordine. 28

29 Sottoprogrammi Nella maggior parte dei linguaggi sono presenti due tipi fondamentali di sottoprogrammi: funzioni; procedure; 29

30 Funzioni Sono particolari sottoprogrammi che producono in uscita un valore il quale non è assegnato ad uno dei parametri, ma viene attribuito al nome stesso della funzione. La chiamata della funzione non avviene mediante una esplicita istruzione di chiamata, ma inserendo il nome della funzione seguito dalla lista dei parametri effettivi direttamente in altre istruzioni (p.es. in istruzioni di assegnazione). Alcune funzioni sono già disponibili all interno di librerie fornite con il compilatore e quindi non richiedono una definizione esplicita da parte dell utente. Es.: sqrt(x). 30

31 Struttura di una Funzione Sono riconoscibili due parti: intestazione blocco L intestazione della funzione riporta le informazioni principali relative alla funzione: nome, tipo restituito, parametri di ingresso. Il blocco è costituito da: una parte dichiarativa (variabili locali) una parte esecutiva (istruzioni) 31

32 Parte Esecutiva La parte esecutiva contiene l insieme di istruzioni che implementa l operazione che la funzione deve realizzare. Le istruzioni lavorano sull insieme formato dai parametri di ingresso e dalle variabili definite all interno. Le istruzioni possono essere costrutti di qualunque tipo (calcolo e assegnazione, I/O, selezioni, cicli, commenti, linee vuote, chiamate di altre funzioni). Al termine c è una istruzione di return il cui scopo è di: terminare l esecuzione della funzione; restituire il valore tra parentesi come valore della funzione. 32

33 Struttura di una Funzione int flint(float x) { Definizioni locali Parte esecutiva (codice) float xabs; int xint; if(x<0) xabs= x; else xabs=x; xint=0; while(xabs xint>=0) xint++; xint ; if(x<0) xint= xint; Intestazione della funzione Blocco della funzione } return(xint); 33

34 Struttura di una Funzione Tipo restituito Nome della funzione int flint(float x) { float xabs; int xint; if(x<0) xabs= x; else xabs=x; Parametri di ingresso } xint=0; while(xabs xint>=0) xint++; xint ; if(x<0) xint= xint; return(xint); Istruzione di ritorno 34

35 Chiamata di una Funzione int main() { float a,b; int ai,bi; cout << a: ; cin >> a; cout << b: ; cin >> b; ai=flint(a); bi=flint(b); cout<< La parte intera di <<a<< e <<ai<<endl; cout<< La parte intera di <<b<< e <<bi<<endl; cout<< Somma delle parti intere: <<ai+bi<<endl; cout<< Parte intera della somma : <<flint(a+b)<<endl; } return(exit_success); 35

36 Organizzazione di un Programma #include<iostream> using namespace std; int flint(float x); int main() { float a,b; int ai,bi; cout << a: ; cin >> a; cout << b: ; cin >> b; Prototipo della funzione ai=flint(a); bi=flint(b); cout<< La parte intera di <<a<< e <<aint<<endl; cout<< La parte intera di <<b<< e <<bint<<endl; cout<< Somma delle parti intere: <<ai+bi<<endl; cout<< Parte intera della somma : <<flint(a+b)<<endl; } return(exit_success); int flint(float x) { float xabs; int xint; if(x<0) xabs= x; else xabs=x; Definizione della funzione } xint=0; while(xabs xint>=0) xint++; xint ; if(x<0) xint= xint; return(xint); 36

37 Le Procedure In alcuni casi le operazioni da implementare non richiedono la produzione di un valore. In questi casi si può utilizzare un tipo diverso di sottoprogramma: la procedura. In C++ una procedura viene definita come una funzione che non restituisce valori. Questo si realizza tramite il tipo void. Può essere presente l istruzione return, che in questo caso ha solo la funzione di terminare l esecuzione della funzione. void stampa3int(int a, int b, int c) { int s; cout<< Primo valore: <<a<<endl; cout<< Secondo valore: <<b<<endl; cout<< Terzo valore: <<c<<endl; s=a+b+c; cout<< Somma: <<s<<endl; } return; 37

38 Chiamata di una Procedura La chiamata di una procedura avviene con un istruzione apposita costituita dal nome della procedura seguito dalla lista dei parametri effettivi tra (). L attivazione viene realizzata nelle stesse modalità viste per la funzione. void stampa3int(int,int,int); int main() { int p,q,r; p=2; q=12; r=6; stampa3int(p,q,r); } return(exit_success); 38

39 Modalità di Scambio dei Parametri Esistono due modalità di scambio per lo scambio di parametri: Scambio per valore; Scambio per riferimento; 39

40 Scambio per Valore Nello scambio per valore (o by value), il valore del parametro effettivo viene copiato nel parametro formale. Il parametro formale costituisce quindi una copia locale del parametro effettivo. Ogni modifica fatta sul parametro formale non si riflette sul parametro effettivo. Tutti gli esempi visti finora hanno utilizzato lo scambio per valore. 40

41 Scambio per Riferimento Nello scambio per riferimento, al parametro formale viene assegnato l indirizzo del parametro effettivo. In questo modo, il sottoprogramma accede al registro che ospita il parametro effettivo e può fare delle modifiche che saranno poi visibili al programma chiamante. In altre parole, qualunque modifica effettuata sul parametro formale avrà effetto sul parametro effettivo corrispondente. Lo scambio per riferimento fornisce un modo efficace per realizzare una funzione che deve restituire più di un valore 41

42 Scambio per Riferimento Lo scambio per riferimento (o by reference) si definisce anteponendo un & al nome del parametro formale: #include <iostream> using namespace std; void raddoppia(int& a, int& b, int& c){ } a*=2; b*=2; c*=2; int main() { int x,y,z; x=0; y=1; z=2; raddoppia(x,y,z); cout<<x<< <<y<< <<z<<endl; } return(exit_success); 42

43 Alcune funzioni Standard Di seguito verranno richiamate alcune funzioni standard: Input di vettore; Output di vettore; Ricerca del minimo in un vettore; Somma degli elementi presenti in un vettore; Copia con condizione di un vettore; 43

44 Procedura di Input di un vettore Scrivere una funzione che acquisisce un vettore da tastiera. void in_vett( int &n, int v[]) { int i; // indice di scorrimento del vettore Scambio per riferimento cout<<"assegna valore int al numero n di elementi del vettore \t"; cin>>n; } //assegnaz. di valore agli elementi dell'array cout<<"assegna "<<n<<" valori float a v \n"; for (i=0;i<n;i++) cin>>v[i]; 44

45 Procedura di Output di Vettore Scrivere una funzione che stampa sullo schermo il contenuto del vettore dato in input. Scambio per valore void out_vett( int n, int v[]) { int i; // indice di scorrimento del vettore cout<<endl<<"il riempimento del vettore è: "<<n; } //Visualizzazione degli elementi dell'array cout<<endl<<"gli elementi del vettore sono:"<<endl; for (i=0;i<n;i++) cout<<v[i]; 45

46 Funzione di Ricerca del Minimo Scrivere una funzione che trova il valore minimo del vettore dato in input. int ric_min( int n, int v[]) { int i, min; // Inizializzazione min = v[0]; //Si scorre il vettore... for (i=1;i<n;i++) if (v[i] < min) min = v[i] } //Si restituisce il valore trovato return min; 46

47 Funzione Somma Scrivere una funzione che calcola la somma degli elementi del vettore dato in input. int sum_elem( int n, int v[]) { int i, sum; // Inizializzazione sum = 0; //Si scorre il vettore... for (i=0;i<n;i++) sum += v[i] } //Si restituisce la somma calcolata return sum; 47

48 Funzione di Ricerca di un Elemento Scrivere una funzione che, dato un vettore in ingresso, verifica se è contiene un certo valore bool check_val( int n, int v[], int val) { int i; bool trovato; // Inizializzazione i = 0; trovato = false; //Si scorre il vettore... while ((i < n) && (!trovato)) if (v[i] == val) trovato = true; else ++i; } //Si restituisce la variabile trovato return trovato; 48

49 Procedura di Copia con Condizione Scrivere una funzione che, dato un vettore, copia in un secondo vettore solo gli elementi maggiori di zero. void copia_pos( int n1, int v1[], int &n2, int v2[]) { int i, j; // Inizializzazione j = 0; //Si scorre il vettore... for (i=0;i<n1;i++) if (v1[i] > 0) { v2[j] = v1[i]; ++j; } // Si assegna il riempimento a v2 n2 = j; } return; 49

50 Esempio Siano assegnati in ingresso i riempimenti n1 ed n2 ed i valori degli elementi di due vettori di reali V1 e V2. Si scriva un programma che calcoli le medie m1 ed m2 degli elementi di V1 e V2. Quindi, se m1 <= m2, copi in un vettore V3 i valori di V1 < m1, mentre se m1 > m2 copi in V3 i valori di V2 < m2. Infine, si stampino i valori delle medie calcolate ed il vettore V3 finale 50

51 Esempio: il main #include <iostream> #include <stdlib.h> using namespace std; void input (int& n,float v[]); void media (float& m,int& n,float v[]); void copia_in_vettore(int& n,float v[],float& m,float v3[],int& num); void output (int num, float v3[]); int main (){ int n1,n2,n3; n3=0; float V1[100],V2[100],V3[100],m1,m2; m1=0;m2=0; // INPUT input(n1,v1); input(n2,v2); 51

52 Esempio: il main // Calcolo delle medie m1 = media(n1,v1); m = media(n2,v2); // Verifica delle condizioni if (m1<m2) copia_in_vettore(n1,v1,m1,v3,dim); else copia_in_vettore(n2,v2,m2,v3,dim); // OUTPUT cout<<"la media del primo vettore e': "<<m1<<endl; cout<<"la media del secondo vettore e' : "<<m2<<endl; cout<<"il vettore V3 è:"<<endl; output(n3,v3); } system("pause"); return 0; 52

53 La funzione per il calcolo della media float media(int n, float v[]){ float s=0; for (int i=; i<n; i++) s+=v[i]; } return s / n; 53

54 La funzione di Copia void copia_minori (int n_in,float v_in[], float m, float v_out[],int &n_out){ } int j=0; for (int i=0;i<n_in;i++) if (v_in[i]<m){ } v_out[j]=v[i]; j++; n_out = j; 54

55 Esercizio Siano dati in ingresso, da file o da tastiera, i riempimenti n1, n2, n3 ed i valori di tre vettori V1, V2 e V3 di interi. Si scriva un programma che elimini da V1 gli elementi il cui valore è maggiore del massimo valore in V2 e quindi da V2 gli elementi il cui valore è maggiore del massimo valore in V3. Si forniscano in uscita i vettori V1 e V2 residui e, per ognuno, il valore del massimo usato come confronto. I risultati devono essere accompagnati da commenti esplicativi. NOTA Per l'eliminazione dal vettore degli elementi di valore val usare la funzione: void elimina(int &n,int v[], int val) { int i, k; k=0; for(i=0;i<riemp;i++) if(v[i]>val) k++; else v[i k]=v[i]; n = n k; return; } 55

Corso di Programmazione Orientata agli oggetti

Corso di Programmazione Orientata agli oggetti Corso di Programmazione Orientata agli oggetti Lezione Introduttiva a.a. 2012/2013 Francesco Fontanella Docente Francesco Fontanella E-mail: fontanella@unicas.it Web: www.docente.unicas.it/francesco_fontanella

Dettagli

Corso di Fondamenti di Informatica Classi di istruzioni 2

Corso di Fondamenti di Informatica Classi di istruzioni 2 Corso di Informatica Classi di istruzioni 2 Anno Accademico 2010/2011 Francesco Tortorella Strutture di controllo Caratteristica essenziale degli algoritmi è la possibilità di decidere le operazioni da

Dettagli

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

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Linguaggio C: le funzioni. Introduzione e sintassi

Linguaggio C: le funzioni. Introduzione e sintassi ISIS "Guido Tassinari" di Pozzuoli Indirizzo Informatico - Articolazione Informatica Informatica Prof. A.S. 2012/2013 Linguaggio C: le funzioni. Introduzione e sintassi 21/10/2012 Introduzione Spesso alcuni

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! Appunti dal laboratorio 1!

Informatica! Appunti dal laboratorio 1! Informatica! Appunti dal laboratorio 1! Sistema Operativo! Windows 7, Windows 8, Mac OS X, Linux, Debian, Red Hat, etc etc! Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti

Dettagli

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica Array in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 1 / 25 Cosa vedremo

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

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 08/05/08 Nota Questi lucidi sono tratti

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

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

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C strutture di controllo: strutture iterative Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Strutture iterative

Dettagli

Linguaggio C: introduzione

Linguaggio C: introduzione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi

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

PROGRAMMAZIONE: Le strutture di controllo

PROGRAMMAZIONE: Le strutture di controllo PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l

Dettagli

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde vers.0 in lavorazione Docente SAFFI FABIO Contenuti Struttura del file sorgente...2 Organizzazione della directory di lavoro...2 Esercizi sulle funzione

Dettagli

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile

Dettagli

Corso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica

Corso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica Corso di Fondamenti di Informatica Puntatori e Allocazione Dinamica I puntatori (Richiamo) Il C++ prevede puntatori a dati di qualsiasi natura, semplici o strutturati e puntatori a funzione. In particolare

Dettagli

Il C nel C++: Funzioni

Il C nel C++: Funzioni Il C nel C++: Funzioni Funzioni (1) il concetto -> spezzare il programma in parti (procedure) una funzione è un parte di programma dotata di un nome che può essere richiamata in altri punti del programma

Dettagli

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

Dettagli

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia)

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia) ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia) Scrivere una funzione per definire se un numero è primo e un programma principale minimale che ne testa la funzionalità. #include

Dettagli

Programmazione modulare

Programmazione modulare Programmiamo in.. Programmazione modulare Un programma complesso si suddivide in più sottoprogrammi o funzioni. Un programma suddiviso in piccoli pezzi, è più semplice da gestire da aggiornare da correggere

Dettagli

ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa.

ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa. 3 ITI - a.s. 2007-2008 Compiti di Informatica ESTATE 2008 ARRAY E STRINGHE Scrivere una funzione che carica da tastiera un array di n elementi e lo stampa invertendo il primo elemento con l'ultimo, il

Dettagli

Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base

Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base Istituto Tecnico Industriale M. M. Milano Polistena Classe III D a.s. 2015/2016 C++ Guida Base Prof. Rocco Ciurleo - ITIS M. M. Milano Polistena - 3 D a.s. 2015/2016 1 Le Origini Il Linguaggio C++ è il

Dettagli

Gestione di files Motivazioni

Gestione di files Motivazioni Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)

Dettagli

a.a Codice corso: 21012, 22010

a.a Codice corso: 21012, 22010 ESERCIZIO 1 Scrivere un sotto-programma in linguaggio C++ che ricevuta una matrice quadrata come parametro restituisca al chiamante un valore booleano indicante se la matrice è simmetrica oppure no. Scrivere

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Strutture Dati in C++ Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Laboratorio di Informatica 4. Array e strutture in C++ Strutture

Dettagli

Linguaggio C I puntatori

Linguaggio C I puntatori FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C I puntatori 2001 Pier Luca Montessoro - Davide Pierattoni

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: genna18@iol.it sito: users.iol.it/genna18 Risoluzione di un problema Dato

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

Tempo di vita e scope delle variabili

Tempo di vita e scope delle variabili Tempo di vita e scope delle variabili Richiami sulla struttura di un programma C Un programma C deve essere contenuto in uno o più file (salvo diversa specifica, per ora si assume tutto in un unico file):

Dettagli

Argomenti Avanzati.! I puntatori! Stack! Visibilità delle Variabili

Argomenti Avanzati.! I puntatori! Stack! Visibilità delle Variabili Linguaggio C Argomenti Avanzati! I puntatori! Stack! Visibilità delle Variabili 2 ! Il C consente di associare ai tipi di dati nomi definiti dal programmatore, mediante la parola chiave typedef! Dal punto

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

Introduzione alla programmazione in C(++)

Introduzione alla programmazione in C(++) Testi Testi Consigliati: Introduzione alla programmazione in C(++) A. Kelley & I. Pohl C didattica e programmazione A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. D. M. M. Ritchie

Dettagli

Mini-Corso di Informatica

Mini-Corso di Informatica Mini-Corso di Informatica CALCOLI DI PROCESSO DELL INGEGNERIA CHIMICA Ing. Sara Brambilla Tel. 3299 sara.brambilla@polimi.it Note sulle esercitazioni Durante le esercitazioni impareremo a implementare

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

Struttura dei programmi C

Struttura dei programmi C Programmi C Struttura dei Programmi C Dichiarazione delle variabili Operazioni di Ingresso/Uscita Fondamenti di Informatica 1 Struttura dei programmi C Un programma C deve contenere, nell'ordine: una parte

Dettagli

Stringhe e allocazione dinamica della memoria

Stringhe e allocazione dinamica della memoria Stringhe e allocazione dinamica della memoria Esercizio Scrivere un programma strings.c che legge da standard input una sequenza di parole separate da uno o più spazi, e stampa le parole lette, una per

Dettagli

Funzioni e. Alessandra Giordani Mercoledì 16 maggio 2012

Funzioni e. Alessandra Giordani Mercoledì 16 maggio 2012 Funzioni e passaggio parametri Alessandra Giordani agiordani@disi.unitn.it Mercoledì 16 maggio 2012 http://disi.unitn.it/~agiordani/ Cosa vedremo oggi Le funzioni Il passaggio dei parametri Le dichiarazioni

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

Funzioni. function [<risultati>] = nome_funzione ([ par.formali ])

Funzioni. function [<risultati>] = nome_funzione ([ par.formali ]) MATLAB Le funzioni Funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, calcola un valore come risultato, esattamente come avviene anche per una

Dettagli

Appunti, esempi ed esercizi sui linguaggi C/C++

Appunti, esempi ed esercizi sui linguaggi C/C++ Appunti, esempi ed esercizi sui linguaggi C/C++ Dispense e materiale didattico su http://www.eclecticforce.com/ Ambiente di sviluppo Dev C++ http://www.bloodshed.net/devcpp.html // commento su una linea

Dettagli

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript Funzioni Funzioni predefinite della libreria matematica Funzioni disponibili: Math.sqrt(x) radice quadrata Math.log(x) logaritmo naturale in base e di x Math.abs(x) valore assoluto di x Math.ceil(x) arrotonda

Dettagli

nome (lista_parametri) Funzioni funzioni predefinite: sqrt(x) log(x) usare queste funzioni significa: specificare il valore degli argomenti

nome (lista_parametri) Funzioni funzioni predefinite: sqrt(x) log(x) usare queste funzioni significa: specificare il valore degli argomenti Università di Roma Tor Vergata L9-1 Funzioni funzioni predefinite: sqrt(x) log(x) usare queste funzioni significa: specificare il valore degli argomenti utilizzare il valore restituito quanti argomenti

Dettagli

UD 3.2b: Programmazione in Pascal (1)

UD 3.2b: Programmazione in Pascal (1) UD 3.2b: Programmazione in Pascal (1) Il Linguaggio di Programmazione Pascal Esistono molti linguaggi di programmazione. Per motivi didattici utilizzeremo una versione ridotta di un linguaggio di programmazione

Dettagli

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente. HOMEWORKS Questi esercizi saranno proposti di tanto in tanto e forniti sempre SENZA soluzioni. Come materiale complementare ai libri di testo e alle lezioni frontali e di esercitazione, si consiglia di

Dettagli

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito

Dettagli

Corso di Fondamenti di Informatica. La ricorsione

Corso di Fondamenti di Informatica. La ricorsione Corso di Fondamenti di Informatica La ricorsione La ricorsione Si dice che un oggetto (una struttura dati, una funzione matematica, un concetto ) è ricorsivo se è possibile darne una definizione in termini

Dettagli

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno. Tipo File Per memorizzare un dato su un supporto magnetico come un hard disk o un nastro, o più in generale su un'unità di memoria di massa viene utilizzata un tipo di dato chiamato file. Un file può essere

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

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

Puntatori. Fondamenti di Programmazione

Puntatori. Fondamenti di Programmazione Puntatori Fondamenti di Programmazione Funzioni utili stdio.h c = getchar(); restituisce un carattere letto da tastiera. Equivale a: scanf( %c, &c); putchar(c); scrive un carattere sullo schermo. Equivale

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. Esericizi sempici su funzioni 2. Funzioni ricorsive 3. Funzioni e Header File 2 ESERCIZIO 1 (Funzioni) Codificare in C la funzione

Dettagli

L Allocazione Dinamica della Memoria

L Allocazione Dinamica della Memoria L Allocazione Dinamica della Memoria Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario Questo documento

Dettagli

PROGETTAZIONE TOP-DOWN E BOTTOM-UP

PROGETTAZIONE TOP-DOWN E BOTTOM-UP PROGETTAZIONE TOP-DOWN E BOTTOM-UP Top-down e bottom-up sono strategie di elaborazione dell'informazione e di gestione delle conoscenze, riguardanti principalmente il software e, per estensione, altre

Dettagli

Informatica! Appunti dal laboratorio 1!

Informatica! Appunti dal laboratorio 1! Informatica Appunti dal laboratorio 1 Sistema Operativo Windows Vista, Windows 7, Mac OS X, Linux, Debian, Red Hat, etc etc Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti

Dettagli

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout

Dettagli

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 borg@unive.it Ricevimento lunedì, prima o dopo lezione 1 Le funzioni in C Le funzioni vengono utilizzate per 3 motivi: Riusabilità

Dettagli

Strutture di Controllo

Strutture di Controllo Introduzione Strutture di Controllo per strutture condizionali e cicliche Quando si affronta la programmazione si devono indicare al computer delle istruzioni da eseguire. Se il computer potesse comprendere

Dettagli

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Il tipo puntatore; l allocazione dinamica della memoria Claudio De Stefano - Corso di Fondamenti di Informatica 1 puntatori una variabile di tipo puntatore al tipo x

Dettagli

Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011

Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011 Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011 Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147 00161 Roma I puntatori Variabili e parametri Parametri formali

Dettagli

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1 Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1 1) Dato un diagramma di flusso quali sono le condizioni necessarie perché si possa costruire un programma corrispondente?

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

Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22

Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22 Lezione 21 e 22 - Allocazione dinamica delle matrici - Generazione di numeri pseudocasuali - Funzioni per misurare il tempo - Parametri del main - Classificazione delle variabili Valentina Ciriani (2005-2008)

Dettagli

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

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010 Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

Strutture Dinamiche. Fondamenti di Informatica

Strutture Dinamiche. Fondamenti di Informatica Strutture Dinamiche Fondamenti di Informatica 1 Indice Allocazione e de-allocazione di memoria Liste e loro gestione Companies, srl 2 Allocazione e cancellazione di memoria malloc (sizeof (TipoDato));

Dettagli

Linguaggi di alto livello, compilatori e interpreti

Linguaggi di alto livello, compilatori e interpreti Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI

Dettagli

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)

Dettagli

Programmazione C Massimo Callisto De Donato

Programmazione C Massimo Callisto De Donato Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

Esame Informatica Generale 13/04/2016 Tema A

Esame Informatica Generale 13/04/2016 Tema A Esame Informatica Generale 13/04/2016 Tema A! 1/! Quesito 1 (punteggio 2) Si considerino le seguenti istruzioni del linguaggio c/c++. int x[100]; void fz(int[], double[], double*); // puntatori void fz(int[],

Dettagli

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

giapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL Materiale di ausilio utilizzabile durante l appello: tutto il materiale è a disposizione, inclusi libri, lucidi, appunti, esercizi svolti e siti Web ad accesso consentito in Lab06. L utilizzo di meorie

Dettagli

Lezione 6. Visibilità degli identificatori e tempo di vita degli oggetti

Lezione 6. Visibilità degli identificatori e tempo di vita degli oggetti Lezione 6 Visibilità degli identificatori e tempo di vita degli oggetti Programmazione I Paolo Valente - 2009/2010 Ripasso dichiarazioni oggetti Finora abbiamo scritto le dichiarazioni di variabili e costanti

Dettagli

Programmazione (imperativa)

Programmazione (imperativa) Programmazione (imperativa) Corso di Laurea in Informatica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Lunedì 12.00-13.00 e 14.00-16.00 Mercoledì 14.00-17.00 Laboratorio: Giovedì 12.00-13.00

Dettagli

Elementi di C++ di base

Elementi di C++ di base Elementi di C++ di base Corso di Programmazione 3 - Ingegneria dell Informazione e dell Organizzazione 10 ottobre, 2001 Gino Perna Esempi di semplici programmi in C++ Il programma più semplice consiste

Dettagli

Cenni sul preprocessore e il suo utilizzo

Cenni sul preprocessore e il suo utilizzo Alessio Bechini - Corso di - Cenni sul preprocessore e il suo utilizzo Il preprocessore: cenni Il preprocessore Storicamente, i compilatori C operavano con passaggi multipli. Il primo passaggio eseguiva

Dettagli

Strutture di iterazione

Strutture di iterazione Strutture di iterazione 1. Leggi i programmi qui sotto e disegna le tabelle di traccia nelle situazioni seguenti: a. Nel primo e nel secondo programma viene inserito da tastiera il valore 2; b. Nel primo

Dettagli

Calcolatori Elettronici Lezione A4 Programmazione a Moduli

Calcolatori Elettronici Lezione A4 Programmazione a Moduli Calcolatori Elettronici Lezione A4 Programmazione a Moduli Ing. Gestionale e delle Telecomunicazioni A.A. 2007/08 Gabriele Cecchetti Sommario Programmazione a moduli Programmi con linguaggi misti Tempo

Dettagli

Gestione degli impegni Requisiti generali Si fissi come ipotesi che la sequenza di impegni sia ordinata rispetto al tempo,, e che ogni lavoratore abbi

Gestione degli impegni Requisiti generali Si fissi come ipotesi che la sequenza di impegni sia ordinata rispetto al tempo,, e che ogni lavoratore abbi Fondamenti di Informatica T-1 modulo 2 Laboratorio 10: preparazione alla prova d esame 1 Esercizio 1 - Gestione degli impegni Gli impegni giornalieri dei dipendenti di un azienda devono essere aggiornati

Dettagli

Costrutti condizionali e iterativi

Costrutti condizionali e iterativi Costrutti condizionali e iterativi Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle istruzioni

Dettagli

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input

Dettagli

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Dettagli

Linguaggio C - sezione dichiarativa: costanti e variabili

Linguaggio C - sezione dichiarativa: costanti e variabili Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente

Dettagli

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

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio

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

Lezione 11. Tipo derivato riferimento Passaggio per riferimento Parametri di ingresso e/o uscita

Lezione 11. Tipo derivato riferimento Passaggio per riferimento Parametri di ingresso e/o uscita Lezione 11 Tipo derivato riferimento Passaggio per riferimento Parametri di ingresso e/o uscita Programmazione I Paolo Valente - 2016/2017 2 Esercizio Scrivere una funzione tramite la quale sia possibile

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 marco.santambrogio@polimi.it Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21

Dettagli

1 Esercizi in pseudocodice

1 Esercizi in pseudocodice Questa dispensa propone esercizi sulla scrittura di algoritmi in un linguaggio semiformale, utile all acquisizione delle abilità essenziali per implementare algoritmi in qualsiasi linguaggio di programmazione.

Dettagli

Input/output in C e in C++

Input/output in C e in C++ FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Input/output in C e in C++ 2001 Pier Luca Montessoro - Davide Pierattoni

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

void funzioneprova() { int x=2; cout<<dentro la funzione x=<<x<<endl; } FUNZIONI 57. Cosa servono le funzioni? A spezzare il programma in diverse parti relativamente indipendenti fra loro, ovvero interagenti sono attraverso i parametri di input ed IL VALORE di uscita. In questo

Dettagli

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

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Programmazione I - Laboratorio

Programmazione I - Laboratorio Programmazione I - Laboratorio Esercitazione 3 - Array Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti di.unipi.it 2. Dipartimento

Dettagli

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

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Unità Didattica 3 Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa

Dettagli

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1 1) Il bus in un computer trasporta a) solo dati b) solo istruzioni c) sia dati sia istruzioni 2) In una sequenza

Dettagli

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C Introduzione 2 Introduzione al C Linguaggio di programmazione ad alto livello (HLL) Sviluppato negli anni 70 (C standard ANSI) Molto diffuso e adatto ad un ampio spettro di applicazioni: Scientifiche Gestionali

Dettagli

Cosa si intende con stato

Cosa si intende con stato Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando

Dettagli

Obiettivi di questa esercitazione

Obiettivi di questa esercitazione Fondamenti di Informatica T-1 Modulo 2 1 Obiettivi di questa esercitazione 1. Esericizi sempici su funzioni 2. Funzioni ricorsive 3. Funzioni e Header File 2 ESERCIZIO 1 Codificare in C la funzione int

Dettagli

Esercizi per il recupero del debito formativo:

Esercizi per il recupero del debito formativo: ANNO SCOLASTICO 2005/2006 CLASSE 4 ISC Esercizi per il recupero del debito formativo: Facendo esclusivamente uso delle istruzioni del linguaggio macchina mnemonico del microprocessore INTEL 8086 viste

Dettagli

PIANO DI LAVORO. a.s. 2015 / 2016

PIANO DI LAVORO. a.s. 2015 / 2016 PIANO DI LAVORO a.s. 2015 / 2016 Materia: INFORMATICA Classe: terza informatica- sez. A Data di presentazione: 15/10/2015 DOCENTI FIRMA Cerri Marta Bergamasco Alessandra Posta elettronica: itisleon@tin.it

Dettagli