FUNZIONI E PROCEDURE IN C. Docente: Giorgio Giacinto AA 2009/2010. dall utente, sia predefiniti, il C consente di creare funzioni e procedure

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "FUNZIONI E PROCEDURE IN C. Docente: Giorgio Giacinto AA 2009/2010. dall utente, sia predefiniti, il C consente di creare funzioni e procedure"

Transcript

1 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 FUNZIONI E PROCEDURE IN C Docente: Giorgio Giacinto AA 2009/2010 Introduzione! La definizione di tipi da parte dell utente mediante typedef non consente di definire nuove operazioni sui tipi! Per definire nuove operazioni sui tipi, sia definiti dall utente, sia predefiniti, il C consente di creare funzioni e procedure! Ad es. per calcolare la n-esima potenza della variabile x, x n, sarebbe comodo poter usare una istruzione del tipo y=pow(x,n); invece di usare esplicitamente un ciclo che moltiplica n volte x per se stesso Giorgio Giacinto 2009 Fondamenti di Informatica 2 2

2 Introduzione (cont.)! Un linguaggio di programmazione non definisce tutte le operazioni di cui si può avere bisogno! E necessario disporre di meccanismi per la creazione di nuove operazioni su qualsiasi tipo di dato! Tali meccanismi sono generalmente chiamati sottoprogrammi perché hanno la stessa struttura dei programmi principali! In C esistono due tipi di sottoprogrammi: le funzioni e le procedure Giorgio Giacinto 2009 Fondamenti di Informatica 2 3 Struttura di un programma C! La struttura di un programma C include! Una parte di direttive al preprocessore C! Una parte dichiarativa globale! dichiarazioni di tutti gli elementi condivisi dal programma principale e dai sottoprogrammi (costanti, tipi, variabili, ): alle variabili dichiarate in questa sezione possono avere accesso il programma principale e tutti i sottoprogrammi! Un programma principale (il main) composto da! Una parte dichiarativa! Una parte esecutiva! Una successione di definizioni di sottoprogrammi (funzioni o procedure) Giorgio Giacinto 2009 Fondamenti di Informatica 2 4

3 Funzioni! E un tipo di sottoprogramma che realizza operazioni astratte che corrispondono (anche se non esclusivamente) al significato matematico di funzione (Somma, Prodotto, )! Il C mette a disposizione gli strumenti per costruire (definire) e usare (chiamare) sottoprogrammi che realizzano le operazioni non disponibili nel linguaggio. Giorgio Giacinto 2009 Fondamenti di Informatica 2 5 Definizione delle funzioni! La struttura di una funzione e molto simile a quella di un programma! Sintassi della definizione di una funzione TipoRisultato Funzione(<lista_parametri_formali>) <parte_dichiarativa_locale> <istruzioni> intestazione (header) Giorgio Giacinto 2009 Fondamenti di Informatica 2 6

4 Intestazione di una funzione L intestazione contiene Tipo del risultato (codominio della funzione)! può essere di tipo built-in o di tipo user-defined Identificatore del sottoprogramma seguito da una coppia di parentesi tonde che possono contenere una lista di parametri formali Lista dei parametri formali, separati da virgole, cui la funzione viene applicata (dominio della funzione) Esempio: int FatturatoTotale(ElencoFatture par) Una funzione non può restituire array o funzioni ma può restituire un puntatore a qualsiasi tipo Giorgio Giacinto 2009 Fondamenti di Informatica 2 7 Parte dichiarativa e corpo delle funzioni! Parte dichiarativa locale! si definiscono tutti gli oggetti necessari alla realizzazione dell operazione astratta! obbediscono alle stesse leggi per la costruzione della parte dichiarativa di un programma! Corpo della funzione! medesime regole sintattiche del programma principale! al suo interno vi può essere un istruzione di return return <espressione>! return termina l esecuzione della funzione e restituisce il risultato! <espressione>, è il risultato della valutazione della funzione Giorgio Giacinto 2009 Fondamenti di Informatica 2 8

5 Istruzione return! Se nessuna istruzione di return è presente nel corpo della funzione, il sottoprogramma termina in corrispondenza del simbolo chiave che conclude il corpo della funzione Esempio int RadiceIntera (int param) int cont = 0; while (cont*cont <= param) cont++; return (cont-1); Giorgio Giacinto 2009 Fondamenti di Informatica 2 9 Chiamata delle funzioni! La chiamata di una funzione (in altri linguaggi si usa la parola chiave call) avviene all interno di un espressione! Sintassi <identificatore_funzione>(<lista_parametri_attuali>) Esempio: y=radiceintera(7);! I parametri attuali indicano i valori degli argomenti rispetto ai quali la funzione deve essere calcolata! In generale: una espressione o una chiamata di funzione! Corrispondenza tra parametri formali e attuali! si segue l ordine della dichiarazione: a ciascun parametro formale deve corrispondere un parametro attuale dello stesso tipo Giorgio Giacinto 2009 Fondamenti di Informatica 2 10

6 Esempi di chiamate di funzioni x = sin(y) cos(pigreco alfa); Totale = Somma(Lista1) + Somma(Lista2); ElencoOrdinato = Ordinamento(Elenco); OrdineAlfabetico = Precede(nome1, nome2); x, Totale, ElencoOrdinato e OrdineAlfabetico sono variabili dello stesso tipo ritornato dalle funzioni sin, cos, Somma, Ordinamento e Precede sono funzioni definite nel programma Giorgio Giacinto 2009 Fondamenti di Informatica 2 11 Prototipo delle funzioni! All interno di un programma C una funzione può essere chiamata purché risulti definita oppure dichiarata! Definizione: definisce le operazioni da eseguire! Dichiarazione (o prototipo): si limita a richiamarne la testata prima che venga chiamata e prima della definizione! Scopo della dichiarazione! Quando il compilatore incontra una chiamata di funzione prima della sua definizione, può controllare immediatamente il numero e il tipo dei parametri utilizzati e il tipo del risultato restituito dalla funzione attraverso il confronto con il prototipo. Giorgio Giacinto 2009 Fondamenti di Informatica 2 12

7 (1) Programma per il calcolo delle potenze 1/4 #include <stdio.h> /* Parte direttiva */ double quad(float); /* Prototipi funzioni */ double cubo(float); double quar(float); double quin(float); double pote(float,int); Giorgio Giacinto 2009 Fondamenti di Informatica 2 13 (1) Programma per il calcolo delle potenze 2/4 main() /* Parte principale del programma */ int base, esponente; /* Variabili del main */ double ptnz; printf( Inserire base: ); scanf( %d, &base); printf( Inserire esponente (0-5): ); scanf( %d, &esponente); ptnz = pote(base, esponente); /* Chiamata alla funzione */ if(ptnz == -1) printf( Potenza non prevista\n ); else printf( La potenza %d di %d e %f\n, esponente, base, ptnz); /* Fine del main */ Giorgio Giacinto 2009 Fondamenti di Informatica 2 14

8 (1) Programma per il calcolo delle potenze 3/4 double quad(float c) /* Definzione funzione */ return(c*c); double cubo(float c) /* Definzione funzione */ return(c*c*c); double quar(float c) return(c*c*c*c); double quin(float c) return(c*c*c*c*c); Giorgio Giacinto 2009 Fondamenti di Informatica 2 15 (1) Programma per il calcolo delle potenze 4/4 double pote(float b, int e) /* Definzione funzione */ double ris; switch(e) case 0: ris = 1; case 1: ris = b; case 2: ris = quad(b); case 3: ris = cubo(b); case 4: ris = quar(b); case 5: ris = quin(b); default: ris = -1; return (ris); Giorgio Giacinto 2009 Fondamenti di Informatica 2 16

9 Esecuzione delle funzioni e passaggio dei parametri! Immaginiamo tre diverse macchine astratte! una principale dedicata all esecuzione del main! una asservita (slave) dedicata all esecuzione della funzione pote! rispetto alla funzione pote abbiamo un altra macchina asservita dedicata all esecuzione di una delle funzioni quad, cubo, quar, quin! La macchina principale ha bisogno di un valore che le può essere fornito dalla macchina asservita! Con la chiamata alla macchina asservita si ha il passaggio del valore e la cessione del controllo a quest ultima! Al termine dell esecuzione della funzione il controllo viene restituito alla macchina principale con il parametro richiesto (tramite return) Giorgio Giacinto 2009 Fondamenti di Informatica 2 17 Esecuzione delle funzioni e passaggio dei parametri (cont.) base esponente b e c ptnz ris <return> Ambiente del main Ambiente di pote Ambiente di quad,cubo, quar,quin Giorgio Giacinto 2009 Fondamenti di Informatica 2 18

10 Esecuzione delle funzioni e passaggio dei parametri (cont.)! Il passaggio del risultato al main avviene attraverso una variabile (non dichiarata) che coincide con il nome della funzione! Passaggio dei parametri (freccia ")! copia del valore di ciascun parametro attuale nella cella del corrispondente parametro formale! Dopo il passaggio dei parametri, il controllo passa alla macchina asservita! l esecuzione della macchina principale viene sospesa! return restituisce il controllo alla macchina principale che preleva il valore del risultato Giorgio Giacinto 2009 Fondamenti di Informatica 2 19 Le procedure! In varie occasioni il compito di un operazione astratta non è produrre un valore di un certo tipo, ma è modificare il contenuto del programma che ne chiede l esecuzione! In questi casi si utilizza un diverso tipo di sottoprogramma chiamato procedura! Definizione di procedura In C: una funzione avente come tipo del risultato il tipo speciale void (assenza di un risultato) Giorgio Giacinto 2009 Fondamenti di Informatica 2 20

11 Esempi di procedure Inserimento di una fattura in un archivio Ordinare un array di interi o di stringhe Stampare una rubrica telefonica con un determinato formato! Il risultato atteso non è un valore ma l aggiornamento o la modifica della struttura dati su cui opera la procedura Giorgio Giacinto 2009 Fondamenti di Informatica 2 21 Chiamata di una procedura! Analoga alla chiamata di una funzione.! Manca un valore ritornato: non può trovarsi a destra di una operazione di asssegnazione o come termine di un espressione <identificatore_procedura>(<parametri_attuali>); Esempio OrdinaElenco(ElencoPersonale);! Corrispondenza tra parametri formali e attuali! si segue l ordine della dichiarazione: a ciascun parametro formale deve corrispondere un parametro attuale dello stesso tipo Giorgio Giacinto 2009 Fondamenti di Informatica 2 22

12 Esecuzione delle procedure! Consideriamo le macchine astratte principale (per il main) e asservita (per la procedura)! Al termine dell esecuzione la macchina asservita cede il controllo alla macchina principale! Non viene prodotto alcun valore come risultato! L effetto che si ottiene è in genere la modifica della variabile passata come parametro (ma, ad es., una procedura può avere il compito di riportare dei valori a video o su stampante)! Possibile solo nel caso di utilizzo di variabili globali? Giorgio Giacinto 2009 Fondamenti di Informatica 2 23 Struttura completa di un programma C! Un programma C consiste in! Una parte direttiva! Una parte dichiarativa che comprende:! Dichiarazioni di costanti! Dichiarazioni di tipi! Dichiarazioni di variabili! Prototipi di procedure e funzioni! Un programma principale main! Definizione di funzioni e procedure! Un programma C può essere descritto come! un insieme di funzioni e di variabili proprie dell ambiente globale del programma.! Una delle funzioni deve essere identificata come main Giorgio Giacinto 2009 Fondamenti di Informatica 2 24

13 main e funzioni e procedure! L esecuzione del programma globale inizia con la prima istruzione della parte esecutiva del main.! L intestazione del main è l intestazione di una funzione che può coinvolgere come tipo del risultato e dei parametri di ingresso il tipo speciale void void main (void) Il main può contenere parametri di ingresso che consentono la comunicazione tra ambiente di programma e ambiente del sistema operativo Giorgio Giacinto 2009 Fondamenti di Informatica 2 25 Il concetto di blocco! Definizione un blocco consiste di due parti sintattiche racchiuse tra parentesi graffe! Una parte dichiarativa (facoltativa)! Una sequenza di istruzioni! Diversi blocchi possono comparire internamente al main o alle funzioni che compongono un programma Giorgio Giacinto 2009 Fondamenti di Informatica 2 26

14 Esempi di blocchi #include <stdio.h> int g1,g2; int f1(int par1, int par2);... main() int a,b;... /* blocco1 */ char a,c; continua# int f1(int par1, int par2) int d;... /* blocco2 */ int e;... /* blocco3 */ int d; Giorgio Giacinto 2009 Fondamenti di Informatica 2 27 Visibilità delle variabili! Vediamo alcune definizioni:! Si dice ambiente globale di un programma l insieme di tutti gli elementi dichiarati nella sua parte dichiarativa globale! Si dice ambiente locale di una funzione l insieme di tutti gli elementi dichiarati nella sua parte dichiarativa e nella sua testata! Si dice ambiente di un blocco l insieme di tutti gli elementi dichiarati nella sua parte dichiarativa! Il concetto di ambiente permette di dichiarare più volte lo stesso identificatore anche con significati diversi, purché in ambienti diversi Giorgio Giacinto 2009 Fondamenti di Informatica 2 28

15 Visibilità delle variabili modello a contorni g1,g2 Ambiente del main a,b Ambiente del blocco1 a,c d e d Ambiente globale Ambiente di f1 Ambiente del blocco2 Ambiente del blocco3 Elementi nell ambiente globale possono essere visti da tutte le funzioni e i blocchi Elementi nell ambiente locale di una funzione possono essere visti da tutti i blocchi contenuti nella funzione Gli elementi nell ambiente di un blocco possono essere visti da tutte le istruzioni nel blocco e dai blocchi in esso contenuti In caso di più definizioni dello stesso identificatore: è valida la definizione dell ambiente più vicino al punto di utilizzo Giorgio Giacinto 2009 Fondamenti di Informatica 2 29 Tempo di vita delle variabili! Creazione di una variabile allocazione in memoria dello spazio per la sua rappresentazione! Due categorie di variabili! Variabili fisse o statiche allocate una sola volta e vengono distrutte solo quando termina l esecuzione del programma (es. variabili globali del programma)! Variabili automatiche create ogni volta che si entra nel loro ambito di visibilità e che vengono distrutte all uscita da tale ambiente (es. variabili dichiarate a livello di funzione, procedura e blocco) Giorgio Giacinto 2009 Fondamenti di Informatica 2 30

16 Funzioni e procedure: uso di parametri di tipo array! Un array può essere passato a una funzione come parametro formale solo per indirizzo indirizzo di base dell array passato per valore alla funzione Esempio typedef double TipoArray[MaxNumElem] I seguenti prototipi di funzioni sono equivalenti double sum(double *a) double sum(double a[]) double sum(tipoarray a) Giorgio Giacinto 2009 Fondamenti di Informatica 2 31 Funzioni e procedure: uso di parametri di tipo array bidimensionali! Il passaggio di un array bidimensionale avviene con la seguente sintassi Esempio double Array[Righe][Colonne]; è un array contenente un numero di elementi pari a Righe, dove ciascun elemento è un array contenente un numero di elementi pari a Colonne I seguenti prototipi di funzioni sono equivalenti double sum(double a[righe][colonne]) double sum(double (*a)[colonne]) double sum(double a[][colonne]) Il parametro della funzione è cioè un puntatore ad un vettore i cui elementi sono array di double di dimensione pari a Colonne. Giorgio Giacinto 2009 Fondamenti di Informatica 2 32

17 Uso di parametri di tipo array in funzioni e procedure: osservazioni! Attenzione! Una funzione che agisce su un parametro array, agisce sempre sull originale, non su una copia!! Un array è sempre passato per indirizzo a una funzione! Nota bene: una funzione C non può mai restituire un array ma solo un puntatore a tale array Giorgio Giacinto 2009 Fondamenti di Informatica 2 33 Funzioni ricorsive in C! Il linguaggio C supporta la definizione di funzioni ricorsive. Esempio definizione fattoriale int fatt(int n) int ris; if(n==0) ris = 1; else ris = n*fatt(n-1); return ris; Giorgio Giacinto 2009 Fondamenti di Informatica 2 34

18 Funzioni ricorsive in C (cont.)! Nel caso di funzioni ricorsive, la funzione chiama l esecuzione di un altra copia di se stesso su dati diversi! Ad ogni chiamata ricorsiva della funzione, viene creato un nuovo ambiente per l esecuzione della funzione! Nello stesso momento possono essere in corso diverse esecuzioni della stessa funzione, ciascuna con la propria area dati locale, distinta dalle altre! Attenzione all uso di variabili passate per indirizzo. Giorgio Giacinto 2009 Fondamenti di Informatica 2 35 Le standard library e Header file! In C esistono predefiniti molti sottoprogrammi di vasto uso che costituiscono la standard library resa disponibile al programmatore! La definizione delle funzioni che costituiscono la libreria sono disponibili come file di codice compilato, non leggibile direttamente dal programmatore! Gli header file contengono prototipi di funzioni di libreria (standard e non). Il programmatore che intende usare funzioni di libreria deve usare la direttiva #include Ad esempio: #include <stdio.h> Giorgio Giacinto 2009 Fondamenti di Informatica 2 36

19 Standard library del C stdio.h: funzioni per gestione ingresso uscita math.h: funzioni trigonometriche, esponenziali, logaritmiche, calcolo del valore assoluto stdlib.h: funzioni di utilità e gestione della memoria string.h: gestione di caratteri e di stringhe di caratteri Altri header per ricerca e ordinamento in array, gestione data e ora, generazione numeri casuali, comunicazione con l ambiente del sistema operativo e gestione dei fallimenti dei programmi a tempo di esecuzione Giorgio Giacinto 2009 Fondamenti di Informatica 2 37 Lettura di una stringa di caratteri con scanf! Lettura di una stringa di caratteri da stdin (ad es. parole separate da spazi o caratteri di newline) in un array char Word[MaxDimWord] scanf( %s,word)! Se l input è Calcolatore, l effetto di scanf è: Word[0]= C...Word[10]= e, Word[11]= \0! Il carattere speciale \0 indica la fine della parola nell array! considerato false nelle istruzioni condizionali Giorgio Giacinto 2009 Fondamenti di Informatica 2 38

20 Libreria string.h Alcune funzioni per manipolare stringhe di caratteri int strcmp(char *s1, char *s2); confronto fra due stringhe. Ritorna un intero maggiore, uguale o minore di zero a seconda che s1 sia alfabeticamente maggiore uguale o minore a s2. char *strcpy(char *s1, char *s2); copia s2 (compreso \0) in s1, sovrascrivendo il contenuto di s1 (non si controlla la dimensione di s1). Si restituisce il puntatore a s1. char *strcat(char *s1, char *s2); restituisce s1 che contiene la concatenazione fra s1 e s2 unsigned strlen(char *s); calcola la lunghezza di una stringa (escluso \0) Giorgio Giacinto 2009 Fondamenti di Informatica 2 39

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

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

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

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica 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

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

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

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

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

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste

4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste 4 Le liste collegate 4.0 Le liste collegate c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 4.0 0 4 Le liste collegate Rappresentazione di liste 4.1

Dettagli

TUTORATO di LINGUAGGI I

TUTORATO di LINGUAGGI I TUTORATO di LINGUAGGI I Enrico Vianello TUTORATO di LINGUAGGI I contatti utili LE LEZIONI SI TERRANNO: VENERDI 12.30-14.30 PER INFORMAZIONI e DOMANDE: enrico.vianello@student.unife.it IL MATERIALE UTILIZZATO

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

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

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

3. Terza esercitazione autoguidata: progetto gestione voli

3. Terza esercitazione autoguidata: progetto gestione voli 9 3. Terza esercitazione autoguidata: progetto gestione voli Qui ci occupiamo di scrivere un programma abbastanza lungo, dedicato alla gestione di una tabella di dati. Una tabella e una struttura dati

Dettagli

FUNZIONI. La libreria standard del C fornisce una ricca collezione di funzioni, come le funzioni:

FUNZIONI. La libreria standard del C fornisce una ricca collezione di funzioni, come le funzioni: FUNZIONI La libreria standard del C fornisce una ricca collezione di funzioni, come le funzioni: double sqrt(double) double pow (double, double) della libreria matematica, che abbiamo già usato anche senza

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli

Dettagli

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Cos è una stringa (1) Stringhe DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Una stringa è una serie di caratteri trattati come una singola unità. Essa potrà includere lettere, cifre, simboli e caratteri

Dettagli

Introduzione al linguaggio C Gli array

Introduzione al linguaggio C Gli array Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

CARATTERI E STRINGHE Caratteri e stringhe Funzioni della libreria standard I/O Funzioni della libreria di gestione delle stringhe

CARATTERI E STRINGHE Caratteri e stringhe Funzioni della libreria standard I/O Funzioni della libreria di gestione delle stringhe CARATTERI E STRINGHE Caratteri e stringhe Funzioni della libreria standard I/O Funzioni della libreria di gestione delle stringhe Caratteri e stringhe Caratteri Sono i blocchi costitutivi di ogni programma:

Dettagli

Allocazione dinamica della memoria - riepilogo

Allocazione dinamica della memoria - riepilogo Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della

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

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita UD4 - MATLAB M-file. Efficienza degli algoritmi. Formati d uscita M-files In MatLab è possibile eseguire istruzioni contenute in file esterni; Tali file sono chiamati M-file perché devono avere estensione.m

Dettagli

Tipi di dato-prima parte

Tipi di dato-prima parte Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) Tipi di dato-prima parte Ing. Agnese Pinto 1 di 15 Tipi di dato Sommario Tipi di dato Classificazione dei tipi di dato Tipi

