Pouze tento týden sleva až 80 % na e-learning týkající se Javy. Zároveň využij akce až 50 % zdarma při nákupu e-learningu - více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
java week + discount 50

Pascal

K Pascalu jsem se dostal v kroužku na střední škole a od té doby mě to nepustilo. Je pravda, že pokrok nezastavíme a zlatá éra DOSu skončila už před hóóódně dlouhou dobou, ale mě se šťourání na úrovni hardwaru, ruční optimalizace a pocit, že všemu vidím pod kůži, prostě líbí :-)

Nejčastější problémy a jejich řešení

Problém: Mám M$ Windows XP a při spuštění BP7 mi píší chybovou hlášku :
16-bitovy subsystém MS-DOS
Cestak programu, který se snažíte spustit nebo nainstalovat C:\Windows\Sys­tem32\Autoexec­.nt The system file is not suitable for running MS-DOS and Microsoft Windows applications. Choose 'Close' to terminate the application.
Řešení: Vložte CD s M$ Windows XP do mechaniky a spus?te (nabídka start --> spustit) následující příkaz :
expand X:\i386\autoe­xec.nt_ c:\windows\sys­tem32\autoexec­.nt
X nahraďte písmenem vaší CD-rom jednotky.

Problém: Snažím se spustit program, co používá BGI grafiku (jednotku GRAPH), ale píše to chybu :
BGI Error: Graphics not initialized (use InitGraph)
Řešení : Pascal zřejmě nemůže najít soubor BGI (nejčastěji egavga.bgi). Ujistěte se, že ho máte v aktuálním adresáři a ze není určený "jen pro čtení". Případně použijte File --> Change dir a nastavte BGI adresář (standardně bp7\bgi).

Problém : Při používání jednotky CRT nebo při spouštění zkompilovaných souborů z internetu mi Pascal hází hlášku :
Runtime Error 200: Division by zero
Řešení : Tato chyba je způsobena rychlostí počítače. Pokud máte procesor rychlejší, než 233 mhz, musíte si v BIN adresáři přepsat pár souborů, aby jste mohli překládat. Pro spuštění již přeložených souborů potřebujete utilitu TPPatch, které dáte jako parametr jméno exe souboru a ona ho opraví. Všechny tyto opravy jsou obsaženy v mém BP7 (ke stažení nahoře).

 

Pascal Pokud máte nějaký problém a potřebujete pomoci při programování v Borland Pascalu / Free Pascalu / Turbo Pascalu, navštivte naše fórum.

 

Unity/Jednotky

Pokud byste si nevěděli rady s deklarací, unity jsou použity v našich hrách a programech. Jednotky jsou ke stažení v archivu na konci článku.

SVGA 4 - Nejlepší unity na grafiku do Pascala, co znám. Jsou rychlé, podpora rozlišení od 320x200 do 1152x864 na 256 barev, podpora průhlednosti, loading/saving PCX, funkce na změnu hranic vykreslovacího okna (clip), fonty, palety, polygony, VSync, fade, samozřejmě práce s images, elipsy a podobně. Zdrojové kódy jsou v adresáři source\borland (VGA256.pas a SVGA.pas). Tyto jednotky potřebujete k preložení téměř každého mého programu. Bohužel mohou nastat komplikace u některých novějších grafických karet (někdy se stává, že změní frekvenci monitoru mimo rozsah)

Keypres2 - Tohle je úžasná unita pro práci s klávesnicí. Také vás už štvalo, když jste psali nějakou hru a funkce readkey nezvládala více stisknutých kláves najednou ??? Tady je klávesnice pole a vy si jednoduše zjišťujete, které klávesy jsou momentálně stisknuty.

Plus system pro 2.3 - Nadstavba na Borland Pascal 7.0 umožňující rychlou grafiku, přehrávání zvuků (XMI a SND souborů) na pozdí, myš s animovanými kurzory, přehrávání FLI animací a spostu dalšího. Vsechno to zkopírujte do adresáře s Pascalem (Bp7).

  • Stáhnout XMI pack - Sbírka 303 XMI hudebních souborů pro zkrášlení vašich her.

