a.a Codice corso: 21012, 22010
|
|
- Rosalinda Sabrina Riccardi
- 7 anni fa
- Visualizzazioni
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
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
DettagliESERCIZIO 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
DettagliUniversità 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
DettagliHOMEWORKS. 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
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
DettagliLinguaggio 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
Dettaglia.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
DettagliCorso 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
DettagliESERCIZIO 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
DettagliStesura 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
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
DettagliProgrammazione 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
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
DettagliLe 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" è
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ù
DettagliDati 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
DettagliInformatica 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
DettagliVariabili. 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
Dettaglis 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
Dettaglichar* 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
Dettagli5 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
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
DettagliUn 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
Dettaglistring.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
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
Dettagli9 - 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
DettagliELEMENTI 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
DettagliStringhe. 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,
DettagliStringhe 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
DettagliCicli 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
DettagliStringhe 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
DettagliStringhe 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
DettagliLezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
DettagliLe 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
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
DettagliLe 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
Dettagli1 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.
DettagliCorso 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
DettagliArray 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
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
DettagliMetodi 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
DettagliArray 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
DettagliGli 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
DettagliArray 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
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
DettagliElementi 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
DettagliCorso 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++
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
DettagliRappresentazione 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
DettagliRipasso 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
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
DettagliSoluzione/* 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,
DettagliERRATA 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
DettagliGestione 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
DettagliFondamenti 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
DettagliQualsiasi 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
DettagliTipi 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
DettagliFondamenti 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
DettagliFondamenti 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
DettagliIntroduzione 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
DettagliBreve 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...
DettagliRicerca 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
DettagliMatricola 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)
DettagliUniversità 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
DettagliFondamenti 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
DettagliINTRODUZIONE 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
DettagliLaboratorio 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[]
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
DettagliPolitecnico 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
DettagliBloodshed 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
DettagliIntroduzione 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
DettagliESERCIZIO 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
DettagliInformatica 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
DettagliRELAZIONE 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
DettagliDal 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
DettagliFondamenti 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
DettagliText 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
DettagliLezione 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
DettagliIterazione. 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
DettagliLaboratorio 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
DettagliSommario. Introduzione... xv. Giorno 1 Elementi base del linguaggio C
Sommario Introduzione... xv Organizzazione del volume... xv Argomenti...xvi Domande...xvi Verifiche...xvi Domande e risposte...xvi Esercizi...xvi Non è richiesta alcuna precedente esperienza di programmazione...
DettagliEsempio: 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
DettagliFondamenti 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
DettagliLaboratorio 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 è
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
DettagliStringhe 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!
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
DettagliImplementazione 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
DettagliCorso 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
DettagliPassare 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
DettagliGestione 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)
DettagliALGORITMI 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
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 2016
DettagliArray 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
DettagliInformatica! 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
DettagliEsercizio 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
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
DettagliCorso 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
DettagliProgrammazione 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
DettagliTipi 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