
[Pascal] Datové typy
Dobrý den, chtěl bych začít s programování je mi 12 let... Chci začít v Pascalu, ale nemůžu pochopit co jsou to datové typy :( :'( Nemůže mi to někdo co nejvíce laitsky vysvětlit ? Děkuji mooooc :)
Změna předmětu, původně: Datové typy (JaFi)
maminka má doma určitě kořenky:
pepřenku
solničku
papriku
bobkový list
všimni si že, každá z těch nádobek má úplně jiný tvar vysypávacího otvoru - solnička spoustu dírek, pepřenka jen jednu, paprikáš má malou lžičku a bobkový list zase běžné víčko.
No a to je i princip datových typů, fungují jako ty kořenky. Do jednoho "pasují" jen celá čísla, jiný je předchystán na čísla reálná, třetí zase akceptuje znaky, čtvrtý akceptuje řetězec textu.
říkal jsem, že je mi 12 ne 5 :D Ale moc děkuju... Jenže bych potřeboval vědět (je to moje vina nezmínil jsem to tam) Jsou to jako data, které jsou tři typy ? A ty se ukládají do proměnných nebo vůbec nechápu co to je :(
Ked si nadefinujes nejaku premennu napr.
Integer X
tak tym rezervujes miesto v pamati pre nejaku celociselnu hodnotu X, neskor mozes napisat
X=3
alebo
X=X+1;
sranda bude ked napises
X=10/3 tak bude v X ulozene cislo 3.
nejsem si jist, že je operand "/" pro integer definovaný, tam se snad používá div a mod.
edit: ale v práskalu jsem už 20 let nic nenapsal
Je, ale vysledkem je real, takze 3,333333
to je jasné, spíše si nejsem jistý, zda dojde k automatickému přetypování. edit: a zpětné konverzi do integeru.
Ne, ke zpetne konverzi nedojde, skonci to chybou kompilatoru, ze cpes real do integer. V tomhle je Pascal prisny, nic neodpousti a nedela za tebe.
Idealni na to, abys neziskal spatne navyky (VB bez definovani promennych apod.)
no právě, že se mi cosik o tom vybavilo, že to nebyl žádný Bára Basic nebo vitamín C.
celociselne delenie ma urcite aj pascal. Je to jedna z najzakladnejsich operacii vo vypoctiovej techike. Nic sa tam nekonvertuje. Stavim sa o 10piv ze to je /. Paskal som 20rokov nevidel.
P.S: jo tak celociselne je div, ze sa mi kvoli kazdej prkotine nechce hned spustat google :) (piva si ale aj tak vypijem sam :P)
http://pascal.comsci.us/etymology/operator/idivisi on.html
result type: integer
Jasne, ale to je celociselne deleni - DIV a MOD jako zbytek po celociselnem deleni
Ale pokud to napises tak, jak to bylo napsano - normalni deleni 2 celociselnych typu, X/Y, tak vysledek je real.
A to pivo si dej
V Pascalu možná, ve spoustě jiných jazyků se to vydělí celočíselně.
datový typ = formát dat: číslo celé, číslo reálné, byte, znak, string (řetězec), pascal jich má spoustu, některé se překrývají
data = samotný obsah definovaný formátem dat alias datovém typu
proměnná = kus paměti v počítači, ve kterém jsou umístěna data v předem datovém typu
Aha takže datový typ je formát data ? Jestli ano tak jsem to pochopil...
ano.
edit: ovšem nikoli "vizuální" formát dat, ale způsob jejich reprezntace v paměti počítače. Protože, jak známo, počítač umí pracovat pouze s nulami a jedničkami.
Ne data (datum), ale dat.
Napr. promenne jsou urciteho typu (datoveho typu). Jmena budes ukladat do datoveho typu string (retezec), cislo domu do typu Integer (cele cislo), rozmery treba to typu real (obecne cislo s desetiinou carkou).
Pak existuji datove typy TDateTime, Boolean, char, ...
Musis zvolit spravny datovy typ pro data, se kterymi chces pracovat.
google a citat vysledky si este neskusal? Datov%C3%BD_typ
Rozdeluje sa to preto lebo napr. 10 delene 3 moze byt aj 3 ak su vsetky tie premenne typu integer. Keby boli typu float tak bude vysledok presny (3,333333333).
Hlavne sa to odlisuje preto lebo odlisne typy sa odlisnym sposobom ukladaju do pamate a odlisnym sposobom spracovavaju v CPU (napr. praca s integermi je 10x rychlejsia a jednoduchsia). Pri kazdom type je nutne mat na pamati hranicne hodnoty daneho typu, nemozes do integeru ulozit akekolvek cislo, ptz to by potom neslo spracovavat hardwarovo, takze ak u integeru urobis 2miliardy plus 3miliony, tak z toho vznikne minus 2miliardy ptz to "pretieklo" cez maximalnu hodnotu integeru (32bitoveho). Preto ak chcem robit s napr. velkymi cislami tak potrebujem pouzit iny datovy typ (a ak cloveka napadne ze sak pouzijem float tak je nutne mat na pamati zas to ze mantisa ma tiez obmedzeny pocet bitov takze pri velmi velkych cislach zacnu vznikat nepresnosti)
obávám se, že 12-letý kluk zpracovaný současným školským systémem to takto nepochopí
Ja viem ale aspon to bude mat na pamati ze aha dakto daco take pisal ked sa bude divit neskor ze 2miliardy plus milion je zaporne cislo :D