Dettagli

I puntatori e l allocazione dinamica di memoria

I puntatori e l allocazione dinamica di memoria I puntatori e l allocazione dinamica di memoria L allocazione delle variabili Allocazione e rilascio espliciti di memoria Le funzioni malloc e free 2 2006 Politecnico di Torino 1 Allocare = collocare in

Dettagli

Files in C++ Fondamenti di Informatica. R. Basili. a.a. 2006-2007

Files in C++ Fondamenti di Informatica. R. Basili. a.a. 2006-2007 Files in C++ Fondamenti di Informatica R. Basili a.a. 2006-2007 Sintesi Motivazioni Definizione di file in C++ Un esempio Uso dei file Esempi Esercizi Motivazioni il programma in esecuzione legge (sequenzialmente)

Dettagli

puntatori Lab. Calc. AA 2007/08 1

puntatori Lab. Calc. AA 2007/08 1 puntatori Lab. Calc. AA 2007/08 1 parametri delle funzioni (dalla lezione scorsa) gli argomenti in C vengono passati by value dalla funzione chiamante alla funzione chiamata la lista degli argomenti viene

Dettagli

Alcune regole di base per scrivere un programma in linguaggio C

Alcune regole di base per scrivere un programma in linguaggio C Alcune regole di base per scrivere un programma in linguaggio C Un programma il linguaggio C (listato) viene scritto in formato testo ed archiviato in un file: *.c Per scrivere un listato C si utilizza

