Anonymní profil Laaca – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Laaca – Programujte.comAnonymní profil Laaca – Programujte.com

 

Příspěvky odeslané z IP adresy 195.113.79.–

Pascal › Char v binární podobě
18. 1. 2013   #170300

Lepší je používat explicitní přetypování, t.j.:

[code]

b:byte;

c:char;

i:integer;

b:=byte(c);

c:=char(b);

i:=integer(c);  {Teoreticky lze, ale program pak může fungovat chybně, proto nepoužívat}

i:=byte(c);  {Lze, neni problem

[/code]}

Pascal › Výpis, absolute
28. 12. 2012   #169457

Ten postup je hodně nestandardní. Normálně se takové věci dělají takto:

type ta = array [-5..+15] of byte;

var i:byte; xa:ta; xb:^word;

begin
for i:=-5 to +15 do xa[i]:=abs(i);

xb:=@xa[-2];    
writeln(xb^);
end.

Pascal › dlouha cisla
8. 9. 2009   #115696

V pascalu jsi nějaký to desetiletí možná programoval, ale tvůj program je špatně.
Chybně vyhodnocuje záporná čísla a o desetinných ani nemluvě.

Laaca
Pascal › Properties, pseudoproměnné a…
13. 7. 2009   #111765

Zdar programátoři! Jestli vás zajímají pojmy z názvu tématu, tak si můžete přečíst moje povídání na INT21h.
Tam je ostatně i spousta jiných článků o pascalu, něco by vás mohlo zaujmout.
http://www.int21h.ic.cz/?id=102

Pascal › pole presahujici longint...
31. 10. 2008   #88805

Jinými slovy: použít na to Erastothenovo síto je volovina.

Pascal › pole presahujici longint...
31. 10. 2008   #88804

Na rozklad na prvočísla žádná velká pole nepotřebuješ. Bohatě by stačilo pole [1..100] of longint, možná i [1..10] of longint

Pascal › Optimalizace spojového seznamu
19. 10. 2008   #87803

No, přeskokový seznam mi příjde složitý na naprogramování. Potíž je, že s každou modifikací toho hlavního seznamu bys musel synchronizovaně měnit i přeskoky. To už mi příjde schůdnější přidat do spojového seznamu odkazy na abecedně vyšší a abecedně nižší prvek.

Spíš bych ti ale radil se v první fázi na třídění spojového seznamu vykašlat, napsat první neoptimalizovanou verzi kompilátoru a eventuálně se k tomu vrátit až později, kdy budeš program optimalizovat na rychlost.
Můžeš třeba zjistit, že pro normální programy bude i zcela neoptimalizovaný překladač na dnešních průměrných počítačích rychlý zcela dostatečně.

Pascal › Optimalizace spojového seznamu
19. 10. 2008   #87788

Aha, opožděně mi došlo, k čemu by ty hashe mohly bejt dobrý - jako obrana proti tomu, aby ti nevznikl nevyvážený strom. No... Ale i tak si myslím, že by bylo lepší obejít se bez nich.

Pascal › Optimalizace spojového seznamu
19. 10. 2008   #87787

Já bych se rozhodoval podle toho, jak často bys měnil prvky v seznamu - tedy jak často bys je přidával a ubíral.

1) Jestli je to tak, že na začátku programu vytvoříš spojový seznam a potom ho už neměníš a jenom z něho čteš, tak bych ho převedl na obyčejné setříděné pole.

2) Jestli ho intenzívně měníš, tak je nejlepší řešení binární strom. Na hashování bych se být tebou vybodnul - uvědom si, že MD5 hash má 16 bajtů, kdežto ty zas tak často nebudeš řešit případ, kdy by se odlišnost v řetězcích projevovala až na 17. znaku či dále. Pro porovnávání řetězců ani není nutné psát funkce pro převod na číslo; klidně můžeš napsat: if S1>S2 then ...

3) Jestli ho měníš jenom občas, tak můžeš buďto zase použít binární strom nebo se můžeš pokusit o tabulku odkazů uvnitř spojového seznamu. Struktura by potom vypadala takto:

polozka = record

nazev:string;
dalsi:^polozka;
vestsi,mensi:^polozka;
end;


4) A jestli ho intenzivně měníš, ale málo kdy z něho čteš, tak je lepší nechat ho netříděný.

Pascal › Prázdniny
17. 7. 2008   #79627

