a.a Codice corso: 21012, 22010

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "a.a Codice corso: 21012, 22010"

Transcript

1 ESERCIZIO 1 Scrivere un sotto-programma in linguaggio C++ che ricevuta una matrice quadrata come parametro restituisca al chiamante un valore booleano indicante se la matrice è simmetrica oppure no. Scrivere quindi un programma principale minimale che acquisisca una matrice quadrata di numeri reali dallo standard input e testi la funzionalità del sottoprogramma precedente. Se la matrice non è simmetrica occorre annullare le sue diagonali principali riportare su standard-output il risultato ottenuto. Pagina 1 di 15

2 #include <iostream> #include <cstdlib> using namespace std; #define MAXLEN 100 /* dichiarazione di costante simbolica */ bool Simmetrica(float m[][maxlen], int n); int main( ) { float mat[maxlen][maxlen]; int i,j,n; /* dichiarazione delle variabili */ /* Ciclo di controllo per acquisizione dati*/ do { cout << "\n ordine della matrice 0 < n <= MAXLEN : "; cin >> n; while ( n<=0 n>maxlen); cout << "\n inserire coeff. matrice di ordine " << n << endl; cout << "separare le colonne con spazio e le righe con CR\n"; /* Lettura della matrice dei dati in ingresso */ for (i = 0; i < n; i++) for (j = 0; j < n; j++) cin >> mat[i][j]; if (Simmetrica(mat, n) == false) { cout << "\n la matrice inserita non e'simmetrica!"; cout << "\n annullo le diagonali principali...\n"; for (i = 0; i < n; i++) { mat[i][i] = 0; mat[i][n-i-1] = 0; cout << "\n i valori nella matrice sono:\n\n"; for (i = 0; i < n ; i++) { for (j = 0; j < n ; j++) cout << mat[i][j]; cout << "\n"; else cout << "\n la matrice inserita e' simmetrica!"; system("pause"); return EXIT_SUCCESS; Pagina 2 di 15

3 bool Simmetrica(float m[][maxlen], int n) { bool flag = true; for (i = 1; i < n; i++) { for (j = 0; j < i; j++) if (m[i][j]!= m[j][i]) flag = false; return flag; Pagina 3 di 15

4 ESERCIZIO 2 (Def. funzioni con parametri di tipo matrice) Si considerino due matrici di interi A e B, di uguali dimensioni (R e C, costanti, che indicano il numero di righe e colonne). Diciamo che A domina B se, confrontando i valori in posizioni corrispondenti, risulta che il numero dei valori in A maggiori dei corrispondenti valori in B è più grande del numero di quelli di B maggiori dei corrispondenti in A e inoltre gli elementi corrispondenti non sono mai uguali (se due elementi corrispondenti sono uguali la dominanza non è definita). a) Si proponga un prototipo per la funzione domina(...) che riceve le matrici come parametri e restituisce 1 se la prima domina la seconda, - 1 se la seconda domina la prima, 0 altrimenti. b) Si dia una descrizione breve ma precisa di un algoritmo per implementare la funzione. c) Si codifichi la funzione in C. Pagina 4 di 15

5 a) int domina ( int A[][C], int B[][C] ); b) Conviene scandire le due matrici in parallelo, usando un accumulatore per memorizzare il "bilancio" di dominanza tra le matrici. La scansione avviene con due cicli annidati, e l'accumulatore è incrementato quando il valore maggiore è in A e decrementato quando è in B. Possiamo immediatamente restituire 0 appena si trovano due elementi corrispondenti uguali, poiché le matrici in tal caso non si dominano. È necessario invece scandire tutta la matrice prima di restituire il valore -1 o 1 (in base ai valori dell'accumulatore). Se al termine della scansione l'accumulatore vale zero si restituisce zero. c) int domina ( int A[][C], int B[][C] ) { int bilancio = 0, i, j; /* Ipotizziamo che gli interi possano */ /* rappresentare il valore R*C */ for ( i=0; i<r; i++ ) for ( j=0; j<c; j++ ) { if ( A[i][j] == B[i][j] ) return 0; if ( A[i][j] > B[i][j] ) bilancio++; else bilancio--; if ( bilancio > 0 ) return 1; if ( bilancio < 0 ) return -1; return 0; Pagina 5 di 15

6 Riepilogo sulle Stringhe di Caratteri In C non vi è un tipo di variabile predefinito in grado di memorizzare delle stringhe di caratteri. Dobbiamo usare degli array di caratteri. In C sono comunque predefinite alcune funzioni di libreria sugli array di caratteri, che facilitano il loro uso come variabili di tipo stringa di caratteri. ( #include <cstring> ) La libreria standard del C++, invece, contiene una libreria apposita (#include <string> ) in cui è definito esplicitamente il tipo string, con il quale l'elaborazione di stringhe risulta molto agevolata; per poterla utilizzare in maniera fruttuosa è comunque necessario conoscere le nozioni di classe e di oggetto, tipici della programmazione Object Oriented. Noi adotteremo il trattamento standard (stile C) delle stringhe come array di caratteri. Il seguente array: char prova[20]; può memorizzare una stringa di al più 20 caratteri. Naturalmente non è necessario usare tutti e 20 i caratteri dell'array. L'array prova si può usare per memorizzare sia la stringa di 5 caratteri "Hello", sia la stringa di 15 caratteri "Merry Christmas". Siccome l'array può contenere stringhe più corte della sua dimensione occorre prevedere una indicazione del punto in cui termina la stringa. Per convenzione tale punto viene indicato dal carattere nullo che si può scrivere sia 0 sia '\0'. Dopo il contenuto effettivo della stringa viene aggiunto un carattere nullo ('\0') per indicare la fine della stringa. Pertanto l'array prova può contenere (per il programmatore) al più stringhe di 19 caratteri perché il 20-esimo (cioè quello con indice 19) è riservato per il carattere \0. Inizializzazione delle stringhe Per inizializzare una stringa di caratteri si può usare la stessa notazione usata per gli array: char mystring[] = { 'H', 'e', 'l', 'l', 'o', '\0' ; Abbiamo così inizializzato una stringa (array) di 6 valori di tipo char: la parola Hello più il carattere nullo '\0'. Possiamo anche inizializzare un array di caratteri usando una stringa costante. char mystring[] = "Hello"; Esse si rappresentano racchiudendo la sequenza di caratteri tra doppi apici (" ). Alle stringhe costanti viene sempre aggiunto implicitamente un carattere nullo finale '\0'. In entrambi i casi la dimensione dell'array mystring è di 6 elementi di tipo char: i 5 caratteri di Hello e il carattere nullo finale ('\0' ). Pagina 6 di 15

7 Attenzione: una stringa costante può essere usata per dare un valore iniziale ad una variabile di tipo array di char soltanto al momento della dichiarazione dell'array, ossia in fase di inizializzazione. Assegnazione di valori alle stringhe A sinistra dell operatore di assegnamento può esserci soltanto un elemento di un array e non l'intero array, per assegnare una stringa di caratteri ad un array di char dobbiamo scrivere: mystring[0] = 'H'; mystring[1] = 'e'; mystring[2] = 'l'; mystring[3] = 'l'; mystring[4] = 'o'; mystring[5] = '\0'; Siccome questo non è molto pratico la libreria standard cstring contiene la definizione di un certo numero di funzioni quali strcpy ( str ing co py) che si può richiamare nel seguente modo: strcpy (string1, string2); L'effetto è copiare il contenuto di string2 in string1. string2 può essere sia un array sia una stringa costante, il che ci permette di assegnare la stringa costante "Hello World!" al'array di caratteri mystring usando la seguente notazione: strcpy (mystring, "Hello World!"); Esempio: #include <iostream> #include <cstring> int main () { char stmyname[20]; strcpy (stmyname,"hello World!"); cout << stmyname; return EXIT_SUCCESS; Un altro modo per assegnare un valore ad un array di caratteri è quello di usare direttamente il flusso di input cin. Nella libreria iostream è definita una funzione getline il cui prototipo è: cin.getline ( char buffer [], int length, char delimiter = ' \n'); dove buffer è l' array di caratteri in cui memorizzare l' input, length è la dimensione dell' array stesso e delimiter è il carattere usato per indicare la fine dell'input e per il quale è previsto il carattere nuova linea ('\n' ) come valore di default. Pagina 7 di 15

8 Esempio di uso di cin.getline : #include <iostream> #include <cstdlib> int main ( ) { char buff[100]; cout << "Dammi una stringa: "; cin.getline(buff,100); cout << "Hai inserito: " << buff << "\n"; system("pause"); return EXIT_SUCCESS; Si può anche usare l'operatore di estrazione (>>) per leggere delle stringhe da cin: cin >> buff; che funziona però con le seguenti limitazioni (che cin.getline non ha!): 1. si possono leggere soltanto parole e non intere frasi, in quanto l'operatore di estrazione >> usa come delimitatore qualsiasi occorrenza di un carattere invisibile (per esempio: spazio, tabulazione, nuova linea, ritorno carrello). 2. non si può specificare la dimensione dell'array, il che rende instabile il programma nel caso in cui l' input sia una parola più lunga della dimensione dell'array. Le seguenti sono alcune altre funzioni che operano su stringhe e che sono definite nella libreria cstring: strcat: strcat (char dest[], char src[] ); Aggiunge (appende) la stringa src alla fine della stringa dest. Ritorna dest. strcmp: int strcmp (char str1[], char str2[] ); Confronta le stringhe str1 ed str2. Ritorna 0 se sono uguali. strcpy: strcpy (char dest[], char src[] ); Copia il contenuto di src in dest. Ritorna dest. strlen: int strlen (char str[]); Ritorna la lunghezza di str. Pagina 8 di 15

9 ESERCIZIO 3 (Uso di Stringhe) Scrivere un programma in linguaggio C++ che verifichi se una parola inserita dallo standard input è palindroma e in caso contrario stampa a video la parola inserita partendo dall ultimo carattere sino al primo. Le parole palindrome sono quelle che possono essere lette indifferentemente da sinistra a destra e da destra a sinistra. Esempio: "anna", "abba", "onorarono", "radar", "a" (parola di una lettera). #include <iostream> #include <cstdlib> using namespace std; #define MAXLEN 100 int main( ){ char parola[maxlen] ; int i, n; cout << "\nparola = "; cin >> parola; n=0; while (parola[n]!='\0') n++; i = 0; while ((i < n/2)&&(parola[i] == parola[n-i-1])) { i = i+1; if (i < n / 2) { cout << "\n NO palindroma!\n"; cout << "\ninversa = "; for (i = n-1; i >=0; i--) cout << parola[i]; else cout << "\npalindroma"; system("pause"); return EXIT_SUCCESS; Pagina 9 di 15

10 ESERCIZIO 3.1 ( Uso di funzioni per la manipolazione di stringhe) Facendo uso dei comandi messi a disposizione dalla libreria standard del C++ definiti in <cstring>, risolvere il seguente problema. Leggere due stringhe str1, str2 dallo standard input, stampare a video lunghezza di str1 e str2, stampare il risultato della concatenazione delle due stringhe: str1 concatenata str2, confrontare le due stringhe e stamparle in ordine alfabetico. #include <iostream> #include <cstring > using namespace std; #define MAX_LEN 100 int main(int argc, char *argv[]){ char str1[max_len], str2[max_len],str3[2*max_len]; int len1,len2,cmp; cout << "\n Inserire la prima stringa, str1:"; cin >> str1; cout << "\n Inserire la prima stringa, str2:"; cin >> str2; len1 = strlen(str1); len2 = strlen(str2); cout << "\n la lunghezza della 1-ma stringa e : " << len1; cout << "\n la lunghezza della 2-da stringa e : " << len2; strcpy(str3,str1); strcat(str3,str2); cout << "\n Il risultato della concatenazione e': " << str3; cmp = strcmp(str1,str2); if (cmp > 0) { cout << "\n str1 > str2!"); cout << "\n 1. " << str2 << " \n 2. " << str1; else if (cmp < 0) { cout << "\n str2 > str1!"; cout << "\n 1. << str1 << " \n 2." << str2; else cout << "\n str1 == str2 : " << str1; system("pause"); return EXIT_SUCCESS; Pagina 10 di 15

11 ESERCIZIO 3.2 (Uso dei vettori e/o Stringhe Definizione funzioni passaggio parametri per copia) Scrivere un programma in linguaggio C++ che conti il numero di parole contenute in una frase inserita dall utente. 1. Considerare qualsiasi carattere non alfanumerico come un possibile separatore di parola. 2. Strutturare il programma prevedendo la definizione e l utilizzo di un sottoprogramma con il seguente prototipo bool alfanum(char c) che restituisce true nel caso il carattere passato come parametro sia alfanumerico (['A'...'Z', 'a'...'z', '0'...'9']), false in caso contrario. Esempi: "Oggi piove" : 2 parole "Oggi c'e' il sole" : 5 parole Pagina 11 di 15

12 #include <iostream> #include <cstdlib> using namespace std; #define MAXLEN 100 bool alfanum(char c); int main(int argc, char *argv[]){ char frase[maxlen], c ; int i, count; bool test_current, test_previous; cout << "\n Ins. una frase terminata dal carattere <INVIO>: "; cin.getline(frase, MAXLEN); count = 0; i = 0; c = frase[i]; test_previous = false; test_current = alfanum(c); while (c!= '\0') { if (test_current == true && test_previous == false) { count = count + 1; i = i + 1; c = frase[i]; test_previous = test_current; test_current = alfanum( c ); cout << "\n Num parole = " << count; system("pause"); return EXIT_SUCCESS; // end main bool alfanum(char c) { if ((c>='a' && c<='z') (c>='a' && c<='z') (c>='0' && c<='9')) return(true); else return(false); // end alfanum Pagina 12 di 15

13 ESERCIZIO 4 (Definizione funzioni con parametri di tipo vettore + algoritmi) Si progetti e codifichi una funzione C++ che riceve come parametri due stringhe che rappresentano due parole e restituisce un valore intero, da interpretarsi come valore di verità, che indichi se le due parole sono anagrammi, cioè se sono ottenibili l una dall altra tramite una permutazione delle lettere che le compongono. Ad esempio le parole POLENTA e PENTOLA sono anagrammi. Si presti attenzione al fatto che parole come TAPPO e PATTO non sono anagrammi, anche se ogni lettera dell una è contenuta nell altra. // Restituisce 1 se le due parole sono una l'anagramma dell'altra, // 0 altrimenti int anagrammi(char a[], char b[]) { int len = strlen(a), // lunghezza di a conta, contb, // contatori di occorrenze di una lettera i, k; // indici di sevizio if ( len!= strlen(b) ) // se non sono lunghe uguali è banale return 0; for ( i = 0 ; i < len ; i++ ) {// per ogni char a[i] in a(escluso \0) conta = contb = 0; for ( k = 0 ; k < len ; k++ ) {// scandisco entrambe le stringhe if ( a[k] == a[i] ) ++conta; if ( b[k] == a[i] ) ++contb; // conto le occorrenze di a[i] in a // e anche le occorrenze di a[i] in b if ( conta!= contb ) // se un conteggio non corrisponde -> 0 return 0; return 1; // se corrispondono tutti, 1 // end anagrammi Pagina 13 di 15

14 ESERCIZIO 5 Definiamo la "somiglianza" S fra due stringhe come il rapporto tra il doppio del numero di "triplette di caratteri consecutivi" comuni ad entrambe le stringhe e la somma delle "triplette di caratteri consecutivi" in ciascuna stringa. Nel caso in cui almeno una delle due stringhe sia composta da meno di 3 caratteri, la somiglianza è nulla (S = 0.0). Scrivere un programma C++, che acquisisca due stringhe da tastiera (standard input) e riporti sullo schermo (standard output) la loro "somiglianza", secondo la definizione precedente. Esempio: string1: "ALEXANDRE" string2: "ALEKSANDER" triplette in comune: 2; "ALE", "AND" Numero di triplette in string1: 7 (Oss.: num. caratteri di string1 meno 2) Numero di triplette in string2: 8 (Oss.: num. caratteri di string2 meno 2) somiglianza: S = (2 2)/(7+8) = 0.27 Pagina 14 di 15

15 #include <iostream> #include <cstring> using namespace std; #define MAXWORDLENGTH 30 float somiglianza(char string1[], char string2[]); int main( ) { char string1[maxwordlength+1], string2[maxwordlength+1]; cout << "\n (max "<< MAXWORDLENGTH << " chars) -- string1 = "; cin.getline(string1, MAXWORDLENGTH+1, '\n'); cout << "\n (max "<< MAXWORDLENGTH << " chars) -- string2 = "; cin.getline(string2, MAXWORDLENGTH+1, '\n'); cout << endl << "distance S = " << somiglianza(str1, str2); return EXIT_SUCCESS; // end main float somiglianza(char string1[], char string2[]) { int len1, len2, i, j, count; float S; len1 = strlen(string1); len2 = strlen(string2); if (len1 < 3 len2 < 3) S = 0.0; else { count = 0; for (i = 2; i < len1; i++) { for (j = 2; j < len2; j++) { if ( string1[i] == string2[j] && string1[i-1] == string2[j-1] && string1[i-2] == string2[j-2] ) { count++; // end if // end for, j // end for, i S = ((float)(2*count))/(len1+len2-4); return S; // end somiglianza Pagina 15 di 15

a.a Codice corso: 21012, 22010

a.a Codice corso: 21012, 22010 ESERCIZIO 1 Scrivere un sotto-programma in linguaggio C++ che ricevuta una matrice quadrata come parametro restituisca al chiamante un valore booleano indicante se la matrice è simmetrica oppure no. Scrivere

Dettagli

ESERCIZIO n. 1. Soluzione: (Uso dei vettori) #include <iostream.h> #include <stdlib.h> #define MAXLEN 100. int main( ) {

ESERCIZIO n. 1. Soluzione: (Uso dei vettori) #include <iostream.h> #include <stdlib.h> #define MAXLEN 100. int main( ) { ESERCIZIO n. 1 (Uso dei vettori) Scrivere un programma in linguaggio C che verifichi se una parola inserita dallo standard input è palindroma e in caso contrario stampa a video la parola inserita partendo

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella Corso di Informatica Tipi strutturati: Stringhe Anno Accademico 2010/2011 Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri quali

Dettagli

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente. HOMEWORKS Questi esercizi saranno proposti di tanto in tanto e forniti sempre SENZA soluzioni. Come materiale complementare ai libri di testo e alle lezioni frontali e di esercitazione, si consiglia di

Dettagli

C: panoramica. Violetta Lonati

C: panoramica. Violetta Lonati C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati

Dettagli

Linguaggio C - Array. Array: tipo nome_array[num_elementi]

Linguaggio C - Array. Array: tipo nome_array[num_elementi] Linguaggio C - Array Array: Gli array o vettori sono delle strutture dati in grado di contenere un insieme di valori tutti dello stesso tipo. Un array lo possiamo immaginare come un contenitore suddiviso

Dettagli

a.a Codice corso: 21012, HOMEWORKS

a.a Codice corso: 21012, HOMEWORKS HOMEWORKS Questi esercizi saranno proposti ogni 2 settimane e forniti sempre SENZA soluzioni. Come materiale complementare ai libri di testo e alle lezioni frontali e di esercitazione, si consiglia di

Dettagli

Corso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica

Corso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica Corso di Fondamenti di Informatica Puntatori e Allocazione Dinamica I puntatori (Richiamo) Il C++ prevede puntatori a dati di qualsiasi natura, semplici o strutturati e puntatori a funzione. In particolare

Dettagli

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia)

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia) ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia) Scrivere una funzione per definire se un numero è primo e un programma principale minimale che ne testa la funzionalità. #include

