INTRODUZIONE AL LINGUAGGIO C

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "INTRODUZIONE AL LINGUAGGIO C"

Transcript

1 INTRODUZIONE AL LINGUAGGIO C

2 Problema: Somma di 2 numeri In PASCAL-LIKE begin Somma { dichiarazione delle variabili var: a,b,c: reali { inizializzazione di a e b a:=5. b:=7. { calcolo della somma di a e b c:=a+b { stampa del risultato print somma=,c end Somma 1

3 In C # include <stdio.h> main () { / DICHIARAZIONE DELLE VARIABILI / float a,b,c; / INIZIALIZZAZIONE DI A E B / a=5.; b=7.; / CALCOLO DELLA SOMMA DI A E B / c=a+b; printf ("SOMMA = %f\n ",c); / STAMPA DEL RISULTATO / 2

4 STRUTTURA DI UN PROGRAMMA C Un programma C è un insieme di funzioni L inizio dell esecuzione del programma comincia dalla prima parentesi dopo il nome della funzione main() La fine dell esecuzione di un programma è determinata dall ultima parentesi di main() main() { / INIZIO /. / FINE / La fine di una istruzione è segnalata con il simbolo ; Due o piú istruzioni possono trovarsi sulla stessa linea a=5; b=7; La variabile A è diversa da a 3

5 COMMENTI Un commento è una stringa di caratteri racchiusa tra /... / Un commento può occupare parte di una linea, una linea, piú linee DICHIARAZIONE DELLE VARIABILI Tutte le variabili che si utilizzano devono essere dichiarate esplicitamente float a,b,c; (dichiarazione di variabili reali in singola precisione) int n,m; (dichiarazione di variabili di tipo intero) 4

6 OPERAZIONI DI OUTPUT Le operazioni di output possono essere eseguite mediante l utilizzo della funzione printf printf ("SOMMA = %f\n ",c); "SOMMA = %f\n " primo argomento di printf stringa costituita da: eventuali caratteri da stampare (SOMMA =) sequenze di controllo (\n nuova linea) specifiche di conversione (%f) che definiscono il formato con il quale sono stampati i successivi argomenti (variabili o espressioni) Alcuni esempi di specifiche di conversione: specifica argomento %d intero %f reale %c carattere %s stringa di caratteri 5

7 DIRETTIVE I L istruzione (prima di main()): # include nomefile.h è una direttiva e consente di inserire in quel punto il contenuto del file nomefile.h In generale nomefile.h contiene definizioni di costanti simboliche definizioni di funzioni definizioni di strutture dati. Tale file prende il nome di header file 6

8 Esistono header file predefiniti Alcuni Esempi Utilizzo di funzioni per le operazioni di I/O # include < stdio.h > Utilizzo di funzioni matematiche # include < math.h> 7

9 Problema: Conversione gradi Fahreneit-Celsius In PASCAL-LIKE begin Conversione var: cels: reale var: fahr: intero { conversione e stampa tabella for fahr = 0, 300, step 20 do cels := (fahr-32)*5./9. print fahr,cels endfor end Conversione 8

10 In C (versione 1) # include < stdio.h> main() { float cels; int fahr; / conversione e stampa tabella / for(fahr=0; fahr<=300; fahr=fahr+20) { cels=(fahr-32)*5./9.; printf("%d %f\n",fahr,cels); 9

11 COSTRUTTO FOR Le istruzioni che fanno parte del ciclo for sono racchiuse tra parentesi {... (inizio e fine del for) for(fahr=0; fahr<=300; fahr=fahr+20) { istruzioni fahr=0 inizializzazione del for fahr<=300 condizione di controllo del for. (se è vera le istruzioni del ciclo sono eseguite, altrimenti il ciclo termina) fahr=fahr+ 20 incremento (è eseguito dopo l esecuzione delle istruzioni del ciclo) 10

12 In C (versione 2) # include < stdio.h> main() { float cels; int fahr, step; / conversione e stampa tabella / fahr = 0; step=20; while ( fahr <= 300 ) { cels=(fahr-32)*5./9.; printf("%d %f\n",fahr,cels); fahr=fahr + step; 11

13 COSTRUTTO WHILE Le istruzioni che fanno parte del ciclo while sono racchiuse tra parentesi {... (inizio e fine del while) while ( fahr <= 300) { istruzioni fahr<=300 condizione di controllo del while. (se è vera le istruzioni del ciclo sono eseguite, altrimenti il ciclo termina) 12

14 In C (versione 3) # include < stdio.h> # define LOWER 0 # define UPPER 200 # define STEP 20 main() { float cels; int fahr; / conversione e stampa tabella / fahr = LOWER; while ( fahr <= UPPER) { cels=(fahr-32)*5./9.; printf("%d %f\n",fahr,cels); fahr=fahr + STEP; 13

15 DIRETTIVE II Le istruzioni (prima di main()): # define LOWER 0 # define UPPER 200 # define STEP 20 sono direttive e consentono di definire costanti simboliche (nomi simbolici) In generale # define NOME valore ogni occorrenza di NOME nel programma è sostituita dal corrispondente valore Importante le costanti simboliche non sono variabili 14

16 Problema: Massimo tra 2 numeri In PASCAL-LIKE begin Massimo var: a,b,max: reali read a,b { calcolo del massimo tra a e b if (a > b) then max := a else max := b endif { stampa del risultato print massimo=,max end Massimo 15

17 In C # include <stdio.h> main () { float a,b,max; scanf ("%f %f", &a,&b); / CALCOLO DEL MASSIMO TRA A E B / if (a > b) { max = a; else { max = b; / STAMPA DEL RISULTATO / printf ("MASSIMO = %f\n ",max); 16

18 OPERAZIONI DI INPUT Le operazioni di input possono essere eseguite mediante l utilizzo della funzione scanf scanf ("%f %f", &a,&b); "%f %f " primo argomento di scanf stringa costituita da: specifiche di conversione (%f %f) che definiscono il formato con il quale sono letti i successivi argomenti Importante tutti gli argomenti (tranne il primo) devono essere indirizzi di variabili &a significa indirizzo (&) di a Alcuni esempi di specifiche di conversione: specifica argomento %d intero %f reale %c carattere %s stringa di caratteri 17

19 COSTRUTTO IF-ELSE Le istruzioni che fanno parte del costrutto if-else sono racchiuse tra parentesi {... if ( a > b ) { else { istruzioni istruzioni a > b condizione di controllo dell if-else. (se è vera, sono eseguite le istruzioni della parte if, altrimenti quelle della parte else) 18

20 Operatori relazionali e logici in C significato C > > >= < < <= = ==!= AND && OR NOT! 19

21 Problema: Prodotto matrice-vettore In PASCAL-LIKE begin Matvet var: a[8:8],b[8],c[8]: array di reali var: i, n : interi read n for i = 1,n do endfor read b(i) for j = 1,n do endfor read a(i,j) for i = 1,n do endfor end Matvet c(i) := 0. for j = 1,n do c(i) := c(i) + a(i,j)*b(i) endfor print c(i) 20

22 In C # include < stdio.h> main() { float a[8][8],b[8],c[8]; int i,j,n; scanf ("%d", &n); for(i=0;i<n;i++){ scanf ("%f", &b[i]); for(j=0;j<n;j++){ scanf ("%f", &a[i][j]); for(i=0;i<n;i++){ c[i]=0.; for(j=0;j<n;j++){ c[i]=c[i]+a[i][j]*b[j]; printf("%f\n",c[i]); 21

23 ARRAY float b[8]; dichiarazione array monodimensionale float a[8][8]; dichiarazione array bidimensionale In C gli indici di un array partono per default da 0 float b[8]; a[0] a[7] 22

24 Problema: scrivere una funzione che calcoli la potenza n-ma di un numero intero m e una funzione main che la utilizza #include <stdio.h> /* dichiarazione della funzione power */ int power( int base, int n ); main() { int i, potenza; for(i=0 ; i < 10 ; i++){ potenza = power(2,i); printf( "%d %d \ n", i, potenza); /* funzione potenza */ int power( int base, int n ) { int i, p; p=1; for (i=1 ; i <=n ; i++) p=p*base; return p; 23

25 STRUTTURA DI UNA FUNZIONE La prima linea della funzione power è la definizione della funzione: int power ( int base, int n ); tipo del valore che nome della tipo e nome la funzione restituisce funzione dei parametri Con l istruzione return p il valore di p è restituito alla funzione chiamante main() attraverso il nome 24

26 L istruzione, prima di main(), int power( int m, int n); è la dichiarazione della funzione (tipo del valore restituito, tipo e nome degli argomenti) La dichiarazione di una funzione deve concordare con la sua definizione CHIAMATA DELLA FUNCTION potenza = power(2,i) 25

27 Problema: scambio dei valori di due variabili #include <stdio.h> int scambio( float x, float y ); /* funzione main */ main() { float a, b; a=3; b=5; scambio(a,b); printf("a=%f b=%f \n", a, b); /* funzione scambio */ int scambio( float x, float y ) { float t; t=x; x=y; y=t; return 0; 26

28 L esecuzione del precedente programma non dà il risultato atteso. Si ottiene infatti: a=3 b=5 Perché? Nel linguaggio C tutti gli argomenti di una funzione sono passati per VALORE le funzioni non possono alterare il valore degli argomenti nella funzione chiamante main() Come risolvere il problema? 27

29 PUNTATORI p x memoria p è un puntatore alla variabile x CIOÈ p è una variabile che contiene l indirizzo della variabile x L istruzione: p = & x assegna l indirizzo di x alla variabile puntatore p (p punta a x) 28

30 L operatore unario applicato ad una variabile puntatore restituisce il contenuto della variabile puntata Una variabile puntatore deve essere dichiarata Esempio: int *p p è una variabile puntatore ad una variabile di tipo intero 29

31 Esempio: nomi p x int x; int *p; p=& x; p=3; indirizzi Esempio int x=1; y=2; z[10]; int *p; /* p è un puntatore a int */ p = & x; /* p ora punta a x */ y = *p; /* y ora vale 1 */ p = 0; /* x ora vale 0 */ p = & z[0]; /* p ora punta a z[0] */ 30

32 I puntatori possono apparire nelle espressioni Sia p un puntatore alla variabile x (intera) y = *p +1; y = x+1 p + = 1 x = x+1 p = 10 x=10 Se q è un altro puntatore ad una variabile intera, l istruzione q = p; copia il contenuto di p in q q punta alla stessa variabile a cui punta p 31

33 Soluzione del problema dello scambio di variabili: utilizzo dei puntatori Funzione int scambio (float *px, float *py); { float temp; temp = *px; *px = *py *py = temp; Chiamata alla funzione scambio( & a, & b ) 32

34 Esiste una stretta relazione tra array e variabili puntatore int a[10] a a[0] a[1] a[2] a[9] int *pa; pa = & a[0]; pa pa+1 pa+2 a[0] a[1] a[2] a[9] pa+1 è l indirizzo di a[1] *(pa+1) è il contenuto di a[1]. pa+i è l indirizzo di a[i] *(pa+i) è il contenuto di a[i] 33

35 PER DEFINIZIONE il nome di un array è l indirizzo del primo elemento Esempio: int a[10]; int *pa; pa = & a[0]; a[i]; *(a+i) & a[i]; a+i pa = & a[0]; pa = a; INOLTRE *(pa+i) pa[i] 34

36 MA un puntatore è una variabile il nome di un array è una costante LE ISTRUZIONI pa=a; pa++; SONO CONSENTITE a=pa; a++; NON SONO CONSENTITE 35

37 Se il nome di un array è passato come argomento ad una funzione, si passa l indirizzo del primo elemento dell array (cioè un puntatore) Esempio main() { int a[3];. fun(a);. int fun(int arr[3]) oppure int fun(int arr[]) oppure int fun(int *arr) 36

38 Somma di due vettori I versione (senza puntatori) # include <stdio.h> main() { float a[10],b[10],c[10]; int i,n; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%f %f",&a[i],&b[i]); for(i=0;i<n;i++){ c[i]=a[i]+b[i]; printf("%f\n",c[i]); 37

39 Somma di due vettori II versione (con puntatori) # include < stdio.h> main() { float *a, *b, *c; int i,n; scanf("%d",&n); a=(float *)calloc(n,sizeof(float)); b=(float *)calloc(n,sizeof(float)); c=(float *)calloc(n,sizeof(float)); for(i=0;i<n;i++){ scanf("%f %f",a+i,b+i); for(i=0;i<n;i++){ *(c+j)=*(a+j) + *(b+j); printf("%f\n",*(c+i); 38

40 ALLOCAZIONE DINAMICA DELLA MEMORIA E possibile allocare spazio in memoria per un array durante l esecuzione del programma non è necessario stabilire la dimensione massima di un array all atto della sua dichiarazione 39

41 L allocazione dinamica della memoria si realizza mediante le funzioni malloc e calloc malloc(size) Restituisce un puntatore a size byte di memoria. Lo spazio di memoria non è inizializzato. calloc(n,size) Restituisce un puntatore a n parole di memoria di size byte ciascuna. Le parole di memoria sono inizializzate a 0 Se la memoria richiesta non è disponibile, malloc e calloc restituiscono la costante NULL, che ha valore 0 40

42 Come determinare il numero di byte necessari per costruire un array di elementi di un certo tipo? Utilizzando la funzione sizeof si può conoscere la lunghezza in byte di un tipo di dati Esempio.. float b; int a; int a;.. a=sizeof(b); a=sizeof(float);.. sizeof restituisce in a il numero di byte richiesti da un dato di tipo float 41

43 Esempio main() { char *malloc(); int *a; float *b; int n=3; a=(int *)malloc(n*sizeof(int)); b=(float *)malloc(n*sizeof(float)); a e b sono rispettivamente puntatori ad array di interi e di float di dimensione 3 Le conversioni (int *) e (float *) sono necessarie poichè malloc e calloc restituiscono puntatori a carattere 42

44 Problema: conversione cifre binarie di un numero intero In PASCAL-LIKE In C begin Conversione # include <stdio.h> main() { var: n,inv,r: interi int n,inv,r; read n scanf("%d",&n); inv:=0 inv=0; repeat do { r:=n-(n/2)*2 r=n & 1; inv:=inv*2+r inv=(inv << 1) r; n:=n/2 n=n >> 1; until (n = 0) while (n!= 0); print inv printf("%d",inv); end Conversione 43

45 OPERAZIONI DA ESEGUIRE 1. Resto della divisione di n per 2 In PASCAL-LIKE: r:=n-(n/2)*2 In C: si può OPERARE SUI BIT DEL NUMERO: resto divisione per 2=bit meno significativo es. n=12 10 = (numero pari) es. n=13 10 = (numero dispari) r=n & 1 ; & and (bit a bit) es. n=12 10 r=n & 1 = & = es. n=13 10 r=n & 1 = & =

46 2. Moltiplicazione di inv per 2 In PASCAL-LIKE: inv*2 In C: si può OPERARE SUI BIT DEL NUMERO: moltiplicazione per 2=spostare di 1 posto verso sinistra i bit es. inv=13 10 = inv*2=26 10 = inv << 1; << shift verso sinistra 45

47 3. Sommare 0/1 ad un numero pari In PASCAL-LIKE: inv+0 (inv+1) In C: si può OPERARE SUI BIT DEL NUMERO: sommare 0/1 ad un numero pari=sommare 0/1 al bit meno significativo es. inv=12 10 = inv+1=13 10 = inv 1; or (bit a bit) 46

48 4. Divisione (intera) di n per 2 In PASCAL-LIKE: n:=n/2 In C: si può OPERARE SUI BIT DEL NUMERO: divisione per 2 =spostare di 1 posto verso destra i bit es. n=13 10 = n/2=6 10 =110 2 n >> 1; >> shift verso destra 47

49 Operatori sui bit in C & and or inclusivo ˆ or esclusivo << shift a sinistra >> shift a destra complemento a 1 si utilizzano solo con operandi di tipo intero e carattere &,,ˆ, <<, >> si raggruppano procedendo da sinistra verso destra; con si procede da destra verso sinistra. 48

50 n << m (n >> m) sposta di m posti verso sinistra (destra) le cifre della rappresentazione binaria di n, cioè moltiplica (divide) n per 2 m. Esempio: n=12 10 = m=2 10 n = n << m n = =48 10 n = n >> m n = 11 2 =

51 Problema scrivere una funzione che conta i bit uguali a 1 di un numero intero n int bitcount(int n) { int b; for (b=0; n!= 0; n = n >> 1) { if(n & 1) b=b+1; return b; 50

Un esempio per cominciare. Inizio e fine di un programma. La somma di 3 numeri PASCAL ANSI C. Regole sintattiche

Un esempio per cominciare. Inizio e fine di un programma. La somma di 3 numeri PASCAL ANSI C. Regole sintattiche Un esempio per cominciare La somma di 3 numeri Vs ANSI PROGRAM SOMMA; VAR A,B,,d:REAL; BEGIN (* Inizializzazione di A,B, *) READLN(); A:5.; B:7.; (* alcolo della somma tra A,B e *) d:a+b+; (* Stampa del

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

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

Corso di Informatica

Corso di Informatica Corso di Informatica CdL in Matematica e CdL in Matematica per le Applicazioni Prof. G. Nicosia Dipartimento di Matematica e Informatica Facoltà di Scienze MM.FF.NN. Università degli Studi di Catania A.

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

#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main()

#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main() Primi passi Il mio primo programma #include /* l esecuzione comincia dalla funzione main */ int main() { printf( Hello World!\n" ); return 0; /* il programma termina con successo */ } /* fine

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

Il corpo di tutte le funzioni deve essere contenuto tra parentesi graffe

Il corpo di tutte le funzioni deve essere contenuto tra parentesi graffe Primi passi Il mio primo programma #include /* l esecuzione comincia dalla funzione main */ int main() { printf( Hello World!\n" ); return 0; /* il programma termina con successo */ } /* fine

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile

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

Un esempio per cominciare

Un esempio per cominciare Vs ANSI Almerico Murli- a.a. 2003/2004 1 Un esempio per cominciare La somma di 3 numeri PROGRAM SOMMA; VAR A,B,,d:REAL; BEGIN (* Inizializzazione di A,B, *) READLN(); A:=5.; B:=7.; (* alcolo della somma

Dettagli

Informatica (A-K) 5. Algoritmi e pseudocodifica

Informatica (A-K) 5. Algoritmi e pseudocodifica Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

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

Introduzione alla programmazione in linguaggio C

Introduzione alla programmazione in linguaggio C Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008

Dettagli

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore I puntatori Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore...... L operatore & fornisce l indirizzo di un oggetto: p = &c; assegna a p l indirizzo di c, i.e., p

Dettagli

Lezione 8: Stringhe ed array multidimensionali

Lezione 8: Stringhe ed array multidimensionali Lezione 8: Stringhe ed array multidimensionali Vittorio Scarano Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione AVVISO: la lezione di laboratorio di 28/5 non si

Dettagli

Introduzione al linguaggio C Puntatori

Introduzione 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

Dettagli

C array. Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso.

C array. Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso. Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso. Non sappiamo a priori quante variabili dobbiamo definire per contenere gli interi.

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

Costrutti presenti in C ( non disponibili in FORTRAN ) Cicli di iterazione : IL FOR. Esempio: Conversione Fahrenait / Celsius FORTRAN 77 ANSI C

Costrutti presenti in C ( non disponibili in FORTRAN ) Cicli di iterazione : IL FOR. Esempio: Conversione Fahrenait / Celsius FORTRAN 77 ANSI C Esempio: onversione Fahrenait / elsius FORTRAN 77 Vs ANSI F 77 PROGRAM ONVERT REAL ELS INTEGER FAHR STAMPA DELLA TABELLA DO 10 FAHR=0,00,20 ELS=(FAHR-2)*5./9. WRITE(*,*), FAHR,ELS float cels; int fahr;

Dettagli

Strutture dati. Operatori di incremento e decremento. Strutture di dati. Strutture di dati. ++ e -- Esempi. Vettori e matrici.

Strutture dati. Operatori di incremento e decremento. Strutture di dati. Strutture di dati. ++ e -- Esempi. Vettori e matrici. Operatori di incremento e decremento ++ e -- Esempi y=x++ il contenuto della variabile x viene inizialmente usata per l assegnazione y, e solo dopo incrementata y=--x il contenuto della variabile x viene

Dettagli

ALGORITMI E STRUTTURE DATI

ALGORITMI E STRUTTURE DATI ALGORITMI E STRUTTURE DATI Esercitazioni AndreA Orlandini http://www.dia.uniroma3.it/~orlandin/asd/ e-mail: orlandin@dia.uniroma3.it Orario di ricevimento: Martedì 14.00-16.00 Puntatori e Liste StudentiDIA

Dettagli

Struttura di un. Struttura dei programmi C

Struttura 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

Dettagli

I puntatori. DD Cap.7 pp KP Cap.6 pp

I puntatori. DD Cap.7 pp KP Cap.6 pp I puntatori DD Cap.7 pp.245-280 KP Cap.6 pp.219-235 Cos è un puntatore Un puntatore è una variabile che assume come valore un indirizzo di memoria. Il nome di una variabile fa quindi riferimento ad un

Dettagli

Dati due punti sul piano calcolare la loro distanza

Dati 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

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione 6: Array e puntatori Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Una funzione per i numeri di Fibonacci

Dettagli

Lezione 6: Array e puntatori

Lezione 6: Array e puntatori Lezione 6: Array e puntatori Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione Una funzione per i numeri di Fibonacci

Dettagli

02/10/2014. Evoluzione del C. Evoluzione del C. Passi per risolvere un problema con il calcolatore

02/10/2014. Evoluzione del C. Evoluzione del C. Passi per risolvere un problema con il calcolatore Evoluzione del C LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica il C e un linguaggio di programmazione ad alto livello sviluppato agli inizi degli anni 70 del XX sec. presso i BELL Laboratories

Dettagli

Corso di Automazione industriale

Corso di Automazione industriale Corso di Automazione industriale Lezione 7 PLC Testo strutturato Università degli Studi di Bergamo, Automazione Industriale, A.A. 2017/2018, A. L. Cologni 1 Introduzione Il Testo strutturato è il linguaggio

Dettagli

L AMBIENTE CODE BLOCKS E L IO

L 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

Dettagli

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione Lezione 5 e 6 - Concetto di blocco - Controllo del flusso di un programma - Costrutti per la scelta if e switch - Costrutti while e for - Operatori in C Fabio Scotti (2004-2009) Laboratorio di programmazione

Dettagli

RICORSIONE, PUNTATORI E ARRAY. Quarto Laboratorio

RICORSIONE, 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

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

Informatica/ 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 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

Dettagli

LABORATORIO DI FONDAMENTI DI INFORMATICA DIAGRAMMI DI FLUSSO E CODIFICA IN C DEGLI ALGORITMI

LABORATORIO DI FONDAMENTI DI INFORMATICA DIAGRAMMI DI FLUSSO E CODIFICA IN C DEGLI ALGORITMI LABORATORIO DI ONDAMENTI DI INORMATICA DIAGRAMMI DI LUSSO E CODIICA IN C DEGLI ALGORITMI 1.INGEGNERIA ELETTRICA A.A. 2004-005 COPIA CONTROLLATA N 1 ING. G. GIORDANO INIZIO Inserire il numero N N

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 al linguaggio C Funzioni

Introduzione al linguaggio C Funzioni Introduzione al linguaggio C Funzioni Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati

Dettagli

Corso di Informatica A.A

Corso 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

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

Introduzione al C Lez. 4. Allocazione Dinamica della memoria

Introduzione al C Lez. 4. Allocazione Dinamica della memoria Introduzione al C Lez. 4 Allocazione Dinamica della memoria Allocazione dinamica memoria In C la memoria può essere anche gestita in modo dinamico, attraverso l allocazione esplicita di blocchi di memoria

Dettagli

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C Tipi predefiniti e operatori Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 RICHIAMI char 8 bit Valori interi

Dettagli

Corso di Laboratorio di Sistemi Operativi A.A

Corso di Laboratorio di Sistemi Operativi A.A Corso di Laboratorio di Sistemi Operativi A.A. 2016 2017 Lezione 9 Ivan Scagnetto ivan.scagnetto@uniud.it Nicola Gigante gigante.nicola@spes.uniud.it Dipartimento di Scienze Matematiche, Informatiche e

Dettagli

direttive del preprocessore simboli speciali parole chiave identificatori costanti

direttive del preprocessore simboli speciali parole chiave identificatori costanti 5) Elementi di C #include #define TF2TC main() { double tc, tf, offset, conv; offset = 32.; direttive del preprocessore simboli speciali parole chiave identificatori costanti #ifdef TF2TC conv

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

del Linguaggio C Istruzioni di iterazione

del Linguaggio C Istruzioni di iterazione Istruzioni i Iterative ti del Linguaggio C Istruzioni di iterazione Le istruzioni di iterazione forniscono strutture di controllo che esprimono la necessità di ripetere una certa istruzione durante il

Dettagli

Informatica/ 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 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

Dettagli

Selezioni scolastiche 2018

Selezioni scolastiche 2018 Selezioni scolastiche 2018 Come funziona lo pseudocodice Lo Staff 4 novembre 2018 Da questa edizione delle fasi scolastiche delle Olimpiadi Italiane di Informatica nella sezione Problemi di Programmazione

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

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi MASTER Information Technology Excellence Road (I.T.E.R.) Programmare in C Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di Dati Valori Un insieme

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

Istruzioni. Una istruzione semplice è qualsiasi espressione seguita da un punto e virgola. Esempio x = 0; y = 1;/* due istruzioni */

Istruzioni. Una istruzione semplice è qualsiasi espressione seguita da un punto e virgola. Esempio x = 0; y = 1;/* due istruzioni */ Istruzioni Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante Le strutture di controllo permettono di aggregare

Dettagli

Puntatori. Fondamenti di Programmazione

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

Dettagli

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Dettagli

Introduzione al C Lez. 4

Introduzione al C Lez. 4 Introduzione al C Lez. 4 Allocazione Dinamica della memoria http://www.di.unipi.it/~rossano/algo1/lez4.pdf Allocazione dinamica memoria In C la memoria può essere anche gestita in modo dinamico, attraverso

Dettagli

Programmazione in C. La struttura del programma Variabili, espressioni, operazioni

Programmazione in C. La struttura del programma Variabili, espressioni, operazioni Programmazione in C La struttura del programma Variabili, espressioni, operazioni Struttura del programma // Area quadrato circoscritto // circonferenza /* Author: Lorenzo Course: info */ #include

Dettagli

Qualsiasi programma in C++ segue lo schema:

Qualsiasi programma in C++ segue lo schema: 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

Dettagli

Introduzione al linguaggio C Puntatori

Introduzione 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

Dettagli

La Programmazione. Cos è la programmazione? Concetti preliminari

La Programmazione. Cos è la programmazione? Concetti preliminari La Programmazione Cos è la programmazione? Concetti preliminari 1 Sommario La programmazione, questa sconosciuta Programmiamo Macchine Astratte Linguaggi di basso e alto livello e loro implementazione

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

L AMBIENTE CODE BLOCKS E L IO

L AMBIENTE CODE BLOCKS E L IO L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout

Dettagli

Introduzione alla programmazione in C

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

Dettagli

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

Dettagli

Primi esempi di programmi. Il tipo int Le variabili Altri tipi interi Operatori di assegnazione

Primi esempi di programmi. Il tipo int Le variabili Altri tipi interi Operatori di assegnazione Primi esempi di programmi Il tipo int Le variabili Altri tipi interi Operatori di assegnazione Il tipo int Un int permette di trattare numeri interi 4 byte (32 bit) con la tecnica del complemento a 2 (ma

Dettagli

Introduzione al linguaggio C

Introduzione al linguaggio C Introduzione al linguaggio C Corso di Linguaggi di Programmazione Stefano Ferilli ferilli@di.uniba.it Università degli Studi di Bari A.A. 2001/2002 Il linguaggio C Tendente al basso livello Corrispondenza

Dettagli

02/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 8 STRUTTURE DI CONTROLLO (1)

02/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 8 STRUTTURE DI CONTROLLO (1) LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 8 STRUTTURE DI CONTROLLO (1) Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna

Dettagli

Introduzione alla programmazione. Alice Pavarani

Introduzione 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

Dettagli

Qualsiasi programma in C++ segue lo schema: Variabili

Qualsiasi 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

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

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

Ambienti di Programmazione per il Software di Base

Ambienti 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

Dettagli

Politecnico di Milano - Dipartimento di Elettronica e informazione Prof. Mauro Negri. Fondamenti di Informatica I prova in itinere

Politecnico di Milano - Dipartimento di Elettronica e informazione Prof. Mauro Negri. Fondamenti di Informatica I prova in itinere Politecnico di Milano - Dipartimento di Elettronica e informazione Prof. Mauro Negri Fondamenti di Informatica I prova in itinere 18 novembre 2011 Matricola Cognome Nome Istruzioni Durata prova: 2 ore

Dettagli

Informatica. Stefano Lodi. 16 novembre in linguaggio C

Informatica. Stefano Lodi. 16 novembre in linguaggio C Informatica in linguaggio C Stefano Lodi 16 novembre 2005 0-0 Algoritmi, linguaggi, programmi, processi trasformazione di un insieme di dati iniziali in un insieme di risultati finali mediante istruzioni

Dettagli

==,!=, >, <, >=, <= (a > 7), (b % 2 == 0), (x <= w) &&, (a > 7) && (b % 2 == 0)!(x >= 7) (a == 0)

==,!=, >, <, >=, <= (a > 7), (b % 2 == 0), (x <= w) &&, (a > 7) && (b % 2 == 0)!(x >= 7) (a == 0) ==,!=, >, =, 7), (b % 2 == 0), (x 7) && (b % 2 == 0)!(x >= 7) (a == 0)!, int = int int + int int - int int * int int / int % ==!= < > = int = int int + int int - int int

Dettagli

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 10 STRUTTURE DI CONTROLLO REPEAT E WHILE Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II

Dettagli

I/O da tastiera + Alessandra Giordani Lunedì 2 maggio

I/O da tastiera + Alessandra Giordani Lunedì 2 maggio I/O da tastiera + costrutti while e if Alessandra Giordani agiordani@disi.unitn.it Lunedì 2 maggio 2011 http://disi.unitn.it/~agiordani/ Ripasso funzione printf() Usata per stampare il contenuto di una

Dettagli

LE FUNZIONI PARTE II. Manuale linguaggio C

LE FUNZIONI PARTE II. Manuale linguaggio C LE FUNZIONI PARTE II Manuale linguaggio C Principio di funzionamento int main(void) int x,y; /* leggi un numero compreso tra 50 e 100 e memorizzalo in x */ /* leggi un numero compreso tra 1 e 10 e memorizzalo

Dettagli

Introduzione al C. Lez. 1 Elementi. Rossano Venturini

Introduzione al C. Lez. 1 Elementi. Rossano Venturini Introduzione al C Lez. 1 Elementi Rossano Venturini rossano@di.unipi.it Pagine del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start http://algoritmica.spox.spoj.pl/alglab2013 Lezioni

Dettagli

Laboratorio di Informatica I

Laboratorio 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

Dettagli

Dichiarazioni e tipi predefiniti nel linguaggio C

Dichiarazioni e tipi predefiniti nel linguaggio C Politecnico di Milano Dichiarazioni e tipi predefiniti nel linguaggio C Variabili, costanti, tipi semplici, conversioni di tipo. Premessa Programmi provati sul compilatore Borland C++ 1.0 Altri compilatori:

Dettagli

Lezione 12: Allocazione Dinamica della Memoria

Lezione 12: Allocazione Dinamica della Memoria Lezione 12: Allocazione Dinamica della Memoria Laboratorio di Elementi di Architettura e Sistemi Operativi 17 Aprile 2013 Puntatori e vettori Puntatori ed indirizzi Semplificando, la memoria di un computer

Dettagli

Gli Operatori. Linguaggio C. Gli Operatori. Esempi sull uso dell Operatore di Assegnamento. L Operatore di Assegnamento

Gli Operatori. Linguaggio C. Gli Operatori. Esempi sull uso dell Operatore di Assegnamento. L Operatore di Assegnamento Linguaggio C Gli Operatori Gli Operatori Gli operatori sono simboli (sia singoli caratteri che loro combinazioni) specificano come devono essere manipolati gli operandi dell espressione Operatori aritmetici

Dettagli

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

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

Dettagli

Parametri by reference. Funzioni. Passaggio dei parametri. Parametri by reference. Soluzione. Problemi

Parametri 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ò

Dettagli

I costrutti del C. Strutture condizionali Strutture iterative Introduzione alle funzioni

I costrutti del C. Strutture condizionali Strutture iterative Introduzione alle funzioni I costrutti del C Strutture condizionali Strutture iterative Introduzione alle funzioni 1 Le Strutture del C Condizionali if-else (else if) switch Iterative while for do while break and continue 2 Il costrutto

Dettagli

Introduzione al linguaggio C

Introduzione al linguaggio C Linguaggio C Introduzione al linguaggio C Sistemi di sviluppo integrati Noti anche come IDE: Integrated Development Environment Un pacchetto software che permette di scrivere, preprocessare, compilare,

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

JAVA. import java.util.*; #include <stdio.h> public static class test { int variable; private int variable; int main (int argc, char *argv[]) {

JAVA. 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

Dettagli

Precisazione sui tipi in ANSi C

Precisazione sui tipi in ANSi C Precisazione sui tipi in ANSi C Tipi primitivi del C Un tipo è costituito da un insieme di valori ed un insieme di operazioni su questi valori. Classificazione dei tipi primitivi del C scalari aritmetici:

Dettagli

Strutture. Array dei nomi degli esami (MAX ESAMI è il massimo numero degli esami). Array con i crediti degli esami.

Strutture. Array dei nomi degli esami (MAX ESAMI è il massimo numero degli esami). Array con i crediti degli esami. Consideriamo l esercizio assegnato la scorsa lezione per rappresentare il libretto di uno studente. Per memorizzare i dati si sono utilizzati tre array: char* nomiesami[max ESAMI] Array dei nomi degli

Dettagli

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII.

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII. Tipi di dati fondamentali Tipi di dati fondamentali Linguaggi di Programmazione I Ferdinando Cicalese caratteri: char signed char unsigned char interi short int long interi unsigned short unsigned unsigned

Dettagli

Informatica/ Ing. Meccanica e Ing. Edile/ Prof. Verdicchio/ 16/07/2013 / Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica e Ing. Edile/ Prof. Verdicchio/ 16/07/2013 / Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica e Ing. Edile/ Prof. Verdicchio/ 16/07/2013 / Foglio delle domande / VERSIONE 1 1) In un diagramma di flusso, la rappresentazione di un ciclo WHILE include sicuramente almeno:

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

Variabili e input/ Alessandra Giordani Lunedì 18 marzo

Variabili e input/ Alessandra Giordani Lunedì 18 marzo Variabili e input/ output da tastiera Alessandra Giordani agiordani@disi.unitn.it Lunedì 18 marzo 2013 http://disi.unitn.it/~agiordani/ Es. compilazione helloworld.c 2 Variabili e valori Una variabile

Dettagli

ESERCIZIO: Analisi di un programma. Dato il seguente programma C:

ESERCIZIO: Analisi di un programma. Dato il seguente programma C: : Analisi di un programma Dato il seguente programma C: #include #define D 4 float A(float V[], int k) {int i; float s=0.0; for(i=0;i

Dettagli

Introduzione al linguaggio C Puntatori

Introduzione 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 Violetta Lonati

Dettagli

Evoluzione del C 07/04/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 16 IL LINGUAGGIO C

Evoluzione 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

Dettagli