SBwav - Unita umožňující přehrávat nekomprimované wav soubory NA POZADÍ. Když se wav soubor upraví třeba v GoldWave, má jedna minuta něco málo přes 1 mb, kvalita ujde a velikostí si je podobný s MP3. Funguje i pod win XP a součástí ZIPu je ukázkový program.

Mouse & BMP - Unita na myš a na loading BMP souborů. BMP unita je však pomalá a je pro BGI (standardní GRAPH unitu), takže doporučuji používat spíše PCX z SVGA4. Pod SVGA4 se nezobrazí kurzor myši (256 barev) a proto ho je nutné kreslit a mazat v nějakém cyklu. Také se musí nastavit limity myši podle rozlišení, no SVGA je zkraka trochu složitější, ale použití je obsaženo v roomeditu ve hře NIGHTwalker. Obsahuje BGI ukázku.

TPMOD - Toto není unita, ale ukázkový program, co využívá objektový soubor. Unitu z něj ale uděláte za 30 sekund... Běží pouze pod čistým DOSem a dokáže přehrávat na pozadí MOD soubory (to je něco jako midi, ale má to vlastní banku, takže to umožňuje i slova atd.) a to na PC speakeru, na COVOXU či SoundBlaster nebo Adlib kompatibilní zvukové kartě. ZIP obsahuje 6 ukázkových MODů.

Mircosoftovy jednotky najdete támhle, následuje stručný výtah toho nejužitečnějšího. Většina zdrojáků je podrobně okomentovaná, takže by s pochopením principů neměly být potíže. Kdyby byly, řekněte, pokusím se to napravit.

640 KB paměti mi nestačí, chci víc! V reálném režimu (real mode), ve kterém TP pracuje, to jde přes XMS nebo EMS (nebo možná i jinak, ale to už jsem nezkoumal). Stará se o to jednotka XMS.

Potřebuju urychlit přesuny dat z místa na místo.
Klíčem je využití 32bitových instrukcí. Překladač Pascalu je sice nezná, ale vkládanému Assembleru je můžeme vnutit přes strojový kód. Vyřešeno v jednotce Need For Speed UnderPascal.

Chci sériovým kabelem posílat data mezi dvěma počítači.
Žádný problém - jednotka COM to umí.

Potřebuju si přesně načasovat cyklus, ale s Delayem to běží na každém procesoru jinak rychle. Co s tím?
Chce to oddělit začátek měření času od volání čekací procedury a tělo cyklu vložit mezi ně. Dá se postupovat buď přes Gettime, což je dost těžkopádné, nebo přímo přes systémový časovač, což dělá jednotka Čas.

Píšu hru a potřebuju detekovat několik současně stisknutých kláves pro pohyb a střelbu. Jak?
Doporučuji vykašlat se na jednotku Crt a pověsit si na přerušení klávesnice vlastní obsluhu. Tohle a spoustu dalších věcí týkajících se klávesnice umí jednotka Klávesy 2.

Dostali jsme úkol z matematiky, tak sháním něco na matice, komplexní čísla, funkce, vyhodnocování výrazů a tak.
To je mi náhoda, jednotka Matyka zrovna tohle obsahuje.

Následující jednotky už potřebují jedna druhou nebo ty výše uvedené, takže není zaručeno, že co stáhnete, to hned půjde přeložit:

Jednotka Graph je pomalá a 16 barev mi nestačí, chci nějakou lepší grafiku.
Na to tu máme hned dvě jednotky: VGA pro 256 barev a rozlišení 320x200 pixelů a VESA taky pro 256 barev, ale rozlišení od 640x480 po 1024x768.

256 barev se mi líbí, ale chci si míchat svoje vlastní, měnit jas obrazovky a tak.
Od toho je tu Paleta 2.

Jo, a hlavně myš! Jak se používá myš?
Žádná standardní jednotka na to není, ale služby přerušení $33 naštěstí nejsou nic složitého. Jednotky na to mám dvě: Myš 3 pro VESu a VGAMyš pro VGA. Jestli chcete něco pro Graph, vykuchejte si z nich, co uznáte za vhodné.

Mám grafiku, ale nevím, jak načíst nebo uložit obrázek. Pomóc!
Formáty BMP, PCX, CUT a ORF zvládá jednotka Images. Stavěná je pro spolupráci s jakoukoli 256barevnou grafikou. Kromě načítání a ukládání umí obrázky i různě upravovat.

