IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @735
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

TOP DARTS

Zábavná technika - predaj, prenájom, servis - videomusicboxy, stolné... www.topdarts.sk

Našiel som spôsob bieliť zuby

Podarilo sa mi vybieliť si zuby bez drahých procedúr u zubára. www.zuzaninblog.com

Priprav sa na futbalové EURO

Exkluzívna súťaž o Ford Fiesta! Kurzová superponuka a bonus 100€ https://www.tipsport.sk

Kedy sa oplatí prerobiť auto

na plyn? Nemusíte nevyhnutne hľadať kalkulačku a papier, aby ste si autoviny.zoznam.sk

So sebaistotou na pláž

Je čas jednoducho a zdravo schudnúť. www.news2channel.net

Pascal - chyba v kode

Zaslať odpoveď
AutorSpráva
fubu
Užívateľ
Užívateľ

Založený: 22.07.2011
Príspevky: 123

PríspevokZaslal: Ne 12.02.12 17:18Odpovedať s citátomNávrat hore

zdravim....mam taky problem ...potrebujem vytvori program ktory vykresli kruh a potom stlacim sipku hore a ten isty kruh vykresli hore o nieco vyssie ako ten prvy...napisal som cely zdrojak no niekde bude chyba....inicializoval som grafiku ktora ide a potom
circle(300,200,500);
readln(x);
if ord(x)=30 then circle(300,100,500);
readln;
end.
...no a tu je ten problem ono ked stlacim sipku ono to nebere ako znak neviem preco...a tzm padom sa mi nevzkona ani podmienka ...ako to upravit? za rady vopred dakujem

// pridané po 34 sekundách od posledného príspevku

ten polomer mal byt 50
Zobraziť informácie o autoroviOdoslať súkromnú správu
F3RY
Napomenutý užívateľ
Napomenutý užívateľ

Založený: 23.12.2010
Príspevky: 522
Bydlisko: C:\Program Files\Poprad
Vek: 18

PríspevokZaslal: Ne 12.02.12 19:52Odpovedať s citátomNávrat hore

1,
kód:
 Zdrojovy kod patri do code!

2, Mohol si tu dat cely kod, zatial tu nevestime

k veci:
S kniznocou grafika som nerobil, ale bez kompletneho kodu to vyzera na chybu v deklaracii premennej.

_________________
HP ProBook 4530s Intel® Core™ i5-2430M (2.4GHz, 3MB, 2 jadrá)*4GB 1333MHz DDR3*ATI Mobility Radeon HD 6490 1GB + Intel HD Graphics 3000*640GB SATA 5400RPM *Windows 7 Home Premium 64 bitová verzia

Radšej budem nenávidený za to kto som, ako milovaný za to kto nie som ! - Kurt Cobain
Zobraziť informácie o autoroviOdoslať súkromnú správuSkype
fubu
Užívateľ
Užívateľ

Založený: 22.07.2011
Príspevky: 123

PríspevokZaslal: Po 13.02.12 0:24Odpovedať s citátomNávrat hore

kód:
program kruh;
uses graph;
var GD,GM:integer;
    x:char;
begin
GD:=VGA;
GM:=VGAHI;
Initgraph(GD,GM,'D:\TP\BIN');
circle(300,200,50);
readln(x);
if ord(x)=30 then circle(300,100,50);
readln;
end.

ok tu je cely moj zdrojak ...chcem aby ked stlacim klavesu sipka hore aby mi nakreslilo ten druhy kruh...no ono to nejde ....zacne program nakresli prvy gruh stlacim sipku a nic sa nedeje..preco ?
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: Po 13.02.12 0:31Odpovedať s citátomNávrat hore

miesto
kód:
readln(x);

pouzi ReadKey --> http://www.freepascal.org/docs-html/rtl/crt/readkey.html ( uses crt )
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
fubu
Užívateľ
Užívateľ

Založený: 22.07.2011
Príspevky: 123

PríspevokZaslal: Po 13.02.12 0:58Odpovedať s citátomNávrat hore

uz som to zmenil a stale nejde ...pozzil som aj ten readkey....a som si urobil aj novy program aby som vvyskusal ten readkey a normalne mi nacitalo veci neukazalo a potom cez ord vypisalo ASCII....no co som si vsimol tak ked som stlacil sipku ktroukolvek tak vypisalo 0....ale ved sipky nemaju ASCII kod nula nie ?
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: Po 13.02.12 12:03Odpovedať s citátomNávrat hore

kód:
program kruh;
uses graph, crt;
var GD,GM:integer;
    x:char;
begin
GD:=VGA;
GM:=VGAHI;
Initgraph(GD,GM,'D:\TP\BIN');
circle(300,200,50);
x := ReadKey;
if ord(x)=72 then circle(300,100,50);
ReadKey;
end.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
fubu
Užívateľ
Užívateľ

Založený: 22.07.2011
Príspevky: 123

PríspevokZaslal: Po 13.02.12 17:22Odpovedať s citátomNávrat hore

nefunguje to...ale ked dam
kód:
...ord(x)=0..
...tak potom to ide ale funguje na vsetky sipky a ja chcem aby islo len hornu sipku
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: Po 13.02.12 17:44Odpovedať s citátomNávrat hore

Zamen riadok:
kód:
if ord(x)=72 then circle(300,100,50);