Hm, je vidět, že pascal tu používají lidi jenom jako předmět ve škole :smile10:
Žádní "dobrovolníci" nebo dokonce nadšenci. :smile19:
Přes prázdniny tu asi bude pěkně mrtvo....

Pascal › Help Prosim :-)
10. 6. 2008   #76390

Proč proboha XML ???

Ukládej to normálně do textového souboru třeba po řádkách
první řádka: znění otázky
druhá: číslo správné odpovědi
třetí-šestá: varianta odpovědi
sedmá: prázdný řádek
osmá: znění další otázky
...

Takovýhle soubor napíšeš v Notepadu, nebo v textovém editoru pascalu za pár minut a bezbolestně. Ještě je rozumné ještě před zněním prvním otázky uložit počet otázek v souboru - v programu to pak zjednoduší čtení z tohoto souboru.

Pascal › Help Prosim :-)
9. 6. 2008   #76290

Začni s tím, že si určíš, jakou použiješ datovou strukturu - tedy jakým způsobem budou v paměti uloženy testovací otázky a správné odpovědi. Z toho pak vyplyne všechno ostatní. Jedna možnost je toto:

type Totazka = record

zneni:string; {zneni otazky}
mozne_odpovedi:array[1..4] of string {predpokladame-li ctyri mozne varianty odpovedi}
spravna_odpoved:byte; {ktera z odpovedi 1..4 je ta spravna}
end;
...
var otazky:TOtazky;

Pascal › pomoc
6. 6. 2008   #76032

Proč to dělat jednoduše, když to jde udělat složitě, co?

Šmarjá noho, první číslo prostě vynásob deseti a přičti k tomu to druhé.

Pascal › HelpPlease- Soubor.txt_nacte…
6. 6. 2008   #76031

1) Načti celý řádek readln(soubor,s2);
2) Zjisti, kde je mezera i:=Pos(' ',s2);
3) To pred mezerou bude jedno slovo s1:=Copy(s2,1,i-1);
4) To za mezerou druhé: delete(s2,1,i);

Pascal › příkaz k přesměrování
5. 6. 2008   #75976

To se týká pascalu jenom nepřímo. Spíše je to záležitost operačního systému, v našem případě DOSu. Znamená to, že vstup nebo výstup se nebude provádět na klávesnici a na obrazovce, ale do jiného zařízení či souboru. Příklad:

dir *.* > vystup.txt

seznam souborů se neobjeví na obrazovce, ale bude zapsán do souboru vystup.txt
V pascalu se dají tato přesměrování do jisté míry ovládat. Napiš ale, o co ti přesně jde.

Pascal › Vesmírná arkáda
5. 6. 2008   #75975

Práci doporučuju začít prošmejděním Mircosoftových (ten člověk, co psal předchozí přízpěvek, ne M$ z Kalifornie) stránek a postahováním jeho jednotek na práci s grafikou,klávesnicí, časovačem atd. Nic lepšího neseženež, je to česky a se spoustou komentářů.

Laaca
C / C++ › přeložení .exe souboru do kódu
2. 6. 2008   #75677

Převod z EXE zpět na C kód samozřejmě možný je. Předpokladem ale je, že program byl přeložen se zapnutou debuggovací informací. Použij příslušný debugger (Turbo debug, GDB,...)

Laaca
Pascal › pomoc pri pascale
29. 5. 2008   #75291

I windowsí verze Freepascalu? To snad ne.

Laaca
Pascal › Semestrálky
26. 5. 2008   #75004
Pascal › ASCII kódy pro numerickou kl…
6. 5. 2008   #73100

Já totiž chci do svýho GUI přidat označování textu. Text půjde označovat buďto tažením myši (to bude ta obtížnější část) nebo pomocí Shift+šipka. No, a já potřebuju, aby stejně jako v TP šla použít šipka normální i numerická.

Takže, jak na to?

