LABORATORIO di INFORMATICA

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "LABORATORIO di INFORMATICA"

Transcript

1 Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto FUNZIONI E PROCEDURE 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 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 2010 Laboratorio di Informatica 33 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 2010 Laboratorio di Informatica 34

18 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 2010 Laboratorio di Informatica 35 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 2010 Laboratorio di Informatica 36

19 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 2010 Laboratorio di Informatica 37

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

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio 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

Dettagli

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

Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. 1 Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa a valori delle variabili

Dettagli

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

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C 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

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

Array k-dimensionali

Array k-dimensionali Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Array k-dimensionali In C è possibile definire array con più dimensioni (ANSI C massimo k=12), per

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

Dove vengono definiti? il concetto di sottoprogramma

Dove vengono definiti? il concetto di sottoprogramma ROADMAP Funzioni e struttura di un programma Tipi, operatori, espressioni Strutture di controllo Livello 1 Input/Output Strutture dati FUNZIONI E STRUTTURA DI UN PROGRAMMA Livello 2 funzioni procedure

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

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

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

Dettagli

Ottenere una modifica del parametro attuale

Ottenere una modifica del parametro attuale Ottenere una modifica del parametro attuale Le variabili passate come parametri a una funzione, se alterate durante l esecuzione, non cambiano valore all uscita dalla funzione (parametri passati per valore)

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

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

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

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

Librerie Stringhe. Librerie e stringhe. Lezione 9. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A. 2015/2016

Librerie Stringhe. Librerie e stringhe. Lezione 9. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A. 2015/2016 e stringhe Lezione 9 Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2015/2016 Calendario delle lezioni Lezione 1 (7 e 9/10/2015) - Introduzione all ambiente Linux Lez. 2 (14 e 16/10/2015)

Dettagli

GESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009

GESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009 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

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. Unità Didattica 4 Linguaggio C Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. 1 Vettori Struttura astratta: Insieme di elementi dello stesso tipo, ciascuno individuato da un indice;

Dettagli

Esercizio 1: funzione con valore di ritorno di tipo puntatore

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

Dettagli

LA RICORSIONE IN C. CdL Ingegneria Informatica n.o. Anno Accademico 2006/07 Fondamenti di Informatica I corso A Giacomo Piscitelli pag.

LA RICORSIONE IN C. CdL Ingegneria Informatica n.o. Anno Accademico 2006/07 Fondamenti di Informatica I corso A Giacomo Piscitelli pag. I lucidi sono una rielaborazione e integrazione di quelli messi a disposizione dei docenti nel sito relativo al testo: Informatica: arte e mestiere 2/ed Stefano Ceri, Dino Mandrioli, Licia Sbattella Copyright

Dettagli

Caratteri e stringhe

Caratteri e stringhe Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un

Dettagli

Informatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi

Informatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi Informatica 1 Corso di Laurea Triennale in Matematica Gianluca Rossi gianluca.rossi@uniroma2.it Dipartimento di Matematica Università di Roma Tor Vergata 11: Stringhe (www.informatica-uno.blogspot.com)

Dettagli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del

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

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

Esercitazione 11. Liste semplici

Esercitazione 11. Liste semplici Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene

Dettagli

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

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

Dettagli

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

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

Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri

Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri

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

Strutture Dati Dinamiche

Strutture Dati Dinamiche Strutture Dati Dinamiche Motivazioni Le variabili considerate fino a questo punto devono essere dichiarate staticamente, ossia la loro esistenza, il loro nome e la loro dimensione devono essere previsti

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

Linguaggio C: le funzioni. Introduzione e sintassi

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

Dettagli

Scope delle variabili e passaggio parametri. Danilo Ardagna Politecnico di Milano

Scope delle variabili e passaggio parametri. Danilo Ardagna Politecnico di Milano Scope delle variabili e passaggio parametri Danilo Ardagna Politecnico di Milano 1-4-2014 Introduzione! Con le funzioni è stato introdotto un meccanismo per definire dei piccoli programmi all interno di

Dettagli

Linguaggio C Struttura dei programmi

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

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

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

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

Dettagli

C: panoramica. Violetta Lonati

C: panoramica. Violetta Lonati C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati

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

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

Compendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica) Compendio sottoinsieme del C++ a comune col C (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica) Librerie 1/2 Il solo insieme di istruzioni di un linguaggio di programmazione

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

L'Allocazione Dinamica della Memoria nel linguaggio C

L'Allocazione Dinamica della Memoria nel linguaggio C L'Allocazione Dinamica della Memoria nel linguaggio C Prof. Rio Chierego riochierego@libero.it http://www.riochierego.it/informatica.htm Sommario Questo documento tratta l'allocazione dinamica della memoria

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

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

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

Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3)

Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3) Funzioni Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Strategie di programmazione Riuso di

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

