Programmazione I - Laboratorio
|
|
|
- Alice Renzi
- 8 anni fa
- Просмотров:
Транскрипт
1 Programmazione I - Laboratorio Esercitazione 4 - Puntatori, vettori e stringhe Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa mezzetti mezzetti di.unipi.it 2. Dipartimento di Informatica, Università di Pisa milazzo milazzo di.unipi.it Corso di Laurea in Informatica A.A. 2012/2013 G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
2 Puntatori (1) Un puntatore è una variabile che contiene l indirizzo di memoria di un altra variabile. I puntatori consentono di realizzare strutture dati dinamiche (e.g. liste) Gli operatori chiave per l utilizzo dei puntatori sono: l operatore di dereferenziazione * che permette di accedere alla locazione di memoria il cui indirizzo è memorizzato dal puntatore l operatore & che consente di ottenere l indirizzo di memoria di una data variabile G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
3 Puntatori (2) Un puntatore si dichiara usando l operatore di dereferenziazione come segue: int *p1, *p2; char *s; dove int e char sono il tipo della variabile che sarà riferita dal puntatore Per assegnare a un puntatore l indirizzo di una variabile nota si procede come segue: int x =0; p1 = &x; Per leggere o modificare il dato nella locazione di memoria riferita da un puntatore si può usare l operatore di dereferenziazione in una espressione o in un assegnamento: x = * p1 + 1; /* x prende valore 1 */ * p1 = x + 1 /* x prende valore 2 ( tramite il puntatore ) */ G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
4 Puntatori ed argomenti di funzione (1) Poichè il C passa alle funzioni gli argomenti per valore, la funzione chiamata non può modificare una variabile della funzione chiamante. Per esempio una funzione swap che scambia i valori di due variabili definita come segue non ha in realtà nessun effetto: void swap ( int x, int y) /* SBAGLIATO */ int temp ; temp = x; x = y; y = temp ; G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
5 Puntatori ed argomenti di funzione (2) Il modo per ottenere l effetto desiderato (emula il passaggio dei parametri per riferimento) è utilizzando puntatori come argomenti della funzione: void swap ( int *x, int * y) /* CORRETTO */ int temp ; temp = *x; *x = *y; *y = temp ; A questo punto, se vogliamo scambiare i valori delle variabili a e b, invocheremo swap come segue: swap (&a, &b); G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
6 Puntatori ed argomenti di funzione (3) Anche il passaggio di un array ad una funzione ha un comportamento simile al passaggio per riferimento, ad esempio # include <stdio.h> int modifica_ultimo ( int a[], int size ); int main () int a [5] = 1,2,3,4,5; modifica_ultimo (a,5) ; printf ("%d\n",a [4]) ; /* stampa 10 */ int modifica_ultimo ( int a[], int size ) a[size -1] = a[size -1]+5; Note: a[] denota un parametro formale che è un array di cui si ignora la dimensione Solitamente la dimensione dell array si passa con un altro parametro intero (size in questo caso) G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
7 Puntatori e array (1) La relazione esistente tra puntatori e array è molto stretta (sostanzialmente sono la stessa cosa) Qualsiasi operazione effettuabile indicizzando un array può essere fatta anche tramite un puntatore Ad esempio, il seguente codice definisce un array a e un puntatore pa che punta all inizio dell array: int a [10]; int *pa; pa = &a [0]; G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
8 Puntatori e array (2) A questo punto possiamo accedere agli elementi dell array in modo tradizionale usando a[0],a[1],... oppure usando pa e l aritmetica dei puntatori. In sostanza: Sommare un intero n a un puntatore corrisponde a incrementare l indirizzo di memoria contenuto nel puntatore di n*sizeof(tipo_puntato) Sottrarre due puntatori da come risultato la differenza numerica tra gli indirizzi divisa per sizeof(tipo_puntato) dove sizeof(tipo_puntato) è la quantità di memoria occupata da un valore di tipo tipo_puntato Quindi: *(pa+i) è un modo alternativo per accedere ad a[i] G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
9 Stringhe In C non esiste un tipo stringa, piuttosto una stringa è un puntatore ad una sequenza di char terminata dal carattere nullo \0. Le funzioni di libreria sono conformi a questa visione. La libreria string.h contiene una serie di funzioni per manipolare stringhe: strncat(s,t,n) strcmp(s,t) strncmp(s,t,n) strcpy(s,t) strncpy(s,t,n) strlen(s) strchr(s,c) strrchr(s,c) concatena n caratteri di t alla fine di s restituisce un numero negativo, 0 o positivo se lessicograficamente s < t, s == t, s > t come strcmp ma solamente i primi n caratteri copia t in s copia t in s, copia al più n caratteri numero di caratteri di s puntatore alla prima occorrenza di c in s puntatore all ultima occorrenza di c in s s e t sono char e c ed n sono int. G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
10 Utilizzi non sicuri delle funzioni di input Attenzione!! Non usare scanf(...) con un input %s o gets() Meglio usare getchar() e leggere un carattere per volta G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
11 Esempio: Stringhe I # include <stdio.h> # include < string.h> # define SSIZE 20 # define INPUTSIZE 10 int min (int, int ); int main ( void ) char *s0; char *s1; char s2[ SSIZE ]; char s3[ SSIZE ] = a, r, r, a, y, \0 ; char s4[ SSIZE ]; int i =0; int ch; printf ("%p\n"," ciao "); /* ciao e una stringa ( puntatore a una sequenza di caratteri terminata da \0) che viene piazzata nella memoria gia inizializzata del programma */ /* Gli array sono puntatori, se sono terminati da un carattere nullo sono quindi anche stringhe */ s0 = s3; printf ("%p - %p %s - %s \n",s0,s3,s0,s3); G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
12 Esempio: Stringhe II /* Possiamo prendere il puntatore al 3 carattere */ s0 = &s3 [2]; printf ("%p - %p %s - %s \n",s0,s3,s0,s3); /* Che e la stessa cosa di */ printf ("%d\n",&s3 [2] == s3 +2) ; s0 = " prova "; s1 = " ciaociao "; printf ("%p - %p\n",s0,s1); /* L indirizzo del prova / ciao alla riga sopra e ora in s0/ s1 */ /* Il mio compilatore le mette una di seguito all altra,*/ printf ("%ld\n",s1 -s0);/* Stampa 6 perche len ( prova )=5 ma viene aggiunto il carattere nullo al termine.*/ /* Prendiamo due stringhe da input usando solo la funzione getchar notare che getchar prende anche gli a capo come caratteri */ /* Usare Ctrl - D per mandare EOF su stdin */ while (( ch = getchar ())!= EOF && i < SSIZE - INPUTSIZE -1) s2[ i] = ch; /* *( s2+i) = ch */ /* alternativa */ i ++; s2[ssize - INPUTSIZE -1]=0; printf ("\n"); G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
13 Esempio: Stringhe III /* s2 e ora una stringa perche s2[ SSIZE - INPUTSIZE -1] e il carattere nullo */ printf (" Hai inserito : %s\n",s2); /* Concateniamo s2 ed s3 nello spazio che abbiamo */ strncat (s2,s3, min ( SSIZE - strlen (s2) -1, strlen (s3))); printf ("%s \n",s2); /* Compariamo s2 ed s3 */ printf (" Risultato comparazione di %s ed %s: %d \n",s2,s3, strcmp (s2,s3)); printf ("%lu\n",strlen (s4)); /* Questo valore non si puo predire, infatti le variabili locali non vengono inizializzate e quindi il loro contenuto puo essere zero o meno, posso anche ottenere un segmentation fault perche se non trova nessuno zero che la fermi la funzione strlen puo andare a leggere una porzione di memoria che non e concesso leggere */ return 0; int min ( int x,int y) if(x<y) return x; else G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
14 Esempio: Stringhe IV return y; G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
15 Esercizio - dollarize.c Scrivere una procedura che ricevuto un array di caratteri modifichi il vettore in modo che ogni vocale venga sostituita dal simbolo $. void dollarize(char arr[], int dim); G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
16 Esercizo - dollarize.c # include <stdio.h> void dollarize ( char arr [], int dim ); int main () char arr [11] = h, e, l, l, o,, w, o, r, l, d ; dollarize (arr,11) ; printf ("%s\n",arr ); void dollarize ( char arr [], int dim ) int i; for (i =0; i<dim ; i ++) switch ( arr [i]) case a : case e : case i : case o : case u : case A : case E : case I : case O : case C : arr [i]= $ ; /* ALTERNATIVA : If (( arr [i]== a ) ( arr [i]== e ) ( arr [i]== i ) ( arr [i]== o ) ( arr [i]== u ) ( arr [i]== A ) ( arr [i]== E ) ( arr [i]== I ) ( arr [i]== O ) ( arr [i]== U )) arr [i]= $ ; */ G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
17 Esercizio - ricerca dicotomica.c (1) La ricerca dicotomica (o ricerca binaria) è un algoritmo che consente di cercare un elemento all interno di un array ordinato. L algoritmo è simile al metodo usato per trovare una parola sul dizionario: sapendo che il vocabolario è ordinato alfabeticamente, l idea è quella di iniziare la ricerca non dal primo elemento, ma da quello centrale, cioè a metà del dizionario. Si confronta questo elemento con quello cercato: se corrisponde, la ricerca termina indicando la posizione in cui l elemento è stato trovato; se è inferiore, la ricerca viene ripetuta sugli elementi precedenti (ovvero sulla prima metà del dizionario), scartando quelli successivi; se invece è superiore, la ricerca viene ripetuta sugli elementi successivi (ovvero sulla seconda metà del dizionario), scartando quelli precedenti. Quando tutti gli elementi sono stati scartati, la ricerca termina indicando che il valore non è stato trovato. G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
18 Esercizio - ricerca dicotomica.c (2) Scrivere una funzione ricorsiva che implementi l algoritmo di ricerca dicotomica. int ricercadicotomica(int a[], int n, int sx, int dx) con n elemento da cercare in a, e sx e dx indici degli estremi della porzione di array correntemente considerata La funzione deve restituire la posizione dell elemento cercato nell array se presente o -1 altrimenti G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
19 Esercizo - ricerca dicotomica.c I # include <stdio.h> int ricercadicotomica ( int a[], int n, int sx, int dx); int main () int a[] = 1,3,5,7,9; int i; int res ; for (i =0; i <10; i ++) res = ricercadicotomica (a,i,0,4) ; if (res >=0) printf (" Valore %d presente in posizione %d\n",i,res ); else printf (" Valore %d non presente \n",i); int ricercadicotomica ( int a[], int n, int sx, int dx) int mid ; if (sx == dx) if ( a[ sx ]== n) return sx; else return -1; G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
20 Esercizo - ricerca dicotomica.c II else mid = (sx+dx)/2; if (a[ mid ]== n) return mid ; else if ( a[ mid ] >n) return ricercadicotomica (a,n, sx, mid ); else return ricercadicotomica (a,n, mid +1, dx); G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
21 Esercizio: inversione Scrivere un programma che prenda in input una stringa (lunga al più 20) con getchar, la copi invertita in una variabile e stampi tale variabile. G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
22 Esercizo - inversione.c # include <stdio.h> # define INPUT_SIZE 21 int main () int ch; char s1[ INPUT_SIZE ]; char s2[ INPUT_SIZE ]; int i, j; while ((( ch= getchar ())!= EOF ) && (i < INPUT_SIZE -1) ) s1[ i] = ch; i ++; s1[i]= \0 ; for ( j =0; j<i; j ++) s2[j] = s1[i -1 -j]; s2[i]= \0 ; printf ("\n%s\n",s2); G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
23 Esercizio: scambio Scrivere una funzione con la seguente interfaccia void Scambia(char s[]), che scambi il primo carattere della stringa s con l ultimo. G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
24 Esercizio: scambio Scrivere una funzione con la seguente interfaccia void Scambia(char s[]), che scambi il primo carattere della stringa s con l ultimo. void Scambia ( char s []) int i; char c; i = strlen (s); c = s [0]; s [0] = s[i -1]; s[i -1] = c; G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
25 Esercizio: concatenazione Scrivere una funzione con l interfaccia: void concatena(char s1[], char s2[]) che funzioni come strcat. G. Mezzetti & P. Milazzo (Univ. di Pisa) Esercitazione 4 A.A. 2012/ / 1
Programmazione I - Laboratorio
Programmazione I - Laboratorio Esercitazione 3 - Array Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti di.unipi.it 2. Dipartimento
Caratteri 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
Informatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi
Informatica 1 Corso di Laurea Triennale in Matematica Gianluca Rossi [email protected] Dipartimento di Matematica Università di Roma Tor Vergata 11: Stringhe (www.informatica-uno.blogspot.com)
Stringhe e allocazione dinamica della memoria
Stringhe e allocazione dinamica della memoria Esercizio Scrivere un programma strings.c che legge da standard input una sequenza di parole separate da uno o più spazi, e stampa le parole lette, una per
STRINGHE: 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ù
Esercitazione 6. Array
Esercitazione 6 Array Arrays Array (o tabella o vettore): è una variabile strutturata in cui è possibile memorizzare un numero fissato di valori tutti dello stesso tipo. Esempio int a[6]; /* dichiarazione
Array multidimensionali e stringhe
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Array uni-dimensionali (richiami) Dichiarazione: int vet[100]; float x[50]; Gli elementi
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa
5 - Istruzioni condizionali
5 - Istruzioni condizionali Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
Lezione 6 Selection/Insertion Sort su interi e stringhe
Lezione 6 Selection/Insertion Sort su interi e stringhe Rossano Venturini [email protected] Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Tutoraggio Venerdì 14
Puntatori. Un puntatore contiene un numero che indica la locazione di memoria dove è presente la variabile puntata
Puntatori int i = 10; int * pi = &i; pi i = 10 116 int * pi = pi contiene un informazione che mi permette di accedere ( puntare ) ad una variabile intera Un puntatore contiene un numero che indica la locazione
Definizione Allocazione e deallocazione di variabili Allocazione e deallocazione di vettori
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Meccanica, Elettrica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011
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
I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore
I puntatori Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore...... L operatore & fornisce l indirizzo di un oggetto: p = &c; assegna a p l indirizzo di c, i.e., p
Esempio di Prova Scritta
Esempio di Prova Scritta La prova scritta è composta da alcuni esercizi per un totale di 10 punti (durata:circa 1h15 ). Le tipologie di esercizi possibili comprendono:! sintesi di una funzione ricorsiva/iterativa,
Esercizi C su array e matrici
Politecnico di Milano Esercizi C su array e matrici Massimo, media e varianza,, ordinamento, ricerca e merge, matrice simmetrica, puntatori Array Array o vettore Composto da una serie di celle int vett[4]
Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE
Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente
ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa.
3 ITI - a.s. 2007-2008 Compiti di Informatica ESTATE 2008 ARRAY E STRINGHE Scrivere una funzione che carica da tastiera un array di n elementi e lo stampa invertendo il primo elemento con l'ultimo, il
4 GLI ARRAY E LE STRINGHE
13 4 GLI ARRAY E LE STRINGHE 4.1 Gli array monodimensionali Un array è un insieme di variabili dello stesso tipo, cui si fa riferimento mediante uno stesso nome. L accesso ad un determinato elemento si
Esercitazione 4. Comandi iterativi for, while, do-while
Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti
Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.
Cicli e array Laboratorio di Programmazione I 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 Lez. 8 - Introduzione all ambiente
Le 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
Istruzioni iterative (o cicliche)
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Istruzioni iterative (o cicliche) Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria
21 - Alberi e Ricorsione
21 - Alberi e Ricorsione Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
Fondamenti di Informatica 2
Fondamenti di Informatica 2 della prova scritta del 28 Febbraio 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int min = 3; int i; Scrivere la porzione di codice
ESERCIZI DI PROGRAMMAZIONE. - condizionali e cicli -
ESERCIZI DI PROGRAMMAZIONE - condizionali e cicli - Elementi di Informatica e Programmazione Università di Brescia 1 Esercizio 1: dal tema d esame ING-INF del 28 gennaio 2009 Si sviluppi un programma in
Il generatore di numeri casuali
Il generatore di numeri casuali file di libreria: stdlib.h int rand(void) La funzione restituisce un numero casuale di tipo intero compreso tra 0 e RAND_MAX (estremi compresi) Esempio: scriviamo un programma
Definizione di metodi in Java
Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un
Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...
Sommario PREFAZIONE...XI Aggiornamenti e novità... xi Lo scopo di questo libro... xii Diagramma delle dipendenze... xii La metodologia di insegnamento... xiii Panoramica sul libro... xvi Ringraziamenti...
Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento
Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento
Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch
Esercitazione 5 Procedure e Funzioni Il comando condizionale: switch Comando: switch-case switch (espressione) { /* espressione deve essere case costante1: istruzione1 di tipo int o char */ [break]; case
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 3. Espressioni booleane I comandi if-else e while
Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if
Linguaggio C: Stringhe di caratteri e File
Linguaggio C: Stringhe di caratteri e File ESEMPIO: Lettura da tastiera e stampa a video di una sequenza di caratteri #include main() int c; printf("inserisci dei caratteri"); printf("(
Lettura da tastiera e scrittura su monitor
Lettura da tastiera e scrittura su monitor Per poter leggere UN SINGOLO CARATTERE dalla tastiera e visualizzare UN SINGOLO CARATTERE sul monitor si possono utilizzare le funzioni: int getchar (void) (per
Gestione dei File. dischi nastri cd
Gestione dei File Per mantenere disponibili i dati tra le diverse esecuzioni di un programma, questi si devono archiviare in file su memoria di massa (dati persistenti): dischi nastri cd Un file è un astrazione
Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1
Matlab 5 Funzioni Slide basate sul corso di C. Blundo A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 1 Funzioni Le funzioni sono utili quando occorre ripetere una serie di comandi più
Le Funzioni e la Ricorsione
Aula V Dip. di Matematica G. Castelnuovo Univ. di Roma La Sapienza Le Funzioni e la Ricorsione Igor Melatti Slides disponibili (assieme ad altro materiale) in: http://www.dsi.uniroma1.it/ melatti/programmazione1.2007.2008.html
Linguaggio C - Funzioni
Linguaggio C - Funzioni Funzioni: Il linguaggio C è di tipo procedurale; ogni programma viene suddiviso in sottoprogrammi, ognuno dei quali svolge un determinato compito. I sottoprogrammi si usano anche
Esercitazione 3. Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf
Riassunto Esercitazione 3 Oggi sono stati effettuati semplici esercizi in C utilizzando le seguenti istruzioni: if...else, while, printf, scanf Sono state introdotte anche le seguenti relazioni: uguaglianza:
Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento
Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento Alessandra Raffaetà Università Ca Foscari Venezia Corso di Laurea in Informatica Ricerca binaria Assunzione:
Scrittura formattata - printf
Esercizi su Input/Output con formato FormattedIO 1 Scrittura formattata - printf Funzione printf int printf ( , ) La funzione restituisce un valore intero uguale ai caratteri
Linguaggio C - Stringhe
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - Stringhe La presente dispensa e da utilizzarsi ai
Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli
Il linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
Programmazione I - Laboratorio
Programmazione I - Laboratorio Esercitazione 2 - Funzioni Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti di.unipi.it 2.
Variabili e Istruzioni
Exit Menù Variabili e Istruzioni 1 Le Variabili Una VARIABILE è un oggetto identificato da un NOME e da uno STATO, detto CONTENUTO o VALORE. Possiamo immaginarla come una scatola contenuto Pippo 11 nome
Esercitazione 7. Procedure e Funzioni
Esercitazione 7 Procedure e Funzioni Esercizio Scrivere un programma che memorizza in un array di elementi di tipo double le temperature relative al mese corrente e ne determina la temperatura massima,
Heap e code di priorità
Heap e code di priorità 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
Stringhe di caratteri
Linguaggio C Stringhe di caratteri 1 Variabili e costanti stringa! Una stringa letterale è una sequenza di caratteri racchiusa tra doppi apici! Può essere scritta su più righe utilizzando il backslash
Esercizio 1 Liste: calcolo perimetro di un poligono
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 12 Esercitazione: 28 gennaio 2005 Esercizi su liste, ricorsione, file. Scaletta Esercizio 1 Liste: calcolo perimetro di
Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.
Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione prof. Lorenzo Porcelli e mail: [email protected] sito: users.iol.it/genna18 Risoluzione di un problema Dato
Gestione di stringhe. Le stringhe in C/C++
Alessio Bechini - Corso di - Gestione di stringhe Parte del materiale proposto è stato gentilmente fornito da G. Lipari Le stringhe in C/C++ In C e in C++ non esiste un vero e proprio tipo stringa. Una
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
L Allocazione Dinamica della Memoria
L Allocazione Dinamica della Memoria Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania [email protected] http://www.diit.unict.it/users/mpalesi Sommario Questo documento
La 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
Gestione delle stringhe in C
Gestione delle stringhe in C 1 Generalità Una stringa è un vettore di caratteri il cui ultimo elemento è un carattere terminatore (o di fine stringa), codificato dal carattere di codice 0 e rappresentato
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
INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan
INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan venus.unive.it/borg [email protected] Ricevimento lunedì, prima o dopo lezione 1 Le funzioni in C Le funzioni vengono utilizzate per 3 motivi: Riusabilità
Algoritmi e basi del C Struttura di un programma
Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio [email protected] Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21
stringhe array monodimensionali char. libreria < string.h>
Le stringhe Le stringhe sono array monodimensionali il cui tipo base è char. Il nucleo del linguaggio non prevede particolari istruzioni per il trattamento delle stringhe che potrebbero essere gestite
SULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI
SULL USO DEI CARATTERI Ricordiamo che: int x; si legge con ( %d,&x) e si stampa con ( %d,x) float x; si legge con ( %f,&x) e si stampa con ( %f,x) double x;si legge con ( %lf,&x) e si stampa con ( %f,x)
IL PRIMO PROGRAMMA IN C
IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE
La ricorsione. Ver Claudio Fornaro - Corso di programmazione in C
La ricorsione Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C 2 Divide et impera Metodo di approccio ai problemi che consiste nel dividere il problema dato in problemi più semplici I risultati
