| Autor | Správa |
fubu
 Užívateľ
 Založený: 22.07.2011 Príspevky: 123
 | Zaslal: Ne 12.02.12 17:18 |   |
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 |
| |
  |
 |
F3RY
 Napomenutý užívateľ
 Založený: 23.12.2010 Príspevky: 522 Bydlisko: C:\Program Files\Poprad Vek: 18
 | Zaslal: Ne 12.02.12 19:52 |   |
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 | |
   |
 |
fubu
 Užívateľ
 Založený: 22.07.2011 Príspevky: 123
 |
| 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 ?  |
| |
  |
 |
Fico
 Skúsený užívateľ
 Založený: 11.01.2009 Príspevky: 1052
 |
|
   |
 |
fubu
 Užívateľ
 Založený: 22.07.2011 Príspevky: 123
 |
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 ? |
| |
  |
 |
Fico
 Skúsený užívateľ
 Založený: 11.01.2009 Príspevky: 1052
 | Zaslal: Po 13.02.12 12:03 |   |
| 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. |
|
| |
   |
 |
fubu
 Užívateľ
 Založený: 22.07.2011 Príspevky: 123
 | Zaslal: Po 13.02.12 17:22 |   |
nefunguje to...ale ked dam ...tak potom to ide ale funguje na vsetky sipky a ja chcem aby islo len hornu sipku |
| |
  |
 |
Fico
 Skúsený užívateľ
 Založený: 11.01.2009 Príspevky: 1052
 | Zaslal: Po 13.02.12 17:44 |   |
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); |
|
| |
   |
 |
fubu
 Užívateľ
 Založený: 22.07.2011 Príspevky: 123
 | Zaslal: Po 13.02.12 17:50 |   |
stlae to nejde
// pridané po 1 minúte od posledného príspevku
teraz nejde na ziadnu sipku |
| |
  |
 |
Fico
 Skúsený užívateľ
 Založený: 11.01.2009 Príspevky: 1052
 | Zaslal: Po 13.02.12 18:09 |   |
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. |
|
| |
   |
 |
fubu
 Užívateľ
 Založený: 22.07.2011 Príspevky: 123
 | Zaslal: Po 13.02.12 20:56 |   |
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??? |
| |
  |
 |
Fico
 Skúsený užívateľ
 Založený: 11.01.2009 Príspevky: 1052
 | Zaslal: Po 13.02.12 21:19 |   |
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:
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. |
| |
   |
 |
nBXXL
 Užívateľ
 Založený: 27.12.2008 Príspevky: 978 Bydlisko: Nové Zámky, Slovensko Vek: 18
 | Zaslal: Po 13.02.12 22:06 |   |
| 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 | |
   |
 |
fubu
 Užívateľ
 Založený: 22.07.2011 Príspevky: 123
 |
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??? |
| |
  |
 |
Fico
 Skúsený užívateľ
 Založený: 11.01.2009 Príspevky: 1052
 | Zaslal: St 15.02.12 12:31 |   |
|
   |
 |
|