Dettagli

Stesura informale dell algoritmo: (lasciata come esercizio)

Stesura informale dell algoritmo: (lasciata come esercizio) ESERCIZIO 1 Dato un numero positivo Q, scrivere la sua rappresentazione in binario naturale, applicando il tradizionale algoritmo per divisioni successive (l output sarà inteso corretto se letto da destra

Dettagli

Caratteri e stringhe

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

Dettagli

Programmazione modulare

Programmazione modulare Programmiamo in.. Programmazione modulare Un programma complesso si suddivide in più sottoprogrammi o funzioni. Un programma suddiviso in piccoli pezzi, è più semplice da gestire da aggiornare da correggere

Dettagli

Una stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' a p e \0

Una 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

Dettagli

Le stringhe. Le stringhe

Le stringhe. Le stringhe Informatica: C++ Gerboni Roberta Stringhe di caratteri (esempi di utilizzo dei vettori) Nel linguaggio C++ una stringa è semplicemente un vettore di caratteri Vettori di caratteri La stringa "hello" è

Dettagli

STRINGHE: ARRAY DI CARATTERI! a p e \0

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ù

Dettagli

Dati aggregati. Violetta Lonati

Dati aggregati. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture

Dettagli

Informatica B

Informatica B Informatica B 2016-2017 Esercitazione 8 Array e Stringhe Alessandro A. Nacci alessandro.nacci@polimi.it - www.alessandronacci.it 1 Esercizio 1: stringhe - vocali consecutive Scrivere un programma che data

Dettagli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

s r t i r n i g n. g h s r t c r p c y s r t c r a c t s r t c r m c p s r t c r h c r s r t s r t s r

s r t i r n i g n. g h s r t c r p c y s r t c r a c t s r t c r m c p s r t c r h c r s r t s r t s r char* titolo= l, e,, s, t, r, i, n, g, h, e, \0 ; 1 Libreria sulle stringhe La libreria string.h contiene una ricca serie di funzioni per operare sulle stringhe Esempi: copiare una stringa in un altra

Dettagli

char* titolo= Libreria sulle stringhe Esempi: (strcpy) (strstr)... Laboratorio di Informatica L-A 1

char* titolo= Libreria sulle stringhe Esempi: (strcpy) (strstr)... Laboratorio di Informatica L-A 1 char* titolo= l, e,, s, t, r, i, n, g, h, e, \0 ; 1 Libreria sulle stringhe La libreria string.h contiene una ricca serie di funzioni per operare sulle stringhe Esempi: copiare una stringa in un altra

Dettagli

5 Stringhe. Esiste una libreria di C che gestisce le stringhe string.h essa ci permette di:

5 Stringhe. Esiste una libreria di C che gestisce le stringhe string.h essa ci permette di: Le stringhe di caratteri sono gestite in C come dei vettori di char con alla fine un tappo dato dal carattere \0. E possibile acquisire un intera stringa di caratteri in una sola istruzione grazie all

Dettagli

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 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

Dettagli

Un esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore)

