pascal-sachovnica

Programovacie jazyky, rady, poradňa...
gabooo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 236
Registrovaný: 21 aug 2007, 10:36

pascal-sachovnica

Príspevok od používateľa gabooo »

mam naprogramovat sachovnicove pole...urobim to cez cyklus a idu mi dobre len 2 riadky a potom stvorceky nemena farbu...co mi tam chyba???

Kód: Vybrať všetko

program sachovnica;
uses crt;
var s1,s2,r1,r2,i,j:integer;
begin
textbackground(0);
clrscr;
s1:=1;r1:=1;s2:=5;r2:=3;

for j:=1 to 17 do
begin
for i:=1 to 15 do
begin
window(s1,r1,s2,r2);
if i mod 2=0 then textbackground(0)
else textbackground(white);
clrscr;
s1:=s1+5;
s2:=s2+5;
end;
s1:=1;
s2:=5;
s1:=s1+5;
s2:=s2+5;
r1:=r1+3;
r2:=r2+3;
end;
clrscr;
readln;
end.
zaggi
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 314
Registrovaný: 04 feb 2007, 19:32

Príspevok od používateľa zaggi »

Kód: Vybrať všetko

for i:=1 to 8 do 
begin
  for j:=1 to 8 do 
  begin
    if (i mod 2 = 0 and j mod 2 = 0) then write('X');
    if (i mod 2 = 0 and j mod 2 = 1) then write('_');
    if (i mod 2 = 1 and j mod 2 = 0) then write('_');
    if (i mod 2 = 1 and j mod 2 = 1) then write('X');
  end;
  writeln();
end;
gabooo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 236
Registrovaný: 21 aug 2007, 10:36

Príspevok od používateľa gabooo »

urobil som to taktoi ale stale vypisuje chybu s boolean a longint...co tam ma zle???

Kód: Vybrať všetko

program sachovnica;
uses crt;
var s1,s2,r1,r2:integer;
    i,j:longint;
begin
textbackground(0);
clrscr;
s1:=1;r1:=1;s2:=5;r2:=3;
for j:=1 to 17 do
begin
for i:=1 to 15 do
begin
window(s1,r1,s2,r2);
begin
    if i mod 2 = 0 and j mod 2 = 0 then textbackground(0);
    if i mod 2 = 0 and j mod 2 = 1 then textbackground(white);
    if i mod 2 = 1 and j mod 2 = 0 then textbackground(0);
    if i mod 2 = 1 and j mod 2 = 1 then textbackground(white);
  end;
clrscr;
s1:=s1+5;
s2:=s2+5;
end;
s1:=1;
s2:=5;
s1:=s1+5;
s2:=s2+5;
r1:=r1+3;
r2:=r2+3;
end;
clrscr;
readln;
end.
mirak2
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6719
Registrovaný: 18 sep 2005, 13:44
Bydlisko: Prague, CZE / Kosice, SVK

Príspevok od používateľa mirak2 »

Kód: Vybrať všetko

for i:=1 to 8 do begin
x:=50;
for j:=1 to 8 do begin
setfillstyle(1,black);
if ((i+j) mod 2=0) then setfillstyle(1,white);
bar(x,y,x+40,y+40);
x:=x+40;
end;
y:=y+40;
end;
toto je cely program...neviem ako si prisiel k tym cyklom po 17 a po 15...uz ti len staci dat var i,j,x,y:integer a hlavicku, koniec, nacitanie x,y a mas...vseobecne zadanu sachovnicu...sice dalo by sa aj vseobecnejsie, teda aj velkost stvorceka, ale s tym nebudem zatazovat nikoho tuna...keby nieco pis PM, neviem kedy znova checknem topic tento :)
gabooo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 236
Registrovaný: 21 aug 2007, 10:36

Príspevok od používateľa gabooo »

ok..dik skusim to...
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Príspevok od používateľa juho »

gabooo napísal:ok..dik skusim to...
a jak to ty chces vlastne skusat ? cez textovy alebo graficky rezim.
tu mas upraveny ten tvoj textovy(chyba v podmienkach):

Kód: Vybrať všetko

program sachovnica;
uses crt;
var s1,s2,r1,r2:integer;
    i,j:longint;
begin
textmode(259);
textbackground(0);
clrscr;
s1:=1;r1:=1;
for j:=1 to 9 do
begin
for i:=1 to 8 do
begin
window(s1,r1,s1+2,r1+1);
begin  {neviem preco tu je begin}
if(j<9)then
  begin  if ((i mod 2 = 1) and (j mod 2 = 0))or((i mod 2 = 0) and (j mod 2 = 1)) then textbackground(0)else
    if ((i mod 2 = 0) and (j mod 2 = 0))or((i mod 2 = 1) and (j mod 2 = 1)) then textbackground(white);
  end
else write(chr(96+i));
  end;{ukoncenie nepodstatneho beginu}
if(j<9)then clrscr;
s1:=s1+3;
end;
textbackground(0);
window(s1,r1,s1+2,r1+1);
if(j<9)then write(j);
s1:=1;
r1:=r1+2;
end;
readln;
end.
sisa93
Amateur
Amateur
Používateľov profilový obrázok
Príspevky: 11
Registrovaný: 23 mar 2011, 8:56

Re: pascal-sachovnica

Príspevok od používateľa sisa93 »

vidim ze vam to ide :D.... vedeli by ste mi poratit s tymto?
vytvorte program, ktory vypocita poradove cislo dna v roku, ak je tento den zadany ako retaze v tvare DDMM. Neuvazujte s priestupnym rokom,....
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: pascal-sachovnica

Príspevok od používateľa BX »

Jednoducho si vytvor pole 12ich čísel (integer), do ktorého nahádžeš dni jednotlivých mesiacov. Potom načítaš vstup, osamostatníš si z toho deň a mesiac ako čísla a výpočet poradového čísla dňa v roku bude teda súčet všetkých mesiacov pred daným mesiacom plus zadaný deň.
Takže napríklad pre 1003 bude mesiac = 3 a deň = 10. Január má 31 dní, február 28, takže 31 + 28 + 10 = 69. Poradové číslo dňa je teda 69.

Snáď by som ti pomohol len s osamostatnením čísla zo stringu. V tomto prípade to bude vyzerať takto:

Kód: Vybrať všetko

readln(format);
den := ((ord(format[1])-48)*10) + (ord(format[2])-48);
mes := ((ord(format[3])-48)*10) + (ord(format[4])-48);
(Predpokladám správny vstup)
sisa93
Amateur
Amateur
Používateľov profilový obrázok
Príspevky: 11
Registrovaný: 23 mar 2011, 8:56

Re: pascal-sachovnica

Príspevok od používateľa sisa93 »

Ďakujem ;)
Napísať odpoveď