Vykreslení obrazce – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vykreslení obrazce – Pascal – Fórum – Programujte.comVykreslení obrazce – Pascal – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Bobacz0
Duch
23. 5. 2012   #1
-
0
-

Dobrý den, 

studuji strojírenskou školu, ve které máme jeden rok programování v jazyce Pascal. Dostali jsme zadaný domácí úkol ve kterém se mi naskytl problém. Zadání zní :  

Vytvoř program podle přiloženého vzoru. Měl by obsahovat následující dílčí kroky

1. Na horní řádek obrazovky bude zaplněn písmeny X (použijte vhodný cyklus).

2. Nabídněte uživateli možnost zadat velikost okna (šířka i výška) v daném rozsahu (2 až 10). Ověřujte správnost zadání - v případě nesprávného údaje bude program ukončen.

3. Opakovaně budou po stisku klávesy zobrazována na obrazovce okna o uživatelem stanovené velikosti (viz krok 2), náhodně určené pozici (v rozsahu daném rozměry obrazovky) a náhodně vybrané barvě (hodnoty od 1 po 7). Vykreslování oken bude ukončeno po stisku klávesy ESC.

 Ovšem naskytl se mi problém ve vykreslení obrazce. Po zadaní čísla ve správném intervalu se mi místo vykreslení okna na libovolných místech pohybuje pouze kurzor. A já právě neumím, jak nahradit pohybující se kurzor okny. Dokládám obrázek zdrojového kódu.Na internetu jsem našel pár tipů, které mi bohužel nefungovaly.  Kdyby jste byli tak hodní a pomohli mi, budu vám velmi vděčný. Programátor nejsem a vzhledem zaměření oboru ani nebudu, ale není špatné umět něco navíc. 

                                                                                                                                                Děkuji

Nahlásit jako SPAM
IP: 90.177.212.–
JoDiK
~ Anonymní uživatel
987 příspěvků
23. 5. 2012   #2
-
0
-

#1 Bobacz
Ten programovací jazyk má i nápovědu, ve verzi 7 dokonce i přeloženou do češtiny.

Tam by ses dočetl, že procedura window žádné okno nezobrazuje, jen nastaví rozměry výstupního okna, do kterého pak lze vypisovat údaje.

Jestli to okno nemělo být ve windows GUI režimu ani ve objectwindows DOS režimu (obojí pro úplného začátečníka asi nepřipadá do úvahy), tak asi bude potřeba to "okno" vykreslit "ručně" - pomocí odpovídajících semigrafických znaků ascii tabulky.

Nahlásit jako SPAM
IP: 88.103.233.–
JoDiK
~ Anonymní uživatel
987 příspěvků
23. 5. 2012   #3
-
0
-

Tady máš ten popis window

Výstupní okno je pravoúhelníkový výřez zobrazovací plochy, do nějž je směrován obrazovkový výstup textu. Pozice a velikost okna jsou definovány souřadnicemi jeho levého horního a pravého dolního rohu (strany okna jsou rovnoběžné s okraji zobrazovací plochy).

Jednotka Crt implementuje zobrazovací souřadnice tak, že řádky jsou číslovány od 1 shora (souřadnice y) a sloupce od 1 zleva (souřadnice x). Pouze při definici nového okna se používají absolutní souřadnice, vztažené k počátku (levému hornímu rohu) celé zobrazovací plochy. Ve všech ostatních případech jsou veškeré uváděné souřadnice vztaženy relativně k počátku aktuálního okna.

Mimo aktuální okno je obrazovka nepřístupná, uvnitř mají všechna okna stejné vlastnosti (až na rozměry) jako celá zobrazovací plocha (přechod kurzoru na novou řádku při dosažení pravého okraje, rolování při dosažení spodního okraje). Implicitním oknem (automaticky nastaveným při startu programu a při každé změně textového módu) je celá zobrazovací plocha.

var WindMin, WindMax: Word;

Proměnná WindMin resp. WindMax obsahuje absolutní obrazovkové souřadnice levého horního resp. pravého dolního rohu aktuálního výstupního okna. V nižších bytech proměnných jsou uloženy souřadnice horizontální (sloupce), ve vyšších souřadnice vertikální (řádky). Řádky i sloupce jsou však v těchto proměnných číslovány od 0!

procedure Window (XL, YH, XP, YD: Byte);

Vytvoří nové výstupní okno, definované absolutními souřadnicemi XL, YH (levý horní roh) a XP, YD (pravý dolní roh). Rozměry vytvořeného okna jsou tedy hodnotami výrazů XP – XL + 1 (šířka) a YD – YH + 1 (výška). Pokud jsou však zadané souřadnice neplatné (některá ze souřadnic je mimo zobrazovací plochu nebo je XL > XP či YH > YD), nemá volání procedury žádný efekt (původní výstupní okno zůstane zachováno).

Po vytvoření okna je kurzor umístěn do jeho levého horního rohu (souřadnice 1, 1) a absolutní souřadnice levého horního a pravého dolního rohu okna jsou uloženy (zmenšené o jedničku) do proměnných WindMin a WindMax. Již zobrazený text není vytvořením nového okna ovlivněn (výmaz obsahu okna se neprovádí).


Nahlásit jako SPAM
IP: 88.103.233.–
JoDiK
~ Anonymní uživatel
987 příspěvků
23. 5. 2012   #4
-
0
-

Jo, a pokud by stačilo jen zobrazit celou plochu toho okna jinou barvou (obdélník), tak stačí nastavit barvu pozadí a smazat (clrscr), koukám, že to tam více méně máš nachystaný, tak jen po zavolání window ještě zavolej clrscr;

Nahlásit jako SPAM
IP: 88.103.233.–
Bobacz0
Duch
24. 5. 2012   #5
-
0
-

#4 JoDiK


Moc Vám děkuji za pomoc, program plně funguje. Děkuji

Nahlásit jako SPAM
IP: 90.177.212.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 15 hostů

Podobná vlákna

Obrazce — založil Hanmir1

Geometrie, obrazce — založil honza572

Obrazce v konzoli — založil Lukas

Obrazce do dvourozměrného pole — založil Zelenáč

Moderátoři diskuze

 

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