Un esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore) Un esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore) Macchina astratta: un linguaggio di programmazione trasforma un calcolatore in una macchina

Dettagli

string.h strcpy strc strcat strcmp strcmp strchr strstr strstr i t r ; s r \0 int strlen(char* str) char pippo[]={ p, i, p, p, o, \0 \ };

string.h strcpy strc strcat strcmp strcmp strchr strstr strstr i t r ; s r \0 int strlen(char* str) char pippo[]={ p, i, p, p, o, \0 \ }; char* titolo= l, e,, s, t, r, i, n, g, h, e, \0 ; Libreria sulle stringhe libreria i string.h contiene una ricca serie di funzioni per operare sulle stringhe Esempi: copiare una stringa in un altra (strcpy

Dettagli

Introduzione alle stringhe e algoritmi collegati

Introduzione 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

Dettagli

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 9 - Array 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 Corso di Laurea

Dettagli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del

Dettagli

Stringhe. Concetti chiave

Stringhe. Concetti chiave Concetti chiave Stringhe Variabili strutturate: array di caratteri Carattere di fine stringa Copiare, concatenare, confrontare e convertire stringhe Funzioni standard strcpy, strcat, strcat, strcmp, atoi,

Dettagli

Stringhe Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

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

Dettagli

Cicli annidati ed Array multidimensionali

Cicli annidati ed Array multidimensionali Linguaggio C Cicli annidati ed Array multidimensionali Cicli Annidati In C abbiamo 3 tipi di cicli: while(exp) { do { while(exp); for(exp;exp;exp3) { Cicli annidati: un ciclo all interno del corpo di un

Dettagli

Stringhe in C. Alessandra Giordani Lunedì 23 aprile 2012

Stringhe in C. Alessandra Giordani Lunedì 23 aprile 2012 Stringhe in C Alessandra Giordani agiordani@disi.unitn.it Lunedì 23 aprile 2012 http://disi.unitn.it/~agiordani/ Stringhe Sono particolari array: Ogni elemento del vettore è di tipo char La stringa è terminata

Dettagli

Stringhe e allocazione dinamica della memoria

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

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 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,

Dettagli

Le strutture di controllo in C++

Le strutture di controllo in C++ Le strutture di controllo in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli

Dettagli

Operazioni sulle stringhe Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Operazioni 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

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

1 MANIPOLAZIONE DI STRINGHE ZERO-TERMINATE

1 MANIPOLAZIONE DI STRINGHE ZERO-TERMINATE 1 MANIPOLAZIONE DI STRINGHE ZERO-TERMINATE 1.1 INTRODUZIONE In informatica una stringa è definita come una sequenza di caratteri, usualmente utilizzata per rappresentare informazioni in formato testuale.

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Il tipo puntatore; l allocazione dinamica della memoria Claudio De Stefano - Corso di Fondamenti di Informatica 1 puntatori una variabile di tipo puntatore al tipo x

Dettagli

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica Array in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 1 / 25 Cosa vedremo

Dettagli

Esercizio 1: funzione con valore di ritorno di tipo puntatore

Esercizio 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

Dettagli

Metodi statici. Dichiarazione e chiamata di metodi statici

Metodi statici. Dichiarazione e chiamata di metodi statici Metodi statici Dichiarazione e chiamata di metodi statici Cos è un metodo Un metodo è un blocco di istruzioni che fornisce una funzionalità e viene identificato con un nome Può avere dei parametri ed un

Dettagli

Array Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione

Array Tipi di dato semplici e strutturati strutturati array elementi omogenei numero d ordine indice lunghezza dimensione Array Tipi di dato semplici e strutturati i tipi di dato visti finora erano tutti semplici: int, char, float,... i dati manipolati sono spesso complessi (o strutturati) con componenti elementari o strutturate

Dettagli

Gli Array. Dichiarazione di un array

Gli Array. Dichiarazione di un array Gli Array Un array rappresenta una variabile indicizzata (ovvero contenente un indice) che viene utilizzata per contenere più elementi dello stesso tipo. Ogni array ha un nome al quale viene associato

Dettagli

Array multidimensionali e stringhe

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

Dettagli

Uso avanzato dei puntatori Allocazione dinamica della memoria

Uso 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

Dettagli

Elementi di Informatica A. A. 2016/2017

Elementi di Informatica A. A. 2016/2017 Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 2

Dettagli

Corso di Fondamenti di Informatica Classi di istruzioni 2

Corso di Fondamenti di Informatica Classi di istruzioni 2 Corso di Informatica Classi di istruzioni 2 Anno Accademico 2010/2011 Francesco Tortorella Strutture di controllo Caratteristica essenziale degli algoritmi è la possibilità di decidere le operazioni da

Dettagli

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++ Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

Ripasso R1. Dati strutturati. Esempi. Array. Dichiarazione di un array. Dichiarazione di un array in C

Ripasso R1. Dati strutturati. Esempi. Array. Dichiarazione di un array. Dichiarazione di un array in C Ripasso R1 Dati strutturati Aggregazione di dati omogenei: gli array Spesso gli algoritmi lavorano su insiemi di dati omogenei. o l insieme dei valori reali che rappresentano le temperature medie delle

Dettagli

Introduzione al C. Unità 8 Stringhe

Introduzione 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

Dettagli

Soluzione/* PROGRAMMAZIONE IN C */ #include <stdio.h> #include <stdlib.h>

Soluzione/* PROGRAMMAZIONE IN C */ #include <stdio.h> #include <stdlib.h> Ricerca di un elemento in vettore Scrivere un programma in linguaggio C che riceve in ingresso una sequenza di N numeri interi. I numeri sono memorizzati in un vettore. Il valore N è inserito dall utente,

Dettagli

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} } ERRATA CORRIGE Pulizia del buffer di input: come fare? (1) Dopo aver richiamato getchar() per prelevare un carattere dal buffer di input, inseriamo una seconda chiamata a getchar(), senza assegnare il

Dettagli

Gestione di stringhe. Le stringhe in C/C++

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

Dettagli

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012 Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Introduzione alla sintassi C++ Array a una dimensione Array a due dimensioni Array multidimensionali Funzioni standard della libreria

Dettagli

Qualsiasi programma in C++ segue lo schema:

Qualsiasi programma in C++ segue lo schema: Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

Tipi di dato. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Tipi di dato. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Fondamenti di C++ Input/Output di base

Fondamenti di C++ Input/Output di base Università della Calabria Corso di Laurea in Ingegneria Elettronica Programmazione Orientata agli Oggetti A.A. 2006/2007 Fondamenti di C++ Paolo Trunfio * * DEIS, Università della Calabria http://si.deis.unical.it/~trunfio

Dettagli

Introduzione alla programmazione in C++

Introduzione alla programmazione in C++ Introduzione alla programmazione in C++ Fondamenti di Informatica Roberto BASILI Marzo, 2007 La Programmazione Programmare significa: Determinare la natura del problema (analisi) Definire una decomposizione

Dettagli

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...

Dettagli

Ricerca binaria (o dicotomica) di un elemento in un vettore

Ricerca binaria (o dicotomica) di un elemento in un vettore Ricerca binaria (o dicotomica) di un elemento in un La ricerca binaria o dicotomica è utilizzata per ricercare i dati in un ORDNATO. L algoritmo di ricerca binaria, dopo ogni confronto, scarta metà degli

Dettagli

Matricola Nome Cognome Aula Fila (dalla cattedra) Posto (dalla porta)

Matricola Nome Cognome Aula Fila (dalla cattedra) Posto (dalla porta) Università degli Studi di Udine Corsi di laurea in Ing. Elettronica / Gestionale Fondamenti di programmazione / Inform. 1 14 novembre 2014 - Prova intermedia Matricola Nome Cognome Aula Fila (dalla cattedra)

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Visibilità e tempo di vita delle variabili

Università degli Studi di Cassino Corso di Fondamenti di Informatica Visibilità e tempo di vita delle variabili Corso di Fondamenti di Informatica Visibilità e tempo di vita delle variabili Anno Accademico Francesco Tortorella Il concetto di visibilità Un programma C++ può assumere una struttura complessa grazie

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE

INTRODUZIONE ALLA PROGRAMMAZIONE INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni

Dettagli

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

Dettagli

I CARATTERI E LE STRINGHE

I 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

Dettagli

Politecnico di Milano Facoltà di Ingegneria Civile, Ambientale e Territoriale. Informatica B [079904]

Politecnico di Milano Facoltà di Ingegneria Civile, Ambientale e Territoriale. Informatica B [079904] Politecnico di Milano Facoltà di Ingegneria Civile, Ambientale e Territoriale Informatica B [079904] Prof. P. Plebani Allievi Ingegneria Civile e Ambientale II prova in itinere (04 Febbraio 2009) Cognome

Dettagli

Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment. Codice corso: 21012

Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment. Codice corso: 21012 Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Pagina 1 di 8 Dev-C++ - Installazione Con sistema operativo Windows, potete

Dettagli

Introduzione al C++ Corso di C++ INFN LNS 13 Dicembre Corrado Santoro

Introduzione al C++ Corso di C++ INFN LNS 13 Dicembre Corrado Santoro Introduzione al C++ Corso di C++ INFN LNS 13 Dicembre 2010 Corrado Santoro Concetto di Oggetto Proposto del 1966 nell'ambito dell'ai per rappresentare l' universo del discorso (ambiente di riferimento

Dettagli

ESERCIZIO 1. Si considerino le seguenti definizioni:

ESERCIZIO 1. Si considerino le seguenti definizioni: ESERCIZIO 1 Si considerino le seguenti definizioni: #define N 4 struct Casella{ unsigned int r, c; ; typedef Casella TappetoElastico[N][N]; Pare che tra le discipline degli ottocenteschi circhi delle pulci

Dettagli

Informatica 2 modulo C Massimo Callisto De Donato

Informatica 2 modulo C Massimo Callisto De Donato Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Informatica 2 modulo C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA

RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA Anno scolastico Lab informatica AULA n 35 Data inizio svolgimento Progr. relazione primo trimestre secondo pentamestre Cognome e Nome DATI DELLO STUDENTE

Dettagli

Dal C al C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi

Dal C al C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi Dal C al C++ Corso di Linguaggi di Programmazione ad Oggetti 1 a cura di Giancarlo Cherchi 1 Commenti Non aumentano la dimensione del programma eseguibile ma si rivelano utili per riassumere il comportamento

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Introduzione al linguaggio Java - Input/Output, Variabili, Tipi Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De

Dettagli

Text files, streams. I file che ci interessano sono file di testo. anche se, logicamente, contengono numeri o altro

Text files, streams. I file che ci interessano sono file di testo. anche se, logicamente, contengono numeri o altro Text files, streams I file che ci interessano sono file di testo anche se, logicamente, contengono numeri o altro In C/C++ ci sono anche i file binari, ma li ignoriamo file di testo = ASCII file = successione

Dettagli

Lezione 5 Sottoarray di somma massima

Lezione 5 Sottoarray di somma massima Lezione 5 Sottoarray di somma massima Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 1 My strcat 1 Esercizio Implementare

Dettagli

Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E07. C. Limongelli Novembre 2007

Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E07. C. Limongelli Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E07 Iterazione C. Limongelli Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Iterazione 1 Contenuti Si vogliono formalizzare

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Strutture Dati in C++ Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Laboratorio di Informatica 4. Array e strutture in C++ Strutture

Dettagli

Sommario. Introduzione... xv. Giorno 1 Elementi base del linguaggio C

Sommario. 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...

Dettagli

Esempio: quanto mi piace questo corso! qufuafantofo mifi pifiafacefe qufuefestofo coforsofo!

Esempio: quanto mi piace questo corso! qufuafantofo mifi pifiafacefe qufuefestofo coforsofo! Esercizio 1 Scrivere un programma che acquisisca da tastiera una sequenza di caratteri terminata da! e riporti sul monitor una sequenza derivata dalla precedente secondo le regole dell alfabeto farfallino

Dettagli

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012 Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Operatore? Tipo di dato: struct La ricorsione Funzioni ricorsive Esercizi proposti 26/04/2012 2 Operatore? L'operatore? può essere

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 27 novembre 2007 In C una stringa è rappresentata da una sequenza di caratteri terminante con il carattere nullo \0 il cui valore è

Dettagli

Il blocco che costituisce il corpo di una funzione/procedura può contenere dichiarazioni di variabili. Esempio:

Il 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

Dettagli

Stringhe e tipi di dati strutturati

Stringhe e tipi di dati strutturati Stringhe e tipi di dati strutturati Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 21 Marzo 2013 Info sui Labs http://tinyurl.com/ieimlabextra Ricordate di portare un adattatore!

Dettagli

Le 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. 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

Dettagli

Implementazione dell albero binario in linguaggio C++

Implementazione dell albero binario in linguaggio C++ Implementazione dell albero binario in linguaggio C++ Costruire il programma per gestire le operazioni su un albero binario. Ogni nodo dell albero contiene un codice e una descrizione; il programma deve

Dettagli

Corso di Fondamenti di Informatica II

Corso di Fondamenti di Informatica II Corso di Fondamenti di Informatica II Lezione Introduttiva (richiami del C++) Francesco Fontanella Docente Francesco Fontanella E-mail: fontanella@unicas.it http: webuser.unicas.it/fontanella Tel: 0776

Dettagli

Passare argomenti al programma

Passare argomenti al programma Passare argomenti al programma Quando si invoca un programma è possibile passare degli argomenti ad esso durante la chiamata. Gli argomenti ricevuti saranno stringhe (array di char) quindi l insieme di

Dettagli

Gestione di files Motivazioni

Gestione di files Motivazioni Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)

Dettagli

ALGORITMI E STRUTTURE DATI

ALGORITMI E STRUTTURE DATI ALGORITMI E STRUTTURE DATI Esercitazioni AndreA Orlandini http://www.dia.uniroma3.it/~orlandin/asd/ e-mail: orlandin@dia.uniroma3.it Orario di ricevimento: Martedì 14.00-16.00 Introduzione al C + Array

Dettagli

Introduzione al linguaggio C Puntatori

Introduzione al linguaggio C Puntatori Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2016

Dettagli

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa Array di array A. Miola Febbraio 8 http://www.dia.uniroma.it/~java/fondinf/ Array di array Contenuti Array bidimensionali creazione

Dettagli

Informatica! Appunti dal laboratorio 1!

Informatica! Appunti dal laboratorio 1! Informatica Appunti dal laboratorio 1 Sistema Operativo Windows Vista, Windows 7, Mac OS X, Linux, Debian, Red Hat, etc etc Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti

Dettagli

Esercizio 1 (15 punti)

Esercizio 1 (15 punti) Esercizio 1 (15 punti) Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I Prova scritta del 16 giugno 2017 Il noto gioco MasterMind

Dettagli

Linguaggio 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 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

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case

Dettagli

Programmazione I - Laboratorio

Programmazione I - Laboratorio Programmazione I - Laboratorio Esercitazione 4 - Puntatori, vettori e stringhe Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti

Dettagli

Tipi di dato e istruzioni elementari in C++

Tipi di dato e istruzioni elementari in C++ Tipi di dato e istruzioni elementari in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli

Dettagli