Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Potrebna mi je pomoc u Pascalu

[es] :: Pascal / Delphi / Kylix :: Potrebna mi je pomoc u Pascalu

[ Pregleda: 2126 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

H-I-D-E
Dejan Korent
Varaždin

Član broj: 53848
Poruke: 12
*.cmu.carnet.hr.



Profil

icon Potrebna mi je pomoc u Pascalu31.03.2005. u 12:32 - pre 232 meseci
:-)

[Ovu poruku je menjao H-I-D-E dana 06.05.2005. u 15:33 GMT+1]
HIDE rules
 
Odgovor na temu

H-I-D-E
Dejan Korent
Varaždin

Član broj: 53848
Poruke: 12
*.cmu.carnet.hr.



Profil

icon Re: Potrebna mi je pomoc u Pascalu31.03.2005. u 12:33 - pre 232 meseci
P.S.

ako je moguće neka mi se i oblažloži nacin na kojice neko to napraviti, jer sam stvarno pocetnik.

hvala
HIDE rules
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Potrebna mi je pomoc u Pascalu31.03.2005. u 17:26 - pre 232 meseci
Ako ti treba bas pravi sat to tako nece moci da radi. Najbolje bi bilo da uradis nesto ovako (ovo je samo pseudokod)
Code:

var
  Sec, Min, Sat: Integer;

procedure NacrtajSekunde;
var
  X, Y: Integer;
begin
  // Imas broj sekundi u Sec promenljivoj
  // Za 60 sec kazaljka treba da obidje ceo krug pa zato
  X := Cos(Pi / 2 - (2 * Pi / 60 * Sec));
  Y := Sin(Pi / 2 - (2 * Pi / 60 * Sec));
  Line(CentarX, CentarY, X, Y);
end;

// Isti princip je i za minute i sate

begin
InitGraph;
NacrtajKrug;
Repeat
  Sec := UzmiSekunde; // Koristi neku od sistemskih funkcija za uzimanje vremena
  Min := UzmiMinute; // recimo Time;
  Sat := UzmiSate;
  NacrtajSate;
  NacrtajMinute;
  NacrtajSekunde;
Until KeyPressed;
CloseGraph;
end.

Jedino sto treba jos da uradis je kad vidis da se sekunda promenila da obrises linije. Jednostavno ili koristi XOR iscrtavanje pa samo ponovo iscrtaj linije ili ih iscrtaj bojom pozadine, zatim update Sec, Min i Sat promenljive i ponovo iscrtaj sve.
Za iscrtavanje texta koristi TextOutXY proceduru.
 
Odgovor na temu

H-I-D-E
Dejan Korent
Varaždin

Član broj: 53848
Poruke: 12
*.cmu.carnet.hr.



Profil

icon Re: Potrebna mi je pomoc u Pascalu31.03.2005. u 17:59 - pre 232 meseci
Fala, ali mi to neznaci puno, jer mi je to zadatak za zadacu pa ga moram da resim po nacinu koji mi je dosadan profesor rekao.

Ako bi mi mogao samoda objsnis kako naterati onaj sat koji smo mi dobili da mu kazaljka bude celo vreme iste daljine?

razumes, meni netreba pravi sat, to imam

samo to mi treba.
Hvala


HIDE rules
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Potrebna mi je pomoc u Pascalu31.03.2005. u 18:24 - pre 232 meseci
Da bi mogao da stalno crtas kazaljku iste duzine jedan njen kraj ostaje u sredini, a drugi se krece po nekoj kruznici... a to ces tesko da uradis bez sin i cos. Bar ja ne znam kako drugacije.

Ovaj sat se okrece u nazad ili mi se samo cini!? To je samo jos jedan znak da treba da se koristi sin i cos. Sin i cos uzimaju uglove u matematickom smeru (valjda se tako kaze), a on je suprotan smeru okretanja kazaljke.

Koliko znam u Palscal-u ne mozes da definises cliping region. Ako je to moguce onda je tvoj problem sa iscrtavanjem resen. Postavis cliping region oko kruga i sve sto se crta van njega se ne vidi.

za c) i d) koristi TextOutXY proceduru.

Za izlazak iz programa u bilo kom trenutku posle prvog okretanja treba da dodas jos jednu promenljivu... recimo CanExit. Na pocetku programa je postavi na False, a na kraju Repeat Until petlje je postavi na True. U svakoj for petlji na pocetku stavi
Code:
if CanExit and KeyPressed then Exit;


To je to.
 
Odgovor na temu

H-I-D-E
Dejan Korent
Varaždin

Član broj: 53848
Poruke: 12
*.cmu.carnet.hr.



Profil

icon Re: Potrebna mi je pomoc u Pascalu31.03.2005. u 18:39 - pre 232 meseci
Aha, jel moze da onda da mi napises taj program kako si reko.

shvatio sam to.

trebao bi mi gotov program, jer, jos sam pocetnik, a glupi prof bi da vec radim sve sam. shvatim ja to, ali tek u analizi, jos mi je malo tesko da pisem sam.

Hvala ti unapred, puno si mi pomogao.
HIDE rules
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Potrebna mi je pomoc u Pascalu31.03.2005. u 21:53 - pre 232 meseci
Problem je sto ja nemam Turbo Pascal, a u Delphi-u su komande za crtanje malo drugacije. Ne mogu da pisem ni napamet (bez syntax checking-a) jer TP nisam godinama koristio i zaboravio sam skoro sve sto je vezano za BGI. Imas ideju sad jos samo nadji nekog sa znanjem TP-a.
 
Odgovor na temu

H-I-D-E
Dejan Korent
Varaždin

