TUTORATO di LINGUAGGI I
|
|
- Amando Paoletti
- 8 anni fa
- Visualizzazioni
Transcript
1 TUTORATO di LINGUAGGI I Enrico Vianello
2 TUTORATO di LINGUAGGI I contatti utili LE LEZIONI SI TERRANNO: VENERDI PER INFORMAZIONI e DOMANDE: enrico.vianello@student.unife.it IL MATERIALE UTILIZZATO DURANTE LE LEZIONI LO POTETE TROVARE SUL SITO: TUTORATO di LINGUAGGI I - a.a Lezione 1
3 PROGRAMMAZIONE MODULARE in C
4 caratteristiche Si parla di programmazione modulare quando un programma è suddiviso in più file. Ogni file sorgente è chiamato modulo. Perché utilizzare questa tecnica? - semplicità nel gestire programmi di grosse dimensioni > trovare gli errori - non occorre ricompilare tutto il programma > è possibile compilare separatamente ogni modulo e poi fare il linking alla fine per ottenere il programma - posso riutilizzare più facilmente il codice > creo librerie personali > in un modulo definisco gruppi di funzioni comuni, ad esempio routine di manipolazione di stringhe moduli secondari lib2.h lib.h #include lib.h #include lib2.h #include lib.h main.c lib2.c lib.c #include lib2.h modulo principale int main(...){...
5 esempio matematica.h main.c #include <stdio.h> #include matematica.h #ifndef _MATEMATICA #define _MATEMATICA int potenza(int, int ); int main (int argc, char ** argv) { int x, y; printf ( Inserire x: ); scanf ( %d, &x); printf ( Inserire y: ); scanf ( %d, &y); printf ( \n %d ^%d = %d\n, x, y, potenza(x,y) ); return 0; #endif matematica.c #include matematica.h int potenza(int base, int esponente) { int i, risultato = 1; for (i = 1; i <= esponente; i++) risultato *= base; return risultato;
6 compilazione main.c matematica.h matematica.c - come compilare un programma multimodulo? > gcc main.c matematica.c -o prova >./prova.out oppure elenco tutti i file.c e con l opzione -o creo il mio eseguibile prova.out crea il file matematica.o > gcc matematica.c crea il file main.o > gcc main.c > gcc main.o matematica.o -o prova >./prova.out ecco spiegato il perché non è necessario ricompilare tutto se si modifica l implementazione di una libreria, basta ricompilare solo quel modulo
7 header file Un header file (.h) tipicamente contiene: - i comandi per il preprocessore - i prototipi di funzioni - la definizione delle variabili Qualunque programma che voglia utilizzare le funzioni definite nel modulo deve includere l'header file corrispondente. Il preprocessore viene eseguito prima della compilazione Al preprocessore vengono passate delle direttive di tre tipi: Inclusione Definizione Condizionali
8 direttive di inclusione Le direttive di inclusione servono per includere: - le librerie standard #include <stdio.h> per l'inclusione di un header file contenuto nella directory di default del compilatore - una libreria personale, un file contenuto nella directory corrente #include matematica.h Poiché un file incluso tramite la direttiva #include può a sua volta includere altri file tramite la stessa direttiva, è bene evitare di includere ricorsivamente lo stesso file, per evitare comportamenti strani da parte del compilatore...
9 direttive di definizione Servono per definire le costanti simboliche. #define identificatore espressione Il preprocessore sostituisce tutte le occorrenze di identificatore e le sostituisce con espressione (che può contenere spazi, virgolette, parentesi...) Esempio: #define MAX x = y * MAX; z =MAX - 100; diventa, dopo l'esecuzione del preprocessore: x = y * 42000; z = ;
10 macro funzionali Possiamo anche definire macro funzionali: #define identificatore(argomenti) espressione In questo caso l'espressione contiene delle variabili, per cui il processore non soltanto sostituisce identificatore con espressione, ma all'interno di espressione sostituisce gli argomenti con i valori attuali. Esempio: #define TRIPLICA (x) ((x)*(x)*(x)) z = y + TRIPLICA (a); diventa z = y + ((a)*(a)*(a)); Le macro sono utili per diversi motivi: rendono il codice più leggibile. evitano l'overhead di una chiamata a funzione NOTA: nell'espressione corrispondenti alla macro, è opportuno mettere i singoli elementi tra parentesi tonde, per essere sicuro che l'argomento rimanga un'unità a sè stante.
11 esempio NOTA: nell'espressione corrispondenti alla macro, è opportuno mettere i singoli elementi tra parentesi tonde, per essere sicuro che l'argomento rimanga un'unità a sè stante. Esempio #define MUL(x,y) (x * y) z = MUL (1 + 2, 3 + 4) diventa z = (1 + 2 * 3 + 4) che è uguale a 11 mentre noi avremmo voluto z = ((1 +2) * (3+4)) che è uguale a 21
12 direttive di definizione la direttiva undef annulla una definizione precedente #include <stdio.h> #define NORMA(a,b,c) (a * b + c) int func () { int a = 1, b = 2, c = 3; printf ("%d\n", NORMA(a,b,c)); #undef NORMA int main (int argc, char ** argv) { int NORMA = 42; printf ("%d\n", NORMA); func ();
13 direttive condizionali Le direttive condizionali permettono di eseguire delle scelte a compile-time. Per esempio si potrebbe voler compilare certe parti di codice solamente sotto determinate condizioni. #IF espressione Se espressione è vera (diversa da zero), allora il codice seguente, fino al prossimo elif, else o endif viene eseguito, altrimenti non viene eseguito #IFDEF identificatore se l'identificatore è stato definito esegue il codice fino al prossimo elif, else o endif
14 direttive condizionali #IFNDEF identificatore L'opposto di #ifdef: esegue il codice solo se l'identificatore non è stato definito #ELIF espressione corrisponde ad un else if #ELSE copre i casi non coperti dagli #if e #elif precedenti #ENDIF ESEMPIO #include <stdio.h> #ifdef LINUX #define SYSTEM Linux #else #define SYSTEM Other #endif
15 prototipi delle funzioni Ogni include file contiene i prototipi delle funzioni che il modulo vuole rendere visibili all'esterno. Ogni programma che intende utilizzare il modulo, includendo il.h include automaticamente i prototipi delle funzioni visibili all'esterno Lo stesso.c del modulo include il.h
16 variabili esterne Il metodo più sicuro per la comunicazione tra moduli diversi è costituito dal passaggio degli argomenti alle funzioni e dai valori di ritorno delle funzioni. Esistono tuttavia dei casi in cui una variabile deve essere visibile da più moduli. Per rendere visibile una variabile in un modulo è necessario dichiararla anche in tale modulo, ma preceduta dalla parola chiave extern. Le variabili extern sono statiche e visibili in tutte le funzioni del modulo (cioè sono globali dal punti di vista del modulo) main.c lib.h int hiscore extern int hiscore
17 esercizio creare una libreria con le seguenti funzioni sulle stringhe: int strlen(const char *str); int strcmp(const char *str1, const char *str2); char* strchr(const char *str, int c); char* strstr(const char *str1, const char *str2); main.c utilizza le varie funzioni della libreria string_util string_util.h inserire le direttive, i prototipi delle funzioni e le definizioni di tipi string_util.c implementare le routine definite nel.h
18 esercizio creare una libreria con le seguenti funzioni sulle stringhe: int strlen(const char *str); int strcmp(const char *str1, const char *str2); char* strchr(const char *str, int c); char* strstr(const char *str1, const char *str2); string_util.h #ifndef _STRING_UTIL #define _STRING_UTIL int strlen(const char *); int strcmp(const char *, const char *); char* strchr(const char *, int); char* strstr(const char *, const char *); #endif string_util.c #include string_util.h int strlen(char * str) { int contatore=0; while (str[i]!= \0 ) contatore++; return contatore; int strcmp(char * str1, char * str2) { int i; for (i = 0; str1[i] == str2[i]; i++) if (str1[i] == ʻ\0ʼ) return 0; return str1[i] - str2[i];...
19 esercizio char* strchr(const char *str, char c) { for ( ; *str!= \0 ; str++) if (*str == c) return str; return NULL; char* strstr(const char *str1, const char *str2) { if (*str2 == \0 ) return NULL; //str2 è vuota if (strlen(str2)>strlen(str1)) return NULL; //str2 è più lunga di str1 //i scorre carattere per carattere str1 int i = 0; for ( ; *(str1+i)!= \0 ; i++) { //verifico che il carattere i-esimo di str1 sia uguale al primo di str2 if (*(str1+i) == *str2) { int j = 0; while (*(str1+i+j) == *(str2+j)) if (*(str2+j) == \0 ) return str1+i; //str2 è terminata quindi è tutta compresa in str1 else j++; //se arrivo qui str2 o è finita e pure str1 è terminata, oppure str2 non è finita // quindi non è contenuta in str1 if (*(str2+j) == \0 ) return str1+i; //str2 è terminata quindi è tutta compresa in str1 i += j; //endif //endfor
20 esercizio 2 matematica.h #ifndef _MATEMATICA #define _MATEMATICA main.c #include <stdio.h> #include matematica.h int main (int argc, char ** argv) {... int potenza(int, int ); float radice(int); float pitagora(int, int); #endif matematica.c #include matematica.h int potenza(int base, int esponente) { implementare il file matematica.c
21 esercizio 3 utili_array.h #ifndef _UTILI_ARRAY #define _UTILI ARRAY main.c #include <stdio.h> #include utili_array.h int main (int argc, char ** argv) {... int sommapari (int*, int dim); int contapari (int*, int dim); int minimo(int *, int dim); int ordina (int *, int dim); #define MESCOLATE 100 void mescola(int *, int dim); #endif utili_array.c implementare il file utili_array.c #include utili_array.h...
22 INPUT / OUTPUT
23 INPUT / OUTPUT da tastiera / su video - dobbiamo includere il file <stdio.h> che mette a disposizione alcune funzioni predefinite per eseguire la lettura da un dispositivo di input (es. tastiera) o scrittura su un dispositivo di output (es. video) L'istruzione per stampare a video più usata è la printf(), che ci permette di controllare ciò che viene stampato, nel senso che permette di decidere cosa stampare ed in quale forma. La struttura di printf è la seguente: int printf(char *formato, lista argomenti...) Stampa sullo stdout (il video o la console in questo caso) la lista di argomenti conformemente alla stringa di formato specificata. La funzione ritorna il numero di caratteri stampanti. La stringa di formato ha due tipi di argomenti: caratteri ordinari - questi vengono copiati nell'output; specificazioni di conversione - contraddistinte dal carattere percentuale "%" e da un carattere che specifica il formato con il quale stampare le variabili presenti nella lista di argomenti. Le sequenze di escape servono per rappresentare quei caratteri "speciali" presenti nella codifica ASCII e che non stampano nulla a video. Le sequenze di escape iniziano con il carattere backslash (\) e sono interpretate come un singolo carattere. si applicano anche al comando: scanf(char *formato, lista puntatori argomenti);
24 INPUT / OUTPUT da tastiera / su video La funzione scanf() serve per leggere dallo stdin (generalmente la tastiera) una sequenza di caratteri (lettere o cifre) che verranno memorizzate all'interno di opportune variabili. Scanf è, quindi, definita come segue: int scanf(char *formato, lista argomenti...) scanf(), oltre a poter leggere stringhe di testo, e non un solo carattere alla volta come getchar(), permette di leggere più variabili contemporaneamente, specificate nella lista degli argomenti. #include <stdio.h> int main() { int i; scanf("%d \n", &i); printf("%d \n", i); A differenza di printf(), però ogni variabile deve essere messa preceduta dal simbolo &, perché in realtà tra gli argomenti non dobbiamo passare il nome della variabile, ma il suo indirizzo, cosa che può essere fatta utilizzando un puntatore (ed ecco il perché del &, simbolo di dereferenziazione che serve ad ottenere l'indirizzo del puntatore)
25 INPUT / OUTPUT da tastiera / su video - esempio #include <stdio.h> #include <stdlib.h> #include <malloc.h> int main() { int numero, *array, i; char buffer[15]; int allocati; numero = 100; printf("numero di elementi dell'array: %d", numero); array = (int *)malloc(sizeof(int) * numero); if(array == NULL) { printf("memoria esaurita\n"); exit(1); allocati = sizeof(int) * numero; for(i=0; i<numero; i++) { array[i] = i;
26 INPUT / OUTPUT da tastiera / su video - esempio printf("\nvalori degli elementi\n"); for(i=0; i<numero; i++) { printf("%6d%c", array[i], i%10 == 9? 'n' : ' '); printf("\n\nnumero elementi %d\n", numero); printf("dimensione elemento %d\n", sizeof(int)); printf("bytes allocati %d\n", allocati); free(array); printf("\nmemoria Liberata\n"); return 0;
27 INPUT / OUTPUT da tastiera / su video int getchar(void), legge un carattere per volta dalla tastiera (stdin). Ecco un esempio di un programma che conta il numero di volte che si è digitato un carattere (CtrL+D, = EOF interrompe il programma): #include <stdio.h> main() { int ch, i = 0; while((ch = getchar())!= EOF) i++; printf("%d \n", i); int putchar(int c) stampa a video un carattere, c; modifichiamo il programma precedente facendo in modo di convertire ogni carattere inserito nell'equivalente lettera maiuscola (grazie alla funzione toupper(): #include <ctype.h> /* Per la definizione di toupper */ #include <stdio.h> /* Per la definizione di getchar, putchar ed EOF */ main() { int ch; while((ch = getchar())!= EOF) putchar(toupper(ch));
I/O da tastiera e direttive processore. Alessandra Giordani Lunedì 3 maggio
I/O da tastiera e direttive processore Alessandra Giordani agiordani@disi.unitn.it Lunedì 3 maggio 2010 http://disi.unitn.it/~agiordani/ Ripasso funzione printf() Usata per stampare il contenuto di una
DettagliIntroduzione al C. Unità 10 Preprocessore. D. Bloisi, S. Peluso, A. Pennisi, S. Salza
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 10 Preprocessore D. Bloisi, S. Peluso, A. Pennisi, S. Salza Sommario Processo
DettagliIntroduzione al C. Unità 10 Preprocessore
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 10 Preprocessore D. Bloisi, A. Pennisi, S. Peluso, S. Salza Processo di compilazione
DettagliPreprocessore, linker e libreria standard
Preprocessore, linker e libreria standard Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 IL PREPROCESSORE Programma sorgente
DettagliLe direttive del Preprocessore
Le direttive del Preprocessore Prof. Orazio Mirabella Direttive Un compilatore traduce le istruzioni di un programma sorgente in linguaggio macchina Talvolta è conveniente prendere coscienza dell esistenza
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
DettagliIl linguaggio C. Il preprocessore...
Il linguaggio C Il preprocessore... C : un semplice programma Il più semplice programma C è costituito da una singola funzione (main) memorizzata in un singolo file C : un semplice programma (2) DIRETTIVE
DettagliIl linguaggio C. Il preprocessore...
Il linguaggio C Il preprocessore... 1 Il preprocessore Viene invocato prima della compilazione vera e propria Esegue delle manipolazioni testuali sul file sostituisce nomi con testo elimina e inserisce
DettagliIntroduzione al linguaggio C Primi programmi
Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
DettagliPerché il linguaggio C?
Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare
DettagliCaratteri e stringhe
Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un
DettagliPreprocessore, linker e libreria standard
Preprocessore, linker e libreria standard Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 IL PREPROCESSORE Programma sorgente
DettagliIl preprocessore. Direttiva define Direttiva include Direttiva if
Il preprocessore Direttiva define Direttiva include Direttiva if Il preprocessore Il preprocessore è un processore di testi che elabora il contenuto di un file sorgente prima della compilazione vera e
DettagliComplementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -
Complementi - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Università degli Studi di Brescia Prof. Massimiliano Giacomin
DettagliPrimi programmi in C
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Uso del compilatore gcc Struttura di un programma
DettagliPerché il linguaggio C?
Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare
DettagliComplementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -
Complementi - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Università degli Studi di Brescia Prof. Massimiliano Giacomin
DettagliLezione 19: Il preprocessore
Lezione 19: Il preprocessore Vittorio Scarano Corso di Laurea in Informatica Università di Salerno Struttura della lezione Il debugger gdb Il preprocessore direttive #include e #define macro con parametri
DettagliC O P Y R I G H T ( C ) W W W. F O N D A M E N T I. I N F O
Il linguaggio C C O P Y R I G H T ( C ) 2 0 0 8 W W W. F O N D A M E N T I. I N F O P E R M I S S I O N I S G R A N T E D T O C O P Y, D I S T R I B U T E A N D / O R M O D I F Y T H I S D O C U M E N
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
DettagliPreprocessore. Unità 9. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi Si ringrazia Raffaele Nicolussi
Corso di Laboratorio di Informatica Ingegneria Clinica BCLR Domenico Daniele Bloisi Si ringrazia Raffaele Nicolussi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica,
DettagliIL PREPROCESSORE LORENZO BRACCIALE
IL PREPROCESSORE LORENZO BRACCIALE LORENZO.BRACCIALE@UNIROMA2.IT RUOLO DEL PREPROCESSORE Il preprocessore C elabora un programma C prima che sia compilato Funzioni di base: definizione di costanti simboliche
DettagliIl sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto.
Sistema C e organizzazione del codice Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto. Un programma C è costituito da un insieme
DettagliPrimi 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
DettagliIL PREPROCESSORE LORENZO BRACCIALE
IL PREPROCESSORE LORENZO BRACCIALE LORENZO.BRACCIALE@UNIROMA2.IT RUOLO DEL PREPROCESSORE Il preprocessore C elabora un programma C prima che sia compilato Funzioni di base: definizione di costanti simboliche
DettagliESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2
DettagliInput/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari
Input/Output Lettura e scrittura Caratteri e Stringhe: Terminale e file Input/output console file caratteri stringhe formattato ascii binari Linguaggio ANSI C Input/Output - 1 La libreria standard del
DettagliLezione 11: Liste a Puntatori e Input/Output
Lezione 11: Liste a Puntatori e Input/Output Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione Richiamo: strutture (struct)
DettagliStruttura di un. Struttura dei programmi C
Parte 4 Struttura di un Programma Struttura dei programmi C Un programma C deve essere contenuto in uno o più file (salvo diversa specifica, per ora si assume in un file): 1. Una parte contenente direttive
DettagliLezione 5: Introduzione alla programmazione in C
Lezione 5: Introduzione alla programmazione in C Laboratorio di Elementi di Architettura e Sistemi Operativi 4 Aprile 2012 Introduzione al C C vs. Java Java: linguaggio ad oggetti C: linguaggio procedurale
DettagliLezione 22: Input/Output e Files
Lezione 22: Input/Output e Files Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università di Salerno Struttura della lezione Esami: date e modalità Funzioni di libreria standard
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
DettagliStringhe in C. Emilio Di Giacomo
Stringhe in C Emilio Di Giacomo Stringhe Una stringa è una sequenza finita di caratteri Le stringhe sono un tipo di dati talmente importante e utile che fanno parte di quasi tutti i linguaggi di programmazione
DettagliC: primi elementi. Lezione 4
C: primi elementi Lezione 4 Evoluzione del BCPL (1967) e B (1970), entrambi typeless Sviluppato da Dennis Ritchie nel 1972 ed implementato per il PDP-11 Usato per lo sviluppo del sistema operativo UNIX
DettagliUnità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.
Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 4 24/10/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University
DettagliCosa serve per cominciare?
Cosa serve per cominciare? La linea di comando Il notepad (o equivalente) Saper scrivere qualcosa a video da programma risultato dell elaborazione elaborazione Ma come si fa?! 1 Input / Output L'immissione
DettagliEsiste però anche un ambiente globale: quello dove tutte le funzioni sono definite. Qui si possono anche definire variabili, dette variabili globali
AMBIENTE LOCALE E GLOBALE In C, ogni funzione ha il suo ambiente locale che comprende i parametri e le variabili definite localmente alla funzione Esiste però anche un ambiente globale: quello dove tutte
DettagliEsiste però anche un ambiente globale: quello dove tutte le funzioni sono definite. Qui si possono anche definire variabili, dette variabili globali
AMBIENTE LOCALE E GLOBALE In C, ogni funzione ha il suo ambiente locale che comprende i parametri e le variabili definite localmente alla funzione Esiste però anche un ambiente globale: quello dove tutte
DettagliCompilazione separata. Come realizzare correttamente un piccolo progetto su piu' file
Compilazione separata Come realizzare correttamente un piccolo progetto su piu' file 1 Programmi C su più file Tutti i programmi che abbiamo visto finora erano composti da un unico file.c Nel caso di programmi
DettagliProgrammazione I - Laboratorio
Programmazione I - Laboratorio Introduzione alle lezioni in laboratorio Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti
DettagliCompilazione separata. Come realizzare correttamente un piccolo progetto su piu' file
Compilazione separata Come realizzare correttamente un piccolo progetto su piu' file 1 Programmi C su più file Tutti i programmi che abbiamo visto finora erano composti da un unico file.c Nel caso di programmi
DettagliUnità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.
Unità Didattica 3 Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa
DettagliCompilazione e Makefile
Compilazione e Makefile Indice Il preprocessore Le istruzioni per il preprocessore Le MACRO L ambiente linux: alcuni comandi Editor ed il compilatore gcc I makefile Il comando make I flag Il preprocessore
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
DettagliESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2
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,
DettagliProgetto per il Laboratorio di Programmazione Un interprete per il linguaggio PINO. Modulo I: Le tavole dei simboli (TS)
Progetto per il Laboratorio di Programmazione Un interprete per il linguaggio PINO Modulo I: Le tavole dei simboli (TS) Stefano Guerrini A.A. 2002/03 Canale P-Z Versione del 20 giugno 2003 1 Modulo I:
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
DettagliFunzionalità. Il preprocessore C. Inclusione di file. Inclusione di file
Il preprocessore C Ver. 2.4 Funzionalità Modifica il codice C prima che venga eseguita la traduzione vera a propria Le direttive al preprocessore riguardano: inclusione di file (#include) definizione di
DettagliLa gestione dei caratteri in C
in C In C i caratteri sono gestiti mediante variabili di tipo char (interi a 8 bit) Ad ogni carattere corrisponde un codice numerico ASCII (American Standard Code for Information Interchange) Un esempio
DettagliSommario. Introduzione... xv. Giorno 1 Elementi base del linguaggio C
Sommario Introduzione... xv Organizzazione del volume... xv Argomenti...xvi Domande...xvi Verifiche...xvi Domande e risposte...xvi Esercizi...xvi Non è richiesta alcuna precedente esperienza di programmazione...
DettagliLibrerie C. Corso di Linguaggi e Traduttori 1 AA Corso di Linguaggi e Traduttori 1 AA stdio.h
Corso di Linguaggi e Traduttori 1 AA 2004-05 1 Corso di Linguaggi e Traduttori 1 AA 2004-05 stdio.h 2 Funzioni comuni di I/O? Le piu' comuni funzioni che permettono I/O sono getchar() e putchar():? int
DettagliCorso di Informatica A.A
Corso di Informatica A.A. 2009-2010 Lezione 13 Corso di Informatica 2009-2010 Lezione 13 1 Input/output da file Stream Si definisce stream una sequenza di bytes di dati che può essere in ingresso (input
DettagliStringhe in C. Luca Abeni. Informatica Luca Abeni 1 / 10
Stringhe in C Luca Abeni Informatica Luca Abeni 1 / 10 Stringhe in C Stringhe: tipo di dato strutturato Sequenze di caratteri Linguaggio C: progettato per la semplicità No supporto nativo per le stringhe
DettagliINPUT E OUTPUT DI VALORI NUMERICI
INPUT E OUTPUT DI VALORI NUMERICI FUNZIONI DI I/O PER NUMERI Per utilizzare le funzioni di Input/Output bisogna includere il file di intestazione (header file) denominato contiene la
DettagliLaboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 16 ottobre 2007 1 Rappresentazioni di caratteri in C In C un carattere è una costante intera il cui valore è dato dal codice ASCII
DettagliLe librerie standard. ! La libreria standard del C è in realtà un insieme di librerie
! La libreria standard del C è in realtà un insieme di librerie! Per usare una libreria, non occorre inse -rirla esplicitamente nel progetto: ogni ambiente di sviluppo sa già dove cercarle! Ogni file sorgente
DettagliLinguaggio C: Stringhe Valeria Cardellini
Linguaggio C: Stringhe Valeria Cardellini Corso di Calcolatori Elettronici A.A. 2018/19 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Argomenti q
DettagliCompilazione e Makefile
Compilazione e Makefile Indice Il preprocessore Le istruzioni per il preprocessore Le MACRO L ambiente linux: alcuni comandi Editor ed il compilatore g++ I makefile Il comando make I flag Il preprocessore
DettagliInformatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi
Informatica 1 Corso di Laurea Triennale in Matematica Gianluca Rossi gianluca.rossi@uniroma2.it Dipartimento di Matematica Università di Roma Tor Vergata 11: Stringhe (www.informatica-uno.blogspot.com)
Dettagli#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
DettagliDIRETTIVE DI PREPROCESSORE
DIRETTIVE DI PREPROCESSORE elaborazione di macro inclusione di file sorgente compilazione condizionale (consente di compilare porzioni di codice sorgente in dipendenza del valore di una espressione aritmetica)
DettagliLibrerie C. Corso di Linguaggi e Traduttori 1 AA
Corso di Linguaggi e Traduttori 1 AA 2004-05 1 Corso di Linguaggi e Traduttori 1 AA 2004-05 stdio.h 2 Funzioni comunidi I/O? Le piu' comuni funzioni che permettono I/O sono getchar() e putchar():? int
DettagliCaratteri e stringhe
Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un
Dettagli2 Operatori matematici e costrutto if
Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione delle operazioni tra numeri e del costrutto condizionale if. Si introducono anche le due funzioni
DettagliIngresso ed Uscita in C. Informatica 1 / 15
Ingresso ed Uscita in C Informatica 1 / 15 Input e Output in C Linguaggio C: progettato per essere semplice e con poche istruzioni Non esistono istruzioni di ingresso / uscita (I/O)!!! Ingresso ed uscita
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
DettagliInformazioni Utili. Strumenti Utilizzati. Creazione e gestione di un progetto. Fondamenti di Informatica L-B (L-Z) Esercitazioni
Informazioni Utili Fondamenti di Informatica L-B (L-Z) Esercitazioni A.A. 2005/06 Tutor: Loris Cancellieri loris.cancellieri@studio.unibo.it Orario delle Esercitazioni Lunedì 14-16 Gruppo L Q Martedì 16-18
DettagliINPUT/OUTPUT INPUT/OUTPUT
INPUT/OUTPUT L'immissione dei dati di un programma e l uscita dei suoi risultati avvengono attraverso operazioni di lettura e scrittura C non ha istruzioni predefinite per l'input/output In ogni versione
DettagliInformazioni Utili. Fondamenti di Informatica L-B (L-Z) Esercitazioni. A.A. 2005/06 Tutor: Loris Cancellieri
Fondamenti di Informatica L-B (L-Z) Esercitazioni A.A. 2005/06 Tutor: Loris Cancellieri loris.cancellieri@studio.unibo.it Informazioni Utili Orario delle Esercitazioni Lunedì 14-16 Gruppo L Q Martedì 16-18
DettagliLEZIONE 1 LE BASI DEL LINGUAGGIO C
LEZIONE 1 LE BASI DEL LINGUAGGIO C Simone Marchesini Roberto Pagliarini Dipartimento di Informatica Università di Verona COS È? Il C è un linguaggio di programmazione che permette di salvare i valori in
DettagliCenni sul preprocessore e il suo utilizzo
Alessio Bechini - Corso di - Cenni sul preprocessore e il suo utilizzo Il preprocessore: cenni Il preprocessore Storicamente, i compilatori C operavano con passaggi multipli. Il primo passaggio eseguiva
DettagliLIBRERIE STANDARD in C. LIBRERIE STANDARD in C
LIBRERIE STANDARD in C La libreria standard del C è in realtà un insieme di librerie Per usare una libreria, non occorre inserirla esplicitamente nel progetto: ogni ambiente di sviluppo sa già dove cercarle
DettagliUna stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' a p e \0
STRINGHE: ARRAY DI CARATTERI Una stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' s a p e \0 0 1 2 3 Un vettore di N caratteri può dunque ospitare stringhe lunghe al più N-1
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
DettagliSTRINGHE: ARRAY DI CARATTERI! a p e \0
STRINGHE: ARRAY DI CARATTERI! Una stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' s a p e \0 0 1 2 3 Un vettore di N caratteri può dunque ospitare stringhe lunghe al più
Dettagliprova.c #include <stdio.h> char funzione(char); codice oggetto del main()
prova.c #include char funzione(char); {char c= a ; printf( Ecco il carattere: %c\n,c); c=funzione(c); printf( Ecco il carattere modificato: %c\n,c); char funzione(char tmp) {if(tmp
DettagliLa sintassi del C APPENDICE H
APPENDICE H La sintassi del C Nella notazione della sintassi utilizzata, le categorie sintattiche (non terminali) sono state indicate da uno stile tipografico in corsivo, mentre le parole letterali e i
DettagliInput/Output di numeri
Input/Output di numeri I/O di numeri Per utilizzare le funzioni di I/O occorre include il file di intestazione (o file header) stdio.h utilizzando all inizio del sorgente la direttiva #include
DettagliL'immissione dei dati di un programma e l uscita dei suoi risultati avvengono attraverso operazioni di lettura e scrittura
INPUT/OUTPUT L'immissione dei dati di un programma e l uscita dei suoi risultati avvengono attraverso operazioni di lettura e scrittura C non ha istruzioni i ipredefinite it per l'input/output t t In ogni
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
DettagliPerchè i files? Realizzano la persistenza dei dati. Sono delle strutture di dati sequenziali. dati che sopravvivono all esecuzione del programma
Perchè i files? Realizzano la persistenza dei dati dati che sopravvivono all esecuzione del programma Sono delle strutture di dati sequenziali Files e S.O. I files sono gestiti dal S.O. e resi visibili
DettagliAllocazione dinamica memoria
Allocazione dinamica memoria Marco Casazza 11/12/2017 1 Esercizio 1 1 /* 2 Creare una lista bidirezionale di interi, ovvero una lista 3 che permette lo scorrimento in entrambe le direzioni ( dal primo
DettagliLIBRERIE STANDARD in C
LIBRERIE STANDARD in C La libreria standard del C è in realtà un insieme di librerie Per usare una libreria, non occorre inserirla esplicitamente nel progetto: ogni ambiente di sviluppo sa già dove cercarle
DettagliLIBRERIE STANDARD in C Le librerie standard
LIBRERIE STANDARD in C La libreria standard del C è in realtà un insieme di librerie Per usare una libreria, non occorre inserirla esplicitamente nel progetto: ogni ambiente di sviluppo sa già dove cercarle
DettagliIl linguaggio C - Introduzione
Il linguaggio C - Introduzione Il C è un linguaggio imperativo legato a Unix, adatto all implementazione di compilatori e sistemi operativi. È stato progettato da D. Ritchie per il PDP-11 (all inizio degli
DettagliLe funzioni, e le istruzioni di input/output
Linguaggio C Le funzioni, e le istruzioni di input/output 1 Funzioni! Sono sottoprogrammi per svolgere un particolare compito! Sequenze di istruzioni (raggruppate tramite le parentesi graffe) alle quali
DettagliFONDAMENTI DI INFORMATICA 2
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2
DettagliSunto della scorsa lezione Il linguaggio C. Un Programma con Errori. Il preprocessore. Linguaggi di Programmazione I.
Sunto della scorsa lezione 06-10-2003 Il linguaggio C Matricole 2-3 Un programma C è un insieme di funzioni. La funzione è sempre presente Una funzione è un insieme di istruzioni racchiuse tra ogni istruzione
DettagliIntroduzione a. Funzioni di Ingresso e Uscita. Compilazione
Introduzione a Funzioni di Ingresso e Uscita Compilazione 2 Come si termina...... un programma in esecuzione (processo)? Ctrl + C In UNIX ci si basa sul concetto di terminale Anche da GUI, quello che si
DettagliFondamenti di Informatica L-B (L-Z) Esercitazioni. A.A. 2007/08 Tutor: Barbara Pettazzoni
Fondamenti di Informatica L-B (L-Z) Esercitazioni A.A. 2007/08 Tutor: Barbara Pettazzoni barbara.pettazzoni@studio.unibo.it Informazioni Utili Orario delle Esercitazioni Martedì 14-16 Gruppo L Q Martedì
DettagliUso di GCC da riga di comando
Uso di GCC da riga di comando Stefano Ferrari Università degli Studi di Milano stefanoferrari@unimiit Programmazione anno accademico 2016 2017 Shell La shell è una interfaccia utente per accedere ai servizi
DettagliINPUT/OUTPUT. L'immissione dei dati di un programma e l uscita dei suoi risultati avvengono attraverso operazioni di lettura e scrittura
INPUT/OUTPUT L'immissione dei dati di un programma e l uscita dei suoi risultati avvengono attraverso operazioni di lettura e scrittura C non ha istruzioni predefinite per l'input/output In ogni versione
Dettagli