Už mě nebaví pípání se Soundem a Nosoundem, dalo by se hrát normálně přes zvukovku?
Jasně, jenom se to zase musí napsat úplně od podlahy, protože nic předdefinovaného na to není. Načítač WAVů a přehrávač s mixérem jsou v jednotce Zvuky.

Mám grafiku a myš, teď by se hodila nějaká tlačítka, dialogová okna a tak.
I to se dá zařídit, mám na to jednotku Woknows 4. Na první pohled vypadá dost složitě, ale zase toho docela dost umí.

 

 

Tabulka period tónů k vestavěné proceduře sound. Třeba se to bude někomu hodit...

Tón C Cis D Dis E F Fis G Gis A B H #
Perioda 131 138 147 156 165 175 184 196 208 220 233 248 #
Tón C1 Cis D Dis E F Fis G Gis A B H #
Perioda 262 278 293 310 329 347 372 390 415 438 463 492 #
Tón C2 Cis D Dis E F Fis G Gis A B H C3
Perioda 524 551 592 627 666 695 743 780 841 888 940 999 1065

 

Programy a hry se zdrojovým kódem

Drobotina, pro kterou se nevyplatí psát samostatné články:

Jestli jste si stáhli některou z mých jednotek, možná se vám budou hodit editory na fonty, myší kurzory, palety a rozložení kláves.

Utilitky pro práci se soubory:
Porovnávač vám řekne, kde přesně se dva textové soubory liší. Recoder převede texťák z jednoho kódování češtiny do jiného. CR+- mění formát konce řádků z LF na CRLF a naopak. Kill Read-Only hromadně ruší atribut "jen pro čtení". Řezník dělí soubory na kusy a Skládač je zase slepuje.

Stavíte papírové modely? Pak by se vám mohlo hodit něco na rozvinutí kuželů, boků pneumatik, seřízlých válců a průniku dvou válců do roviny.

Pak tu ještě máme variaci na téma Mandelbrotova množina a jednoduchý řešič Sudoku.

Kdyby vás zajímal zbytek, podívejte se támhle.

PCX view
Nehodnoceno
 0x
Housenka
Nehodnoceno
 427x
Mystify
Nehodnoceno
 0x
Bakterie (Game of life)
Nehodnoceno
 1 606x
M-Tetris
Nehodnoceno
 0x
BioVirus
 318x
ClerkBuffer
Nehodnoceno
 0x
Mandelbrotova množina
Nehodnoceno
 0x
onvoH šachy v 0.1
Nehodnoceno
 343x
CopyFile2
Nehodnoceno
 0x
pUsher
Nehodnoceno
 239x
Grafák
Nehodnoceno
 376x
Brutal sudoku solver
Nehodnoceno Vydáno: 2008
 288x
Dungeon
Nehodnoceno
 278x
SinCos
Nehodnoceno
 0x
Kosmostřelci
MKeyB
Nehodnoceno
 0x
Mines
 1 097x
Želvička karetka
Vydáno: 2002
 1 077x
TextScroll
Nehodnoceno
 0x
String Replace
Nehodnoceno
 0x
Nightwalker
Nehodnoceno
 1 156x
Puzzle
Nehodnoceno
 0x
Light
Nehodnoceno
 0x

Materiály

 

Co se řeší ve škole

Většina těchto prográmků vznikla jako odpověď na časté dotazy začátečníků nebo stylem "zajímavá úloha - schválně, jestli to taky zvládnu". Ve zdrojových kódech většinou komentuju i věci, které normálně považuji za samozřejmost. K přeložení nejsou potřeba žádné jednotky.


 

 

Návody a taháky

Sbírka textů, které by se mohly hodit. Vše ve formátu TXT bez hacku a carek.

Další texty postupně zpracuji do formy samostatných článků.


Odkazy


Zde je pár odkazu na stránky o Pascalu...

Michael Stavěla - Sbíka několika pěkných programů a her se zdrojovými kódy

Zde naleznete odkazy na freeware IDE, ve kterých můžete v daném jazyce programovat

Dev Pascal

Lazarus FreePascal


 

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 2167x (6.56 MB)

 

Aktivity