Pascal

Ostatní jazyky 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.

Grafák

Grafák v 1.0

Program pro vykreslení grafu libovolné funkce jedné nebo dvou proměnných a hledání nulových bodů.
 366x Zdarma Nehodnoceno Napsal Mircosoft
Bakterie (Game of life)

Bakterie (Game of life) v 1.0

Program Bakterie (bacteries, game of life) a jeho zdrojový kód v Pascalu ke stažení
 1 494x Zdarma Nehodnoceno Napsal David Čápka
CopyFile2

CopyFile2

Utilitka kopíruje obsah jednoho souboru do druhého a to z určité pozice do určité pozice.
 0x Zdarma Nehodnoceno Napsal Michael Stavěla
Light

Light

Textový šetřič obrazovky, který lze použít u některých DOS-FILE-Manažerů. Kruhový výřez světla putuje obrazovkou a odráží se od bočních stěn.
 0x Zdarma Nehodnoceno Napsal Michael Stavěla
Nightwalker

Nightwalker v 0.5

Hra nightwalker (plošinovka) v Pascalu včetně zdrojových kódů
 1 132x Zdarma Nehodnoceno Napsal David Čápka
Mandelbrotova množina

Mandelbrotova množina

Ukázka známého algoritmu ještě známějšího fraktálu.
 0x Zdarma Nehodnoceno Napsal Michael Stavěla
Puzzle

Puzzle

Puzzle je jednoduchá skládanka se šestnásti políčky. Hra využívá standardní VGA rozlišení 320x200 bodů v 256 barevné paletě.
 0x Zdarma Nehodnoceno Napsal Michael Stavěla
Mystify

Mystify

Známý šetřič obrazovky s pohybujícími se útvary (trojúhelníky, mnohoúhelníky..), tyto obrazce je možné přidávat přímo vstupními parametry do programu.
 0x Zdarma Nehodnoceno Napsal Michael Stavěla
onvoH šachy v 0.1

onvoH šachy v 0.1

hra šachy pro dva hráče v Pascalu včetně zdrojového kódu
 305x Zdarma Nehodnoceno Napsal David Čápka
Želvička karetka

Želvička karetka v 1.0

Hra Želvička karetka ke stažení včetně zdrojového kódu v Pascalu
 1 051x Zdarma 44444 Napsal David Čápka | Vydáno: 2002
pUsher

pUsher v 1.0

Pojďte si zacvrnkat :-)
 232x Zdarma Nehodnoceno Napsal Mircosoft
SinCos

SinCos

SinCos – Vykresluje průběh funkcí sin(x), cos(x), tg(x), cotg(x) pomoci BGI driveru.
 0x Zdarma Nehodnoceno Napsal Michael Stavěla
M-Tetris

M-Tetris

Poměrně kvalitní "M" Tetris ikdyž není plně dotáhlý do konce. Nicméně je hratelný, využívá SVGA rozlišení (640x480 ve 256 barevné paletě).
 0x Zdarma Nehodnoceno Napsal Michael Stavěla
Mines

Mines v 1.0

Mines je obdobou hry hledání min/hledač min, vytvořenou v Pascalu. Můžete si ji stáhnout včetně zdrojových kódů.
 1 071x Zdarma 44444 Napsal David Čápka
Housenka

Housenka v 1.1

Jednoduchá hra typu had. Účelem je přežít s rostoucí housenkou co nejdéle.
 403x Zdarma Nehodnoceno Napsal Mircosoft
TextScroll

TextScroll

TextScroll – Program načtě text zadaný z klavesnice a "scrolováním" ho zobrazuje v grafickem prostředí (320x200x256).
 0x Zdarma Nehodnoceno Napsal Michael Stavěla
PCX view

PCX view

Prográmek pro zobrazení souborů PCX, ovšem myslím si že jen obrázky v rozlišení 320x200 bodů s 256 barevnou paletou.
 0x Zdarma Nehodnoceno Napsal Michael Stavěla
ClerkBuffer

ClerkBuffer

ClerkBuffer – ukázka čištění buffru klávesnice využitím BIOS proměnných.
 0x Zdarma Nehodnoceno Napsal Michael Stavěla
Kosmostřelci

Kosmostřelci v 1.1

Sestrojte si kosmickou stíhačku a zabojujte si s kamarády.
 276x Zdarma Nehodnoceno Napsal Mircosoft
Dungeon

Dungeon

Dungeon je kroková 3D hra naprogramovaná v Turbo Pascalu 7.0, ve které se s hlavním hrdinou ocitnete v bludišti plném nepřátel.
 245x Zdarma Nehodnoceno Napsal Mircosoft
BioVirus

BioVirus

BioVirus je můj vir, naprogramovaný v Pascalu. Můžete si ho stáhnout včetně zdrojových kódů.
 305x Zdarma 55555 Napsal David Čápka
Brutal sudoku solver

Brutal sudoku solver v 1.5

Program i se zdrojovým kódem v Pascalu. Dokáže vyřešit jakékoli vyřešitelné sudoku (buď logickou úvahou nebo hrubou silou).
 264x Zdarma Nehodnoceno Napsal tastyfish | Vydáno: 2008
MKeyB

MKeyB

Ukázka obsluhy klavesnice.
 0x Zdarma Nehodnoceno Napsal Michael Stavěla
String Replace

String Replace

String Replace je program který zaměnuje řetězec za řetězec v daném souboru. Předností programu je nerozlišování souboru.
 0x Zdarma Nehodnoceno Napsal Michael Stavěla

Materiály

Palm OS Pascal compiler

Palm OS Pascal compiler

Freewarový překladač jazyka Pascal pro platformu Palm OS a několik projektů v něm vytvořených se zdrojovým kódem ke stažení.
Zdarma Nehodnoceno Napsal David Čápka
COVOX - udělejte si za půl hodiny svou zvukovou kartu

COVOX - udělejte si za půl hodiny svou zvukovou kartu

COVOX je digitálně/analogický převodník na LPT port, jedná se o zvukovou kartu, kterou si dokážete vyrobit za půl hodiny
Zdarma Nehodnoceno Napsal David Čápka

 

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ženo 1037x (6.56 MB)