Messaggio di errore

  • Deprecated function: Methods with the same name as their class will not be constructors in a future version of PHP; views_display has a deprecated constructor in include_once() (linea 3469 di /home/cmswiki/public_html/includes/bootstrap.inc).
  • Deprecated function: Methods with the same name as their class will not be constructors in a future version of PHP; views_many_to_one_helper has a deprecated constructor in require_once() (linea 127 di /home/cmswiki/public_html/sites/all/modules/ctools/ctools.module).

Tipo di Dato Astratto o Abstract Data Type - ADT

 

Un Tipo di Dato Astratto o Abstract Data Type - ADT è, per definizione, un nuovo tipo di dato che estende i tipi nativi forniti dal linguaggio di programmazione.
 
[adsense:block:adcontenuto]
 
Un ADT è caratterizzato da un insieme di:
  1.  dati;
  2.  operazioni che agiscono sui dati, leggengoli/scrivendoli;

 

Fin qui niente di nuovo: anche i linguaggi procedurali, come per esempio C, consentono di definire un ADT. Ma, mentre per tali linguaggi chiunque può avere accesso ai dati e modificarli, i linguaggi Object Oriented ne garantiscono la loro riservatezza.
 
Supponiamo infatti di voler definire in C (non preoccuparsi della sintassi) un ADT Persona cioé una struttura dati che mantenga le informazioni (dati) di una Persona, come, per esempio, il nome, il cognome e la data di nascita e che consenta di creare e stampare le informazioni di una persona (operazioni):
 
/* Struttura dati per mantenere la data di nascita */
struct Data {
int giorno;
int mese;
int anno;
};
/* Struttura dati per mantenere le info. della persona */
struct Persona {
struct Data *data_di_nascita;
char *nome;
char *cognome;
};
/* Setta le info. della persona */
void creaPersona(struct Persona *persona)
{
persona->data_di_nascita->giorno = 31;
persona->data_di_nascita->mese = 12;
persona->data_di_nascita->anno = 1976;
persona->nome = "Eugenio";
persona->cognome = "Polito";
}
[adsense:block:adcontenuto]
/* Stampa le info. della persona */
void stampaDati(struct Persona *persona)
{
printf("Mi chiamo %s %s e sono nato il %i-%i-%i \n",
persona->nome,
persona->cognome,
persona->data_di_nascita->giorno,
persona->data_di_nascita->mese,
persona->data_di_nascita->anno);
}
/* crea un puntatore alla struttura e lo inizializza;
quindi stampa le info. */
int main()
{
struct Persona *io;
creaPersona(io);
stampaDati(io);
return 0;
}
 
Se eseguiamo questo programma, otteniamo il seguente output:
 
Mi chiamo Eugenio Polito e sono nato il 31-12-1976
 
Proviamo adesso a modificare il main nel seguente modo:
 
int main()
{
struct Persona *io;
creaPersona(io);
io->data_di_nascita->mese = 2;
stampaDati(io);
return 0;
}
 
Questa volta l’output è:
 
Mi chiamo Eugenio Polito e sono nato il 31-2-1976
 
Cioè le mie informazioni private sono state modificate con l’assegnamento:
 
io->data_di_nascita->mese = 2

 

 

Risorse per sviluppo: 

Ti potrebbero anche interessare:

Come inserire su Google Maps un'attività commerciale o azienda

Uno dei fattori da tenere sempre in considerazione ai fini di incremento della brand authority (la vostra reputazione su internet) è quello di iscriversi su tutti i servizi che google offre per farsi conoscere. Ed allora se ho un azienda con un sito web, oltre ad un profilo google+, vado anche a capire come inserire la mia attività commericiale su Google Places e Google Maps.

Posizionamento - SEO: 

La normativa italiana sulla firma digitale

 

L’Italia è stato uno dei primi paesi a dotarsi di un complesso normativo per la regolamentazione della firma digitale, prima ancora che si sviluppasse il commercio elettronico, col fine principale di semplificare le procedure burocratiche nei rapporti con la pubblica amministrazione e nella contrattistica.
Risorse per sviluppo: 

Come scaricare video .flv da Google, YouTube, MySpace e converitirli in Avi/Dvx senza Software

Molti di voi sono a conoscenza del fatto che ci sono moltissimi siti che offrono la possibilità di vedere i video on-line di tutti i generi, però scaricarli non è così semplice, o meglio bisogna avere un po' di dimestichezza con varie strumenti open source come Firefox e relative estensioni.

Risorse per sviluppo: