Rozdíl mezi dynamickým datovým typem a abstraktním datovým typem – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Rozdíl mezi dynamickým datovým typem a abstraktním datovým typem – Pascal – Fórum – Programujte.comRozdíl mezi dynamickým datovým typem a abstraktním datovým typem – Pascal – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Gooo0
Newbie
25. 1. 2015   #1
-
0
-

Zdravím

Informace, které jsem vyčetl:

Dynamický datový typ: Nedeklaruje se na začátku programu, může se během chodu měnit (co se může měnit?), nevymezí se mu místo v paměti na začátku, nemá identifikátor, ale jen jeho datový typ a ukazatel, vytváří se až ve chvíli, kdy jej potřebujeme.

Abstraktní datový typ:

  1. Zásobník: LiFo. Data které se uloží jako poslední se také jako první odebírají
  2. Fronta: FiFo. Klasická pronta. Kdo přijde dříve je dříve odbaven
  3. Seznam: Každému prvku je přiřazen ukazatel, který ukazuje na další prvek
  4. Strom: Prochází se do šířky a do hloubky a následně se ještě upřesňuje dle preorder, inorder a postorder.

Tolik teorie, kterou jsem vyčetl (snad správná). První popis u dynamického datového typu je ale vysvětlení, jak se tento typ chová. U abstraktního typu je ale výpis řekněme ukládání dat. Nějak jsem se nedočetl to vysvětlení chování abstraktního typu a nebo způsob ukládání u dynamického, takže nemám dvě stejné hodnoty, které bych porovnával a mohl říci rozdíl mezi nimi. Poradíte mi? Děkuji

Nahlásit jako SPAM
IP: 178.72.244.–
Reklama
Reklama
KIIV+42
God of flame
25. 1. 2015   #2
-
0
-

Trochu me zmatl nazev, ale z popisu ti jde i dynamickou alokaci promennych. Typ je urcen typem pointeru, ale neni to nutne pravidlem - da se zmenit jeden typ pointeru na jiny.

Narozdil od statickych promennych, muzes dynamicky alokovat vyrazne vetsi pole (ano pointer vicemene znamena pole). Staticke promenne jsou rezervovany na stacku a ten byva zpravidla jen par MB, dynamicke jsou alokovany na heapu, kde mas k dispozici klidne i celou ram (a v nekterych systemech muzes zabrat i vic nez mas velikost ramky a dokud se nedostanes s vyuzitim mimo pamet, tak ti program ani nespadne - jak ram vyplnis, tak mas smulu a sejme te OOM killer)

Abstraktni datove struktury jsou abstraktni proto, ze je to obecny princip, a nezalezi na datech, co v nem jsou ukladany (+ obvykle se kombinuji s dynamickou alokaci, aby se mohly tvarit jako neomezene velke). Zasobniky, fronty, stromy, to vse se pouziva pro ruzny data - od cisel po objekty..

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Mircosoft+1
Věrný člen
26. 1. 2015   #3
-
0
-

Trochu bych upřesnil terminologii:

1) Proměnná je místo v paměti, do kterého se ukládají data. Proměnná může být statická (deklarovaná už ve zdrojáku a přístupná přes svůj identifikátor), nebo dynamická (vytvořená až za běhu programu a přístupná přes nějaký ukazatel). Velikost a vnitřní uspořádání proměnné jsou dané jejím datovým typem.

2) Datový typ je něco, co se definuje ve zdrojáku a určuje to velikost a vnitřní strukturu proměnné. Samotný datový typ se za běhu programu měnit nedá - je to záležitost překladače, procesor už vidí jenom adresy, ofsety a délky. Jediná možná "změna typu" je tzv. přetypování, neboli přístup k proměnné jednoho typu, jako kdyby se jednalo o proměnnou jiného typu (např. číslo typu dword si můžeme přetypovat na pole čtyř bytů).

3) Abstraktní datová struktura (slovo typ bych sem vůbec nemíchal) je způsob uložení a uspořádání proměnných v paměti. Zásobník, fronta apod. jsou jenom obecné principy, implementovat se dají různými způsoby (jak třeba statickým polem, tak i dynamickým spojovým seznamem nebo něčím úplně jiným).

Nahlásit jako SPAM
IP: 212.79.106.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 7 hostů

Podobná vlákna

Rozdíl mezi == a is — založil Ahoj3

Rozdíl mezi C, C++ a C# — založil Murmand

Rozdil mezi endl a \n — založil MyName

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý