I CARATTERI. Domanda: char c = 1 ; printf( c=%d\n, (int)c ); //cosa stampa?
|
|
- Paolo Caputo
- 6 anni fa
- Visualizzazioni
Transcript
1 I CARATTERI Ogni carattere viene memorizzato come un numero intero smallest addressable unit of the machine that can contain basic character set. It is an integer type. Actual type can be either signed or unsigned depending on the implementation. Il segno (se non si definisce signed o unsigned) è definito dall implementazione (-funsigned-char su GCC per forzarlo) Serve a farci della matematica Dichiarazione di un carattere: char c = p ; La conversione classica carattere ß à numero è codificata all interno di una tabella standard chiamata ASCII table rappresentazione di 1 carattere con 7 bit Domanda: char c = 1 ; printf( c=%d\n, (int)c ); //cosa stampa?
2 ASCII TABLE
3 UNICODE Problema: come rappresentare le lettere non comprese dal alfabeto americano ad. es. ò, è, ù ma anche le lettere cirilliche/ideogrammi cinesi etc. Unicode: sistema di codifica di più di caratteri, gestione e rappresentazione ad es. gli arabi scrivono da destra a sinistra standard (attualmente v 6.3) mantenuto dall Unicode Consortium Codifica: tra le piu usate, UTF-8 Se il carattere è nella tabella ASCII, allora usiamo la codifica ASCII Altrimenti scriviamo il valore codificato (fino 4 byte) Unicode!= UTF Unicode: character set (mappa ad ogni carattere un valore univoco), UTF: codifica (come memorizzare/ inviare quel valore) UTF-8 and Unicode cannot be compared. UTF-8 is an encoding used to translate binary data into numbers. Unicode is a character set used to translate numbers into characters.
4 UNICODE: ESEMPIO
5 LE STRINGHE Array di char terminate dal carattere NULL NULL è il carattere \0 ovvero il numero 0 null terminated array of char Esempio: c i a o \0 char mia_stringa[] = ciao ; Se una stringa viene inizializzata in questo modo, la terminazione è automatica. La dimensione è quindi 5 byte Metodo alternativo: char mia_stringa[5] = { c, i, a, o, \0 };
6 ESERCIZIO CON STRINGHE Accettare una stringa, memorizzarla e stamparla a video come stringa e come insieme di numeri ovvero l ASCII code corrispondente ai suoi caratteri Funzioni utili: scanf( %s, mia_stringa); // per accettare input e scriverli dentro l array printf( %s, mia_stringa); //per stampare la stringa printf( %c, mia_stringa[0]); // per stampare un carattere scanf( %c, &mia_stringa[0]); // per accettare un carattere scanf("%[^\n]s", mia_stringa); //accetta fino al newline Cosa succede se scriviamo più caratteri della dimensione dell array? Cosa succede se non terminiamo con NULL la stringa?
7 SICUREZZA E BUFFER OVERFLOW?
8 I PUNTATORI Variabili i cui valori sono indirizzi di memoria Variabili che contengono l indirizzo di un altra variabile I puntatori hanno un tipo (ad es. puntatore ad intero) Esempio: int *mio_puntatore int *a, b; //dichiara un puntatore di tipo a e un intero di tipo b Buona pratica: Inizializzare i puntatori a NULL esempio: int *mio_puntatore = NULL; costante simbolica definita come 0
9 OPERATORE DI INDIRIZZO L operatore & restituisce l indirizzo di una variabile int a = 5; int *myptr = NULL; myptr = &a; OPERATORE DI INDIREZIONE L operatore * il valore della variabile puntata da un puntatore dereferenziare un puntatore int a = 5; int *myptr = NULL; myptr = &a; printf( a=%d, *myptr); printf( myptr=%p, myptr) Gli operatori possono essere concatenati (ad es **a) Se applicati insieme (ad es *&a) restituiscono la variabile originaria (ad es a)
10 PASSAGGIO DI ARGOMENTI PER RIFERIMENTO In C tutti gli argomenti vengono passati per valore Passando il puntatore ad una variabile, si emula il passaggio per riferimento Molto utile per motivi di efficienza Utile per far modificare ad una funzione più variabili E un passaggio delicato Quando si può, passare per valore per il principio del privilegio minimo (facilita il debug) oppure usare const (vedi dopo) #include <stdio.h> void make_square(int *); int main () { } int test = 200; make_square(&test); printf( test=%d\n, test); return 0; void make_square(int *n){ } *n = *n * *n;
11 QUALIFICATORE CONST Se una variabile non cambia all interno di una funzione, deve essere dichiarata come const esempio: const int a = 10; Valido anche per gli argomenti: esempio prova_funzione (const int b) Non viene modificata la copia di b Qualora venga modificata, errore in compilazione Attenzione! void test(char* c); void test(const char* c); void test(char * const c); void test(const char * const c); puntatore non costante a dati non costanti puntatore non costante a dati costanti puntatore costante a dati non costanti puntatore costante a dati costanti NOTA: const char *c e char* const c sono la stessa cosa
12 PUNTATORI E ARRAY Esempio: int my_array[10]; my_array (senza indice) è un puntatore costante al primo elemento dell array il passaggio di un array ad una funzione avviene quindi per riferimento E possibile far puntare un puntatore al primo elemento dell arrary int *ptr; ptr = my_array; // equivalente a ptr = &my_array[0] muoverlo per far puntare diversi elementi dell array *(ptr + 3); // notazione puntatore/offset ptr[3]; //notazione puntatore/indice sono equivalenti
13 ARRAY DI PUNTATORI Esempio: array di stringhe const char *mie_stringhe[3] = { pippo, pluto, ciao }; mie_stringhe[0] mie_stringhe[1] mie_stringhe[2] p i p p o \0 p l u t o \0 c i a o \0 Che differenza c e con un array bidimensionale di caratteri?
14 ARGC - ARGV La funzione main accetta tre parametri int argc: numero di argomenti passati alla funzione (+1) ad es../main test1 test2 à argc = 3 char *argv[]: array di stringhe (o array di puntatori a carattere) che rappresentano i valori degli argomenti ad es../main test1 test2 à argv[1] = test1 Il primo argomento è sempre il nome del programma stesso argv[argc] è NULL char *envp[]: array di stringhe che rappresentano i valori delle variabili di ambiente poco usata (ricerca lineare) meglio getenv (lib standard)
15 ESEMPIO OPERATORI * E & char c, *p, **pp; c = x ; p = &c; //ok pp = &p; //ok printf( %c\n, **pp); //ok scrive c pp = &&c; //errore!
16 PUNTATORI A FUNZIONE Per dichiarare un puntatore a funzione: tipo_restituito (*nome_puntatore_a_funz)(arg1, arg2 ); Esempi: int (* pippo)(char c, int *p); Dichiaro un puntatore a funzione che si chiama pippo e puo puntare ad una funzione che accetti come parametri un char e un puntatore a intero, e che ritorni un intero. int *pippo(char, int *p); Questo non è un puntatore a funzione, ma un prototipo di funzione Esempio di utilizzo: double somma( double a, double b) ; /* dichiarazione */ int main() { double (*ptrf) ( double g, double f); double c ptrf = somma; c = ptrf (A,B); }.
17 CASTING DI PUNTATORI E possibile fare il casting dei puntatori cosi come per gli altri tipi char *c = ciao ; short x = (short*)c; A volte è usato void * ad indicare un puntatore che prima di essere dereferenziato obbliga al casting
18 NON E COSI SEMPLICE char *c = ciao ; char *c2 = ciao ; string literals, è sempre di tipo const char[n] c!= c2 char *c = ciao ; char *c2 = pippo ; c = c2 Non stiamo copiando le stringhe ma stiamo facendo puntare due puntatori alla stessa stringa In C, manipolare le stringhe è come manipolare degli array di numeri E per questo che non viene usato in alcuni contesti (ad es il web) Stesso discorso per la concatenazione di stringhe
19 STRINGHE: COPIARE E CONFRONTARE <string.h> Copiare char *strcpy(char *s1, const char *s2); char *strncpy(char *s1, const char *s2, size_t n); char *strcat(char *s1, const char *s2); char *strncat(char *s1, const char *s2, size_t n); Copia s2 in s1, ritorna s1 Copia al massimo n caratteri da s2 in s1, ritorna s1 Concatena s2 in fondo a s1 Concatena al massimo n caratteri di s2 in fondo a s1 Confrontare int strcmp(char *s1, const char *s2); int strncpy(char *s1, const char *s2, size_t n); Confronta s1 e s2, ritorna 0 se sono uguali Confronta n caratteri, ritorna 0 se sono uguali
20 STRINGHE: CONVERSIONE <stdlib.h> double strtod(const char *nptr, char **endptr); long strtol(const char *nptr, char **endptr, int base); unsigned long strtoul(const char *nptr, char **endptr, int base); converte la stringa nptr in un double, restituendolo. endptr è l indirizzo di un puntatore a carattere che viene fatto puntare subito dopo la fine della stringa convertita converte la stringa in long converte la stringa in unsigned long
21 STRINGHE: FORMATTAZIONE Scrivere una stringa formattata sprinf(mia_stringa, pippo=%d, pluto=%d, pippo, pluto); come printf, ma scrive su stringa e non su std output Leggere una stringa formatta sscanf(mia_stringa, pippo=%d, pluto=%d, &pippo, &pluto) presa la stringa precedente, salviamoci le variabili
22 STRINGHE: ALTRE FUNZIONI UTILI char *strchr(const char *s, int c); ritorna la prima occorrenza di c in s, oppure NULL char *strstr(const char *s1, const char *s2); char *strtok(char *s1, const char *s2); ritorna il puntatore alla prima occorrenza della stringa s2 in s1 o NULL Separa la stringa s1 in base ai caratteri definiti in s2. La prima chiamata restituisce l indirizzo del primo token. Le chiamate successive, se s1==null, restituisono i token successivi, oppure NULL se non ci sono altri token.
23 PER MAGGIORI INFO apt-get install manpages-dev apt-get install manpages-posix-dev (e ovviamente se non l avete ancora fatto installate man ) e quindi: man strlen
24 ESERCIZIO: PRODOTTO SCALARE Realizzare un programma che accetti come parametri due vettori e ne ritorni il prodotto scalare Specifiche tecniche: I due vettori verranno passati come stringhe al programma e l output sarà un numero che verrà sia stampato a video che impostato come valore di ritorno (return X) Ogni elemento del vettore è un intero con segno (puo essere positivo o negativo) usare i puntatori scrivere una funzione parser (input stringa à output vettore) ESEMPIO./mio_programma {1,2,3,4} {0,1,2,0} à calcolo 1*0 + 2*1 + 3*2 + 4*0 = 8 return 8
25 ESERCIZIO IN AULA Scrivere una funzione che cambi il valore di un puntatore inizializzandolo a NULL.
26 OPERAZIONI CON LA MEMORIA char *memcpy(void *s1, const void *s2, size_t n); char *memmove(void *s1, const void *s2, size_t n); int memcmp (void *s1, const void *s2, size_t n); char *memchr(const void *s1, int c, size_t n); void *memset(void *s, int c, size_t n); Copia n caratteri da s2 in s1, ritorna s1 Copia n caratteri da s2 in s1 utilizzando un array temporaneo, ritorna s1. Ad esempio per spostare di un byte un insieme di caratteri Ritorna 0 se i primi n caratteri sono uguali Cerca la prima occorrenza di c in s1. Ne ritorna il puntatore o NULL. Copia c nei primi n caratteri dell oggetto puntato da s.
I CARATTERI. Domanda: char c = 1 ; printf( c=%d\n, (int)c ); //cosa stampa?
I CARATTERI Ogni carattere viene memorizzato come un numero intero smallest addressable unit of the machine that can contain basic character set. It is an integer type. Actual type can be either signed
DettagliI CARATTERI. Domanda: char c = 1 ; printf( c=%d\n, (int)c ); //cosa stampa?
I CARATTERI Ogni carattere viene memorizzato come un numero intero smallest addressable unit of the machine that can contain basic character set. It is an integer type. Actual type can be either signed
DettagliI CARATTERI. Domanda: char c = 1 ; printf( c=%d\n, (int)c ); //cosa stampa?
I CARATTERI Ogni carattere viene memorizzato come un numero intero smallest addressable unit of the machine that can contain basic character set. It is an integer type. Actual type can be either signed
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
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
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
DettagliLe stringhe. Le stringhe sono sequenze di caratteri,
Stringhe Le stringhe Le stringhe sono sequenze di caratteri, in C le stringhe costanti vengono denotate da una successione di caratteri racchiusa fra apici Es: "ciccio" "n = %d" "Ciao Mondo" La rappresentazione
DettagliLe stringhe. Le stringhe sono sequenze di caratteri,
Stringhe Le stringhe Le stringhe sono sequenze di caratteri, in C le stringhe costanti vengono denotate da una successione di caratteri racchiusa fra apici Es: "ciccio" "n = %d" "Ciao Mondo" La rappresentazione
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
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
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
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
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
DettagliStringhe in C. Nicu Sebe. Informatica Nicu Sebe 1 / 14
Stringhe in C Nicu Sebe Informatica Nicu Sebe 1 / 14 Stringhe in C Stringhe: tipo di dato strutturato Sequenze di caratteri Linguaggio C: progettato per la semplicità No supporto nativo per le stringhe
DettagliEsercitazione 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
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
DettagliIntroduzione al C. Unità 8 Stringhe. S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 8 Stringhe S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi Sommario
DettagliIntroduzione al C. Unità 8 Stringhe
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 8 Stringhe D. Bloisi, A. Pennisi, S. Peluso, S. Salza Sommario Unità 8 Array di
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ù
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:
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
DettagliLinguaggio 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
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
DettagliCapitolo 7 I puntatori in C
1 Capitolo 7 I puntatori in C 7.2 Dichiarazione e inizializzazione di puntatori Variabili puntatore Contengono gli indirizzi di memoria come valore Le normali variabili contengono uno specifico valore
DettagliIntroduzione al C. Lezione 1 Elementi. Rossano Venturini. Pagina web del corso
Introduzione al C Lezione 1 Elementi Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Lezioni di ripasso C Mercoledì 19 Giovedì
DettagliRIPRENDIAMO I PUNTATORI
RIPRENDIAMO I PUNTATORI Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo. int a = 5; a 5 =&a Esistono in C particolari variabili dette
DettagliIntroduzione al C Lez. 5. Stringhe
Introduzione al C Lez. 5 Una stringa è una sequenza di caratteri. Ad esempio una parola, una frase, un testo... In C non è previsto un tipo per le stringhe. Una stringa è vista come un array di caratteri
Dettagli24 aprile Qualche minuto di laboratorio
24 aprile 2002 Avvisi: Risultati 1 o Esonero: (entro) lunedi 27 disponibili nella pag. WEB, ma anche esposti nella bacheca fuori dal corridoio 2 o dente, piano terra. Speciale 1 o Esonero : soluzioni,
DettagliIl linguaggio C Gestione della memoria
Il linguaggio C Gestione della memoria Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C - Gestione della memoria
DettagliLa funzione main() La funzione main(), presente in tutti i programmi C, è una funzione come tutte le altre
La funzione main() La funzione main(), presente in tutti i programmi C, è una funzione come tutte le altre Unica particolarità: viene chiamata dal Sistema Operativo, appena il programma viene avviato Non
DettagliIntroduzione alle stringhe e algoritmi collegati
Introduzione alle stringhe e algoritmi collegati Algoritmicamente August 15, 2009 1 Introduzione 1.1 Introduzione ai caratteri In informatica o più generalmente in una terminologia scientifica, il carattere
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. 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;
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
DettagliLinguaggio C. Vettori, Puntatori e Funzioni Stringhe. Università degli Studi di Brescia. Prof. Massimiliano Giacomin
Linguaggio C Vettori, Puntatori e Funzioni Stringhe Università degli Studi di Brescia Prof. Massimiliano Giacomin SCHEMA DELLA LEZIONE RELAZIONE TRA VETTORI E PUNTATORI (e le stringhe letterali come caso
DettagliStringhe. Prof. Lorenzo Porcelli
Stringhe Prof. Lorenzo Porcelli definizione Una stringa è un vettore di caratteri terminato dal carattere nullo \0. Il carattere nullo finale permette di determinare la lunghezza della stringa. char vet[32];
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
DettagliCorso di Fondamenti di Programmazione canale E-O. Strutture. Strutture. Definizione di strutture (2) Definizione di strutture (1)
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Strutture e Unioni DD Cap. 10, pp. 379-391, 405-406 KP Cap. 9, pp. 361-379 Strutture Strutture Collezioni di variabili correlate (aggregati)
DettagliCapitolo 11. Puntatori
1 Capitolo 11 Puntatori 2 Variabili puntatore Cerchiamo di capire come le informazioni sono memorizzate nella memoria del computer La memoria è un sequenza di byte Ogni byte è composto da 8 bit: Ogni byte
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
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
DettagliLezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit
Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione
DettagliEsercizi Programmazione I
Esercizi Programmazione I 0 Ottobre 016 Esercizio 1 Funzione valore assoluto Il file.c di questo esercizio deve contenere nell ordine, il prototipo (dichiarazione) di una una funzione abs, che prende in
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)
DettagliOperazioni sulle stringhe Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliOperazioni sulle stringhe
Corso di Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Via Ariosto
DettagliEsercizio 1: funzione con valore di ritorno di tipo puntatore
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 7 Esercitazione: 14 dicembre 2005 Esercizi su ricorsione, manipolazione stringhe, strutture dinamiche Problema: Esercizio
DettagliIntroduzione al C. Unità 8 Stringhe. D. Bloisi, S. Peluso, A. Pennisi, S. Salza
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 8 Stringhe D. Bloisi, S. Peluso, A. Pennisi, S. Salza Sommario Unità 8 Array di
DettagliUso avanzato dei puntatori Allocazione dinamica della memoria
Uso avanzato dei puntatori Allocazione dinamica della memoria Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 19 14/04/2014
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 19 14/04/2014 Puntatori I puntatori sono tipi di dati che rappresentano la posizione (indirizzi di memoria) di elementi (oggetti)
Dettaglipuntatori Lab. Calc. AA 2006/07 1
puntatori Lab. Calc. AA 2006/07 1 Attributi di un oggetto nome o identificatore; tipo; valore (o valori); indirizzo; Lab. Calc. AA 2006/07 2 Indirizzo Consideriamo la dichiarazione con inizializzazione:
DettagliSintassi: Per la dichiarazione di variabili dei tipi fondamentali:
Sintassi: Per la dichiarazione di variabili dei tipi fondamentali: declaration ::= type declarator list ; declarator list ::= declarator {, declarator} opt declarator ::= identif ier identif ier = initializer
DettagliPuntatori e array. Violetta Lonati
Puntatori e array Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Puntatori e array
DettagliI puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria.
Puntatori I puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria. NOTA: quando un programma viene mandato in esecuzione, ad esso viene assegnata un area di memoria di lavoro
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
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:
DettagliProgrammazione C. Puntatori Array come puntatori
Programmazione C Puntatori Array come puntatori Perché usare gli indirizzi Tutto in C ha un valore int a = 4; significa che il valore della variabile a è 4, e che potrà essere modificato dal programma
DettagliIntroduzione al C++ Parte 2
Introduzione al C++ Parte 2 Sommario Le differenze fra C e C++ il qualificatore const i namespace gli stream Evitare modifiche accidentali Il qualificatore const indica che la variabile non può più essere
DettagliLezione 1. Ing. Colazzo Sebastiano
Lezione 1 Ing. Colazzo Sebastiano Linguaggi macchina: lingua naturale di un particolare computer, esso consiste di sequenze di numeri (1 o 0) e dipende dalla macchina 0000111101 1111110001 0011001111 Linguaggi
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;
DettagliTipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C
Tipi di dati strutturati e Linguaggio C Record o strutture Il costruttore struct in C Dati strutturati Record Un record o struttura è una struttura dati ottenuta aggregando elementi di tipo diverso che
DettagliIl primo programma C. Un programma utile. Compilazione & linking con il compilatore GNU. Introduzione alla programmazione in linguaggio C
Introduzione alla programmazione in linguaggio C Il primo programma C /* Hello world: il mio primo programma C */ Commento su più righe; il compilatore ignorerà tutto quanto compreso fra /* e */. Il primo
DettagliTipi strutturati in C. Stringhe
Tipi strutturati in C Stringhe Stringhe Una stringa di caratteri in C è un array di caratteri terminato dal carattere \0 Un vettore di N caratteri può dunque ospitare stringhe lunghe al più N-1 caratteri,
DettagliFile binari e file di testo
I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file
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
DettagliIntroduzione al C. Lezione 4 Allocazione dinamica della memoria. Rossano Venturini. Pagina web del corso
Introduzione al C Lezione 4 Allocazione dinamica della memoria Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Lezioni di ripasso
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
DettagliCalcolatori Ele,ronici Lezione 9 5/12/2013
Calcolatori Ele,ronici Lezione 9 5/12/2013 Introduzione al C Emiliano Casalicchio Emiliano.Casalicchio@uniroma2.it Array Puntatori Stringhe Capitolo 6 del Kelley Pohl 3 Array Stru,ura dac contenente N
DettagliI CARATTERI E LE STRINGHE
I CARATTERI E LE STRINGHE IL CODICE ASCII Per memorizzare i simboli grafici corrispondenti ai caratteri bisogna associare un numero intero a ciascuno di essi Il codice ASCII / æski/ (American Standard
DettagliFIL I Puntatori. Michele Nappi biplab.unisa.it. 15/12/2014 M. Nappi/FIL 1
FIL I Puntatori Michele Nappi mnappi@unisa.it biplab.unisa.it 15/12/2014 M. Nappi/FIL 1 Introduzione I puntatori Una delle caratteristiche più potenti del C, ma difficile da padroneggiare Si usano per
DettagliAllocazione dinamica della memoria
Allocazione dinamica della memoria 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 Laboratorio di Sistemi Operativi A.A
Corso di Laboratorio di Sistemi Operativi A.A. 2016 2017 Lezione 10 Ivan Scagnetto ivan.scagnetto@uniud.it Nicola Gigante gigante.nicola@spes.uniud.it Dipartimento di Scienze Matematiche, Informatiche
DettagliTipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010
Tipi di dati scalari (casting e puntatori) Alessandra Giordani agiordani@disi.unitn.it Lunedì 10 maggio 2010 http://disi.unitn.it/~agiordani/ I tipi di dati scalari I tipi aritmetici, i tipi enumerativi
DettagliTipi di dato STRUTTURATI
Tipi di dato STRUTTURATI I tipi di dato si differenziano in scalari e strutturati In C si possono definire tipi strutturati: array e strutture [ ] (array) Un array è una collezione finita di N variabili
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
DettagliLe strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.
Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura
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
DettagliGestione dei File. Credits Prof. Campi
Gestione dei File Credits Prof. Campi 1 Perché i file? Sono strutture dati persistenti Sono solitamente memorizzati sui dischi Si usano dall'interno dei programmi Realizzano la persistenza dei dati cioè
DettagliInformatica per Statistica Riassunto della lezioni del 14/11/2012 e 16/11/2012
Informatica per Statistica Riassunto della lezioni del 14/11/2012 e 16/11/2012 Igor Melatti Cenni sui puntatori in C Per ogni variabile normale dichiarata, il compilatore riserva una precisa quantità di
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
DettagliPuntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori
Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per
DettagliLaboratorio di Informatica
-- Conversione di tipo in C (V) -- Laboratorio di Informatica Ingegneria Meccanica Lezione 7, 22 novembre 2007 versione 24 novembre 2007 Renato Menicocci
DettagliPuntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori
Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per
DettagliIl linguaggio C. Breve panoramica su stdio.h
Il linguaggio C Breve panoramica su stdio.h 1 Input/Output: stdio.h Contiene definizioni di costanti legate all I/O es. EOF (end of file) #define EOF (-1) valore restituito alla fine di un file Contiene
DettagliPuntatori (in C) Emilio Di Giacomo
Puntatori (in C) Emilio Di Giacomo Puntatori In questa lezione parleremo di uno dei costrutti più potenti del C: i puntatori I puntatori vengono utilizzati per realizzare il passaggio di parametri per
DettagliDispensa 13 CORSO DI PROGRAMMAZIONE A.A CORSO DI LAUREA IN INGEGNERIA E SCIENZE INFORMATICHE CESENA. Laboratorio
CORSO DI LAUREA IN INGEGNERIA E SCIENZE INFORMATICHE CESENA CORSO DI PROGRAMMAZIONE A.A. 2014-15 Dispensa 13 Laboratorio Dott. Mirko Ravaioli e-mail: mirko.ravaioli@unibo.it http://www.programmazione.info
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
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
DettagliFunzioni e. Alessandra Giordani Mercoledì 16 maggio 2012
Funzioni e passaggio parametri Alessandra Giordani agiordani@disi.unitn.it Mercoledì 16 maggio 2012 http://disi.unitn.it/~agiordani/ Cosa vedremo oggi Le funzioni Il passaggio dei parametri Le dichiarazioni
DettagliLA CODIFICA LORENZO BRACCIALE
LA CODIFICA LORENZO BRACCIALE LORENZO.BRACCIALE@UNIROMA2.IT LA CODIFICA Serve per rappresentare un informazione La stessa informazione rappresentata in modi diversi ad es. 200 o duecento Stessa rappresentazione
DettagliIl blocco che costituisce il corpo di una funzione/procedura può contenere dichiarazioni di variabili. Esempio:
Variabili locali Il blocco che costituisce il corpo di una funzione/procedura può contenere dichiarazioni di variabili. void leggivettore(int v[], int dim) int i; /* i E UNA VARIABILE LOCALE */ for (i
DettagliLinguaggio C - Stringhe
ISTITUTO SECONDARIO DI ISTRUZIONE SUPERIORE "Guido Tassinari" di POZZUOLI Informatica Prof. A.S. 2011/2012 Linguaggio C - Stringhe 27/04/2012 Array di caratteri Una stringa è: Un array di caratteri Termina
DettagliPOINTERS. Una variabile pointer è una variabile che ha come valore un indirizzo di memoria.
POINTERS Una variabile pointer è una variabile che ha come valore un indirizzo di memoria. Es. Sia y una variabile intera di valore e sia yptr una variabile pointer avente come valore l indirizzo di y.
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
Dettagli