s tymto:
kód:
if ( x = #72 ) then circle(300,100,50);
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
fubu
Užívateľ
Užívateľ

Založený: 22.07.2011
Príspevky: 123

PríspevokZaslal: Po 13.02.12 17:50Odpovedať s citátomNávrat hore

stlae to nejde

// pridané po 1 minúte od posledného príspevku

teraz nejde na ziadnu sipku
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: Po 13.02.12 18:09Odpovedať s citátomNávrat hore

Tak si spust tento program a stlac sipku hore. Malo by ti vypisat Arrow up! Ak nie, tak ti aspon vypise cislo, ktore bude pri tejto sipke - ale malo by to byt 72, no neviem, aky pascal pouzivas ( fpc mi to v linuxe berie ). Enterom to ukoncis.

kód:
program test;
uses crt;
var ch: char;

BEGIN

repeat
  ch := ReadKey;
  if ch = #72 then
    Writeln( 'Arrow up!' )
  else
    Writeln( 'Char: ', Byte(ch) );
until ch = #13;

END.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
fubu
Užívateľ
Užívateľ

Založený: 22.07.2011
Príspevky: 123

PríspevokZaslal: Po 13.02.12 20:56Odpovedať s citátomNávrat hore

napisalo mi Char:0 Arrow up!

// pridané po 20 minútach od posledného príspevku

ked stalcim sipku doprava tak napise char:0 char:77
ked stlacim sipku dolava tak napise char:0 char:75
...........................dole tak napise char:0 char:80
............................ hore tak napise char:0 Arrow up!
co to znamena mam nieco zle nastavene???
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: Po 13.02.12 21:19Odpovedať s citátomNávrat hore

Nie, mas to dobre, ono to vypise aj tu nulu, pretoze to nie je normalny bezny znak. Takze vidis to sam, ak stlacis sipku hore, tato podmienka:
kód:
if ch = #72 then

bude splnena. To znamena aj tato podmienka:
kód:
if ( x = #72 ) then circle(300,100,50);

sa musi splnit a musi sa vykreslit novy kruh. Uz blizsie ti poradit nemozem, pretoze nemam kde skusit kod s kniznicou graph. Skus si to rozlozit do dvoch riadkov, cize takto:
kód:
if ( x = #72 ) then
  circle(300,100,50);

a program krokuj pomocou debuggera, ci skoci aj na tento druhy riadok.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
nBXXL
Užívateľ
Užívateľ

Založený: 27.12.2008
Príspevky: 978
Bydlisko: Nové Zámky, Slovensko
Vek: 18

PríspevokZaslal: Po 13.02.12 22:06Odpovedať s citátomNávrat hore

fubu napísal:

ked stalcim sipku doprava tak napise char:0 char:77
ked stlacim sipku dolava tak napise char:0 char:75
...........................dole tak napise char:0 char:80
............................ hore tak napise char:0 Arrow up!


Fico napísal:
ono to vypise aj tu nulu, pretoze to nie je normalny bezny znak.

V pascale som so šípkami nepracoval, no pokiaľ to funguje skutočne takto, tak ono to načíta tú šípku na dva readkeye (pretože v rámci jedného cyklu v tom Ficovom programe nemôže vypísať dvakrát), a ty máš len jeden readkey.. Výstupom jedného readkeyu bude 0 a druhého bude kód šípky,

v tom prípade skús toto:
kód:

program kruh;
uses graph, crt;
var GD,GM:integer;
    x,y:char;
begin
GD:=VGA;
GM:=VGAHI;
Initgraph(GD,GM,'D:\TP\BIN');
circle(300,200,50);
x := ReadKey; if (ord(x)=0) then y := ReadKey;
if ord(x)=0 then if ord(y)=72 then circle(300,100,50);
ReadKey;
end.

_________________
PC: MB: ASUS K8V SE Deluxe; CPU: AMD Athlon 64 2800+ 1.8GHz; GPU: Sapphire Radeon X1950GT AGP (500/600); RAM: Kingston 1GB DDR400 CL3 + A-Data 256MB DDR400 HDD: Western Digital 20 + 200GB; Monitor: LG 771E (17" CRT, stary ale dobry, aj ked trochu tmavy); PSU: Rexpower PZ-400W; OS: Windows 7 32-bit + ArchLinux 32-bit

NB: Asus K53SJ-SX093: i3-2310M + GT520M Optimus + 4GB RAM + Win7 64-bit + ArchLinux 64-bit
Zobraziť informácie o autoroviOdoslať súkromnú správuSkype
fubu
Užívateľ
Užívateľ

Založený: 22.07.2011
Príspevky: 123

PríspevokZaslal: St 15.02.12 1:07Odpovedať s citátomNávrat hore

nBXXL ten program mi ide aj vypisuje jak ma podla sipky....skusal som aj zmenit a ide to a preco to ide na dva readkey a nejde rovno cez jeden???
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: St 15.02.12 12:31Odpovedať s citátomNávrat hore

http://www.freepascal.org/docs-html/rtl/crt/readkey.html

pascal napísal:
If an extended or function key has been pressed, then the zero ASCII code is returned. You can then read the scan code of the key with a second ReadKey call.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
Nemôžete odpovedať na témy v tomto fóre.
Nemôžete upravovať svoje príspevky v tomto fóre.
Nemôžete mazať svoje príspevky v tomto fóre.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd