Programalama > PASCAL

Etiketler: digital, analog, saat

Ort. 0
Puan ver:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
program grafik_ortamda_dijital_ve_analog_saat;
uses dos,crt,graph;
const acisabit           =pi/180;
     akrepibrekatsayi   =0.6;
     yelkovanibrekatsayi=0.75;
     saniyeibrekatsayi  =0.85;
     akreprenk          =red;
     yelkovanrenk       =blue;
     saniyerenk         =magenta;
     anlgsaatrakamrenk  =lightred;
     djtlsaatyazirenk   =lightblue;
var grfsurucu,grfmodu   :integer;
    djtlsaatyazx,djtlsaatyazy,
    anlgsaatmerkezx,anlgsaatmerkezy,anlgsaatyaricap,
    akrepibreboy,akrebsonx,akrebsony,
    yelkovanibreboy,yelkovansonx,yelkovansony,
    saniyeibreboy,saniyesonx,saniyesony:word;
 
    function sayidancumleye(sayi:longint):string;
    var st:string[10];
    begin
    st:=''; str(sayi,st);
    if length(st)<=1 then st:='0'+st;
    sayidancumleye:=st;
    end;
 
    function sinusdegerix(katsayi:real;aci:word):word;
    begin sinusdegerix:=anlgsaatmerkezx+round(katsayi*sin(acisabit*aci));end;
 
    function cosinusdegeriy(katsayi:real;aci:word):word;
    begin cosinusdegeriy:=anlgsaatmerkezy-round(katsayi*cos(acisabit*aci));end;
 
    procedure saatilkislemler;
     procedure saatrakamlariniyaz;
     var eskirenk,aci,k:word;
     eskiyazistili:textsettingstype;
     begin
      eskirenk:=getcolor;
      setcolor(anlgsaatrakamrenk);
      gettextsettings(eskiyazistili);
      settextstyle(gothicfont,horizdir,3);
      settextjustify(centertext,centertext);
      for k:=1 to 12 do
      begin
      aci:=30*k;
      line (sinusdegerix(anlgsaatyaricap,aci),
           cosinusdegeriy(anlgsaatyaricap,aci),
           sinusdegerix(0.95*anlgsaatyaricap,aci),
           cosinusdegeriy(0.95*anlgsaatyaricap,aci));
      outtextxy(sinusdegerix(1.1*anlgsaatyaricap,aci),
           cosinusdegeriy(1.1*anlgsaatyaricap,aci),sayidancumleye(k));
      end;{for k}
      with eskiyazistili do
      begin
      settextstyle(font,direction,charsize);
      settextjustify(horiz,vert);
      end;
      setcolor(eskirenk);
      end;
 
      procedure ibreilkislemler(var ibreboy,sonx,sony:word; ibrekatsayi:real);
      begin
       ibreboy:=round(anlgsaatyaricap*ibrekatsayi);
       sonx:=anlgsaatmerkezx;
       sony:=anlgsaatmerkezy;
      end;
      begin
       settextstyle(sansseriffont,horizdir,3);
       setusercharsize(2,1,1,1);
       setcolor(djtlsaatyazirenk);
       setlinestyle(solidln,0,thickwidth);
       djtlsaatyazx:=(getmaxx-textwidth('99:99:99')) div 2;
       djtlsaatyazy:=getmaxy-round(1.2*textheight('9'));
 
       rectangle(0,0,getmaxx,djtlsaatyazy);
       rectangle(0,djtlsaatyazy,getmaxx,getmaxy);
       anlgsaatmerkezx:=getmaxx div 2;
       anlgsaatmerkezy:=djtlsaatyazy div 2;
       anlgsaatyaricap:=round(anlgsaatmerkezy*0.80);
       circle(anlgsaatmerkezx,anlgsaatmerkezy,anlgsaatyaricap div 20);
       circle(anlgsaatmerkezx,anlgsaatmerkezy,anlgsaatyaricap);
 
       saatrakamlariniyaz;
       ibreilkislemler(akrepibreboy,akrebsonx,akrebsony,akrepibrekatsayi);
       ibreilkislemler(yelkovanibreboy,yelkovansonx,yelkovansony,yelkovanibrekatsayi);
       ibreilkislemler(saniyeibreboy,saniyesonx,saniyesony,saniyeibrekatsayi);
      end;
 
      procedure dijitalanalogsaatleriguncelle;
      var aktifsaat,aktifdakika,aktifsaniye,
      salise,oncekisaniye,oncekidakika         :word;
      oncesaatdakikasaniye,simdisaatdakikasaniye:string[8];
       procedure dijitalsaatiguncelle;
        begin
         setcolor(djtlsaatyazirenk);
         outtextxy(djtlsaatyazx,djtlsaatyazy,oncesaatdakikasaniye);
         simdisaatdakikasaniye:=sayidancumleye(aktifsaat)+':'+
                                sayidancumleye(aktifdakika)+':'+
                                sayidancumleye(aktifsaniye);
         outtextxy(djtlsaatyazx,djtlsaatyazy,simdisaatdakikasaniye);
         oncesaatdakikasaniye:=simdisaatdakikasaniye;
        end;
 
       procedure analogsaatiguncelle;
        procedure ibrehareket(var sonx,sony:word; renk,ibreboy,aci:word);
         begin
          setcolor(renk);
          line(anlgsaatmerkezx,anlgsaatmerkezy,sonx,sony);
          sonx:=sinusdegerix(ibreboy,aci);
          sony:=cosinusdegeriy(ibreboy,aci) ;
          line(anlgsaatmerkezx,anlgsaatmerkezy,sonx,sony)
         end;
         begin
          if aktifdakika<>oncekidakika then
          begin
          ibrehareket(akrebsonx,akrebsony,akreprenk,akrepibreboy,
                      aktifsaat*30+round(aktifdakika/2));
          ibrehareket(yelkovansonx,yelkovansony,yelkovanrenk,
                     yelkovanibreboy,aktifdakika*6);
          oncekidakika:=aktifdakika;
          end;
         ibrehareket(saniyesonx,saniyesony,saniyerenk,saniyeibreboy,aktifsaniye*6);
         end;
        begin
         oncekisaniye:=61; oncekidakika:=61; oncesaatdakikasaniye:='';
         setwritemode(xorput);
         repeat
         gettime(aktifsaat,aktifdakika,aktifsaniye,salise);
         if aktifsaniye<>oncekisaniye then
         begin
          dijitalsaatiguncelle;
          analogsaatiguncelle;
          oncekisaniye:=aktifsaniye
         end;
         until keypressed and (readkey=#27);
         end;
 
 
begin
     grfsurucu:=detect;
     initgraph(grfsurucu,grfmodu,'C:\BP\bgi');
     if graphresult<>grok then exit;
     saatilkislemler;
     dijitalanalogsaatleriguncelle;
     closegraph;
end.


Yorumlar                 Yorum Yaz
Bu hazır kod'a ilk yorumu siz yapın!
KATEGORİLER
ASP - 240
ASP.NET - 24
C# - 75
C++ - 174
CGI - 8
DELPHI - 247
FLASH - 49
HTML - 536
PASCAL - 246
PERL - 11
PHP - 160
WML - 9
XML - 2
Copyright © 2002 - 2025 Hazır Kod - Tüm Hakları Saklıdır.
Siteden yararlanırken gizlilik ilkelerini okumanızı tavsiye ederiz.
hazirkod.com bir İSOBİL projesidir.