Dettagli

Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x.

Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x. Funzioni Esercizio 1 Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x. Creare un altra funzione, di nome float cube(float x), che restituisce invece il

Dettagli

Linguaggio C - Stringhe

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

Dettagli

Il comando provoca il salvataggio dello stato e la terminazione dell esecuzione.

Il comando provoca il salvataggio dello stato e la terminazione dell esecuzione. Scrivere un programma per la gestione di una videoteca. Il programma deve essere in grado di tenere traccia dello stato corrente (presente/in prestito a x/smarrito da x/danneggiato da x a livello nn) e

Dettagli

La ricorsione. Politecnico di Milano Sede di Cremona

La ricorsione. Politecnico di Milano Sede di Cremona La ricorsione Politecnico di Milano Sede di Cremona Gianpaolo Cugola Dipartimento di Elettronica e Informazione cugola@elet.polimi.it http://www.elet.polimi.it/~cugola Definizioni ricorsive Sono comuni

Dettagli

AA 2006-07 LA RICORSIONE

AA 2006-07 LA RICORSIONE PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella

Dettagli

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette. 3.5 STAMPA UNIONE Le funzioni della stampa unione (o stampa in serie) permettono di collegare un documento principale con un elenco di nominativi e indirizzi, creando così tanti esemplari uguali nel contenuto,

Dettagli

Indirizzo di una funzione. Puntatori a funzioni. Definizione di variabili. Definizione di variabili

Indirizzo di una funzione. Puntatori a funzioni. Definizione di variabili. Definizione di variabili Indirizzo di una funzione 2 Puntatori a funzioni Ver. 2.4 Si può chiamare una funzione utilizzando l indirizzo di memoria dal quale inizia il codice eseguibile della funzione stessa L indirizzo di memoria

Dettagli

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Elettrica, e Meccanica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011

Dettagli

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015. Indice

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015. Indice LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015 VINCENZO MARRA Indice Parte 1. Input/Output standard dalla console 2 Esercizio 1 2 Eco

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

Java Native Interface Appunti

Java Native Interface Appunti Java Native Interface Appunti Riccardo Rizzo 1/8 Introduzione L'uso delle Java Native Interface e' giustificato tutte quelle volte che una applicazione non puo' essere scritta interamente in Java. Per

Dettagli

Alfabeto ed elementi lessicali del linguaggio C

Alfabeto ed elementi lessicali del linguaggio C Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2015-2016 Alfabeto ed elementi lessicali del linguaggio C Pietro Di Lena - pietro.dilena@unibo.it s t a t i c s h o r t l e g s ; i n

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

VARIABILI LOCALI E GLOBALI (ESTERNE)

VARIABILI LOCALI E GLOBALI (ESTERNE) VARIABILI LOCALI E GLOBALI (ESTERNE) Le variabili locali sono definite (ed il loro uso dichiarato) nella funzione (o nel blocco) che le usa; nascono quando la funzione entra in esecuzione e muoiono al

Dettagli

Funzioni e procedure

Funzioni e procedure Funzioni e procedure DOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA 56 53100 SIENA UFF. 0577234850-7102 RIGUTINI@DII.UNISI.IT HTTP://WWW.DII.UNISI.IT/~RIGUTINI/

Dettagli

Gestione dei File in C

Gestione dei File in C Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte

Dettagli

CAPITOLO V. DATABASE: Il modello relazionale

CAPITOLO V. DATABASE: Il modello relazionale CAPITOLO V DATABASE: Il modello relazionale Il modello relazionale offre una rappresentazione matematica dei dati basata sul concetto di relazione normalizzata. I principi del modello relazionale furono

Dettagli

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1) Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi

Dettagli

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

Header. Unità 9. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi Corso di Laboratorio di Informatica Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella Corso di Informatica Puntatori Anno Accademico 2010/2011 Francesco Tortorella Variabili, registri ed indirizzi Abbiamo visto che la definizione di una variabile implica l allocazione (da parte del compilatore)

Dettagli

LINGUAGGI DI PROGRAMMAZIONE

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni. Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni

Dettagli

RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di

RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di esempio CERCA 90 NEL SACCHETTO = estrai num Casi num 90 Effetti CERCA 90 NEL

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/03/07 Nota Questi lucidi sono tratti

Dettagli

Librerie. Laboratorio di Informatica Antonio Monteleone 28

Librerie. Laboratorio di Informatica Antonio Monteleone 28 Librerie Una libreria è una collezione di funzioni (classi, variabili) usata per sviluppare applicazioni. Le funzioni (classi, variabili) contenute in una libreria si dicono da questa esportate. L'uso

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

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

Dettagli

3. La sintassi di Java

3. La sintassi di Java pag.9 3. La sintassi di Java 3.1 I tipi di dati statici In Java, come in Pascal, esistono tipi di dati statici predefiniti e sono i seguenti: byte 8 bit da -128 a 127 short 16 bit coincide con l integer

Dettagli

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014 Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 18 31/03/2014 Funzioni: Dichiarazione e Definizione La dichiarazione di una funzione serve a comunicare al compilatore quali sono

Dettagli

I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002

I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi lisi@di.uniba.it Sommario Generalità sui file in C I file ad accesso sequenziale I file di testo Riferimenti

Dettagli

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. www.dia.unisa.it/dottorandi/murano. Il linguaggio C II

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. www.dia.unisa.it/dottorandi/murano. Il linguaggio C II Laboratorio di Algoritmi e Strutture Dati Aniello Murano www.dia.unisa.it/dottorandi/murano 1 Il linguaggio C II 2 1 Indice (seconda parte) Funzioni Array Puntatori Preprocessore Storage Class Ricorsione

Dettagli

Gestione delle eccezioni in Java

Gestione delle eccezioni in Java Gestione delle eccezioni in Java Fondamenti di Informatica Ingegneria Gestionale Canale AL 1 Le eccezioni in Java Exception handling: insieme di costrutti e regole sintattiche e semantiche presenti nel

Dettagli

Concetti chiave. Struct. Variabili strutturate: il tipo struct Elementi di una struttura typedef e struct Array di strutture

Concetti chiave. Struct. Variabili strutturate: il tipo struct Elementi di una struttura typedef e struct Array di strutture Concetti chiave Struct Variabili strutturate: il tipo struct Elementi di una struttura typedef e struct Array di strutture Struct Per aggregare elementi di tipo diverso si utilizza una struttura. struct

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 della prova scritta del 28 Febbraio 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int min = 3; int i; Scrivere la porzione di codice

Dettagli

Appello di Informatica B

Appello di Informatica B Politecnico di Milano Facoltà di Ingegneria Industriale 19 febbraio 2004 Appello di Informatica B Prof. Angelo Morzenti - Prof. Vincenzo Martena Cognome e nome: Matricola: Tipo di prova: recupero I prova

Dettagli

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1 Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria R. Vitolo Dipartimento di Matematica Università di Lecce SaLUG! - Salento Linux User Group Il programma OCTAVE per l

Dettagli

Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente.

Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente. Ricorsione Funzioni ricorsive Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente. Un esempio di funzione ricorsiva

Dettagli

Linguaggio C. Fondamenti. Struttura di un programma.

Linguaggio C. Fondamenti. Struttura di un programma. Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C La nascita del linguaggio C fu dovuta all esigenza di disporre di un Linguaggio ad alto livello adatto alla realizzazione

Dettagli

Breve riepilogo della puntata precedente:

Breve riepilogo della puntata precedente: Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta

Dettagli

Codifica: dal diagramma a blocchi al linguaggio C++

Codifica: dal diagramma a blocchi al linguaggio C++ Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU

Dettagli

2. Spiegare brevemente qual è la funzione del compilatore e la sua importanza per il programmatore.

2. Spiegare brevemente qual è la funzione del compilatore e la sua importanza per il programmatore. 1 Esercizio 1 1. Immaginate di avere una calcolatore che invece che poter rappresentare i classici due valori per ogni bit (0/1) possa rappresentare 7 valori per ogni bit. (a) Quanti bit gli occorreranno

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Linguaggi di Programmazione Sintassi e semantica Compilatori, interpreti e il linker Introduzione al C La funzione main del C 2 Definizione 1 Un linguaggio è un insieme di parole

Dettagli

Il calcolatore. Architettura di un calcolatore (Hardware)

Il calcolatore. Architettura di un calcolatore (Hardware) Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti

Dettagli

Sistemi Web per il turismo - lezione 3 -

Sistemi Web per il turismo - lezione 3 - Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa

Dettagli

Laboratorio di Algoritmi e Strutture Dati. La gestione della memoria dinamica Heap

Laboratorio di Algoritmi e Strutture Dati. La gestione della memoria dinamica Heap Laboratorio di Algoritmi e Strutture Dati La gestione della memoria dinamica Heap Proff. Francesco Cutugno e Luigi Lamberti 2009 Cenni sui Processi Si definisce Programma un insieme di Istruzioni destinate

Dettagli

Grammatica di base: Pointers

Grammatica di base: Pointers Grammatica di base: Pointers Esistono I puntatori a funzioni. Bisogna esplicitare esattamente il tipo di ritorno e il tipo di argomento. Per evitare ambiguità con il prefisso * nel declarator, il nome

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Analisi Object Oriented ed Elementi di Programmazione OO Origini Le metodologie ad oggi nascono negli anni 70 ma si affermano solo nelgi anni 80 grazie alla nascita dei linguaggi

Dettagli

Ricorsione. Corso di Fondamenti di Informatica

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

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

Esame del 3 febbraio 2010

Esame del 3 febbraio 2010 Fondamenti di Informatica CdL in Ingegneria Gestionale a.a. 2009/2010 Docente: Andrea Prati Esame del 3 febbraio 2010 Esercizio 1 Vettori Sia data un vettore (array monodimensionale) di interi: int VETT[N];

Dettagli

Funzioni. Corso di Fondamenti di Informatica

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

Dettagli

