Le struct con il C. Cosa sono ? Variabili strutturate come i vettori … … ma che superano una limitazione dei vettori.

Slides:



Advertisements
Presentazioni simili
I tipi Strutturati.
Advertisements

Stringhe Operare con le stringhe con laiuto degli array.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (IV)
String c++.
Strutture dati In linguaggio C. Strutture Spesso gli algoritmi lavorano su insiemi di dati eterogenei Per esempio, per descrivere le caratteristiche di.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità G1 Dati strutturati.
Dati strutturati C++.
Introduzione ad Array e Funzioni 2IC/2ID – a. s.2012/13.
I DATI I PRINCIPALI TIPI DI DATO UTILIZZATI IN PROGRAMMAZIONE
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Un nuovo tipo di dati Gli array.
Algoritmi in C++ (1) da completare
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stringhe e tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata al.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Variabili e tipi primitivi Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
Corso di Informatica (Programmazione)
CORSO DI PROGRAMMAZIONE II
1. 2 ALCUNE INFORMAZIONI PRELIMINARI Docente: E. Burattini Libri di testo: Deitel H.M., Deitel P.J. – C++ Fondamenti di programmazione,
Array Struttura numerate di dati. Memorizzare molti dati In informatica cè spesso bisogno di memorizzare ed elaborare un insieme costituito da molti dati.
Dichiarazione di classi Programmazione Corso di laurea in Informatica.
Lab. Calc. AA 2005/061 Classi. Lab. Calc. AA 2005/062 C e C++ Fino a questo punto abbiamo introdotto gli elementi base di qualsiasi linguaggio di programmazione,
Fondamenti di Informatica A - Massimo Bertozzi TIPI DI DATO IN C++ What's in a name? That which we call a rose By any other name would smell as sweet.
Il Linguaggio C.
Sintassi base e struttura di un programma
Utilizzo di Vettori e Funzioni a.s. 2012/13. Pagine Web Anche nelle pagine Web (linguaggio JavaScript) vengono utilizzati Vettori e Funzioni. Le Funzioni.
GLI ARRAY MONODIMENSIONALI. Utilizzando le nostre attuali conoscenze, proviamo a risolvere il seguente problema: Calcolare la media dei voti conseguiti.
I VETTORI E LE MATRICI IN PHP Motta Ilaria I.T.E. Agostino Bassi.
Lezione 3 Struttura lessicale del linguaggio
Il linguaggio C Puntatori e dintorni.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
File binari Accesso a file con record di lunghezza costante Struct Persona { Int id; Char nome[50];// nome e cognome Double stipendio; }; Persona dipendente;
1 Il linguaggio C Puntatori e dintorni. 2 Puntatori : idea di base In C è possibile conoscere e denotare l’indirizzo della cella di memoria in cui è memorizzata.
CORSO DI PROGRAMMAZIONE II
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Informatica 6 Tipi di dato. Nelle celle di memoria di un calcolatore ci sono solo “0” e “1”, fisicamente realizzati tramite due diversi livelli di tensione.
Stringhe In linguaggio C. Stringhe  Un insieme di caratteri in sequenza forma una stringa.  Alcuni linguaggi definiscono per le stringhe uno specifico.
IL GOLD STANDARD: INTRODUZIONE
Il problema dello zaino
La vitamina C è una molecola contenente C,H e O
L’infiltrazione LM-75: 2016/2017
LA PREVENZIONE INCENDI NELLE STRUTTURE RELIGIOSE APERTE AL PUBBLICO
LE NOVITÀ DEL BILANCIO 2016 …………………………………………………………………………………………………………..
Convegno europeo sui minori
Ricerca e innovazione:
Pubblica Amministrazione: semplificazione e costi della politica
PROGETTO RELAZIONI PREPOTENTI
L’evoluzione del Diritto delle Assicurazioni Continuità o rottura con il passato? Avv. Giuseppe Ranieri Studio Legale Tributario Ranieri Comitato Esecutivo.
PIANO DI RIORDINO PRESIDI DI FOLIGNO E SPOLETO
Il fenomeno dei flussi migratori dal mondiale al locale
La Componente personale
Analisi di Raggruppamento
Biblioteca Interdipartimentale di Chimica
Il sistema della pena in Italia
Valutazione delle prestazioni di programmi paralleli
Fasi della politica economica europea: dal dopoguerra all’Unione monetaria 1. Dopo la II guerra mondiale i principali paesi europei avviano un processo.
Materiali. Logica: tutorials e slides power point in rete.
La fisica delle particelle elementari
Il pubblico bloccato Per il Governo la contrattazione è attività residuale nella quale non vale la pena investire La rilegificazione di molte materie ha.
Rappresentazione dei campi di gravità
Testo di riferimento: materiale fornito dalla docente
Esercizi sui parametri fisici
IL CANALE DI SUEZ.
Status Attività Magneti
MICROCIRCOLAZIONE Moduli microvascolari: arteriole di resistenza, capillare preferenziale, capillari veri, cellule mioepitaliali, venule, anastomosi artero-venose.
La società coloniale: politiche economiche e demografiche
Festa: 13 maggio Vergine di Fatima fuente: ewtn.org.
Assistenza infermieristica in Germania
Ecco la storia della nostra vita LE PARABOLE DEI VANGELI
Record.
Transcript della presentazione:

Le struct con il C

Cosa sono ? Variabili strutturate come i vettori … … ma che superano una limitazione dei vettori

Vettori fabiolucaalexvikateamaia Dati omogenei

Struct Singola variabile formata da molti Dati NON omogenei 167 Rossi Mario 12.8 True field (campo)

Struct E’ poi semplice definire array di struct 167 Rossi Mario 12.8 True 168 Verdi Sandro 8.8 False 169 Bianchi Achille 0 False 170 Neri Mario 9 True 167 Rossi Ugo 13 True

struct dipendenti { int matricola; string cognome; string nome; double assenzeMedie; bool stagionale; } 167 Rossi Mario 12.8 True

struct dipendenti { int matricola = 0; string cognome = “”; string nome; double assenzeMedie; bool stagionale; } ISO C++ proibisce l’inizializzazione

struct dipendenti { int matricola; string cognome; string nome; double assenzeMedie; bool stagionale; } L’identificatore della struct viene poi usato per dichiarare variabili che rispettano quel modello: dipendenti dip1, dip2; 0 “” 0 false

Ma è possibile assegnare valori in fase di dichiarazione come per gli array: dipendenti dip1 = {167, “Rossi”, “Mario”, 12.8, false};

Per accedere ai campi (field) di una struct si utilizza la cosiddetta notazione ‘punto’: dipendenti dip; dip.matricola = 167; dip.cognome = “Rossi”; dip.nome = “Mario”; dip.assenzeMedie = 12.8; dip.stagionale = false; 167 Rossi Mario 12.8 false

I valori possono essere assegnati / usati in tutti i modi che conoscete essere validi per le variabili semplici: cin >> dip.matricola; dip1.cognome = dip2.cognome; dip.nome = variabileStringa; dip.assenzeMedie = media(); cout << dip.nome; if (dip1.nome == dip2.nome)...

E’ possibile copiare tutti i campi da una struct ad un’altra con un solo assegnamento: dip1 = dip2

Possiamo dichiarare quante variabili ‘dipendente’ vogliamo: dipendenti dip1; dipendenti dip2; dipendenti tarzan; dipendenti fantozzi;

ATTENZIONE!! dipendenti.nome = …

Si possono molto efficacemente combinare array e struct dipendenti personale[100]; Array di struct personale[i].cognome = “…”

Oppure … una struct contenente vettori struct Classe { string sigla; //4aITIS int numeroAlunni; string NomiAlunni[35]; } Classe c; … c.NomiAlunni[i] = “…”;

Ed ora un esercizio che mette tutto insieme Si vuole gestire un catalogo dei propri MP3. Il catalogo può essere salvato e riletto da disco. Si possono ritrovare i dati sugli MP3 cercando per titolo (anche solo una sua parte)

Dati Richiesti titolo autore durata (secondi) url (download)

Esempio di file contenente i dati del catalogo MP3 Nome File: mp3.txt Roc Boys Jay-Z D.A.N.C.E. Justice 190

Interfaccia del programma Menu principale 1 – Carica catalogo da disco 2 – Salva catalogo su disco 3 – Aggiungi MP3 4 – Ricerche 9 – Fine programma

Funzioni scritte dal prof. - 1 FILES string leggiRiga(string pathFile); restituisce #FINITO# a fine file registraRiga(string pathFile, string riga); elimina(string pathFile); Ogni riga del file corrisponde ad un dato; è possibile preparare qualche dato in partenza con il blocco note.

Funzioni scritte dal prof. – 2 STRINGHE string maiuscolo(string s); string minuscolo(string s); string intToString(int n); bool cercaStringa(string cercata, string cercaQui) Funzioni libreria standard STRINGHE int atoi(string s);

Questioni da affrontare - 1 Dimensionare il vettore: a priori non si sa quanti mp3 ci sono nel file … come fare ? Sarebbe interessante dimensionare il vettore in modo da poter sempre aggiungere almeno altri 500 mp3 prima di essere costretti a far ripartire il programma

Questioni da affrontare - 2 Il file contiene stringhe di testo ma la durata nella struct è un int; come comportarsi?