Elementi di Informatica A. A. 2016/2017
|
|
- Giuditta Patti
- 4 anni fa
- Visualizzazioni
Transcript
1 Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it
2 Programmazione C++ Parte 3
3 Da dove studiare? «Che C Serve», Capitolo 6 Da 6.1 a 6.7 Riferimento: Appendice B
4 Moduli (1/2) Un programma descrive un algoritmo che risolve un problema Per risolvere un problema possiamo utilizzare vari approcci Bottom-up, Top-down, Il problema viene quindi scomposto in sotto-problemi più piccoli che sono risolvibili tramite un algoritmo tipicamente più semplice o ben noto Si cerca di ridurre la complessità del sistema Si suddivide un algoritmo in moduli Componenti capaci di svolgere specifiche funzioni Autonomo e ben identificato Riusabile
5 Moduli (2/2) Ogni modulo implementa un algoritmo o una sua parte Ci interessa sapere cosa fa e come deve essere utilizzato Non ci interessa (necessariamente) sapere come è fatto dentro Molti moduli sono "chiusi", ovvero non è possibile vedere cosa fanno al loro interno (ad es. moduli a pagamento) Ogni modulo è identificato da un nome con cui può essere chiamato (o attivato) È come se diventasse una nuova istruzione del linguaggio in uso È fatto da istruzioni Ha degli ingressi e delle uscite Chi lo ha chiamato prende il nome di chiamante
6 Moduli e Funzioni Le funzioni in C/C++ sono sottoprogrammi Contenitori di frammenti di codice che implementano un algoritmo Richiamabili tramite un nome Una chiamata a funzione provoca l'esecuzione del codice in essa contenuto Alla funzione possono essere dati dei parametri di ingresso Una funzione può avere parametri di uscita Tali parametri sono ritornati al chiamante tramite l'istruzione return Se non li ha prende il nome di procedura
7 Vantaggi Sinteticità Il codice non viene duplicato I programmi diventano più brevi e di dimensioni "gestibili" Leggibilità Un algoritmo diviso in funzioni (chiamate in modo consono) diventa facilmente leggibile Scomposizione del problema La divisione in funzione permette di realizzare il programma in modo modulare, suddividendo il lavoro tra più persone Riuso È possibile usare funzioni scritte da altri, raccolte in librerie Non ci interessano i dettagli dell'algoritmo che implementano
8 Dichiarare una Funzione Per utilizzare una funzione ci servono Il suo nome Il tipo e l'ordine dei parametri in ingresso Il tipo di ritorno (se previsto) L'insieme di queste informazioni si definisce "firma" (o intestazione) della funzione tipo_restituito nome_funzione (tipo_ingresso1 nome_variabile_ingresso1, tipo_ingresso1 nome_variabile_ingresso2, )
9 Tipo Restituito Può essere un tipo di dato semplice o strutturato int, long, char[],struct Contatto, In caso la funzione non debba ritornare nulla, si dichiara che l'insieme di ritorno è "void" (ovvero vuoto) Il valore viene ritornato al chiamante tramite l'istruzione return Va specificato il valore o la variabile da ritornare In caso sia "void", basta la sola istruzione return
10 Nome Il nome di una funzione rispetta le convenzioni di cui abbiamo discusso per le variabili essere formati da lettere minuscole o maiuscole, numeri e underscore (_) cominciare con una lettera o un underscore non essere parole chiave del C++ Come per le variabili, maiuscole e minuscole sono differenti in C++ Ad es. «funzione1» è un nome diverso da «Funzione1»
11 Parametri Una funzione può avere degli input, ovvero i dati in ingresso del problema Tali input prendono il nome di parametri della funzione Distinguiamo tra parametri formali ed effettivi Formali Sono i parametri che la funzione utilizza al suo interno Sono variabili che esistono e possono essere utilizzati solo all'interno della funzione Effettivi Sono i parametri passati alla funzione dal chiamante Sono i valori su cui effettivamente opera l'algoritmo, copiato nelle variabili relative ai parametri formali
12 Parametri Formali ed Effettivi Non c'è bisogno che parametri effettivi e formali abbiano lo stesso nome Viene considerata la posizione del parametro all'interno della firma della funzione All'atto della chiamata Viene copiato il valore di ogni parametro effettivo nella rispettiva posizione di memoria relativa al parametro formale nella stessa posizione Prima dell'esecuzione, il compilatore controlla che i tipi di parametri formali ed effettivi coincidano Viene eseguito il codice della funzione Viene reso disponibile in memoria l'output della funzione (se previsto) Tipicamente lo si assegna ad una variabile o lo si usa in un'operazione
13 Esempi di firme di funzioni int potenza(int p, int esp) float somma(float a, float b) void stampa_somma(float a, float b) int leggi_intero()
14 int main(int argc, char** argv) Anche main, in cui siamo abituati a scrivere il nostro codice è una funzione È l'entry point del programma È la funzione da cui comincia l'esecuzione del programma Viene invocata dal sistema operativo direttamente Il valore ritornato prende il nome di "error code" e viene interpretato dal sistema operativo 0, tutto ok
15 Esempio Distanza tra due punti Calcolo della distanza tra due punti nel piano cartesiano (ipotenusa di un triangolo rettangolo)
16 Esempio Distanza tra due punti Vogliamo calcolare Per realizzare la funzione d(p 1,P 2 ) Dividiamo in sotto-problemi double radice_quadrata(double x) double quadrato(double x1, double x2) Avremo q1 = quadrato(x1, x2) q2 = quadrato(y1, y2) d = radice_quadrata( q1 + q2 )
17 Le librerie di funzioni Sono raccolte di funzioni che implementano risoluzione di sotto-problemi comuni algoritmi noti per la Ad es. calcolo della radice quadrata Alcune raccolte sono messe a disposizione con il compilatore Sono inclusi in file che vanno inclusi nel nostro programma con la direttiva #include Ad es. iostream Includendo la libreria "math.h" si ha la possibilità di utilizzare alcune funzioni che risolvono semplici problemi matematici Vedi "Appendice B" del libro "Che C serve?" In particolare, a noi serve la funzione con la firma double sqrt(double x)
18 Esempio Distanza tra due punti double quadrato(double x1, double x2) { double q = (x1*x1) + (x2*x2); return q; } double distanza(double x1, double x2, double y1, double y2) { double c; c = sqrt( quadrato(x1, x2), quadrato(y1,y2) ); return c; } int main() { } cout << distanza (3,3,4,4);
19 Esercizio 1 Scrivere il prototipo di una funzione che accetti in ingresso un numero intero e restituisca un valore che indichi se il numero in ingresso è un numero primo Si implementi poi tale funzione Si realizzi infine un programma chiamante che verifichi il corretto comportamento della funzione implementata Definizione di numero primo: un numero intero positivo è numero primo se è divisibile solo per 1 e per sé stesso
20 Esercizio 2 Utilizzando la funzione per la rivelazione dei numeri primi si realizzi una seconda funzione che, dato un numero intero dall utente, stampi tutti i numeri primi minori o uguali ad esso
21 Esercizio 3 Scrivere il prototipo di una funzione che accetti in ingresso tre interi e, interpretandoli come giorno, mese ed anno, restituisca un valore che indichi se la data specificata è una data valida. Si implementi poi la funzione. Si realizzi infine un programma chiamante (main) che verifichi il corretto comportamento della funzione
22 Il passaggio dei parametri I parametri effettivi in C++ sono nella maggior parte dei casi copiati all'interno delle variabili utilizzate all'interno della funzione Il parametro effettivo del chiamante non viene modificato all'interno della funzione Ad es. consideriamo la funzione void incrementa(int i) { i++; } Data la variabile "int numero = 1", se richiamiamo "incrementa(numero)", Il valore di i, inizialmente 1, diventerà invece 2 il valore numero rimarrà invariato È stato passato alla funzione solo il valore della variabile
23 Passaggio per valore Il passaggio dei parametri in C++, in assenza di esplicite direttive, avviene secondo la modalità detta per valore Questo significa che, all atto della chiamata di una funzione, il compilatore realizza unacopia dei parametri effettivi e la associa ai parametri formali La funzione lavora dunque su delle copie dei parametri effettivi localizzate in aree di memoria completamente diverse, e non sui parametri effettivi veri e propri Le copie vengono distrutte al termine della funzione: del loro valore, eventualmente alterato all interno della funzione, non resta traccia
24 Passaggio per valore Vantaggi: dal punto di vista del programma chiamante: il chiamante di una funzione può essere certo che i parametri ad essa passati non potranno essere alterati in seguito alla chiamata dal punto di vista della funzione: la funzione, se lo crede opportuno, può modificare i parametri a suo piacimento con la certezza che le modifiche non saranno visibili all esterno di essa Svantaggi: l occupazione di memoria risulta doppia rispetto al necessario il tempo per effettuare la copia dei parametri, specialmente nel caso in cui questi siano appartenenti a tipi strutturati di grosse dimensioni, può degradare le prestazioni di un programma
25 Passaggio per riferimento Non viene più passato il valore, ma il riferimento alla posizione di memoria della variabile (il suo indirizzo di memoria) Per richiedere questo tipo di passaggio, bisogna aggiungere il carattere & tra il tipo ed il nome del parametro in questione void incrementa(int &i) { i++; }
26 Passaggio per riferimento Vantaggi: il passaggio è più efficiente dal momento che, a prescindere dalle dimensioni del dato, quello che deve essere passato è sempre e solo un indirizzo di memoria Svantaggi: si perde il meccanismo di protezione garantito dal passaggio dei parametri per valore
27 Valore o riferimento? Parametri di ingresso parametri di ingresso, se ai fini della corretta esecuzione della funzione è sufficiente, per la funzione stessa, esclusivamente leggere il loro valore; Passati per valore Ad es. bool numero_pari(int n) Parametri di ingresso/uscita parametri di ingresso-uscita, se il loro valore all ingresso della funzione è significativo ai fini della elaborazione che essa realizza ma vengono anche alterati per convogliare informazioni verso il chiamante; Passati per riferiemento Ad es. void incrementa(int &n) Parametri di uscita parametri di uscita, se essi rappresentano esclusivamente un supporto per convogliare informazioni verso l esterno della funzione; Passati per riferimento Ad es. void giorno_oggi(int &giorno)
28 Il passaggio di parametri const Problema È necessario passare un dato di grosse dimensioni conservando l efficienza e proteggendolo comunque da modifiche indesiderate Soluzione Durante lo scambio dei parametri, se si fa anticipare al tipo del parametro la keyword const, si impedisce del tutto alla funzione di modificare il parametro all interno di essa Nel caso di passaggio per riferimento, la clausola const risolve il problema di modifiche indesiderate ai parametri, consentendo contemporaneamente di sfruttare l efficienza intrinseca di questa modalità
29 Passaggio di Array Dato un array "int vettore[10]", se stampiamo la variabile "vettore", notiamo un valore insolito Viene stampata la posizione del primo elemento in memoria Quando passiamo un array ad una funzione, viene copiato questo indirizzo per valore Ma questo valore non è altro che un riferimento ad un array! La funzione lavorerà sull'area di memoria dell'array originale L'array originale non sarà protetto dalle modifiche Anteporre "const" ad un parametro di tipo array permette di evitare modifiche void stampa_vettore(const int vettore[10])
30 Passaggio di Array Un array monodimensionale può essere passato specificando o meno la sua dimensione void stampa_vettore(const int vettore[10]) void stampa_vettore(const int vettore[]) In entrambi i casi, conviene passare esplicitamente anche il numero di elementi che effettivamente lo compongono, oppure usare un carattere terminatore (ad es. nelle stringhe) void stampa_vettore(const int vettore[], const int numero_elementi)
31 Passaggio di una Matrice Le matrici sono Array Valgono le considerazioni fatte per gli array Mentre per un array monodimensionale possiamo omettere la dimensione, per una matrice deve essere specificata la seconda dimensione (ovvero le colonne) void stampa(int m[][10]) Questo dipende dal fatto che il C++ deve necessariamente conoscere quante "celle di memoria" occupa una riga
32 Riepilogo Nel prototipo Modalità di passaggio Quando si usa Note int n Passaggio per valore Parametro in ingresso Le modifiche non sono propagate all'esterno const int n Passaggio const per valore Parametro in ingresso Le modifiche non sono propagate all'esterno int &n Passaggio per riferimento Parametro di uscita o di ingresso/uscita const struct Contatto c Passaggio per riferimento Parametro di ingresso di grosse dimensioni int v[] Passaggio per riferimento di un vettore const int v[] Passaggio const per riferimento di un vettore Vettore di uscita o ingresso/uscita Vettore di ingresso Le modifiche sono propagate all'esterno Non può essere modificato Viene copiato il puntatore al vettore e non il vettore. Le modifiche si propagano. Il vettore non può essere modificato
33 Esercizi Scrivere il prototipo di una funzione che realizzi il prodotto scalare di due vettori Scrivere il prototipo di una funzione che calcoli la media dei componenti di un vettore Scrivere il prototipo di una funzione che calcoli il minimo di un vettore Scrivere il prototipo di una funzione che realizzi il concatenamento di due vettori Implementare le funzioni summenzionate ed i rispettivi main per il testing
34 Esercizi Implementare le seguenti funzioni ed i rispettivi programmi di testing: void calcolamodulo(float PReale, float PImmag, float& Modulo); float calcolamodulo(float PReale, float Pimmag); float calcolamodulo( const NumeroComplesso& n); Dove NumeroComplesso è un tipo strutturato composto dai campi P_reale e P_immaginaria int quantianniha(const Persona& p); e void stampanome(const Persona& p); Dove Persona è un tipo strutturato composto dai campi Nome ed Età
Esempio di programma che utilizza funzioni
C++: funzioni Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli Federico II e-mail:
DettagliFunzioni. Elementi di informatica IGLP
Funzioni Elementi di informatica IGLP Questo insieme di trasparenze è stato ideato e realizzato dai ricercatori e professori del Dipartimento di Informatica e Sistemistica dell Università di Napoli. Esse
DettagliElementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 2
DettagliLe Funzioni in C. Fondamenti di Informatica Anno Accademico 2010/2011. Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia
Le Funzioni in C Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2010/2011 docente: prof. Michele Salvemini 1/24 Sommario Le funzioni Il
DettagliLe funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità
Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità Le funzioni: la dichiarazione
DettagliProcedure e funzioni A. Ferrari
Procedure e funzioni A. Ferrari Procedura Una procedura può essere rappresentata come una macchina in grado di eseguire un certo compito quando attivata. In un primo tempo la macchina deve essere costruita:
DettagliConcetto 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
DettagliPROGETTAZIONE TOP-DOWN E BOTTOM-UP
PROGETTAZIONE TOP-DOWN E BOTTOM-UP Top-down e bottom-up sono strategie di elaborazione dell'informazione e di gestione delle conoscenze, riguardanti principalmente il software e, per estensione, altre
DettagliFunzioni 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
DettagliLe funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità
Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità Le funzioni Tutti i linguaggi
DettagliIntroduzione alla programmazione. Alice Pavarani
Introduzione alla programmazione Alice Pavarani Il linguaggio C Creato da Dennis Ritchie nel 1972 presso i Bell Laboratories Linguaggio di programmazione procedurale, strutturato Linguaggio ad alto livello
DettagliStrategie 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
DettagliMETODI in Java. Prof.Angela Bonifati. Metodi e Sottoprogrammi
Fondamenti di Informatica METODI in Java Prof.Angela Bonifati 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile definire nuovi tipi di dati, tramite i metodi è possibile
DettagliCorso 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
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 8 Dettagli e Approfondimenti versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliC: 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
DettagliProcedura. Procedure e funzioni. Esempio di procedura in C. Procedure in C. Esempio con prototipo. Esecuzione del codice
Procedure e funzioni In linguaggio C Procedura Una procedura può essere rappresentata come una macchina in grado di eseguire un certo compito quando attivata. In un primo tempo la macchina deve essere
DettagliFondamenti di Informatica
Programmazione modulare (top-down) Fondamenti di Informatica 15. Funzioni in C++ (parte 1) Problemi complessi Conviene suddividere il programma in sottoprogrammi piu semplici mediante la metodologia di
DettagliInformatica (A-K) 12. Linguaggio C -3
Introduzione alle funzioni in C Informatica (A-K) 12. Linguaggio C -3 int main() int i,n, fattoriale=1; printf( Inserire Numero: ); scanf( %d, &n); for (i =2; i
DettagliIntroduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2017
DettagliEsercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)
Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici
DettagliVariabili e Funzioni. Informatica 1 / 19
Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:
DettagliLe funzioni. Fondamenti di programmazione
Le funzioni Fondamenti di programmazione Moduli I programmi sono spesso abbastanza complessi da dover essere scomposti in pezzi più maneggevoli Un modulo consiste di istruzioni per svolgere un certo compito
DettagliAPPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO VI.2015
APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.VI.2015 VINCENZO MARRA Indice Esercizio 1 1 Definizione dei tipi P e T, e calcolo dell area.
DettagliDo...While() Break Continue Concetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Do...While() Break Continue Concetto di Funzione e Procedura METODI in Java Prof.Angela Bonifati 1 Istruzione while int vet1[] = new int[20]; int vet2[] = new int[20]; for(int
DettagliParametri by reference. Funzioni. Passaggio dei parametri. Parametri by reference. Soluzione. Problemi
Funzioni Introduzione Operatori & e * Passaggio by reference Passaggio di vettori Esercizio strcpy 2 Passaggio dei parametri Il linguaggio C prevede il passaggio di parametri by value Il chiamato non può
DettagliC++ funzioni Alberto Ferrari. Alberto Ferrari Programmazione di applicazioni SW
C++ funzioni Alberto Ferrari http://en.cppreference.com FUNZIONI le funzioni caratterizzate da nome, parametri (numero, ordine e tipo) e tipo di ritorno le funzioni hanno un prototipo il prototipo non
DettagliProgrammazione (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
DettagliCapitolo 10 - Strutture
1 Capitolo 10 - Strutture Strutture In molte situazioni, una variabile non è sufficiente per descrivere un oggetto. Ad esempio, una posizione sul piano cartesiano è identificata da due coordinate, e la
DettagliFUNZIONI. attribuire un nome ad un insieme di istruzioni parametrizzare l esecuzione del codice
Funzioni FUNZIONI Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvono parti specifiche di un problema Una funzione permette di attribuire un nome ad un insieme di istruzioni
DettagliFunzioni. (Passaggio dei parametri per riferimento) Passaggio dei parametri
Funzioni (Passaggio dei parametri per riferimento) Passaggio dei parametri Per passaggio dei parametri si intende l associazione fra parametri attuali e parametri formali che avviene al momento della chiamata
Dettagliliceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA
INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE PROGRAMMAZIONE BIENNIO: SECONDA DISCIPLINA: INFORMATICA PIANO DI LAVORO DEL DOCENTE / RELAZIONE FINALE Anno scolastico 2014/2015 DOCENTE Prof. PAOLO ARMANI CLASSE:
Dettaglicout << "Inserisci un numero:" << endl; cin >> n; ris = n*2; cout << "Il doppio di " << n << " e " << ris << endl;
Funzioni int n, ris; cout n; ris = n*2; cout
DettagliNota: Si consideri il valore di pi greco.
ESERCIZIO 1 (Costrutti condizionali + Casting delle variabili) Realizzare un programma che, dato in ingresso un angolo specificato in gradi come un numero intero, fornisca la relativa conversione in radianti.
DettagliStringhe in C. Luca Abeni. Informatica Luca Abeni 1 / 10
Stringhe in C Luca Abeni Informatica Luca Abeni 1 / 10 Stringhe in C Stringhe: tipo di dato strutturato Sequenze di caratteri Linguaggio C: progettato per la semplicità No supporto nativo per le stringhe
DettagliTitolo presentazione
Titolo presentazione Programmazione C: Esercizi su stringhe, funzionisottotitolo di libreria e matrici Milano, XX mese 20XX Informatica ed Elementi di Informatica Medica Agenda Argomenti e valore di ritorno
DettagliTempo 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):
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2018/2019 Argomenti del Corso Ogni lezione consta di una spiegazione assistita da slide,
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 11 Marzo 2014
Puntatori Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 11 Marzo 2014 Immagini Struttura dati: typedef struct{ int R; int G; int B; } pixel pixel img[0][24]; Ma quanto è grossa
DettagliIl linguaggio C Funzioni e procedure
Il linguaggio C Funzioni e procedure modello cliente-servitore risultato Ambiente condiviso cliente servitore richiesta di servizio Sottoprogrammi Spesso può essere utile avere la possibilità di costruire
DettagliProgrammazione modulare
Programmiamo in.. Programmazione modulare Un programma complesso si suddivide in più sottoprogrammi o funzioni. Un programma suddiviso in piccoli pezzi, è più semplice da gestire da aggiornare da correggere
DettagliLinguaggio 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
DettagliElementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 4
DettagliFondamenti di Informatica Ing. Biomedica
Fondamenti di Informatica Ing. Biomedica Esercitazione n.10 Strutture Antonio Arena antonio.arena@ing.unipi.it Ripresa esercizio per casa Fondamenti di Informatica - Esercitazione n.10 2 Scrivere una funzione
DettagliFunzioni, 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
DettagliFunzioni come parametri
Funzioni come parametri Obiettivi: Riprendere il modello computazionale alla base del linguaggio C (e mostrare i parametri del main) Presentare e sperimentare le funzioni come parametri di funzione 1 Modello
DettagliDati due punti sul piano calcolare la loro distanza
Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12
DettagliProgettazione Top Down e funzioni in C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Progettazione Top Down e funzioni in C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Progettazione top-down Quando si ricerca la soluzione di un problema complesso può essere complicato
DettagliCorso di Informatica A.A
Corso di Informatica A.A. 2009-2010 Lezione 11 Corso di Informatica 2009-2010 Lezione 11 1 Utilizzo dei puntatori Funzioni Perche i Puntatori? I puntatori hanno tre importanti applicazioni: 1. Passaggio
DettagliFunzioni. 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
DettagliCorso di Informatica Modulo T3 2 Ambiente locale e globale
Corso di Informatica Modulo T3 2 Ambiente locale e globale 1 Prerequisiti Struttura elementare della memoria Area dati e area programma Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 4 Aprile 2013
Puntatori Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 4 Aprile 201 WAT? WAT Lab Troppi exe, ne volevo di meno Vacanze W A Giovedì 28, Venerdì 29 e Lunedì 1 ma anche Martedì 2
DettagliCorso sul linguaggio C Modulo Tipi di dato
Corso sul linguaggio C Modulo 1 1.3 - Tipi di dato 1 Prerequisiti Concetto di espressione Cenni sulla struttura del calcolatore 2 1 Introduzione In questa lezione si esaminano i tipi di dato. I tipi di
DettagliLe strutture /1. struct temp {char titolo[200]; char autore[100]; int pagine; } ; typedef struct temp libro;
Le strutture /1 Le strutture rappresentano un tipo di variabile che, diversamente dagli array, consente di gestire in modo compatto, mediante un'unico identificatore, un insieme di valori che non possiedano
DettagliUniversità degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Array. Anno Accademico 2010/2011 Francesco Tortorella
Corso di Informatica Tipi strutturati: Array Anno Accademico 2010/2011 Francesco Tortorella Gli array In alcuni casi, l informazione che bisogna elaborare consiste di un aggregazione di valori, piuttosto
DettagliFondamenti di Informatica Ing. Biomedica
Fondamenti di Informatica Ing. Biomedica Esercitazione n.8 Matrici Antonio Arena antonio.arena@ing.unipi.it Fondamenti di Informatica - Esercitazione n.8 2 Matrici In C++ viene trattata come array multi-dimesionale.
DettagliFondamenti di Informatica II 3. Funzioni in C++ (parte 1)
Introduzione alle funzioni in C++ Fondamenti di Informatica II 3. Funzioni in C++ (parte 1) Corso di Laurea in Ingegneria Informatica A.A. 2008-2009 2 Semestre Corso (A-M) int main() int n, fattoriale=1;
DettagliStrutture come parametri di funzioni
Strutture come parametri di funzioni int main() { struct PolReg { int numlati; float lunghezzalato; PolReg p1; p1.numlati = 3; p1.lunghezzalato = 10.0; float perimetro = p1.numlati * p1.lunghezzalato;
DettagliFUNZIONI. Esempi (pseudo-c): dare un nome a una espressione rendere tale espressione parametrica. float f(){ * sin(0.75); } float f1(int x) {
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
DettagliPROGETTAZIONE TOP-DOWN E BOTTOM-UP
PROGETTAZIONE TOP-DOWN E BOTTOM-UP Top-down e bottom-up sono strategie di elaborazione dell'informazione e di gestione delle conoscenze, riguardanti principalmente il software e, per estensione, altre
DettagliMatlab: Script e Funzioni
Matlab: Script e Funzioni Informatica B Script Cos è uno script (m-file) q Uno script è un file di testo contenente una sequenza di comandi MATLAB non deve contenere caratteri di formattazione (solo testo
DettagliQualsiasi programma in C++ segue lo schema: Variabili
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
DettagliLinguaggio 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
DettagliUna funzione riceve dati di ingresso in corrispondenza ai parametri
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
DettagliBreve Ripasso del linguaggio C
Breve Ripasso del linguaggio C Michelangelo Diligenti Ingegneria Informatica e dell'informazione diligmic@diism.unisi.it Compilazione, linking, ecc sorgente oggetto librerie sorgente oggetto editor sorgente
DettagliEsercizi. La funzione swapint() primo tentativo
Politecnico di Milano Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio di array. #include
DettagliSotto programmi - Funzioni in C
Sotto programmi - Funzioni in C R. Gallo Settembre 2009 Sommario Le funzioni C/C++ sono l'implementazione in codice C/C++ di uno strumento presente in tutti i linguaggi di programmazione: i sottoprogrammi
DettagliIl 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
DettagliLezione 11. Tipo derivato riferimento Passaggio per riferimento Parametri di ingresso e/o uscita
Lezione 11 Tipo derivato riferimento Passaggio per riferimento Parametri di ingresso e/o uscita Programmazione I Paolo Valente - 2016/2017 2 Esercizio Scrivere una funzione tramite la quale sia possibile
DettagliLe classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:
Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata
DettagliUnità 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
DettagliLinguaggio 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
DettagliCorso di Fondamenti di Informatica Tipi strutturati: Stringhe
Corso di Fondamenti di Informatica Tipi strutturati: Stringhe Anno Accademico Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri
DettagliIntroduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2016
DettagliI tipi strutturati e i record in C++
I tipi strutturati e i record in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Puntatori a funzioni 1 Funzioni che restituiscono puntatori Il valore di ritorno restituito da una funzione può essere di qualsiasi tipo, compreso il tipo puntatore.
DettagliAmbienti di Programmazione per il Software di Base
Ambienti di Programmazione per il Software di Base Le Funzioni in C Esercizi sulle Funzioni svolti Esercizi sulle Funzioni da svolgere A.A. 2011/2012 Ambienti di Programmazione per il Software di Base
DettagliStringhe in C. Nicu Sebe. Informatica Nicu Sebe 1 / 14
Stringhe in C Nicu Sebe Informatica Nicu Sebe 1 / 14 Stringhe in C Stringhe: tipo di dato strutturato Sequenze di caratteri Linguaggio C: progettato per la semplicità No supporto nativo per le stringhe
DettagliITI M. FARADAY. Programmazione a. s
ITI M. FARADAY Programmazione a. s. 2018-2019 Disciplina: INFORMATICA Indirizzo: INFORMATICA E TELECOMUNICAZIONI Classi: Terza A Terza B Ore settimanali previste: 6 (3 ora Teoria - 3 ore Laboratorio) Docenti:
DettagliProgrammazione I Prova scritta - 10 gennaio h20min
Programmazione I Prova scritta - 10 gennaio 2019-1h20min NOTA: Nei programmi si trascuri ogni problema legato al tipo ed al valore di ritorno della funzione main, inoltre si sottintenda la presenza delle
DettagliEvoluzione del C 07/04/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 16 IL LINGUAGGIO C
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 16 IL LINGUAGGIO C Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna
DettagliMatematica - SMID : Programmazione Luglio 2007 FOGLIO RISPOSTE
Matematica - SMID : Programmazione Luglio 2007 FOGLIO RISPOSTE NOME: COGNOME: ============================================================== Esercizio 1 ci sono tante "righe"; non è detto servano tutte...
DettagliFondamenti di Informatica 12. Linguaggio C -4
Strutture Dati in C Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Fondamenti di Informatica 12. Linguaggio C -4 Strutture Dati
DettagliFondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012
Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Introduzione alla sintassi C++ Array a una dimensione Array a due dimensioni Array multidimensionali Funzioni standard della libreria
DettagliLaboratorio di informatica Ingegneria meccanica
Laboratorio di informatica Ingegneria meccanica Lezione 7 19 novembre 2007 Concetto di modulo di un programma (1) Lo sviluppo di programmi complessi avviene tipicamente per composizione di moduli, ognuno
DettagliIntroduzione alla programmazione A. Ferrari
Introduzione alla programmazione A. Ferrari Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede tutti i costrutti di controllo dei linguaggi ad
DettagliPuntatori e array. Violetta Lonati
Puntatori e array Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Puntatori e array
DettagliAstrazione. Lab.Calc. AA 2007/08 2
funzioni Astrazione Consiste nell'ignorare i dettagli e concentrarsi sull'essenziale: in particolare ci consente di utilizzare oggetti complicati con uno sforzo limitato (lettori di CD, automobili, computer)
DettagliProgrammazione 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
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 20 Aprile 2016
Puntatori Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 20 Aprile 2016 Come rappresento un pixel? Il pixel è Il colore Come ottengo il verde? Con il formato RGB R: 91 G: 191 B:
DettagliL 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
DettagliESEMPIO PROCEDURE. return IN UNA PROCEDURA. Disegnare, per un dato n, la seguente figura * *** ***** ******* ********* ***********
Sottoprogrammi I sottoprogrammi possono servire per creare nuovi operatori: funzioni, che possono essere usati nelle espressioni, forniscono un valore di ritorno =4*potenza(2+y,3); nuove istruzioni: procedure,
DettagliInizio programma principale. Preparare antipasto. Preparare. pasta. Sottoproblema 1 Sottoproblema 2
I SOTTOPROGRAMMI Inizio programma principale Apparecchiare la tavola antipasto primo secondo torta Servire dolci e liquori Fine Inizio sottoprogramma torta rompere le uova ungere la teglia Fine Approccio
DettagliBreve Ripasso del linguaggio C
Breve Ripasso del linguaggio C Michelangelo Diligenti Ingegneria Informatica e dell'informazione diligmic@diism.unisi.it Compilazione, linking, ecc sorgente oggetto librerie sorgente oggetto binario editor
DettagliUnità A1 Funzioni MODULO Java 2
Dare una breve descrizione dei termini introdotti: (A) CONOSCENZA TERMINOLOGICA Passaggio parametri per valore Passaggio parametri per indirizzo Parametri formali e attuali Regole di visibilità Ambiente
DettagliPassare 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