Cenni sul linguaggio C
|
|
|
- Samuele Fantoni
- 9 anni fa
- Просмотров:
Транскрипт
1 UNIVERSITÀ DI ROMA TRE - FACOLTÀ DI SCIENZE M.F.N. - CORSO DI LAUREA IN MATEMATICA Cenni sul linguaggio C Marco Liverani [email protected] Roma, 7 Febbraio 1999
2 Sommario Caratteristiche del linguaggio C Un esempio per cominciare Struttura di un programma C Regole sintattiche fondamentali Tipi di dato elementari Operatori Funzioni di libreria per l input/output Strutture di controllo Array matrici e puntatori Funzioni e passaggio di parametri Array, puntatori e argomenti delle funzioni Compilazione di un programma C in ambiente UNIX Bibliografia Marco Liverani - Cenni sul linguaggio C Pagina 2 di 30
3 Caratteristiche del linguaggio C È un linguaggio procedurale. È un linguaggio etremamente versatile che si presta facilmente ad ogni compito. È un linguaggio più vicino alla macchina rispetto ad altri linguaggi di alto livello, quindi produce un codice più compatto ed efficiente. Fornisce al programmatore una visibilità molto elevata sulla memoria della macchina e fornisce degli strumenti che consentono di ottimizzare fin nel sorgente il codice eseguibile, condizionando il compilatore. La sintassi del C è molto compatta e per certi aspetti meno comprensibile di quella adottata da altri linguaggi: con la pratica però la sintesi del C si fa molto apprezzare. Il compilatore non esegue uno stretto controllo sui tipi di dato, come ad esempio in Pascal, ma demanda al programmatore il compito di verificare la correttezza semantica delle espressioni e la gestione di eventuali errori generati da espressioni non corrette. Consente lo sviluppo di programmi facilmente portabili da una piattaforma ad un altra; esiste una normativa ANSI che stabilisce le caratteristiche standard di un compilatore C e la modalità standard di programmazione in C. Marco Liverani - Cenni sul linguaggio C Pagina 3 di 30
4 Un esempio per cominciare Questo breve programma C legge in input n numeri interi e li memorizza in un array (funzione leggi_dati ); quindi individua il massimo valore inserito (funzione massimo ) e lo stampa (funzione main che richiama le altre due). #include <stdlib.h> #include <stdio.h> #define MAXN 100 int input_dati(int *v) { int i, n; printf( Numero elementi: ); scanf( %d, &n); for (i=0; i<n; i++) { printf( elemento n.%d: ); scanf( %d, v+i); return(n); int massimo (int *v, int n) { int i, max; max = *v; for (i=1; i<n; i++) { if (max < *(v+i)) max = *(v+i); return(max); int main(void) { int n, max, vett[maxn]; n = input_dati(vett); max = massimo(vett, n); printf( massimo=%d\n, max); return(1); Marco Liverani - Cenni sul linguaggio C Pagina 4 di 30
5 Struttura di un programma C 1/5 Inclusione degli header delle librerie Gli header sono dei file (estensione.h ) che contengono i prototipi (le dichiarazioni) delle funzioni di libreria e la definizione di costanti. La parola chiave include non è una istruzione del linguaggio C, ma una direttiva per il precompilatore. Esempio: #include <stdio.h> #include <math.h> Marco Liverani - Cenni sul linguaggio C Pagina 5 di 30
6 Struttura di un programma C 2/5 Dichiarazione di variabili globali e costanti Le variabili dichiarate al di fuori delle funzioni hanno una validità globale sull intero programma e possono essere utilizzate da tutte le funzioni. L uso di variabili globali contribuisce a diminuire la portabilità e la riutilizzabilità delle funzioni ed è pertanto sconsigliato. Le costanti vengono gestite dal compilatore in modo assai diverso rispetto alle variabili (il valore delle costanti viene sostituito nel sorgente all inizio della compilazione del programma) e consentono di rendere più efficiente il programma stesso. La parola chiave define è una direttiva del precompilatore e non una istruzione del linguaggio C. Esempio: #define PI #define raggio int matrice[100][100], n, m; float vettore[1000], x, y, z; Marco Liverani - Cenni sul linguaggio C Pagina 6 di 30
7 Struttura di un programma C 3/5 Definizione delle funzioni La possibilità di definire funzioni consente di frammentare il programma in tanti piccoli sottoprogrammi; se questa suddivisione rispecchia la frammentazione del problema in sotto-problemi più semplici ed elementari (secondo la metodologia top-down), il programma assume una architettura modulare e la riutilizzabilità delle funzioni è più semplice. Per ogni funzione è necessario elencare tutti i parametri indicandone il tipo (dominio della funzione) ed il tipo del valore restituito dalla funzione stessa (codominio della funzione). Se il dominio della funzione è nullo (non richiede parametri) si deve indicare void ; analogamente nel caso in cui la funzione non restituisca alcun valore (codominio nullo) il tipo della funzione è void. Il corpo della funzione descrive, utilizzando le istruzioni del linguaggio C o richiamando altre funzioni definite precedentemente o presenti in qualche libreria, l algoritmo che implementa la funzione stessa. Marco Liverani - Cenni sul linguaggio C Pagina 7 di 30
8 Struttura di un programma C 4/5 Definizione delle funzioni Esempi: float massimo(float a, float b) { float c; if (a>b) { c = a; else { c = b; return(c); void saluti(void) { printf( Ciao\n ); return; Marco Liverani - Cenni sul linguaggio C Pagina 8 di 30
9 Struttura di un programma C 5/5 Definizione della funzione main La funzione main è una funzione esattamente come tutte le altre, ma con la caratteristica che viene eseguita automaticamente dal programma quando questo viene lanciato (è il punto di inizio del programma). Il valore restituito dalla funzione main (tipicamente un intero, come richiesto dallo standard ANSI-C) può essere utilizzato come codice di controllo da un eventuale programma chiamante. Esempio: int main(void) { int a, b; a=3; b=5; printf( massimo = %d\n, max(a, b)); return(1); Marco Liverani - Cenni sul linguaggio C Pagina 9 di 30
10 Regole sintattiche fondamentali Il linguaggio C è case-sensitive, parole scritte con lettere minuscole o maiuscole vengono interpretate come differenti. Ogni istruzione è terminata da un punto-e-virgola ( ; ). Le variabili e le funzioni devono essere dichiarate prima di poter essere utilizzate. I nomi delle funzioni e delle variabili devono iniziare con una lettera dell alfabeto o con il simbolo di sottolineatura (underscore: _ ) e sono costituiti solo da lettere alfabetiche, numeri ed il simbolo underscore. Es.: A, casa, Casa, _nome, Nome17. I parametri passati ad una funzione vengono specificati tra parentesi tonde e separati tra loro mediante la virgola. La chiamata di funzioni senza il passaggio di parametri (dominio di tipo void) deve comunque essere effettuata riportando le parentesi tonde dopo il nome della funzione. Es.: stampa_informazioni( );, A = maggiore(c, D);. Blocchi di istruzioni possono essere racchiusi da parentesi graffe ( { e ). I commenti sono racchiusi tra /* e */. Non è possibile definire funzioni all interno del corpo di altre funzioni. Marco Liverani - Cenni sul linguaggio C Pagina 10 di 30
11 Tipi di dato elementari 1/2 I principali tipi di dato elementari sono rappresentati nella seguente tabella, insieme al numero di bit utilizzati per la loro rappresentazione in memoria in una tipica implementazione del compilatore C: Tipo Descrizione Bit utilizzati char Caratteri ASCII 8 bit int Numeri interi tra e bit long Numeri interi tra e bit float Numeri in singola precisione 32 bit double Numeri floating point in doppia precisione 64 bit Per dichiarare il tipo delle variabili si deve riportare il nome del tipo seguito dai nomi delle variabili separati da virgole. Esempio: int a, b, c; float x, y; Marco Liverani - Cenni sul linguaggio C Pagina 11 di 30
12 Tipi di dato elementari 2/2 Le variabili possono essere anche di tipo puntatore: non conterranno un intero, un carattere o un numero in virgola mobile, ma l indirizzo di memoria di una variabile di tipo intero, char o floating point. In questo caso si parla di variabili puntatore. Non è possibile definire delle variabili che siano dei puntatori universali : è necessario dichiarare il tipo di variabile a cui un certo puntatore dovrà indirizzare. Per indicare che una variabile è un puntatore, nella sua dichiarazione si antepone al nome della variabile un asterisco ( * ). Esempio: int *pa, *pb, *pc; float *x, *y; Marco Liverani - Cenni sul linguaggio C Pagina 12 di 30
13 Operatori 1/2 Operatori aritmetici: + somma, - sottrazione, * prodotto, / divisione, % modulo (resto della divisione intera). Operatore di assegnazione in forma estesa: = (es.: a=b*c;, x=-27.4 ). Operatori aritmetici di assegnazione in forma compatta: ++, -- (es.: x--; decrementa di una unità il valore di x, è equivalente a x=x-1;, ma molto più efficiente), +=, -=, *=, /= (es.: x += 7; è equivalente a x = x+7; ). Operatori logici di confronto: == (es.: a == b è vero se a e b hanno lo stesso valore, falso altrimenti), < (minore) <= (minore o uguale), > (maggiore), >= (maggiore o uguale),!= (diverso). Operatori logici: L operatore booleano unario not è rappresentato dal simbolo!. L operatore and è rappresentato da && e l operatore or è rappresentato da. Le espressioni logiche vengono valutate da sinistra verso destra e la valutazione di una espressione si interrompe non appena è possibile stabilirne con certezza il valore. Marco Liverani - Cenni sul linguaggio C Pagina 13 di 30
14 Operatori 2/2 Esempio: if (a>=0 && b!=3) In questo caso se a è minore di zero allora l intera espressione è sicuramente falsa (c è una congiunzione logica and ) e quindi la condizione b!=3 viene trascurata; se a è invece maggiore o uguale a zero, allora viene anche valutata la condizione b!=3. Operatori unari sugli indirizzi: & restituisce l indirizzo di memoria in cui è memorizzata una variabile; * restituisce il contenuto della variabile a cui fa riferimento un puntatore. Esempio: int a, b, *pa; a=3; /* a contiene 3 */ pa = &a; /* pa contiene l indirizzo di a */ b = *pa; /* b contiene 3 (il valore della variabile a cui punta pa) */ Marco Liverani - Cenni sul linguaggio C Pagina 14 di 30
15 Funzioni di libreria per l input/output 1/2 Esistono numerosissime funzioni di libreria dedicate alle operazioni di I/O: molte però sono state specializzate per operare esclusivamente su una determinata piattaforma hardware. Le funzioni di I/O indipendenti dal tipo di hardware su cui opererà l utente (terminale) sono le seguenti: printf( formato, espressione, espressione, ); stampa sul terminale le espressioni in accordo con la formattazione espressa dalla stringa di formato. La stringa \n indica che il cursore deve andare a capo (new line); %d indica che in quella posizione andrà visualizzato il valore di una certa espressione numerica in formato decimale. Esempi: printf( ciao\n ); printf( A=%d\n, a); printf( %2d + %2d = %3d\n, a, b, a+b); Marco Liverani - Cenni sul linguaggio C Pagina 15 di 30
16 Funzioni di libreria per l input/output 2/2 scanf( formato, indirizzo di memoria, indirizzo di memoria, ); legge in input una riga dal terminale e memorizza i valori immessi dall utente (separati da spazi o da caratteri di fine riga) nelle variabili il cui tipo è descritto nella stringa di formato ed il cui indirizzo di memoria è indicato nell elenco successivo. Esempi: scanf( %d, &n); scanf( %d %d %d, &a, &b, &c); getchar( ); restituisce il prossimo carattere in input. Esempio: char c; c = getchar(); Marco Liverani - Cenni sul linguaggio C Pagina 16 di 30
17 Strutture di controllo 1/4 Il C è un linguaggio che favorisce l uso delle tecniche della programmazione strutturata. Per questo mette a disposizione le seguenti strutture di controllo: Struttura di controllo condizionale: if (condizione) { istruzioni else { istruzioni La parola chiave else ed il blocco di istruzioni che la segue possono essere omessi. Se il blocco di istruzioni si riduce ad una sola istruzione allora possono essere omesse le parentesi graffe che lo racchiudono. Esempi: if (a > b && a%2 == 0) { a=a/2; c = c+1; else { printf( %d, b); if (a == 0) a=1; if (a>b (b>=c && a!=c)) c=a; else c=b; Marco Liverani - Cenni sul linguaggio C Pagina 17 di 30
18 Strutture di controllo 2/4 Strutture di controllo iterativo: do { istruzioni while (condizione); Ripete il blocco di istruzioni fintanto che la condizione risulta essere vera; quando la condizione diventa falsa esce dal ciclo. È importante osservare che, visto che la condizione viene valutata a fine ciclo, il programma esegue sempre almeno una volta il blocco di istruzioni. Esempio (stampa i numeri da 0 a 9): i=0; do { printf( %d, i); i=i+1; while (i<10); Marco Liverani - Cenni sul linguaggio C Pagina 18 di 30
19 Strutture di controllo 3/4 while (condizione) { istruzioni Ripete il blocco di istruzioni fintanto che la condizione risulta verificata; quando la condizione diventa falsa esce dal ciclo. In questo caso se la condizione è falsa già prima di iniziare il ciclo, questo non viene iterato neanche una volta. Esempio: (stampa i numeri da 0 a 9): i=0; while (i<10) { printf( %d, i); i=i+1; Marco Liverani - Cenni sul linguaggio C Pagina 19 di 30
20 Strutture di controllo 4/4 for (assegnazione iniziale; condizione finale; incremento) { istruzioni Generalmente l iterazione mediante un ciclo for viene implementata utilizzando una variabile contatore : il ciclo viene ripetuto fino a quando la variabile non supera una certa soglia, incrementandone il valore ad ogni iterazione. Esempio (stampa i numeri interi da 0 a 9): for (i=0; i<10; i++) { printf( %d, i); La formulazione dell istruzione for può anche essere più articolata. Il seguente esempio stampa solo i numeri 10 e 9, perché per i=8 la condizione i%4==0 risulta verificata e quindi flag viene impostato a 1 ed il ciclo a termine: for (i=10; i>=0 && flag!=1; i--) { if (i%4 == 0) flag=1; printf( %d, i); Marco Liverani - Cenni sul linguaggio C Pagina 20 di 30
21 Array, matrici e puntatori 1/3 Sono delle collezioni di variabili, tutte dello stesso tipo, individuate da un nome comune e da un indice (nel caso degli array, o vettori) o da una n-pla di indici (nel caso di matrici con n dimensioni). Gli indici vengono indicati racchiudendoli fra parentesi quadre. Quando si dichiara una matrice è necessario indicarne tutte le dimensioni. Gli indici hanno una variabilità da 0 alla dimensione meno uno. Esempio: int a[10]; int M[4][3]; Il primo esempio definisce un array (vettore) di 10 numeri interi individuati dagli indici 0, 1,, 9. Il terzo elemento del vettore è a[2]. Il secondo esempio definisce una matrice di numeri interi con 4 righe e 3 colonne. Il primo elemento della matrice è M[0][0], l ultimo è M[3][2]. Marco Liverani - Cenni sul linguaggio C Pagina 21 di 30
22 Array, matrici e puntatori 2/3 È importante sapere come vengono memorizzate le matrici sulla macchina per poterle usare correttamente sfruttando a fondo le caratteristiche del C: Gli array vengono memorizzati in locazioni di memoria contigue: se A è un array di interi (supponiamo che ogni intero occupi 2 byte) e l elemento A[0] viene memorizzato a partire dalla locazione di memoria 1000, allora l elemento A[1] sarà memorizzato a partire dall indirizzo 1002, A[2] all indirizzo 1004, ecc. Le matrici sono considerate array di array. Vengono memorizzate disponendo le righe (che sono array e quindi memorizzati su locazioni di memoria contigue) una di seguito all altra. Quindi se M è una matrice di 4 righe e 3 colonne di interi ogni elemento occuperà 2 byte di memoria. Se M[0][0] viene allocato nella posizione 5000, allora M[0][1] sarà allocato nella posizione 5002, M[0][2] nella posizione M[1][0] (il primo elemento della seconda riga) sarà memorizzato nella locazione successiva a quelle occupate dall ultimo elemento della riga precedente (M[0][2]): la locazione =5006. Marco Liverani - Cenni sul linguaggio C Pagina 22 di 30
23 Array, matrici e puntatori 3/3 Se M è una matrice di n righe ed m colonne, la formula per individuare la locazione di memoria dell elemento M[i][j] (di qualunque tipo sia la matrice) è la seguente: &M[0][0]+i*m+j (l indirizzo di memoria del primo elemento, più i volte il numero di elementi presenti su ogni riga, più j). Le operazioni aritmetiche sui puntatori tengono conto del tipo di dato a cui punta la variabile. Esempio: se A è una variabile intera memorizzata a partire dalla locazione di memoria 2000, e PA è un puntatore ad A ( PA = &A; ), allora PA+1 punterà alla locazione di memoria 2002 (e non a 2001). Marco Liverani - Cenni sul linguaggio C Pagina 23 di 30
24 Funzioni e passaggio di parametri 1/2 Esistono tre modalità fondamentali: 1. Mediante variabili globali. È un metodo fortemente sconsigliato: non consente di sviluppare funzioni autonome e riutilizzabili. 2. Passando il valore di variabili locali. È il metodo corretto quando la funzione deve fare uso del valore di una variabile definita in un altra funzione, senza la necessità di modificare tale valore nella variabile originale e senza dover accedere a locazioni di memoria adiacenti. 3. Passando l indirizzo di variabili locali. È il metodo corretto quando la funzione deve modificare il valore di una variabile definita in un altra funzione e quando deve accedere a locazioni di memoria adiacenti a quella della variabile ricevuta come parametro. Marco Liverani - Cenni sul linguaggio C Pagina 24 di 30
25 Funzioni e passaggio di parametri 2/2 In realtà il C passa gli argomenti alle funzioni soltanto tramite chiamate per valore, quindi se si intende passare un indirizzo lo si deve esplicitare indicandolo con l operatore & o utilizzando una variabile puntatore di cui verrà passato il valore. Esempio errato (passaggio per valore): int a, b; if (a>b) scambia(a,b); void scambia(int x, int y) { int app; app = x; x = y; y = app; return; Esempio corretto (passaggio per indirizzo): int a, b; if (a>b) scambia(&a, &b); void scambia(int *x, int *y) { int app; app = *x; *x = *y; *y = app; return; Marco Liverani - Cenni sul linguaggio C Pagina 25 di 30
26 Array, puntatori e argomenti delle funzioni 1/2 Gli array ed i puntatori hanno una strettissima parentela in C: possono essere considerati quasi come la stessa cosa. Nella rappresentazione interna di array e matrici, il compilatore infatti si riconduce sempre ad una notazione che fa uso di puntatori, anche dove nel programma era stato fatto uso di una notazione con indici. L uso dei puntatori al posto degli indici rende il programma più efficiente. Notazione con indici Notazione con puntatori int a[10]; int *a; a= malloc(sizeof(int)*10)); a[0] *a &a[0] a a[5] = 7; *(a+5) = 7; Nel passaggio di un array ad una funzione è possibile soltanto passare l indirizzo di un elemento dell array stesso: indipendentemente dal tipo di notazione utilizzata. Marco Liverani - Cenni sul linguaggio C Pagina 26 di 30
27 Array, puntatori e argomenti delle funzioni 2/2 Esempio (le funzioni main e main2 sono tra loro perfettamente equivalenti; lo stesso vale per calc e calc2 ): int main(void) { int vett[100]; calc(vett, 30); int main2(void) { int *vett; vett = malloc( sizeof(int)*100); calc(vett, 30); void calc (int *v, int n) { int i; for (i=0; i<n; i++) { *(v+i) = i * i; return; void calc2(int v[], int n) { int i; for (i=0; i<n; i++) { v[i] = i*i; return; Marco Liverani - Cenni sul linguaggio C Pagina 27 di 30
28 Compilazione di un programma C su UNIX 1/2 La compilazione di un programma C richiede il passaggio attraverso le tre consuete fasi di traduzione da codice sorgente a codice eseguibile, passando attraverso il formato intermedio detto codice oggetto. Gli step di traduzione del programma sono i seguenti: 1. Mediante un editor di testo ASCII (es.: vi, emacs, pico, ecc.) si produce il file in formato sorgente (estensione *.c ). 2. Il compilatore riceve in input il programma in formato sorgente e lo traduce in formato oggetto. 3. Il linker collega fra loro più moduli in formato oggetto e produce un unico file in formato eseguibile. È possibile inglobare in un unica fase la compilazione ed il linking del programma: in questo modo si traduce direttamente da codice sorgente a codice eseguibile, senza accorgersi del passaggio attraverso il codice oggetto. È possibile distribuire il sorgente su più file sorgente: la funzione main dovrà però essere definita in uno solo di questi. Al momento della compilazione dovremo specificare il nome di tutti i file sorgente da compilare per produrre il file eseguibile desiderato. Marco Liverani - Cenni sul linguaggio C Pagina 28 di 30
29 Compilazione di un programma C su UNIX 2/2 In ambiente UNIX il compilatore C viene invocato con il comando cc (C Compiler) o anche, in molti casi, gcc (GNU C Compiler). L opzione -o serve per specificare il nome del file eseguibile di output. L opzione -l serve per specificare i nomi di librerie aggiuntive da linkare al programma. Esempi Compila prova.c generando il file eseguibile prova : $ gcc prova.c -o prova Compila primo.c e secondo.c generando il file eseguibile pippo : $ cc primo.c secondo.c -o pippo Compila primo.c e secondo.c collegando anche la libreria matematica (il sorgente contiene la direttiva #include <math.h> ) e produce in output il file eseguibile pippo : $ gcc primo.c secondo.c -o pippo -lm Marco Liverani - Cenni sul linguaggio C Pagina 29 di 30
30 Bibliografia Brian W. Kernighan, Dennis M. Ritchie, Linguaggio C, Gruppo Editoriale Jackson, BrianW. Kernighan, Robert Pike, UNIX, Zanichelli, Herbert Schildt, Linguaggio C - La guida completa, McGraw-Hill, Mitchell Waite, Stephen Prata, Donald Martin, C Primer Plus, SAMS, M. J. Rochkind, Advanced Unix programming, Prentice-Hall, Richard W. Stevens, UNIX - Sviluppo del software di networking, Gruppo Editoriale Jackson, Marco Liverani - Cenni sul linguaggio C Pagina 30 di 30
Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C
Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani ([email protected])
Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C
Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani ([email protected])
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
Array e puntatori in C
Array e puntatori in C Diapositive adattate dalle omonime create dalla Dottoressa di Ricerca Giovanna Melideo per il corso di Laboratorio di Algoritmi e Strutture Dati 10/05/2005 LP2-04/05 - Appunti di
Primi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
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
Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C
Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C IL LINGUAGGIO C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede tutti i costrutti di controllo dei linguaggi
Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.
Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti
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;
Primo 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
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
PROGRAMMA = ALGORITMO
Corso di Laurea Scienze Prof. San. Tec., Area Tecnico-Assistenziale SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Anno Accademico 2005-2006 Prof. Fausto Passariello Corso Integrato Metodologia della Ricerca
Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto.
Sistema C e organizzazione del codice Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto. Un programma C è costituito da un insieme
Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi
Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio
Linguaggio C Informatica Grafica
Linguaggio C Informatica Grafica Corsi di Informatica Grafica Prof. Manuel Roveri Dipartimento di Elettronica e Informazione [email protected] Linguaggio C Breve storia Struttura di un programma Variabili
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
Corso di Fondamenti di Informatica Il sistema dei tipi in C++
Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout
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
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
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
Il linguaggio di programmazione Python
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani ([email protected])
#include <stdio.h> main() { - 1 -
Un primo esempio di programma Ogni programma C deve contenere una funzione speciale chiamata main che indica il punto in cui inizia l esecuzione del programma. La funzione main è unica all interno di ogni
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
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
Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di
ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere
Elementi di Base. Introduzione a Python.
Elementi di Base Introduzione a Python http://www.dia.uniroma3.it/~roselli/ [email protected] Credits Materiale a cura del Prof. Franco Milicchio Panoramica Elementi di base della sintassi (struttura,
Perché il linguaggio C?
Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare
La programmazione in linguaggio C
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine La programmazione in linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni
Linguaggio C. Appunti per il corso di Laboratorio di Algoritmi e Strutture Dati. Stefano Aguzzoli
Linguaggio C Appunti per il corso di Laboratorio di Algoritmi e Strutture Dati Stefano Aguzzoli Alcune note introduttive Orario lezioni: Lunedì: 11:40 13:10, Giovedì: 10:40-11:25 sempre in Aula V3, Via
Linguaggio C - sezione dichiarativa: costanti e variabili
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente
Funzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
Lezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo [email protected] Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni
Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni Marco Liverani ([email protected])
Linguaggio C: introduzione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi
Esercitazione di Reti degli elaboratori
Esercitazione di Prof.ssa Chiara Petrioli Christian Cardia, Gabriele Saturni Cosa vedremo in questa lezione? Gli Array Gli array multidimensionali Le stringhe I puntatori Esercizi Pagina 1 Gli Array Definizione
Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3)
Funzioni Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Strategie di programmazione Riuso di
Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C
Introduzione 2 Introduzione al C Linguaggio di programmazione ad alto livello (HLL) Sviluppato negli anni 70 (C standard ANSI) Molto diffuso e adatto ad un ampio spettro di applicazioni: Scientifiche Gestionali
Programmazione strutturata
Programmazione strutturata Il teorema di Jacopini Bohn afferma che qualunque algoritmo può essere descritto utilizzando esclusivamente tre strutture fondamentali ( dette anche strutture di controllo):
