Introduzione alle stringhe e algoritmi collegati
|
|
- Alessia Bertini
- 7 anni fa
- Visualizzazioni
Transcript
1 Introduzione alle stringhe e algoritmi collegati Algoritmicamente August 15, Introduzione 1.1 Introduzione ai caratteri In informatica o più generalmente in una terminologia scientifica, il carattere è l unità di informazione minima (un simbolo) di un linguaggio naturale. Definizione 1 Un linguaggio è un sistema di comunicazione tra individui. Definizione 1.1 L unità minima di un linguaggio è un simbolo, chiamato carattere. Il carattere ci permette di esprimere un linguaggio. Un esempio di carattere può essere dato da un numero (0, 1, 2,..., 9), una lettera o un segno di interpunzione. Anche uno spazio è un carattere. In informatica un carattere non è solo un segno di un linguaggio naturale ma può anche essere un elemento di controllo per alcune determinate azioni. Un esempio di elemento di controllo o carattere di controllo è un Carriage return (return) o un EOF (End of File). Definizione Un carattere di controllo è un sottogruppo di caratteri che viene usato per determinate operazioni di preprocessing e gestione. In informatica, i caratteri vengono rappresentati secondo una codifica che, generalmente, assegna ad ogni carattere un numero, rappresentato come serie di bit. Definizione 2 Un sistema di codifica di caratteri è formato da un codice che opera su due insiemi, un insieme di caratteri e un insieme di oggetti. Il codice associa ogni elemento dell insieme di caratteri ad uno e un solo elemento del secondo insieme. Lo scopo di un sistema di codifica è quello di facilitare la rappresentazione dei caratteri usati in un linguaggio naturale. 1
2 1.2 Le stringhe Oggetto principale di questo articolo sono le stringhe. Una stringa in informatica è una sequenza di caratteri. Un esempio di stringa può essere la frase Ciao Federica!. Una stringa, in un linguaggio di programmazione, può essere un tipo di dato primitivo (il linguaggio di programmazione offre la possibilità di usare direttamente una stringa, già esistente come tipo di dato) o composito (il linguaggio di programmazione offre la possibilità di creare, attraverso una modellazione di entità quali oggetti o strutture, un tipo di dato stringa). Definizione 1 Una stringa in informatica è una sequenza di caratteri. Diamo adesso una definizione formale di stringa che useremo per definire alcune operazioni. Definizione 1.1 Una stringa è una sequenza composta da un certo numero di oggetti appartenenti ad un alfabeto. Definizione 1.2 Un alfabeto è un insieme finito non vuoto C di elementi chiamati caratteri. Definizione 2 Una stringa in C è una qualsiasi disposizione finita di caratteri di C. Diamo, per semplicità, la definizione di disposizione. Definizione 2 Dati due interi positivi n e k, si definisce disposizione di n elementi di classe k ogni sottoinsieme ordinato di k oggetti estratti da un insieme di n oggetti, dove i sottinsiemi differiscono per qualche elemento diverso o per gli stessi elementi ma in ordine inverso ( ciao! = cioa ). Una stringa quindi una sequenza di caratteri presi da un alfabeto. Presentiamo di seguito un esempio: se C = {a, b, c}, le stringhe in C sono nella forma: Notiamo:, a, b, c, ab, ac, abc, abca,... - Una stringa in C può esser formata da nessun carattere. Questa stringa viene chiamata stringa vuota. - Seguendo l esempio superiore, formalmente possiamo definire una sequenza infinita (stringa infinita) quando la lunghezza della stringa n non è fissata (possiamo creare delle disposizioni al variare di n). Le sequenze infinite non vengono prese in considerazione in ambito 2
3 informatico, quindi possiamo affermare che ogni stringa abbia una propria lunghezza. Definizione 2.1 Una stringa vuota è una stringa composta da nessun carattere. Definizione 2.2 Ogni stringa ha una lunghezza n, dove n indica la lunghezza della sequenza di caratteri (la stringa ciao ha lunghezza n = 4; la stringa vuota ha lunghezza n = 0). 1.3 Rappresentazione delle stringhe La rappresentazione di una stringa in un sistema informatico avviene tramite il character encoding, ovvero un sistema il cui compito è quello di formare una coppia (corrispondenza biunivoca) tra una sequenza di caratteri e un set di caratteri. Un set di caratteri (o character set) è un gruppo di caratteri (inclusi caratteri di controllo). Compito principale del character encoding è quello di codificare una data sequenza di caratteri nelle rispettive componenti del character set usato. Un esempio di character encoding è il codice Morse, il quale codifica ogni lettera e numero in una serie di segnali ad intermittenza. Attualmente, in ambito informatico si usano sistemi come ASCII e Unicode e codifiche quali UTF-8 e UTF-16 (i quali non saranno argomento di questo articolo). Le implementazioni usate nella maggior parte dei linguaggi di programmazione identificano la stringa simile ad un array, i cui elementi contengono i codici corrispondenti ai rispettivi caratteri definiti nel set di caratteri che si sta utilizzando. La lunghezza di una stringa può essere ricavata implicitamente da uno speciale carattere di terminazione. Questo carattere, generalmente, è il carattere nullo (NULL) avente codice zero. Qui sopra osserviamo l esempio di una stringa null-terminated: la lunghezza è di 8 caratteri e la fine è indicata dal carattere NULL; la stringa è rappresentata in codifica ASCII (valori esadecimali) e occupa 9 byte (il carattere NULL occupa comunque 1 byte). La rappresentazione usata sopra è la più comune ma altre rappresentazioni sono possibili. 3
4 1.4 Uso delle stringhe in C++ Analizzeremo ora l uso delle stringhe nel linguaggio di programmazione C++. Abbiamo scelto questo linguaggio poiché gli algoritmi che studieremo saranno presentati, scritti e studiati in codice C++. Naturalmente il tutto può essere adattato a qualunque linguaggio ma per comodità abbiamo scelto di usare il C++ per andar fino in fondo al discorso. La rappresentazione di una stringa in C++ è di due tipi: stringa in stile C e classe standard stringa. Nei nostri esempi useremo, a seconda del problema, l una o l altra rappresentazione. Le stringhe in stile C sono necessarie al principio per capire il funzionamento di una stringa e le operazioni che possiamo effettuare su di essa; la classe standard stringa invece semplifica la vita dell utilizzatore con metodi già pronti e un controllo più accurato e meno soggetto ad errori. Iniziamo con il dare una definizione per le stringhe in stile C. Definizione 1 Una stringa in stile C è rappresentata da un array di caratteri, manipolabile attraverso un puntatore a carattere (char ) Una stringa in stile C viene inizializzata dichiarando un array i cui elementi saranno caratteri (non è compito di qusto testo dare nozioni di base sugli array o sui puntatori, gli esempi principali verranno mostrati senza spiegazioni non inerenti al discorso). Una possibile rappresentazione può esser data dalla seguente: // dichiariamo un array d i 20 e l e m e n t i d i t i p o char char mystring [ 2 0 ] ; // come sopra ma con a l l o c a z i o n e dinamica char mystring = new char [ 2 0 ] ; Dall esempio riportiamo che l unica operazione effettuata è stata l allocazione di memoria. Possiamo operare sulle stringhe in stile C in molti modi. Diamo un occhiata ad alcuni esempi per poi darne una spiegazione generale: 4
5 // Esempio 1 char mystring [ 2 0 ] ; // riempiamo l array con i numeri da 0 a 19 for ( unsigned i = 0 ; i < 2 0 ; i++ ) mystring [ i ] = i ; // Esempio 2 #include <iostream >... char nome = Federica ; std : : cout << nome ; // Esempio 3 char s t r = Federica ; do std : : cout << s t r ; while ( s t r ++); Esempio 1 La riga 1 dichiara un array di tipo stringa chiamato mystring di capacità 20 (cioè il numero massimo di elementi che può contenere). La riga 3 definisce un for per scandire l array elemento per elemento (mystring[0], mystring[1],..., mystring[19]) e ad ogni elemento assegnerà il valore corrente della variabile iteratore i. Esempio 2 Dichiariamo e inizializziamo un array di caratteri esplicito chiamato nome. L identificatore di un array (il nome) viene tradotto nell indirizzo del primo elemento contenuto in esso. Sfruttando la libreria iostream usiamo la funzione cout per stampare su standard output la nostra stringa. Esempio 3 Dichiarazione e inizializzazione come nell esempio 2. Usiamo un costrutto do...while per stampare le singole lettere in colonna. L operatore (star) ci permette di dereferenziare il puntatore e ottenere così il valore da stampare. L operatore ++ sul puntatore dereferenziato ci permette di scandire la stringa utilizzando l aritmetica dei puntatori. La libreria C standard (presente nel C++ standard) offre molte funzioni utili per manipolare le stringhe in stile C; presentiamo di seguito alcune funzioni molto usate (bisogna includere l header cstring): // r e s t i t u i s c e l a l u n g h e z z a d i una s t r i n g a int s t r l e n ( const char ) ; // confronta due s t r i n g h e per l u g u a g l i a n z a int strcmp ( const char, const char ) ; // copia l a seconda s t r i n g a n e l l a prima char s t r c p y ( char, const char ) ; 5
6 Definizione 2 La classe standard stringa è un implementazione del tipo di dato astratto stringa ; è fornita nella libreria standard C++ string. Offre numerosi vantaggi quali una gestione e usabilità maggiore e più semplice rispetto alle stringhe in stile C. Usando la classe string possiamo istanziare degli oggetti di tipo stringa. Punto di forza dell intera libreria è quello di poter godere di una estrema facilità d uso e allo stesso tempo di una potenza notevole. Cerchiamo ora di presentare un paio di esempi illustrando le caratteristiche peculiari della classe. Un oggetto di tipo stringa può essere inizializzato con una sequenza di caratteri oppure con un altro oggetto stringa (a differenza delle stringhe in stile C): ricordiamo che per istanziare e manipolare oggetti di tipo string bisogna includere la libreria string; nel primo esempio presentiamo l inclusione della libreria #include <s t r i n g >... // s t r i n g a vuota s t r i n g s1 ; // s t r i n g a i n i z i a l i z z a t a con una sequenza d i c a r a t t e r i s t r i n g s2 ( Federica ) ; // s t r i n g a i n i z i a l i z z a t a con un a l t r a s t r i n g a s t r i n g s3 ( s2 ) ; // i n i z i a l i z z a z i o n e vuota e // assegnamento t r a m i t e o p e r a t o r e = s t r i n g s4 = s3 ; Facilmente, possiamo accedere ai singoli elementi di una stringa, possiamo confrontare due stringhe, controllarne la dimensione, controllarne il contenuto e effettuare manipolazioni come il concatenamento: s t r i n g s ( Federica ) ; s t r i n g s2 ( Giappone ) ; // s i puo accedere a i s i n g o l i e l e m e n t i d i una s t r i n g a // t r a m i t e l o p e r a t o r e d i s u b s c r i p t o l a f u n z i o n e at ( ) std : : cout << s [ 2 ] ; // stampa d std : : cout << s. at ( 2 ) ; // stampa d // confronto t r a due s t r i n g h e i f ( s == s2 ) // l e due s t r i n g h e sono u g u a l i // ( in l u n g h e z z a e in contenuto ) // l a l u n g h e z z a d i una s t r i n g a // e data d a l l a f u n z i o n e s i z e ( ) std : : count << s. s i z e ( ) ; // stampa 8 6
7 // per v e r i f i c a r e se una s t r i n g a e vuota // s i usa l a f u n z i o n e empty ( ) i f (! s. empty ( ) ) // non e vuota, s i f a q u a l c o s a // concatenazione d i due s t r i n g h e s t r i n g s3 = s + s2 ; // s3 sara FedericaGiappone Esistono molte altre funzioni nella libreria standard e la documentazione di ognuna di esser può essere reperita facilmente in rete. 7
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
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout
DettagliLezione 8: Stringhe ed array multidimensionali
Lezione 8: Stringhe ed array multidimensionali Vittorio Scarano Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione AVVISO: la lezione di laboratorio di 28/5 non si
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
DettagliPuntatori e array. Violetta Lonati
Puntatori e array Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Puntatori e array
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,
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
DettagliEsercitazione di Reti degli elaboratori
Esercitazione di Prof.ssa Chiara Petrioli Christian Cardia, Gabriele Saturni Cosa vedremo in questa lezione? Gli Array Gli array multidimensionali Le stringhe I puntatori Esercizi Pagina 1 Gli Array Definizione
DettagliLa codifica digitale
La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore
DettagliIl linguaggio C. Puntatori e dintorni
Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;
DettagliIntroduzione al linguaggio C Primi programmi
Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
DettagliImplementazione di DFA in C
Implementazione di DFA in C Dispensa di Laboratorio di Linguaggi di Programmazione Sommario Corrado Mencar, Pasquale Lops, Stefano Ferilli Questa dispensa fornisce le linee guida per l implementazione,
DettagliInformatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1
Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)
Dettagli(Def. funzioni con parametri di tipo matrice)
ESERCIZIO 1 (Def. funzioni con parametri di tipo matrice) Scrivere un sotto-programma in linguaggio C++ che ricevuta una matrice quadrata come parametro restituisca al chiamante un valore booleano indicante
DettagliIntroduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2017
DettagliSommario. Tipo stringa: string. Tipo stringa: stile C. Tipo stringa Tipo booleano
Tipo stringa Tipo booleano Sommario Ricorsione: Definizione Chiamata di funzione Ricorsione in coda Ricorsione non in coda Ricorsionei eccessiva Esempio di ricorsione: ricerca binaria Tipo stringa Il C++
DettagliDati due punti sul piano calcolare la loro distanza
Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12
DettagliCompendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica)
Compendio sottoinsieme del C++ a comune col C (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica) Librerie 1/2 Il solo insieme di istruzioni di un linguaggio di programmazione
DettagliA. Veneziani - Le variabili puntatore
A. Veneziani - Le variabili puntatore I puntatori Una variabile puntatore è atta a contenere un indirizzo di memoria. Questo, quindi, è il tipo di dato contenuto in una variabile puntatore. A seconda dell
DettagliI tipi strutturati e i record in C++
I tipi strutturati e i record in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi
DettagliInformatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento
DettagliInformatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento b) dereferenziazione e
DettagliStrutture Dati. Nicu Sebe. Informatica Nicu Sebe 1 / 27
Strutture Dati Nicu Sebe Informatica Nicu Sebe 1 / 27 Dati e Tipi di Dati e Spazi Una variabile è caratterizzata dal suo Tipo Specifica i valori che può assumere (Insieme di Definizione) Specifica a quanti
DettagliALGORITMI E STRUTTURE DATI
Esercitazioni del corso di: ALGORITMI E STRUTTURE DATI Tutor: Francesca Piersigilli email: francesca.piersigilli@unicam.it Strutture dati elementari Tecniche di organizzazione dei dati: scelta della struttura
DettagliTipi strutturati in C. Stringhe
Tipi strutturati in C Stringhe Stringhe Una stringa di caratteri in C è un array di caratteri terminato dal carattere \0 Un vettore di N caratteri può dunque ospitare stringhe lunghe al più N-1 caratteri,
DettagliArray k-dimensionali
Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Array k-dimensionali In C è possibile definire array con più dimensioni (ANSI C massimo k=12), per
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma #include main() { printf("ciao Mondo!"); } Il file deve essere salvato con estensione.c Il primo programma in C++ #include using
DettagliStrutture dati e loro organizzazione. Gabriella Trucco
Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi
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
DettagliStrutture Dati. Luca Abeni
Strutture Dati Luca Abeni Dati e Tipi di Dati Una variabile è caratterizzata dal suo Tipo Specifica i valori che può assumere (Insieme di Definizione) Specifica a quanti byte di memoria la variabile è
DettagliCorso di Fondamenti di Informatica Tipi strutturati: Stringhe
Corso di Fondamenti di Informatica Tipi strutturati: Stringhe Anno Accademico Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri
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
DettagliFondamenti di Informatica Ing. Biomedica
Fondamenti di Informatica Ing. Biomedica Esercitazione n.10 Strutture Antonio Arena antonio.arena@ing.unipi.it Ripresa esercizio per casa Fondamenti di Informatica - Esercitazione n.10 2 Scrivere una funzione
DettagliAllocazione Dinamica della Memoria
Allocazione Dinamica della Memoria Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Allocazione Dinamica della Memoria 1 / 10 Scelta delle variabili Quando
DettagliPrimi programmi in C
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Uso del compilatore gcc Struttura di un programma
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliVariabili e Costanti
Struttura di un Programma C++ Un programma descrive una sequenza di azioni ogni azione è descritta da una espressione un insieme di espressioni seguite da ; è un istruzione espressione = più piccola unità
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
DettagliA. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica
informatica Java basi del linguaggio Alberto Ferrari Informatica struttura di un programma Java /** * Classe EsempioProgramma * Un esempio di programmazione in Java * @author 4A Informatica */ public class
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
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni
Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni Marco Liverani (liverani@mat.uniroma3.it)
DettagliEsercizio 2: Algebra dei Puntatori e Puntatori a Puntatori
Esercizio 2: Algebra dei Puntatori e Puntatori a Puntatori Salvatore Mandrà 7 Ottobre 2008 1 Esercizio L esercizio prevede l implementazione di funzioni per il prodotto di una matrice per un vettore, attraverso
DettagliLa Programmazione. Cos è la programmazione? Concetti preliminari
La Programmazione Cos è la programmazione? Concetti preliminari 1 Sommario La programmazione, questa sconosciuta Programmiamo Macchine Astratte Linguaggi di basso e alto livello e loro implementazione
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
DettagliIntroduzione ai puntatori in C Definizione
Introduzione ai puntatori in C Definizione Un puntatore è una variabile che contiene l indirizzo di un altra variabile Tramite i puntatori si può quindi accedere a un oggetto indirettamente (si usa il
DettagliIL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Primo esempio di un programma Java
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione IX Tatiana Zolo zolo@cs.unipr.it 1 TIPI STRINGA Il C++ fornisce due rappresentazioni: stringa di caratteri stile C e la classe stringa introdotta nel C++ standard.
DettagliCorso di Informatica
Corso di Informatica Modulo T2 2 I tipi di dato Prerequisiti Concetto di relazione e funzione Concetto di insieme numerico Operatori aritmetici Operatori relazionali 2 Introduzione Abbiamo visto che un
DettagliIL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma
DettagliLinguaggio C - Stringhe
ISTITUTO SECONDARIO DI ISTRUZIONE SUPERIORE "Guido Tassinari" di POZZUOLI Informatica Prof. A.S. 2011/2012 Linguaggio C - Stringhe 27/04/2012 Array di caratteri Una stringa è: Un array di caratteri Termina
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
DettagliIL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input
DettagliCostanti e Variabili
Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli
DettagliIntroduzione alla programmazione. Alice Pavarani
Introduzione alla programmazione Alice Pavarani Il linguaggio C Creato da Dennis Ritchie nel 1972 presso i Bell Laboratories Linguaggio di programmazione procedurale, strutturato Linguaggio ad alto livello
DettagliTitolo presentazione
Titolo presentazione Programmazione C: Esercizi su stringhe, funzionisottotitolo di libreria e matrici Milano, XX mese 20XX Informatica ed Elementi di Informatica Medica Agenda Argomenti e valore di ritorno
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...
DettagliCapitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61
Capitolo 5 Array e collezioni c 2005 Pearson Education Italia Capitolo 5-1 / 61 Sommario: Array e collezioni 1 Array Array di oggetti Lunghezza di un array Accesso agli elementi di un array Array e cicli
DettagliOOP in C++ ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi
OOP in C++ Classi e Oggetti Una classe èuntipochehavariabili ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi Una variabile ab di un tipo
DettagliLa Codifica e la Rappresentazione dei dati
La Codifica e la Rappresentazione dei dati www.mat.unical.it/bria Problema Molte azioni che si compiono sono finalizzate alla soluzione di problemi Ogni problema è caratterizzato da un insieme di dati
DettagliIl Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati
Caratteristiche Il Linguaggio C Linguaggio sequenziale (lineare), imperativo, strutturato a blocchi usabile anche come linguaggio di sistema software di base sistemi operativi compilatori... FI - Algoritmi
DettagliStruttura di un linguaggio
Il C nel C++ Struttura di un linguaggio Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture
Dettagli4 GLI ARRAY E LE STRINGHE
13 4 GLI ARRAY E LE STRINGHE 4.1 Gli array monodimensionali Un array è un insieme di variabili dello stesso tipo, cui si fa riferimento mediante uno stesso nome. L accesso ad un determinato elemento si
DettagliVariabili e Funzioni. Informatica 1 / 19
Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:
Dettagliviene chiamato base del sistema di numerazione ed è costituito da r simboli ordinati tra i quali compaiono lo zero è l unità.
L insieme R di appartenenza dei termini a e b viene ciamato base del sistema di numerazione ed è costituito da r simboli ordinati tra i quali compaiono lo zero è l unità. Ovviamente nel caso del sistema
DettagliLA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2
LA CODIFICA DELL INFORMAZIONE Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2 Codifica dati e istruzioni Per scrivere un programma è necessario rappresentare istruzioni
DettagliLinguaggio C: Stringhe Valeria Cardellini
Linguaggio C: Stringhe Valeria Cardellini Corso di Calcolatori Elettronici A.A. 2018/19 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Argomenti q
Dettaglia.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
DettagliLinguaggio C - sezione dichiarativa: costanti e variabili
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente
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
DettagliUn tipo di dato astratto (ADT) definisce una categoria concettuale con le sue proprietà: una definizione di tipo
TIPI DI DATO ASTRATTO Un tipo di dato astratto (ADT) definisce una categoria concettuale con le sue proprietà: una definizione di tipo implica un dominio, D un insieme di operazioni ammissibili su oggetti
Dettagli5.4 Istruzione di input L istruzione di input ha la forma:
5.2 Istruzione di output L istruzione di output ha la forma: cout
DettagliLa codifica. dell informazione. Codifica dei numeri. (continua) Codifica dei numeri. Codifica dei numeri: il sistema decimale
La codifica dell informazione Il codice ASCII consente di codificare le cifre decimali da a 9 fornendo in questo modo un metodo per la rappresentazione dei numeri Il numero 324 potrebbe essere rappresentato
DettagliFile binari e file di testo
I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file
DettagliListe concatenate e allocazione dinamica
Liste concatenate e allocazione dinamica Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2017/2018 Calendario delle lezioni Ogni lezione consta di una spiegazione assistita da slide,
DettagliLaboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi
Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147-00161 Roma Università degli Studi La Sapienza Fondamenti di
DettagliLezione 5: Introduzione alla programmazione in C
Lezione 5: Introduzione alla programmazione in C Laboratorio di Elementi di Architettura e Sistemi Operativi 4 Aprile 2012 Introduzione al C C vs. Java Java: linguaggio ad oggetti C: linguaggio procedurale
DettagliLEZIONE 1 LE BASI DEL LINGUAGGIO C
LEZIONE 1 LE BASI DEL LINGUAGGIO C Simone Marchesini Roberto Pagliarini Dipartimento di Informatica Università di Verona COS È? Il C è un linguaggio di programmazione che permette di salvare i valori in
DettagliCodifica binaria dell informazione
Codifica binaria dell informazione Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 13 Agosto 2014 Un obiettivo per domarli tutti 2 Obiettivi Rappresentazione dell informazione Da
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
DettagliInformatica 3. Informatica 3. LEZIONE 2: Sintassi e semantica. Lezione 2- Modulo 1. Le componenti di un linguaggio di programmazione
Informatica 3 Informatica 3 LEZIONE 2: Sintassi e semantica Lezione 2- Modulo 1 Modulo 1: Introduzione ai concetti di sintassi e semantica Modulo 2: Il concetto di binding Modulo 3: Variabili Modulo 4:
DettagliIntroduzione al linguaggio C Dati aggregati
Introduzione al linguaggio C Dati aggregati Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 5 ottobre
DettagliIntroduzione alla STL
Introduzione alla STL Corso di Linguaggi di Programmazione ad Oggetti 1 a cura di: Giancarlo Cherchi Introduzione Cosa s intende per STL? STL? Standard Template Library E una libreria di programmazione
DettagliTipi di dato personalizzati Array di struct. Tipi di dato utente. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.
Array di Tipi di dato utente Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Array di Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione
DettagliTipi strutturati - struct
Fondamenti di Programmazione A Appunti per le lezioni Gianfranco Rossi Tipi strutturati - struct Struttura dati (concreta) struct: sequenza di n elementi (n 0), rispettivamente di tipo t1,,tn (non necessariamente
DettagliTipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola.
Tipi di dato Le variabili in C KP Cap.3 pp.95-129 Cap.5 pp.190-193 DD Cap. 9 pp.352-355 Abbiamo già parlato delle variabili, ed abbiamo fin ora usato il tipo int, ma abbiamo molte altre possibiltà I tipi
DettagliIntroduzione al C. Lez. 1 Elementi. Rossano Venturini
Introduzione al C Lez. 1 Elementi Rossano Venturini rossano@di.unipi.it Pagine del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start http://algoritmica.spox.spoj.pl/alglab2013 Lezioni
DettagliInformatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi
Informatica 1 Corso di Laurea Triennale in Matematica Gianluca Rossi gianluca.rossi@uniroma2.it Dipartimento di Matematica Università di Roma Tor Vergata 11: Stringhe (www.informatica-uno.blogspot.com)
DettagliErrori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.
Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente
Dettagli1
Manuali di C Linguaggio C B. W. Kernigan, D. M. Ritchie Jackson La guida completa al C H. Schildt McGraw-Hill Fondamenti di Informatica 1 Linguaggio C Creato nei primi anni 70 per sviluppare il S.O. Unix
DettagliProf. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C
Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C IL LINGUAGGIO C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede tutti i costrutti di controllo dei linguaggi
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
DettagliTipi di dato primitivi
Tipi di dato primitivi (oltre int) Tipi di dato primitivi int (già trattati) Valori logici (ricordati) Valori reali Valori carattere Informatica - A.A. 2009/2010 - Tipi di dato 2 1 Valori logici (il caso
Dettagli