Laaca
Pascal › Prevod z *.EXE do *.PAS (*.T…
1. 5. 2008   #72822

Alespoň ve Freepascalu EXE do PAS převést jde, a to v případě, že překládáš se zapnutým Debuggining mode.
Jestli jsi to doopravdy překládal s tímhle nastavením, tak tohle EXE otevři v GDB a nech si vypsat zdroják programu. Musím tě ale varovat - GDB má příkazové ovládání (žádné IDE). Je možné, že nějaké IDE pro GDB existuje, ale já ho neznám.

Pascal › Datový strom,výpis struktury…
24. 4. 2008   #72186

Výpis stromových struktur do přehledného stromového formátu jsem nikdy nepotřeboval řešit, ale napsal jsem celý objekt pro práci se stromy. Ukládá se do binárního souboru, ne textového. Možná z toho přesto něco použitelného vytáhneš:
http://www.laaca.borec.cz/soubory/wokna32.rar - v archíve je soubor vaznik.pas a v něm je deklarovaný objekt TStrom, tak se na to když tak mrkni.

Pascal › Pieslice a Arc
17. 3. 2008   #68911
Pascal › Prohození obsahu dvou proměn…
17. 3. 2008   #68910

To Blujacker :
No jo, ale půvab není v tom, jak se to syntakticky zpracuje do programovacího jazyka, ale ten princip. Ty moje tři možnosti jsou použitelné i pro assembler. V Pythonu se to sice zapíše hezky elegantně jednoduše bez pomocné proměnné, ale vnitřně se to stejně provede pomocí ní.

Pascal › Domácí úkol
20. 2. 2008   #66578

No, ne úplně.
#8 posune kurzor o znak doleva, ale znak neodmaze. Proto jeste vypisuju mezeru, aby premazala tu posledni carku

Pascal › OOP v Pascalu
6. 2. 2008   #65163

Oba pojmy - tabulka virtuálních metod (VMT) i inherited souvisejí s dědičností objektů. Mircosoft se o dědičnosti bohužel moc nerozepisuje. Jestl nebudu mít moc silnou kocovinu. tak se v neděli pokusím napsat něco jako pokračování jeho manuálu.
Inherited můžu ale vysvětlit už teď. Když máš tuhle definici:



type
objekt1=object
Procedure PredstavSe;
end;

objekt2 = object(objekt1)
Procedure PredstavSe;
end;

objekt3 = object(objekt2)
Procedure PredstavSe;
Procedure PredstavSeJinak;
end;

Procedure Objekt1.PredstavSe;
begin
Writeln('Objekt1');
end;

Procedure Objekt2.PredstavSe;
begin
inherited PredstavSe;
Writeln('Objekt2');
end;

Procedure Objekt3.PredstavSe;
begin
inherited PredstavSe;
Writeln('Objekt3');
end;

Procedure Objekt3.PredstavSeJinak;
begin
Objekt2.PredstavSe;
Writeln('Objekt3');
end;


Po vyzkoušení bude zjevné, co inherited dělá. Volá metodu svého nejbližšího předka. Tedy Objekt3.PredstavSe a Objekt3.PredstavSeJinak jsou analogické.

Laaca
Pascal › scrolling textu
17. 12. 2007   #58793

Aha, ty chceš, aby se to psalo jenom do jedinného řádku. Já jsem naopak myslel, že chceš, aby se to přelévalo z řádku na řádek. To je jenom drobná úprava - až se dostanu domů, tak to udělám.

HTML / XHTML › seo-servis a alternativní text
16. 12. 2007   #58688

To Termikxs : Fakt vím kčemu slouží alt, ale nevím za boha nemůžu najít u kterého prvku sem na alt zapoměl.

Laaca
Pascal › pomoc DU
12. 12. 2007   #58247

1) porovnáš počet číslic. To, které jich má víc, je větší. Pokud jich mají stejně, tak přejdeš na bod 2
2) pomocí cyklu budeš procházet obě čísla po jednotlivných cifrách s převodem na velká písmena:
a:=UpCase(prvni[i]);
b:=UpCase(druhe[i]);
if a>b then prvni_je_vetsi else if b>a then druhe_je_vetsi else pokracuj_v_cyklu

Laaca
Pascal › Problém s ukončováním
23. 10. 2007   #52416

Přihřeju si vlastní polívčičku:
vyčerpávající, srozumitelný, dobře napsaný a hlavně můj :-) návod na práci se soubory v pascalu je tady:
http://www.int21h.ic.cz/?id=85

Laaca
Pascal › Problém s ukončováním
22. 10. 2007   #52166

Máš to špatně. Na kód za end. se překladač nikdy nedostane. Pascal tedy vidí jenom:



Program Vypis;
uses crt;
begin
textcolor(white);
clrscr;
readkey;
end.

Tudíž se jenom smaže obrazovka a čeká na klávesu.

 

 

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