Član broj: 53848
Poruke: 12
*.cmu.carnet.hr.



Profil

icon Re: Potrebna mi je pomoc u Pascalu31.03.2005. u 22:03 - pre 232 meseci
Ako ti se da, mozes mi to rijesiti i u DELPHIJU, vjerojatno ce tip biti zadovoljan.

Puno ti hvala na trudu, a ako trebas TP, reci, imam ga, naso sam ga za pola minue.
HIDE rules
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Potrebna mi je pomoc u Pascalu31.03.2005. u 23:03 - pre 232 meseci
Ovako bi to nekako izgledalo u Pascal-u (neces moci da iskompajliras ovo, ali ces verovatno lako ispraviti greske u funkcijama koje sam zaboravio kako se koriste):
Code:
program Sat_V1;

const
  CentarX = 350;
  CentarY = 320;
  Precnik = 354;
  Duzina = 100;
  Preciznost = 719;

var
  CanExit: Boolean;
  I: Integer;

procedure NacrtajKazaljku(Ugao: Real);
var
  X, Y: Real;
begin
  X := Cos(Pi / 2 + Ugao) * Duzina;
  Y := Sin(Pi / 2 + Ugao) * Duzina;
  Line(CentarX, CentarY, Trunc(X), Trunc(Y));
end;

begin
  CanExit := False;
  InitGraph; // Ne znam kako ide ova funkcija
  Circle(CentarX, CentarY, Precnik);
  repeat
    for I := 0 to Preciznost do
    begin
      SetColor(White);
      NacrtajKazaljku(2 * Pi / Preciznost * I);
      Delay(33);
      SetColor(Black);
      NacrtajKazaljku(2 * Pi / Preciznost * I);
      if CanExit and KeyPressed then Exit;
    end;
    CanExit := True;
  until KeyPressed;
  CloseGraph;
end.

To bi bilo to... bar mi se trenutno u glavi cini da radi kako treba
 
Odgovor na temu

IgLo
Igor Lovric
Sremski Karlovci

Član broj: 19524
Poruke: 129
*.neobee.net.

Sajt: www.unicornsoft.net


Profil

icon Re: Potrebna mi je pomoc u Pascalu01.04.2005. u 02:14 - pre 232 meseci
Citat:
Srki_82: To bi bilo to... bar mi se trenutno u glavi cini da radi kako treba


Srki, zaboravio si par sitnica, nadam se da neces zameriti sto cu ti malo "razvaliti" kod

Code:

program Sat_V1;

Uses  CRT, Graph;

const
  CentarX = 320;
  CentarY = 240;
  Precnik = 200;
  Duzina = 100;
  Preciznost = 719;

var
  CanExit: Boolean;
  I: Integer;

procedure NacrtajKazaljku(Ugao: Real);

var

  X, Y: Real;

begin

  X := Cos(Pi /2 + Ugao) * Duzina + CentarX;
  Y := Sin(Pi /2 + Ugao) * Duzina + CentarY;
  Line(CentarX, CentarY, Trunc(X), Trunc(Y));
  OutTextXY (CentarX - TextWidth ('Ovo je pijani sat') Div 2,
             CentarY - TextHeight ('Ovo je pijani sat') Div 2,
             'Ovo je pijani sat');
end;

Var
 gd, gm : Integer;

begin
  CanExit := True;
  InitGraph(GD,GM,'..\BGI');
  Circle(CentarX, CentarY, Precnik);
  SetTextStyle (DefaultFont, HorizDir, 3);
  OutTextXY (CentarX - TextWidth ('12') Div 2, CentarY - Precnik + TextHeight ('12') - 20, '12');
  OutTextXY (CentarX - TextWidth ('18') Div 2, CentarY + Precnik - TextHeight ('18'), '18');
  OutTextXY (CentarX - Precnik + TextWidth ('21') - 40, CentarY - TextHeight ('21') Div 2, '21');
  OutTextXY (CentarX + Precnik - TextWidth ('15'), CentarY - TextHeight ('15') Div 2, '15');
  SetTextStyle (DefaultFont, HorizDir, 1);
  repeat
   For I := 0 To Preciznost Do
   Begin
      SetColor(White);
      NacrtajKazaljku(2 * Pi/Preciznost * I);

      Delay(33);

      SetColor(Black);
      NacrtajKazaljku(2*Pi / Preciznost * I);

      if CanExit and KeyPressed then Exit;
    end;
    CanExit := True;

  until KeyPressed;
  CloseGraph;
end.


Problem je bio sto Cos(Pi /2 + Ugao) * Duzina vraca kordinatu u odnosu na kordinatni pocetak (0,0), a ne centar kruga, tako da se kazaljka pomerala gore dole u gornjem levom kvadrantu.

Drugi problem je bio sa rezolucijom. Ne znam koje graficke kartice se koriste za testiranje ovoga, ali dati kod na VGA kartici inicijalizuje 640x480, pa je sve prilagodjeno tome. Jedino ako profesor pomocu nekih trikova nije naterao TP da mu inicijalizuje VESA modove pomocu ovog koda

Dodat je kod koji ispisuje tekstove (za konstante ne pitajte zasto su takve - stelovao sam dok nije lepo ispalo
 
Odgovor na temu

H-I-D-E
Dejan Korent
Varaždin

Član broj: 53848
Poruke: 12
*.cmu.carnet.hr.



Profil

icon Re: Potrebna mi je pomoc u Pascalu01.04.2005. u 09:00 - pre 232 meseci
Mnogo vam hvala decki, legende ste!

HIDE rules
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Potrebna mi je pomoc u Pascalu

[ Pregleda: 2126 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.