INTRODUZIONE AL LINGUAGGIO C
|
|
- Ilaria Cara
- 5 anni fa
- Visualizzazioni
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 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
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
DettagliUnità 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;
DettagliCorso 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.
DettagliElementi 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()
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
DettagliL'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
DettagliIl 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
DettagliFondamenti 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
DettagliELEMENTI 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
DettagliUn 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
DettagliInformatica (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
DettagliFondamenti 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
DettagliIntroduzione 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
DettagliI 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
DettagliLezione 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
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
DettagliC 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.
DettagliEsercitazione 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
DettagliCostrutti 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;
DettagliStrutture 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
DettagliALGORITMI 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
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
DettagliI 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
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
DettagliLaboratorio 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
DettagliLezione 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
Dettagli02/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
DettagliCorso 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
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
DettagliLezione 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
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
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
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
DettagliLABORATORIO 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
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;
DettagliIntroduzione 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
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
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
DettagliIntroduzione 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
DettagliLinguaggio 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
DettagliCorso 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
Dettaglidirettive 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
DettagliStruttura 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
Dettaglidel 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
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
DettagliSelezioni 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
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...
DettagliProgrammare 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
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
DettagliIstruzioni. 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
DettagliPuntatori. 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
DettagliLinguaggio 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
DettagliIntroduzione 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
DettagliProgrammazione 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
DettagliQualsiasi 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
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
DettagliLa 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
DettagliLezione 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,
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout
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 P. Tosoratti Introduzione all informatica Materiale
DettagliUn 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
DettagliPrimi 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
DettagliIntroduzione 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
Dettagli02/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
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
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
Dettagli$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 =
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
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
DettagliPolitecnico 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
DettagliInformatica. 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)
==,!=, >, =, 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
Dettagli10 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
DettagliI/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
DettagliLE 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
DettagliIntroduzione 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
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
DettagliDichiarazioni 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:
DettagliLezione 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
DettagliGli 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
DettagliUnità 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
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ò
DettagliI 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
DettagliIntroduzione 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,
DettagliEsercizio 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
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
DettagliPrecisazione 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:
DettagliStrutture. 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
DettagliTipi 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
DettagliInformatica/ 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:
DettagliStringhe 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
DettagliVariabili 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
DettagliESERCIZIO: 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
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 Violetta Lonati
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
Dettagli