Elementi di C++ di base. f() Preprocessore, Compilatore, Librerie, Funzioni. Marco Ronchetti - MR4.1
|
|
- Rosina Parente
- 7 anni fa
- Visualizzazioni
Transcript
1 Elementi di C++ di base Preprocessore, Compilatore, Librerie, Funzioni.1
2 Funzioni Funzioni come "procedure".2 void stampa(void) { const char EOL="\n"; cout << "sono arrivato qui"<<eol; main() { int a=0; a++; stampa(); a++; stampa(); a++; stampa();
3 Funzioni.3 Funzioni come "procedure parametrizzate" tipo funzione(tipo argom1,...,tipo argomn) { corpo della funzione return var; int somma(int a, int b) { int s; s=a+b; return s; main() { int a,b,c,d; cout << "dammi quattro numeri \n"; cin >> a >> b >> c >> d; Esempio cout << "la media vale" << somma(somma(a,b),somma(c,d))/4 << "\n";
4 Le librerie limits.h, float.h limiti della macchina (int e float).4 iostream.h operazioni di I/O stdio.h operazioni di I/O math.h operazioni sui numeri (funzioni matematiche) ctype.h operazioni sui caratteri string.h manipolazione di stringhe time.h manipolazione di data e ora stdlib.h varie: conversioni tra stringhe e numeri, allocazione di memoria, ordinamento, ricerca, numeri casuali assert.h verifica di asserzioni
5 ctype.h int isdigit(int c); int isspace(int c); c e { space, CR, NL, HT, VT, FF int iscntrl(int c); c<40 or c=255 (DEL) int isalpha(int c); int isupper(int c); int islower(int c); int tolower(int c); int toupper(int c);.5
6 Il compilatore Scrittura del Programma come file di testo Libreria Altri File Oggetto File Sorgente (source) Traduzione del Programma da parte del compilatore File Oggetto (*.o) Collegamento tra gli object files (linker) File Eseguibile su disco Correzione degli errori di sintassi Lista degli errori di sintassi File Eseguibile in memoria.6 Caricamento dell eseguibile in memoria (loader( loader)
7 La compilazione CC prog.c -o prog -Ldir -lmath File Sorgente prog.c File Eseguibile prog CC prog.c E > prog.ii Libreria File Oggetto libmath.a File Sorgente prog.c File precompilato prog.ii.7
8 La compilazione CC prog.c c prog.o ld prog.o -o prog -Ldir -lmath File Sorgente prog.c File Sorgente prog.c File Eseguibile prog File oggetto prog.o Libreria File Oggetto libmath.a.8
9 Compilazione e librerie.9 square.c : #include <iostream.h> void square() { cout << "*****"<<"\n"; cout << "* *"<<"\n"; cout << "* *"<<"\n"; cout << "* *"<<"\n"; cout << "*****"<<"\n"; CC c square.c ar q libgeo.a square.o produce square.o aggiunge square.o a libgeo.a (Creando libgeo.a se necessario)
10 Compilazione e librerie triangle.c : #include <iostream.h> void triangle() { cout << " *"<<"\n"; cout << " * *"<<"\n"; cout << "*****"<<"\n"; CC c triangle.c ar q libgeo.a triangle.o produce triangle.o aggiunge triangle.o a libgeo.a.10
11 Compilazione e librerie ar t libgeo.a ranlib libgeo.a triangle.o; square.o; geo.h : void triangle(void); void square(void); lista il contenuto della libreria costruisci la tavola dei contenuti della lib.11
12 Compilazione e librerie.12 prog.c : #include "geo.h" main() { triangle(); square(); CC prog.c o prog L. lgeo prog * * * ***** ***** * * * * * * ***** produce prog
13 Il preprocessore Agisce come un Editor prima che la compilazione inizi. #include <filename> #include filename #define N 100 Inclusione di files (cerca in /usr/lib) (specifica la pathname) for (k=1; k<n ; k++) cout<< k << eoln; SCONSIGLIATO! E meglio: const int N=100 Definizione di costanti.13
14 Il preprocessore Compilazione condizionale #define DEBUG... #ifndef DEBUG cout << VERSIONE UFFICIALE ; #else cout << VERSIONE DI PROVA ; #endif... #ifdef DEBUG cout << i <<eoln; #endif.14
15 Funzioni: esercizio Esercizio: implementare la libreria "ctype"; 1) Scrivere il sorgente di una funzione di libreria 2) Testarlo 3) Scrivere il sorgente delle altre funzioni 4) Creare la libreria 5) Scrivere un programma di test che includa la libreria di sistema oppure la vostra libreria a seconda che sia definita o meno una variabile di controllo del precompilatore..15
16 Funzioni: problema #1 Come faccio a farmi restituire più di un valore da una funzione?.16
17 Funzioni: problema #2 int incrementa(int x) { x=x+1; return x; main(void) { int b,a=1; b=incrementa(a); cout << "a=" a << " b=" << b << "\n"; Quanto valgono a e b quando vengono stampati?.17 I parametri sono passati per valore, non per indirizzo!
18 Quanto vale s?.18 void modifica(int s) { s++;; main(void) { int s=1; modifica(s); cout << "s=" << s << "\n"; "globale" (B > < A) "locale" int s; int modifica() { s++; return s; main(void) { s=1; modifica(); cout << "s=" << s << "\n";
19 Variabili globali Le variabili globali sono "cattive" (almeno quanto il GOTO)! perchè violano il principio della località della informazione (Principio di "Information hiding") E' impossibile gestire correttamente progetti "grossi" nei quali si faccia uso di variabili globali..19 Principio del NEED TO KNOW: Ciascuno deve avere TUTTE e SOLO le informazioni che servono a svogere il compito affidato
20 Principi di Parna.20 Il committente di una funzione deve dare all'implementatore tutte le informazioni necessarie a realizzare la funzione, e NULLA PIÙ L'implementatore di una funzione deve dare all'utente tutte le informazioni necessarie ad usare la funzione, e NULLA PIÙ
21 Puntatori Operatore indirizzo: &.21 &a fornisce l indirizzo della variabile a Operat. di dereferenziazione: * *p interpreta la variabile p come un puntatore e fornisce il valore contenuto nella cella di memoria puntata Ricordate l'indirizzamento indiretto? main() { int a,b,c,d; int *pa, *pb; pa=&a; pb=&b; a=1; b=2; c=a+b; d=*pa + *pb; printf("%d + %d = %d \n",a,b,c); printf("%d + %d = %d \n",a,*pb,d);
22 Funzioni e puntatori TRUCCO: per passare un parametro per indirizzo, passiamo per valore un puntatore ad esso! int incrementa(int *px) { *px=*px+1; return *px; main(void) { int b,a=1; b=incrementa(&a); printf("%d %d \n",a,b); OUTPUT:
23 Funzioni e puntatori.23 TRUCCO: per ottenere più valori di ritorno, passiamo degli indirizzi! void minimax(int a1, int a2, int a3, int a4, int *pmin, int *pmax) { *pmin=a1; *pmax=a1; if (*pmin>a2) *pmin=a2; else if (*pmax<a2) *pmax=a2; if (*pmin>a3) *pmin=a3; else if (*pmax<a3) *pmax=a3; if (*pmin>a4) *pmin=a4; else if (*pmax<a4) *pmax=a4; main(void) { int a,b,c,d,min,max; cout << "Dammi 4 numeri\n"; cin >> a >> b >> c >> d; minimax(a,b,c,d,&min,&max); cout << "Il min vale "<<min<<" Il max vale "<<max<<"\n";
24 Scope delle variabili.24 Variabili globali Nel seguente esempio a e una variabile globale. Il suo valore è visibile a tutte le funzioni. ATTENZIONE! Le variabili globali vanno EVITATE a causa dei side-effects. int a=5; void { a=a+1; printf("a in f: %d -",a); return; main() { printf("a in main: %d -",a); ; printf("a in main: %d\n",a); Output: a in main: 5 - a in f: 6 - a in main: 6
25 Scope delle variabili Variabili automatiche.25 Nel seguente esempio a e una variabile automatica per la funzione f. int a=5; void { int a=2, b=4; printf("(a,b) in f: (%d,%d) -",a,b); return; main() { int b=6; printf("(a,b) in main: (%d,%d) -",a,b); ; printf("(a,b) in main: (%d,%d)\n",a,b); Il suo valore è locale ad f. Output: (a,b) in main: (5,6) - (a,b) in f: (2,4) - (a,b) in main: (5,6) ATTENZIONE! Le variabili automatiche SCHERMANO le variabili globali.
26 Scope delle variabili.26 void f(int n) { int b; static int a; if (n==0) {a=1 ; b=1; else {a=a+1; b=b+1; printf("(a,b) in f: (%d,%d) -",a,b); Variabili statiche "interne" void g(void) {int x=99,y=100,z=101; main() { int a=5,b=5; f(0); g(); f(1); printf("(a,b) in main: (%d,%d) -",a,b); Output: (a,b) in f: (1,1) - (a,b) in f: (2,?) - (a,b) in main: (5,5) ATTENZIONE:? significa che il valore di b alla seconda iterazione NON è (in generale) predicibile!
27 Scope delle variabili Variabili statiche "esterne".27 static int a; void f(int n) {... main() {... a è una variabile globale. Tuttavia è visibile solo alle funzioni che stanno nello stesso file al momento della compilazione! (Sarebbe un buon meccanismo per implementare le funzioni di libreria, se non fosse che le variabili globali vanno COMUNQUE evitate!)
28 La funzione exit().28 main(){ K E R N E L if (atexit(my_exit_handler)!= 0) exec _exit printf("errore nella registrazione di my_exit_handler"); printf("fine del main\n"); C start-up routine return exit function call return exit call exit return call my_exit_handler(void) { return printf("voce dall oltretomba!\n"); main function user functions exit handler standard I/O cleanup call return
29 Funzioni ricorsive Una funzione può richiamare se stessa. int fact(int n) { if (n==0) return 1; else return n*fact(n-1); main(void) { int n; cout<<"dammi un numero\n; cin >> n; cout << "Il suo fattoriale vale "<<fact(n)<<"\n";.29
30 Esercizio 1) Calcolare i numeri di Fibonacci. 1 e 2 sono i primo due numeri di Fibonacci. L'(n+1)-esimo numero di Fibonacci (n>2) è definito come somma dei due numeri di Fibonacci che lo precedono. 2) Scrivere un programma che generi le istruzioni necessarie per risolvere il problema della Torre di Hanoi..30
31 Tipi di dati typedef float coordinata; coordinata z,t; struct punto { coordinata x; coordinata y; punto origine; origine.x=0.0; origine.y=0.0; Tipi di dati personalizzati Tipi di dati composti.31
32 Puntatori a strutture Operat. di dereferenziazione di struttura: -> main() { struct point { int x; int y; enum color {BLACK, BLUE, RED, GREEN; ; struct point a, *pa; a.x = 3; a.y = 5; a.color=green; pa = &a; printf( %d %d %d,a.x,pa->y,(*pa).color);.32
Richiami di C++ di base. Marco Ronchetti. Funzioni. Richiami
Richiami di C++ di base Marco Ronchetti 1 Funzioni Richiami 2 Funzioni Funzioni come "procedure" void stampa(void) { const char EOL="\n"; cout
DettagliRichiami di C++ di base
1 Richiami di C++ di base 2 Tool per fare esercizi in C++ https://www.jdoodle.com/online-compiler-c++ 3 Il modello di memoria stack memoria allocata dalle funzioni (Variabili automatiche) heap uninitialized
DettagliIl C nel C++: Funzioni
Il C nel C++: Funzioni Funzioni (1) il concetto -> spezzare il programma in parti (procedure) una funzione è un parte di programma dotata di un nome che può essere richiamata in altri punti del programma
DettagliFunzioni (1) Il C nel C++: Funzioni. Funzione (2) Vantaggi delle Funzioni. Localizzazione della funzionalità correggibilità manutenibilità
Funzioni (1) Il C nel C++: Funzioni il concetto -> spezzare il programma in parti (procedure) una funzione è un parte di programma dotata di un nome che può essere richiamata in altri punti del programma
DettagliRichiami di C++ di base
1 Richiami di C++ di base 2 Il modello di memoria stack memoria allocata dalle funzioni (Variabili automatiche) heap uninitialized data initialized read/write data initialized read/only data text memoria
DettagliEsiste però anche un ambiente globale: quello dove tutte le funzioni sono definite. Qui si possono anche definire variabili, dette variabili globali
AMBIENTE LOCALE E GLOBALE In C, ogni funzione ha il suo ambiente locale che comprende i parametri e le variabili definite localmente alla funzione Esiste però anche un ambiente globale: quello dove tutte
DettagliEsiste però anche un ambiente globale: quello dove tutte le funzioni sono definite. Qui si possono anche definire variabili, dette variabili globali
AMBIENTE LOCALE E GLOBALE In C, ogni funzione ha il suo ambiente locale che comprende i parametri e le variabili definite localmente alla funzione Esiste però anche un ambiente globale: quello dove tutte
DettagliPreprocessore, 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
DettagliIndice generale. Prefazione...xv. Introduzione al linguaggio C...1. Capitolo 2 Variabili, costanti, letterali e tipi...31
Indice generale Prefazione...xv Organizzazione del libro...xvi Struttura del libro e convenzioni...xvii Codice sorgente e progetti...xviii Compilare ed eseguire direttamente i listati e gli snippet di
DettagliIntroduzione C++ Compilatori Librerie Usare oggetti
Introduzione C++ Compilatori Librerie Usare oggetti Introduzione a C, C++ e Java 1977 C 1986 C++ a better C con estensioni agli oggetti oggi uno standard industriale 1994 Java C ++ -- C++ C Java programmazione
DettagliIntroduzione C++ Il compilatore. La compilazione in g++ Introduzione a C, C++ e Java. C++ C Java 1977 C 1986 C++ Compilatori Librerie Usare oggetti
Introduzione a C, C++ e Java Introduzione C++ Compilatori Librerie Usare oggetti 1977 C 1986 C++ a better C con estensioni agli oggetti oggi uno standard industriale 1994 Java C ++ -- C++ C Java programmazione
DettagliIntroduzione C++ Compilatori Librerie Usare oggetti. Introduzione a C, C++ e Java
Introduzione C++ Compilatori Librerie Usare oggetti Introduzione a C, C++ e Java 1977 C 1986 C++ a better C con estensioni agli oggetti oggi uno standard industriale 1994 Java C ++ -- C++ C Java programmazione
DettagliLinguaggio 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
DettagliIl 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
DettagliLinguaggi di Programmazione
1 Linguaggi di Programmazione Marco Ronchetti Dipartimento di Ingegneria e Scienza dell Informazione University of Trento, Italy marco.ronchetti@unitn.it http://latemar.science.unitn.it Slides condivise
DettagliFunzioni di libreria. KP pp , , , 589, DD pp , , ,
Funzioni di libreria KP pp.112-115, 471-474, 573-575, 589, 598-601 DD pp.144-153, 307-313, 563-565, 588-591 Funzioni matematiche (1) KP p. 112,573 Il linguaggio C non contiene funzioni matematiche predefinite.
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione 1 C-Introduzione.tex: Versione 1.0, aa 2005-2006 Linguaggi di programmazione (1) Sono linguaggi che permettono la codifica di algoritmi in modo da renderli eseguibili, direttamente
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
DettagliUnità 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
DettagliIl 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
DettagliStruttura di un. Struttura dei programmi C
Parte 4 Struttura di un Programma Struttura dei programmi C Un programma C deve essere contenuto in uno o più file (salvo diversa specifica, per ora si assume in un file): 1. Una parte contenente direttive
DettagliLezione 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
DettagliPreprocessore, 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
DettagliFunzioni. Fondamenti di Informatica, Ingegneria Elettronica, Università La Sapienza Roma. aa R. Beraldi
Funzioni Qualunque programma C potrebbe essere realizzato senza far uso di funzioni (tranne ovviamente il main). Le funzioni cioè non aggiungono alcuna capacità di calcolo Il vantaggio delle funzioni consiste
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
DettagliCompendio 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
DettagliPassaggio dei parametri
Passaggio dei parametri Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei parametri così passati non si riflettono sull environment
DettagliPassaggio dei parametri Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei paramet
Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei parametri così passati non si riflettono sull environment esterno Per riferimento
DettagliPassaggio dei parametri. Passaggio dei parametri
Per valore Il valore viene copiato dal mondo esterno all environment della funzione o procedura Cambiamenti dei parametri così passati non si riflettono sul mondo esterno rimangono circoscritti all environment
DettagliIl 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
DettagliPrimo programma in C
Primo programma in C Struttura minima di un file C Applicazioni C in modo console Struttura del programma Commenti Direttive #include Definizione di variabili Corpo del main 2 Struttura minima di un file
DettagliProgetto per il Laboratorio di Programmazione Un interprete per il linguaggio PINO. Modulo I: Le tavole dei simboli (TS)
Progetto per il Laboratorio di Programmazione Un interprete per il linguaggio PINO Modulo I: Le tavole dei simboli (TS) Stefano Guerrini A.A. 2002/03 Canale P-Z Versione del 20 giugno 2003 1 Modulo I:
DettagliLa 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
DettagliFunzioni matematiche (1) KP p. 112,573. Corso di Fondamenti di Programmazione canale E-O. Funzioni matematiche (2) Funzioni matematiche (3)
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Funzioni di Libreria KP, pp. 112-115, 471-474, 573-575, 589, 598-601 DD, pp. 144-153, 307-313, 563-565, 588-591 Funzioni matematiche
DettagliConsideriamo ora il seguente programma organizzato su 3 file:
Consideriamo ora il seguente programma organizzato su 3 file: /* prog3.h */ #include #define LIRE_PER_EURO (1936.27) int geteuro(void); void putlire(int, double); /* prog3.c */ #include "prog3.h"
DettagliFondamenti di Informatica. Ingegneria elettronica
Fondamenti di Informatica Ingegneria elettronica Prima esercitazione Cecilia Catalano Sistema Operativo Il S.O. è costituito da un insieme di programmi che permettono di utilizzare e gestire tutte le risorse
DettagliIntroduzione al linguaggio C Primi programmi
Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione : Elementi lessicali del C Vittorio Scarano Corso di Laurea in Informatica Elementi lessicali e token Costanti Identificatori Operatori operatori di incremento/decremento
DettagliLe funzioni: la dichiarazione
Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Le regole di visibilità (scope) Il passaggio degli argomenti per valore e riferimento La funzione main() Le funzioni: la dichiarazione
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
DettagliPREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii
Sommario PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 1.1 Introduzione...
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
DettagliIl preprocessore. Direttiva define Direttiva include Direttiva if
Il preprocessore Direttiva define Direttiva include Direttiva if Il preprocessore Il preprocessore è un processore di testi che elabora il contenuto di un file sorgente prima della compilazione vera e
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 4 24/10/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University
DettagliElementi di Informatica e Programmazione Allievi Ingegneria Informatica, Elettronica e delle Telecomunicazioni, Automazione Industriale
Elementi di Informatica e Programmazione Allievi Ingegneria Informatica, Elettronica e delle Telecomunicazioni, Automazione Industriale Fac-simile della Prova di Programmazione 1:1 Cognome e nome Num.
DettagliIntroduzione alla Ricorsione
Introduzione alla Corso di Informatica A Vito Perrone Indice La formulazione in termini ricorsivi di problemi e algoritmi La ricorsione come strumento di programmazione L esecuzione dei sottoprogrammi
DettagliComplementi. - 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
DettagliSommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...
Sommario PREFAZIONE...XI Aggiornamenti e novità... xi Lo scopo di questo libro... xii Diagramma delle dipendenze... xii La metodologia di insegnamento... xiii Panoramica sul libro... xvi Ringraziamenti...
DettagliComplementi. - 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
DettagliFondamenti di Informatica L-A
Fondamenti di Informatica L-A Esercitazione del 23/11/07 Ing. Giorgio Villani Ripasso Teoria Funzioni ricorsive 2 fatt(2) 1 2*fatt(1) fatt(1) 1 2*1 1*fatt(0) fatt(0) 1*1 caso base fatt(0)=1 Esercizio 1
DettagliAllocazione dinamica memoria
Allocazione dinamica memoria Marco Casazza 11/12/2017 1 Esercizio 1 1 /* 2 Creare una lista bidirezionale di interi, ovvero una lista 3 che permette lo scorrimento in entrambe le direzioni ( dal primo
DettagliProgrammazione I - Laboratorio
Programmazione I - Laboratorio Introduzione alle lezioni in laboratorio Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti
DettagliLezione 8. Sottoprogrammi
Lezione 8 Il linguaggio C: Sottoprogrammi e Funzioni I puntatori Input/Output su file Sottoprogrammi Per risolvere un problema si può scomporlo in problemi più semplici e comporre le loro soluzioni in
DettagliIL PREPROCESSORE LORENZO BRACCIALE
IL PREPROCESSORE LORENZO BRACCIALE LORENZO.BRACCIALE@UNIROMA2.IT RUOLO DEL PREPROCESSORE Il preprocessore C elabora un programma C prima che sia compilato Funzioni di base: definizione di costanti simboliche
Dettagli1 (4) 2 (4) 3 (12) 4 (6) 5 (6)
CORSO DI LAUREA IN INGEGNERIA ELETTRICA, CHIMICA e MATERIALI Informatica B, C Anno Accademico 2016-2017 Proff. Danilo ARDAGNA Prima Prova in Itinere 4.5.2017 Cognome Nome Matricola Firma Durata: 2h Valutazioni
DettagliRICORSIONE, PUNTATORI E ARRAY. Quarto Laboratorio
RICORSIONE, PUNTATORI E ARRAY Quarto Laboratorio 16 DICEMBRE 2011 SCADENZA TERZA ESERCITAZIONE FUNZIONI RICORSIVE ESERCIZIO Scrivere una funzione ricorsiva che, assegnati due interi N1 ed N2, restituisca
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
DettagliBreve 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...
DettagliFondamenti di Informatica
Passaggio di parametri in C++ Il passaggio dei parametri tra funzione chiamante e funzione chiamata in C++ avviene secondo due modalità: Fondamenti di Informatica 16. Funzioni in C++ (parte 2) per valore
DettagliLinguaggio di Riferimento: C
Programmazione procedurale Linguaggio di Riferimento: C 1 Linguaggio macchina Il linguaggio macchina costituisce la forma espressiva atta a descrivere programmi e ad essere direttamente interpretata dall
DettagliIl 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;
DettagliUn esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore)
Un esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore) Macchina astratta: un linguaggio di programmazione trasforma un calcolatore in una macchina
DettagliIntroduzione al C. Unità 10 Preprocessore
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 10 Preprocessore D. Bloisi, A. Pennisi, S. Peluso, S. Salza Processo di compilazione
DettagliIntroduzione 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
DettagliIndice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX
Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di
DettagliIl linguaggio C. Istruzioni, funzioni, dati strutturati
Il linguaggio C Istruzioni, funzioni, dati strutturati Istruzioni Servono a dirigere il flusso di esecuzione di un programma controllano l ordine di esecuzione delle espressioni, quindi dei loro side effects
DettagliInformatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento b) dereferenziazione e
DettagliCorso di Fondamenti di Programmazione canale E-O. Un esempio. Funzioni ricorsive. La ricorsione
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Ricorsione DD Cap. 5, pp. 160-184 KP Cap. 5, pp. 199-208 Un esempio Problema: prendere in input un intero e calcolarne il fattoriale
DettagliIl compito del 11 novembre 2004
Alcuni errori frequenti riscontrati durante la correzione del compito: 1. In alcuni elaborati il typedef/struct non è stato utilizzato correttamente 2. Molti hanno confuso la dichiarazione di un array,
DettagliPerché 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
DettagliProgrammazione 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,
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma #include main() { printf("ciao Mondo!"); } Il file deve essere salvato con estensione.c Il primo programma in C++ #include using
DettagliDynamic Linking. Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica
Dynamic Linking Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica Dynamic Linking Il linking tra i moduli di un programma e le librerie da esso utilizzate può essere Statico
DettagliFondamenti di Informatica T 1, 2009/2010 Modulo 2 Prova d Esame 3a di Giovedì 11 Febbraio 2010 tempo a disposizione 2h30'
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit3A.zip contenente i file necessari (solution di VS2008 e progetto compresi). Avvertenze per la consegna: apporre all inizio
DettagliJAVA. import java.util.*; #include <stdio.h> public static class test { int variable; private int variable; int main (int argc, char *argv[]) {
JAVA C import javautil*; public static class test { private int variable; public void main (String[] args) { variable = 0; Systemoutprintln( Variable is: + variable); #include int variable; int
DettagliCenni sul preprocessore e il suo utilizzo
Alessio Bechini - Corso di - Cenni sul preprocessore e il suo utilizzo Il preprocessore: cenni Il preprocessore Storicamente, i compilatori C operavano con passaggi multipli. Il primo passaggio eseguiva
DettagliIntroduzione al C. Informatica Generale - Introduzione al C Versione 1.0, aa p.1/17
Introduzione al C Informatica Generale - Introduzione al C Versione 1.0, aa 2005-2006 p.1/17 Linguaggi di programmazione Sono linguaggi che permettono la codifica di algoritmi in modo da renderli eseguibili,
DettagliPerché 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
DettagliFondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 2A di Mercoledì 13 Gennaio 2010 tempo a disposizione 2h30'
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit2A.zip contenente i file necessari (solution di VS2008 e progetto compresi). Avvertenze per la consegna: apporre all inizio
DettagliLe 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
DettagliStringhe in C. Emilio Di Giacomo
Stringhe in C Emilio Di Giacomo Stringhe Una stringa è una sequenza finita di caratteri Le stringhe sono un tipo di dati talmente importante e utile che fanno parte di quasi tutti i linguaggi di programmazione
DettagliCorso Programmazione
Corso Programmazione 2009-2010 (docente) E-mail: aiolli@math.unipd.it Web: www.math.unipd.it/~aiolli Dipartimento di Matematica Pura ed Applicata Torre Archimede, Via Trieste 63 PARTE 3 2 Variabili Le
DettagliIntroduzione al C. Lez. 2 Funzioni e Puntatori
Introduzione al C Lez 2 Funzioni e Puntatori Esercizio 1: test primalità Scrivere un programma che prenda in input un intero n, e stampa SI se n è primo, NO altrimenti (NB: un intero n è primo se e solo
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C Materiale disponibile sul sito http://www.fisica.unile.it/~martello/corsi/dottorato/tecnooo/tecnooo_03-04/index.html
DettagliIntroduzione al C. Unità 10 Preprocessore. D. Bloisi, S. Peluso, A. Pennisi, S. Salza
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 10 Preprocessore D. Bloisi, S. Peluso, A. Pennisi, S. Salza Sommario Processo
DettagliProgrammazione di base
Fondamenti di Informatica Quinto Appello 016-1 1 Luglio 01 Rispondi alle domande negli appositi spazi. I punti assegnati per ogni domanda sono indicati nel riquadro a lato. L'esame contiene 10 domande,
DettagliI/O da tastiera e direttive processore. Alessandra Giordani Lunedì 3 maggio
I/O da tastiera e direttive processore Alessandra Giordani agiordani@disi.unitn.it Lunedì 3 maggio 2010 http://disi.unitn.it/~agiordani/ Ripasso funzione printf() Usata per stampare il contenuto di una
DettagliUnità 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
DettagliProgrammazione I (Classe 1)
Programmazione I (Classe 1) Terzo Appello (prima prova) 9 Settembre 2016 Docenti: De Prisco - Deufemia - Zizza Cognome: Nome: Matricola: Ritirato 1 Esercizi (leggere attentamente il testo prima di scrivere
DettagliLe strutture /3. Riprendiamo ora la struttura definita alcune lezioni fa e completiamo il set di funzioni che servono per gestire un elenco di libri.
Le strutture /3 Riprendiamo ora la struttura definita alcune lezioni fa e completiamo il set di funzioni che servono per gestire un elenco di libri. typedef struct {char titolo[200]; char autore[100];
DettagliINFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 4 Dott. Michele Zanella Ing. Gian Enrico Conti
INFORMATICA A Titolo presentazione sottotitolo A.A. 2018-19 Milano, XX mese 20XX Laboratorio n 4 Dott. Michele Zanella Ing. Gian Enrico Conti Puntatori I puntatori sono delle variabili che contengono l
DettagliProgrammazione I PROVA SCRITTA. Classe 1 (Matricole congrue a 0 modulo 3) Proff. De Prisco - Visconti
Programmazione I PROVA SCRITTA Classe 1 (Matricole congrue a 0 modulo 3) Proff. De Prisco - Visconti Sessione giugno - luglio (Secondo appello) 26 giugno 2015 Cognome: Nome: Matricola: ; Riservato alla
DettagliInformatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento
DettagliIntroduzione al C. Lez. 2. Funzioni e Puntatori
Introduzione al C Lez 2 Funzioni e Puntatori Esercizio 1: test primalità Scrivere un programma che prenda in input un intero n, e stampa SI se n è primo, NO altrimenti (NB: un intero n è primo se è solo
DettagliLaboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Funzioni standard del C: Funzioni di I/O Allocazione dinamica della memoria Funzioni su stringhe di caratteri Testo di riferimento B.W. Kernighan & D.M. Ritchie
Dettagli