Vai al contenuto

Primario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Secondario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Sfondo: Blank Waves Squares Notes Sharp Wood Rockface Leather Honey Vertical Triangles
Corsi di Laurea










ROX @ Unisa - Forum degli studenti di Ingegneria utilizza i cookie. Se prosegui la navigazione accetti il loro uso.    Accetto l'uso dei cookie
-->
Foto

Definizione...confusa ADT (e differenza tra ADT e classe)


  • Effettua l'accesso per rispondere
Questa discussione ha avuto 5 risposta/e

#1
WorldChallenge

WorldChallenge

    Advanced Member

  • Utente
  • StellaStellaStella
  • 75 Messaggi:
Scusate so che ci sono un sacco di post con questo argomento ma ci sono delle definizioni confuse di adt e di conseguenza non si riesce a fare una differenza con le classi.

Nel pdf "ADT e DS" date dal prof vento (almeno così c'è scritto nel forum) c'è scritto che Un tipo di dato astratto è una specificazione di un insieme di dati e un insieme di operazioni che possono essere eseguite sui dati." Nel documento "Programmazione a oggetti 2008(aggiornato)" aggiornato da BlackJack c'è scritto "Un tipo di dato astratto o ADT (Abstract Data Type) è un tipo di dato le cui istanze possono essere manipolate con modalità che dipendono esclusivamente dalla semantica del dato e non dalla sua implementazione.
e poi "l’unica differenza sostanziale sta nel fatto che gli ADT non posseggono, nella struttura stessa, strumenti di manipolazione dei dati, mentre nelle classi oltre ai dati sono presenti anche i servizi (cioè i metodi) per usare tali dati."

Ma sul documento c'è scritto chiaramente che si definiscono insieme di operazioni per tale dato!

Insomma quale definizione si deve seguire e qual è la differenza tra le due cose?
Grazie a tutti per i chiarimenti!!! :ciao:



#2
Blackjack

Blackjack

    Moderatore globale

  • Moderatore
  • 2542 Messaggi:
guarda ti dico solo di non ti fidare troppo di ciò che è stato scritto su quel pdf, che si basa sul corso di OOP del 2007/2008 che fu un corso fatto in maniera molto appezzottata.... perciò alcune cose scritte lassù sono un pò sbagliate :|
Immagine inviata
Immagine inviata
Immagine inviata

"L'amore è la capacità di avvertire il simile nel dissimile"

#3
ildiabolico

ildiabolico

    Advanced Member

  • Utente
  • StellaStellaStella
  • 405 Messaggi:
Allora per le prime due definizioni date io direi di prenderle come concetto per capire cos'è un ADT mentre per la terza la butterei decisamente via.

In ogni caso vedi se ti piace questa per rispondere alla fatidica domanda "Mi dica cos'è un AdT" :

ADT:
Specifica di dato astratto che descrive SOLO le operazioni possibili sui DATI(del tipo che stai trattando) e i loro effetti(riferito alle operazioni), senza fornire nessuna indicazione sulla STRUTTURA DATI utilizzata ne sul modo in cui vengono realizzate le funzioni che essa mette a disposizione.
Occorre in sostanza:
specificare l'interfaccia del tipo di dato;
che l'interfaccia non renda visibile informazioni inerenti al tipo di dato ne al corpo delle funzioni.


Questa è la definizione tratta dal libro di Algoritmi e Strutture dati del Proff Vento e del Proff Foggia e reputo sia decisamente la più corretta.
Bye Folks :D
Rappresentante degli studenti al Consiglio Didattico di Ing. Informatica
Rappresentante degli studenti in Commissione Didattica di Ing. Informatica
Mail >> darioderosa89@gmail.com

#4
IbraAleKadabra

IbraAleKadabra

    Newbie

  • Utente
  • StellaStellaStella
  • 1194 Messaggi:
Ciao, allora posso spiegarti io..
Un Adt è proprio l'acronimo di Abstract Data Type (tipo di dato astratto).. Proprio la parola "astratto" ti deve far capire che non stiamo parlando di un qualcosa a livello fisico ma diciamo che stiamo parlando di qualcosa a livello "concettuale".. Infatti un Adt è una struttura dati astratta di cui noi sappiamo le funzionalità che ci mette a disposizione quella struttura dati indipendentemente dalla propria implementazione.. Un esempio, la quale risulta essere alquanto banale, è lo Stack!!! Noi conosciamo come funziona uno Stack e ci sono vari metodi implementativi (tramite array, collection, ecc, ecc..), ma a noi non interessa con quale struttura dati "fisica" sia implementato, basta che ci metta a disposizione i metodi comuni dello Stack (push, pop, isFull, isEmpty) e che funzionino.. Perciò parliamo di dato astratto..
Per quanto riguarda la Classe, esso risulta essere una specifica di un Adt e quindi l'implementazione vera e propria di uno Stack tramite una vera e propria struttura dati.. Tramite una classe, noi andiam a istanziare in memoria una vera e propria struttura dati!!!
Spero di essere stato esaudiente, se hai altri problemi, posta i tuoi dubbi!!!
:ciao:


P.s.: --------> viewtopic.php?f=15&t=8214 (guarda questo topic x ulteriori chiarimenti!!!)
"Puntalo ke te lo salti e se sbaglii fa niente, riprenditi il pallone e ripuntalo.. Se qualcuno ti dice qualkosa, dimmelo ke me la vedo io!!!"
Grazie di tutto Mister..

Immagine inviata

#5
WorldChallenge

WorldChallenge

    Advanced Member

  • Utente
  • StellaStellaStella
  • 75 Messaggi:
grazie mille, ho scaricato anche il libro ASD di vento e foggia e con questo e le vostre risposte ora raccolgo un po' le idee... :)
Buona Pasqua a tutti!!! :)

#6
IbraAleKadabra

IbraAleKadabra

    Newbie

  • Utente
  • StellaStellaStella
  • 1194 Messaggi:

grazie mille, ho scaricato anche il libro ASD di vento e foggia e con questo e le vostre risposte ora raccolgo un po' le idee... :)
Buona Pasqua a tutti!!! :)

Anche a te.. Se hai bisogno, a disposizione ;)
"Puntalo ke te lo salti e se sbaglii fa niente, riprenditi il pallone e ripuntalo.. Se qualcuno ti dice qualkosa, dimmelo ke me la vedo io!!!"
Grazie di tutto Mister..

Immagine inviata




Leggono questa discussione 0 utenti

0 utenti, 0 ospiti, 0 utenti anonimi