I tipi Strutturati.

Slides:



Advertisements
Presentazioni simili
Puntatori Linguaggio C.
Advertisements

Introduzione al linguaggio C++
Puntatori e gestione dinamica della RAM
LINGUAGGIO DI PROGRAMMAZIONE C
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array, matrici Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (IV)
Stringhe di caratteri In linguaggio 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.
Ripasso R1 Dati strutturati.
Array multidimensionali
Dati strutturati C++.
Array (vettori) In linguaggio C / C++.
Introduzione ad Array e Funzioni 2IC/2ID – a. s.2012/13.
Introduzione al linguaggio C Dr. Francesco Fabozzi Corso di Informatica.
Anno accademico Array e puntatori in C.
Algoritmi in C++ (1) da completare
Programmazione Procedurale in Linguaggio C++
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Corso di Fondamenti di programmazione a.a.2009/2010
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Process synchronization
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Laboratorio di Linguaggi P R I M O C O M P I T I N O Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese.
Corso di Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
Introduzione agli stream e alle classi
Array Un array è una collezione in sequenza di variabili del medesimo tipo Riferimento con un nome comune Nome_studente1 Nome_studente2. Nome_studenteN.
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
APPUNTI SUL LINGUAGGIO C
Funzioni di Libreria per le stringhe DICHIARAZIONI CONTENUTE NEL FILE: char *strcpy( char *dest, const char *sorg ); Copia sorg in dest, incluso il carattere.
Modello dati ALBERO Albero: Albero: insieme di punti chiamati NODI e linee chiamate EDGES EDGE: linea che unisce due nodi distinti Radice (root): in una.
Struct, enum, Puntatori e Array dinamici
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
I File.
Java base III: Array e Stringhe
TIPI DI DATO Un tipo di dato T è definito come: un dominio di valori, D un insieme di funzioni F 1,..,F n sul dominio D un insieme di predicati P 1,..,P.
2000 Prentice Hall, Inc. All rights reserved. Capitolo 10 (Deitel) Strutture, unioni ed enumerazioni Sommario Introduzione Definire le strutture.
Il linguaggio C Le funzioni C Language Il passaggio dei parametri
Programmazione di Calcolatori
Unità Didattica 3 Linguaggio C
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e stringhe Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
Strutture dati elementari
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
CORSO DI PROGRAMMAZIONE II Lezione 22
GLI ARRAY MONODIMENSIONALI. Utilizzando le nostre attuali conoscenze, proviamo a risolvere il seguente problema: Calcolare la media dei voti conseguiti.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Ottobre 2014.
File binari Accesso a file con record di lunghezza costante Struct Persona { Int id; Char nome[50];// nome e cognome Double stipendio; }; Persona dipendente;
Università di Torino – Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a prof. Viviana Bono Blocco 7 – Array.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Relazione sulle strutture dati Svolta da: Buccella Simone Strutture di dati Aree di memoria Puntatore numericibooleani alfabetici Statici dinamici Puntatori.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Operatori di incremento e decremento
ALLOCAZIONE STATICA: LIMITI Per quanto sappiamo finora, in C le variabili sono sempre dichiarate staticamente –la loro esistenza deve essere prevista e.
Sommario Oggetti immutabili e non Tipi Primitivi: String, Arrays.
STRUTTURA DI UN PROGRAMMA C In prima battuta, la struttura di un programma C è definita dalla seguente produzione: ::= { }
Copyright © Istituto Italiano Edizioni Atlas
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 8 Aprile 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 14 Marzo 204.
Stringhe In linguaggio C. Stringhe  Un insieme di caratteri in sequenza forma una stringa.  Alcuni linguaggi definiscono per le stringhe uno specifico.
Stringhe Una stringa è un vettore di char con un carattere costante \0 che indica la fine della stringa il terminatore rende differenti gli array di char.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 28 Ottobre 2014.
“ Pseudocodice ” Un programma per computer lavorerà su in insieme di “ variabili ” contenenti i dati del problema, soluzioni intermedie, soluzioni finali.
Fondamenti di Informatica L- A Il linguaggio C Tipi strutturati X Y Z … … N … M-1 NomeCognomeRedditoAliquota
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Esercizi sui dati strutturati 13 Tipi di dati strutturati.
Transcript della presentazione:

I tipi Strutturati

Dimensioni variabili strutturate La funzione sizeof consente di determinare lo spazio necessario alla memorizzazione di una variabile (o di un tipo); sizeof variabile sizeof(nome_di_tipo)

Esempi di utilizzo di sizeof sizeof(int); sizeof(float); sizeof(Punto); sizeof pt; sizeof t;

Un po’ di pratica !!!

I tipi strutturati Tipi Componenti Assemblaggio Funzione di accesso Semplici Strutturati Assemblaggio Prodotto Cartesiano Sequenza Funzione di accesso per posizione per nome

I tipi strutturati Costruttore del tipo Costruttore dei valori struttura sintattica, che identifica le modalità di costruzione e i tipi componenti, cui sono associate le funzioni di accesso Costruttore dei valori formalismo adoperato per indicare un valore strutturato attraverso di suoi componenti. es. (x,y)

Gli array Gli array si definiscono come cartesiano di n tipi uguali: tipo array = cartesiano (T 1 , T 2 , ..., T n ) con T 1 = T 2 = ... = T n Sono caratterizzati da: struttura ad accesso casuale accesso con un indice calcolato

Array Nella dichiarazione del tipo Array occorre specificare: tipo degli elementi componenti int, float, etc … numero di indici (dimensionalità o rango dell’array) Array monodimensionale (vettore) Array bidimensionale (matrice) valore minimo e massimo di ciascun indice

Array La “Funzione di accesso” è del tipo: M[i] (dimensionalità pari a uno) M[i,j] M[i][j] (dimensionalità pari a due) Sugli array è possibile effettuare operazioni: sui singoli elementi sulla struttura in quanto tale . Un esempio di costruttore è: int b[2][3]= {{1,2,3}{4,5,6}}; tipo Valori max indice nome dimensionalità

Allocazione Array Allocazione Ordinamento elementi Statica Dinamica Monodimensionali: i < j è a(i) precede a(j) Bidimensionali i1 < i2 è A(i1, .) precede A(i2, .) j1 < j2 è A(i, j1) precede A(i, j2)

Array in C++ Dichiarazione Tipo nome_array[dimensione]; Esempio: float x[25]; typedef Tc Vettore[dimensione]; Esempio: typedef float Vettore[25]; Vettore x;

Esempi Array in C++ float x[25]; //definizione x[0]; // primo elemento x[j]; // j-mo elemento x[25]; // errore! Esempio array bidimensionale float b[20][25]; typedef Matrice [20][25]; Matrice b;

Esempi (continua) int a[10], b[10]; //definizione a[4]= b[9]; //ok! a = b; // illegale: occorre copiare tutti gli elementi a[4]= b[9]; //ok! Controllo sui limiti a [3] = b[11]; //errore non segnalato !

Un po’ di pratica !!!

Tipo Record (o Struttura) Il Tipo recor è definito come il cartesiano di n tipi distinti: record=cartesiano(T 1 , T 2 , ..., T n ), con T1 , T2 , ..., Tn qualsiasi E’ una struttura dati ad accesso casuale costituita da un numero fisso di componenti, detti anche campi del record, che possono essere di tipo semplice o a loro volta strutturato.

Il record Svolge una generica funzione di raggruppamento di più attributi relativi alla medesima entità. Ogni campo ha un proprio nome ed è accessibile singolarmente mediante composizione del suo nome con quello del record.

Il record: dichiarazione e definizione struct nome { D1; D2; ... DN; }; esempio: struct point { int x; int y; struct point pt; definizione dichiarazione

Il record: dichiarazione e definizione typedef struct { D1; D2; ... DN; } nometipodichiarato; Esempio: int x; int y; } Point; Point pt; definizione dichiarazione

Record: accesso Funzioni di accesso pt.x pt.y pt.x = 3; pt.y = 12;

Record: assegnazione Assegnazione Point pt1, pt2; pt1 = {2,1};

Un po’ di pratica !!!

Il Tipo Stringa In generale una stringa di caratteri è una sequenza di caratteri atta a rappresentare una frase, un testo, etc... Concetti fondamentali lunghezza di una stringa concatenamento di due stringhe ordinamento (derivante da quello lessicografico)

Stringhe in C++ Una stringa in C++ è un array di caratteri che, nella rappresentazione interna, è terminato dal carattere nullo (‘\0’) Quindi internamente una stringa occupa un carattere in più del numero di caratteri che la compongono! Le funzioni che operano sulle stringhe si aspettano il terminatore ‘\0’ Nelle stringhe composte “a mano” occorre inserire ad hoc il carattere di terminazione!

Dichiarazione di una stringa char stringa[10]; è cura del programmatore aggiungere il ‘\0’ per identificare la fine della stringa char stringa2[] = “0123456789”; nel caso di assegnazioni di costanti stringa non è necessario aggiungere il terminatore ‘\0’;

Funzioni su stringhe Le stringhe sono in genere utilizzate in operazioni di Input – Output Input (cin) #include <iostream.h> char str[81]; cin >> str L’input viene terminato al primo carattere di spaziatura (‘\n’, ‘\t’, ‘<spazio>‘) Input (gets) #include <stdio.h> gets(str); cout << str

Esempi di funzioni sulle stringhe strcpy(str1, str2); Copia la stringa str2 nella stringa str1 strcat(s1, s2); Concatena le due stringhe strcmp(s1,s2); Confronto tra le due stringhe strlen(s); Restituisce la lunghezza della stringa

Pratica !!!