Názory ke článku Turbo Pascal - 9. lekce
18. 1. 2006
Tak tato lekce mi pripomela, ze pascal obsahuje konstantu PI, kterou jsem vsak nikdy nevyuzil a asi ani nevyuziji. Musim bohuzel nesouhlasit s tim "const dvojnasobek : integer = 5" konstanty by se mely psat bez typu, to proto, aby se s nima lepe pracovalo, staci jen napsat "const dvojnasobek = 5" a je to, zadny integer, byte, nebo neco podobneho, to by nas jen mohlo omezovat, hlavne ve slozitejsich programech by toto byla obrovska chyba, protoze kdyz integeru nastavime hodnotu vyssi nez 32768 tak se z nej stane -32768 a to v grafice DOKAZE SEKNOUT PC ! Takze kdyz napiseme jen dvojnasobek = 5, nebo slovo ='ahoj'; tak je to kratsi a lepsi !
Const Retezec = 'Jinak je to peknej clanek !";
Když jsem v záznamu vytvořil pole a chtel jsem ho ohraničit konstantou "const max : integer = 6;" , hodilo mi to chybu. (když jsem zadal číslo přímo, normálně šlo) Není to z toho důvodu, co psal FReeZ?
V tomto případě musím souhlasit s Freezem a potvrdit dotaz pana Hlaváčka. Zapoměl jsem do článku připsat, že konstanty se deklarují většinou bez datového typu a chybu napravím.
Děkuji za upozornění
Ahoj Tomáši,nevim zda si to myslim správně ale podle mě nemůžeš mít shodné jméno programu s novým datovým typem (program lide/type Lide) ... nebo aspoň mě to pak hází chybu.
A pak máš ještě asi chybu v programu kde chceš vypsat jméno,věk,bydliště ... tam by jsi měl asi mít místo udaje.jmeno/udaje.vek/udaje.bydliste --- osoba.jmeno,...
Jinak díky za povedený lekce ;o)
... neboli Array[1..x,1..y] of integer;
Je potřeba např. při počítání s maticemi.
Jinak výborný kurz :ms_0435:
mam otazku. jsem uplny zacatecnik, takze je to mozna blbost... :ms_0139: . na co je mi konstanta 'dvojnasobek=2', kdyz misto cislo*dvojnasobek, muzu napsat cislo*2...dekuju, lekce se mi moc libi
konstantami si mozes ulahcit pracu, napr keby si pracoval s notami a chcel nastavit dlzku tonu (napr. 1000=cely ton, 500= polovy, 250= stvrtovy) tak si tie cisla nemusis zapamatat a vtedy je lepsie si konstanty nadefinovat a stvrtovy je lahsie ako 250
15. 2. 2007
Caw, Tomasi!
Ja sem totalnej zacatecnik v programovani, tvuj kurz se mi moc libi,protoze je fakt super. Pri 9. lekce sem se sekol kvuli domacemu ukolu:
Ja nevim jak bych mohl zapsat cyklus tak aby mi napsal spatky kazdou inou osobu. Doufam ze ses pochopil na co sem myslel... Cyklus zapsat porad vim, vypis s cislo:=cislo+1; mi taky nedela problem jen to akoby sem mohl vypsat vsechny lidi s udajema....
Zadam te o to aby si mi o tom kratce napsal neco a taky napsal kratuckej programik s prikladem.
Mockrat ti dekuji
HURICANE
9. 3. 2007
Ježiš to je blábol. Zápis
const N:integer=5;
je tzv. definice inicializované proměnné. Hodnotu N můžeš kdykoliv měnit, není to konstanta. Já vím, že slovo const v deklaraci mate, ale tenhle rys pascalu bys měl znát.
No tak myslim že s freezem poprvé (bez urážky) musim docela souhlasit..
20. 7. 2007
Zezacatku me tento kurs prisel dobrej kvuli jednoduchosti a srozumitelnosti, ale jak vidim cim dal vic chyb, tak jsem cim dal zklamanejsi. Hlavne kvuli tomu ze si Tomas nebo nekdo kdo ma pristup na server nenajde cas na spraveni techto chyb. Potom to cele nedava smysl.
29. 7. 2007
taky sem začátečník v Pascalu, takže to ode mne ber jako radu s rezervou - jestli ti nikdo neporadil a DÚ si dělal pomocí záznamu, zkus ho vyřešit pomocí pole (Array)...
v tom poslednom príklade je chyba, je tam:
write(udaje.jmeno,' ',udaje.vek,' ',udaje.bydliste);
a má tam byť osoba, nie udaje...
9. 11. 2007
To HURICANE:
ja bych to zapsal takle
var lidi: Array [clovek1,clovek2,clovek3] of string;
a do programu staci napsat
writeln(lidi);
doufám.....
Reagoval na komentář od uživatele :
Rád bych věděl, kde jsi přišel na to, že v Turbo Pascalu jde měnit hodnota konstanty, pravda je, že se má raději zapisovat bez datového typu. Ale měnit v průběhu programu nejde, aspoň nevím tedy jak. Ani přirazením, tak ani načtením z vnějšího zdroje.
Sám jsem si to raději otestoval, konstanta opravdu nešla změnit. Pokud mi napíšeš jakým způsobem, tak potom budu velice rád, že jsem se naučil něco nového :-)
19. 9. 2008
Reagoval na komentář od uživatele --==[FReeZ]==-- :
pokud je v deklarační části const za identifikátorem typ, pak se nejedná o konstantu, ale o proměnnou s definovannou hodnotou. Tato proměnná se chová jako proměnná ve všech případech, čili jde jak měnit její hodnota, tak jde například i přetypovat. Co se týče konstanty (bez uvedeného typu), je ve výslednym zkompilovanym kódu pouze číslo nebo hodnota jako taková a nic se neukládá do paměti (proto zde neni potřeba znát typ :-P ). Takováto hodnota samozdřejmě nejde změnit.
Takže při deklaraci
const
dvojnasobek = 5; { číslo 5 nebude uloženo v paměti, ale pouze ve strojovém kódu }
trojnasobek : integer = 5; { obyčejná proměnná typu integer s hodnotou 5 }
používání proměnné trojnásobek jako konstanty je v tomhle případě zbytečnost a jenom to zhoršuje odlaďování. Program potom bude teoreticky potřebovat o dva bajty víc paměti (s 32-bitovým kompilerem to může stát ještě o 2 bajty víc ;-) ) a bude pomalejší, protože načíst hodnotu z paměti do procesoru stojí o něco víc času.