$QDOLVLGHOSURJUDPPDTXDGUDWR

$QDOLVLGHOSURJUDPPDTXDGUDWR $QDOLVLGHOSURJUDPPDTXDGUDWR /* */ calcolare l area del quadrato #include main(){ int lato, area; printf("lato "); scanf("%d", &lato); if(lato < 0) printf("errore nei dati \n"); else { area =

Dettagli

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

Input/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari Input/Output Lettura e scrittura Caratteri e Stringhe: Terminale e file Input/output console file caratteri stringhe formattato ascii binari Linguaggio ANSI C Input/Output - 1 La libreria standard del

Dettagli

La sintassi del C APPENDICE H

La sintassi del C APPENDICE H APPENDICE H La sintassi del C Nella notazione della sintassi utilizzata, le categorie sintattiche (non terminali) sono state indicate da uno stile tipografico in corsivo, mentre le parole letterali e i

Dettagli

1 PANORAMICA SUL LINGUAGGIO C

1 PANORAMICA SUL LINGUAGGIO C 1 PANORAMICA SUL LINGUAGGIO C 1.1 Le origini del linguaggio C Il C fu inventato e implementato da Dennis Ritchie negli anni 70 su una macchina che impiegava il sistema operativo Unix. Il C è il risultato

Dettagli

Strategie di programmazione

Strategie di programmazione Funzioni Funzioni in C Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Funzioni in C Strategie

Dettagli

Il linguaggio C. Puntatori e dintorni

Il linguaggio C. Puntatori e dintorni Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;

Dettagli

Introduzione. Le funzioni in C. Funzioni. Cosa succede

Introduzione. Le funzioni in C. Funzioni. Cosa succede Introduzione Le funzioni in C DD Cap.5 pp.131-160 KP Cap.5 pp. 175-199 La maggior parte dei programmi scritti per risolvere problemi sono (molto!) più lunghi di quelli visti fin ora. Il modo migliore per

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Linguaggio C: le funzioni

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

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

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

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

Dettagli

Implementazione dell albero binario in linguaggio C++

Implementazione dell albero binario in linguaggio C++ Implementazione dell albero binario in linguaggio C++ Costruire il programma per gestire le operazioni su un albero binario. Ogni nodo dell albero contiene un codice e una descrizione; il programma deve

Dettagli

Lezione 19 e Allocazione dinamica della memoria - Direttive al preprocessore - Libreria standard - Gestione delle stringhe

Lezione 19 e Allocazione dinamica della memoria - Direttive al preprocessore - Libreria standard - Gestione delle stringhe Lezione 19 e 20 - Allocazione dinamica della memoria - Direttive al preprocessore - Libreria standard - Gestione delle stringhe Valentina Ciriani (2005-2008) Laboratorio di programmazione Valentina Ciriani

Dettagli

Input/Output di numeri

Input/Output di numeri Input/Output di numeri I/O di numeri Per utilizzare le funzioni di I/O occorre include il file di intestazione (o file header) stdio.h utilizzando all inizio del sorgente la direttiva #include

Dettagli

Struct, enum, Puntatori e Array dinamici

Struct, enum, Puntatori e Array dinamici Struct, enum, Puntatori e Array dinamici Tratti dal corso del Dr. Francesco Fabozzi Corso di Informatica Tipi di dato in C Abbiamo esaminato diversi tipi di dato che il C mette a disposizione dell utente

Dettagli

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

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm

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

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

C O P Y R I G H T ( C ) W W W. F O N D A M E N T I. I N F O Il linguaggio C C O P Y R I G H T ( C ) 2 0 0 8 W W W. F O N D A M E N T I. I N F O P E R M I S S I O N I S G R A N T E D T O C O P Y, D I S T R I B U T E A N D / O R M O D I F Y T H I S D O C U M E N

Dettagli

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

Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto. Sistema C e organizzazione del codice Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto. Un programma C è costituito da un insieme

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

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi

Dettagli

Gestione dinamica della memoria

Gestione dinamica della memoria Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Gestione dinamica della memoria Pietro Di Lena - pietro.dilena@unibo.it A pessimistic programmer sees the array as half empty.

Dettagli

Funzioni, puntatori, strutture. Lab. Calc. AA 2006/07

Funzioni, puntatori, strutture. Lab. Calc. AA 2006/07 Funzioni, puntatori, strutture sommario In questa lezione integriamo le informazioni fornite su puntatori e funzioni approfondendo i seguenti punti Puntatori a puntatori Puntatori e array come parametri

Dettagli

Preprocessore, linker e libreria standard

Preprocessore, linker e libreria standard Preprocessore, linker e libreria standard Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 IL PREPROCESSORE Programma sorgente

Dettagli

Programmazione di base

Programmazione di base Fondamenti di Informatica Primo Appello 01-17 8 febbraio 017 Rispondi alle domande negli appositi spazi. I punti assegnati per ogni domanda sono indicati nel riquadro a lato. L'esame contiene 10 domande,

Dettagli

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea

Dettagli

Costanti e Variabili

Costanti e Variabili Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli

Dettagli

Operazioni su file di caratteri

Operazioni su file di caratteri Operazioni su file di caratteri Apertura fopen Chiusura fclose Scrittura fprintf Lettura fscanf Controllo fine file feof Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 Apertura di un file: Si

Dettagli

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

Laboratorio di Programmazione: Linguaggio C Lezione 21 del 19 maggio 2014 Laboratorio di Programmazione: Linguaggio C Lezione 21 del 19 maggio 2014 Damiano Macedonio Esercizio 1 Scrivere una funzione che riceve in ingresso un puntatore ad un array di interi e modifica tale array

Dettagli

Capitolo 5 - Funzioni

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

Dettagli

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

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

Dettagli

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

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

Dettagli

FUNZIONI COME COMPONENTI SW FUNZIONI COME COMPONENTI SW FUNZIONI MODELLO CLIENTE/SERVITORE

FUNZIONI COME COMPONENTI SW FUNZIONI COME COMPONENTI SW FUNZIONI MODELLO CLIENTE/SERVITORE FUNZIONI Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvano parti specifiche di un problema Una funzione permette di dare un nome a una espressione rendere tale espressione

Dettagli

RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA

RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA Anno scolastico Lab informatica AULA n 35 Data inizio svolgimento Progr. relazione primo trimestre secondo pentamestre Cognome e Nome DATI DELLO STUDENTE

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE

INTRODUZIONE ALLA PROGRAMMAZIONE INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni

Dettagli

Perché il linguaggio C?

Perché il linguaggio C? Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni

Dettagli

Complementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -

Complementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Complementi - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Università degli Studi di Brescia Prof. Massimiliano Giacomin

Dettagli

Introduzione ai puntatori in C Definizione

Introduzione ai puntatori in C Definizione Introduzione ai puntatori in C Definizione Un puntatore è una variabile che contiene l indirizzo di un altra variabile Tramite i puntatori si può quindi accedere a un oggetto indirettamente (si usa il

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

Il linguaggio C funzioni e puntatori

Il linguaggio C funzioni e puntatori Salvatore Cuomo Il linguaggio C funzioni e puntatori Lezione n. 8 Parole chiave: Linguaggio C, procedure, funzioni. Corso di Laurea: Informatica Insegnamento: Programmazione II, modulo di Laboratorio Email

Dettagli

Passare argomenti al programma

Passare argomenti al programma Passare argomenti al programma Quando si invoca un programma è possibile passare degli argomenti ad esso durante la chiamata. Gli argomenti ricevuti saranno stringhe (array di char) quindi l insieme di

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

Introduzione Funzioni in C

Introduzione Funzioni in C ISIS "Guido Tassinari" di Pozzuoli Indirizzo INFORMATICO - Articolazione INFORMATICA http://www. A.S. 2012/2013 Docente: LINGUAGGIO C Funzioni e procedure Sommario Introduzione Funzioni in C Intestazione

Dettagli

ESERCIZIO 1. Si considerino le seguenti definizioni:

ESERCIZIO 1. Si considerino le seguenti definizioni: ESERCIZIO 1 Si considerino le seguenti definizioni: #define N 4 struct Casella{ unsigned int r, c; ; typedef Casella TappetoElastico[N][N]; Pare che tra le discipline degli ottocenteschi circhi delle pulci

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella Corso di Informatica Tipi strutturati: Stringhe Anno Accademico 2010/2011 Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri quali

Dettagli

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

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma. Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti

Dettagli

I puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria.

I puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria. Puntatori I puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria. NOTA: quando un programma viene mandato in esecuzione, ad esso viene assegnata un area di memoria di lavoro

Dettagli

Le direttive del Preprocessore

Le direttive del Preprocessore Le direttive del Preprocessore Prof. Orazio Mirabella Direttive Un compilatore traduce le istruzioni di un programma sorgente in linguaggio macchina Talvolta è conveniente prendere coscienza dell esistenza

Dettagli

Le funzioni, e le istruzioni di input/output

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

Dettagli

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

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 2 (a) Sintassi e Semantica versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina)

Dettagli