dall argomento argomento della malloc()

dall argomento argomento della malloc() Allocazione dinamica Quando? Tutte le volte in cui i dati possono crescere in modo non prevedibile staticamente a tempo di sviluppo Un array con dimensione i fissata a compile-time non è sufficiente È

Dettagli

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C CORSO DI LABORATORIO DI INFORMATICA CORSO DI LAUREA IN SDM ANNO ACCADEMICO 2011-2012 Docente: R. Sparvoli Esercitazioni: R. Sparvoli, F. Palma OTTAVA ESPERIENZA DI LABORATORIO L elaborazione dei files

Dettagli

Introduzione al Linguaggio C

Introduzione al Linguaggio C Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

Sottoprogrammi: astrazione procedurale

Sottoprogrammi: astrazione procedurale Sottoprogrammi: astrazione procedurale Incapsulamento di un segmento di programma presente = false; j = 0; while ( (j

Dettagli

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

IL CONCETTO DI FILE. È illecito operare oltre la fine del file. IL CONCETTO DI FILE Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni su memoria di massa. Concettualmente, un file è una sequenza di registrazioni

Dettagli

Connessione ad internet

Connessione ad internet Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità

Dettagli

La selezione binaria

La selezione binaria Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per

Dettagli

Dynamic Linking. Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica

Dynamic Linking. Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica Dynamic Linking Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica Dynamic Linking Il linking tra i moduli di un programma e le librerie da esso utilizzate può essere Statico

Dettagli

Informatica Teorica. Macchine a registri

Informatica Teorica. Macchine a registri Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire

Dettagli

Programmazione I / Informatica generale Prova scritta 11 Giugno 2008

Programmazione I / Informatica generale Prova scritta 11 Giugno 2008 Programmazione I / Informatica generale Prova scritta 11 Giugno 2008 NOTA: Si trascuri ogni problema legato al tipo ed al valore di ritorno della funzione main. Inoltre, nei programmi è da sottintendere

Dettagli

INTRODUZIONE ALLE BASI DATI RELAZIONALI

INTRODUZIONE ALLE BASI DATI RELAZIONALI INTRODUZIONE ALLE BASI DATI RELAZIONALI RELAZIONI E TABELLE Nelle BASI DI DATI RELAZIONALI le informazioni sono organizzate in TABELLE; Le tabelle sono rappresentate mediante griglie suddivise in RIGHE

Dettagli

Esercizi svolti durante le ore di Informatica e Sistemi automatici nelle classi del Liceo Scientifico Tecnologico del Liceo Milli di Teramo

Esercizi svolti durante le ore di Informatica e Sistemi automatici nelle classi del Liceo Scientifico Tecnologico del Liceo Milli di Teramo Esercizi svolti durante le ore di Informatica e Sistemi automatici nelle classi del Liceo Scientifico Tecnologico del Liceo Milli di Teramo /*Caricare un vettore di n numeri float, ordinarlo e e stamparlo

Dettagli

SOLUZIONE ESERCIZIO 1

SOLUZIONE ESERCIZIO 1 SOLUZIONE ESERCIZIO 1 Progettare un algoritmo che dati tre numeri (voti) a, b, c che possono assumere i valori interi da 18 a 30, calcoli la loro media. #include void main() { int a, b, c; float

Dettagli

Esercizio 1. Esercizio 2

Esercizio 1. Esercizio 2 Esercizio 1 Realizzare un programma che, aperto un file di testo di nome Prova.txt in modalità scrittura, provveda a leggere da input delle parole separate da spazi (stringhe di al più 63 caratteri) e

Dettagli

La gestione della memoria

La gestione della memoria La gestione della memoria DOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA 56 53100 SIENA UFF. 0577234850-7102 RIGUTINI@DII.UNISI.IT HTTP://WWW.DII.UNISI.IT/~RIGUTINI/

Dettagli

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

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto 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

int f(char *s, short n, float x) {... } /* definizione di f */ int f(char *, short, float); /* prototipo di f */

int f(char *s, short n, float x) {... } /* definizione di f */ int f(char *, short, float); /* prototipo di f */ Prototipi di funzione Il prototipo di una funzione costituisce una dichiarazione della funzione, e come tale fornisce al compilatore le informazioni necessarie a gestire la funzione stessa. Nella definizione

Dettagli

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio 1-La memoria dinamica La scrittura di un programma (indipendentemente dal linguaggio adottato) deve sempre tener conto

Dettagli

Programmazione I - Laboratorio

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

Dettagli

Esercizio: gestione di un conto corrente

Esercizio: gestione di un conto corrente Esercizio: gestione di un conto corrente Si realizzi un conto corrente bancario mediante: - una ASTRAZIONE DI DATO - un TIPO DI DATO ASTRATTO Il conto corrente è caratterizzato dalle seguenti informazioni:

Dettagli