program clock_natalizzio; uses crt,dos; var h, m, s, cent,old_s : Word; f:char; procedure seg_a (spost_x:integer;spost_y:integer;lung_seg:integer;c:char); var i:integer; begin for i:=1 to lung_seg*2 do begin gotoxy (spost_x+(i),spost_y+1); writeln (c); end; end; procedure seg_b (spost_x:integer;spost_y:integer;lung_seg:integer;c:char); var i:integer; begin for i:=1 to lung_seg do begin gotoxy (spost_x+(lung_seg*2-1),spost_y+i); writeln (c); end; end; procedure seg_c (spost_x:integer;spost_y:integer;lung_seg:integer;c:char); var i:integer; begin for i:=1 to lung_seg do begin gotoxy (spost_x+(lung_seg*2-1),spost_y+lung_seg+i); writeln (c); end; end; procedure seg_d (spost_x:integer;spost_y:integer;lung_seg:integer;c:char); var i:integer; begin for i:=1 to lung_seg*2 do begin gotoxy (spost_x+(i),spost_y+(lung_seg*2-1)+1); writeln (c); end; end; procedure seg_e (spost_x:integer;spost_y:integer;lung_seg:integer;c:char); var i:integer; begin for i:=1 to lung_seg do begin gotoxy (spost_x+1,spost_y+lung_seg-1+i+1); writeln (c); end; end; procedure seg_f (spost_x:integer;spost_y:integer;lung_seg:integer;c:char); var i:integer; begin for i:=1 to lung_seg do begin gotoxy (spost_x+1,spost_y+i); writeln (c); end; end; procedure seg_g (spost_x:integer;spost_y:integer;lung_seg:integer;c:char); var i:integer; begin for i:=1 to lung_seg*2 do begin gotoxy (spost_x+(i),spost_y+lung_seg); writeln (c); end; end; procedure display7_clocK (ore:integer;min:integer;sec:integer) ; const y=7; //spost_y var v,z,x(*spost_x*),f:integer; classificazione: array [1..6] of integer; carat:char; begin s:=3; x:=0; z:=0; classificazione[1]:=(ore div 10); //h1 classificazione[2]:=ore - (classificazione[1]*10); //h2 classificazione[3]:=(min div 10); //m1 classificazione[4]:=min - (classificazione[3]*10); //m2 classificazione[5]:=(sec div 10); //s1 classificazione[6]:=sec - (classificazione[5]*10); //s2 carat:='*'; for v:=1 to 6 do begin z:=classificazione[v]; x:=x+5; case z of 0: begin seg_a(x,y,s,carat); seg_b(x,y,s,carat); seg_c(x,y,s,carat); seg_d(x,y,s,carat); seg_e(x,y,s,carat); seg_f(x,y,s,carat); end; 1: begin seg_b(x,y,s,carat); seg_c(x,y,s,carat); end; 2: begin seg_a(x,y,s,carat); seg_b(x,y,s,carat); seg_d(x,y,s,carat); seg_e(x,y,s,carat); seg_g(x,y,s,carat); end; 3: begin seg_a(x,y,s,carat); seg_b(x,y,s,carat); seg_c(x,y,s,carat); seg_d(x,y,s,carat); seg_g(x,y,s,carat); end; 4: begin seg_b(x,y,s,carat); seg_c(x,y,s,carat); seg_f(x,y,s,carat); seg_g(x,y,s,carat); end; 5: begin seg_a(x,y,s,carat); seg_c(x,y,s,carat); seg_d(x,y,s,carat); seg_f(x,y,s,carat); seg_g(x,y,s,carat); end; 6: begin seg_a(x,y,s,carat); seg_c(x,y,s,carat); seg_d(x,y,s,carat); seg_e(x,y,s,carat); seg_f(x,y,s,carat); seg_g(x,y,s,carat); end; 7: begin seg_a(x,y,s,carat); seg_b(x,y,s,carat); seg_c(x,y,s,carat); seg_f(x,y,s,carat); end; 8: begin seg_a(x,y,s,carat); seg_b(x,y,s,carat); seg_c(x,y,s,carat); seg_d(x,y,s,carat); seg_e(x,y,s,carat); seg_f(x,y,s,carat); seg_g(x,y,s,carat); end; 9: begin seg_a(x,y,s,carat); seg_b(x,y,s,carat); seg_c(x,y,s,carat); seg_d(x,y,s,carat); seg_f(x,y,s,carat); seg_g(x,y,s,carat); end; end; x:=x+s; if (v=2) then begin for f :=1 to s*2 do if ((f=3) or (f=4) or (f=6)or (f=7)) then begin gotoxy(x+3,y+f); write ('*'); end; x:=x+7; end; end; end; begin repeat old_s:=0; gettime(h,m,s,cent); if (s <> old_s) then begin gotoxy(1,1); old_s:=s; textcolor(lightgreen); write(h:2,' ',m:2,' ',s:2); display7_clocK(h,m,s); textcolor(black); display7_clocK(8,8,8); end; until keypressed; readln; end.
We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy. Accept Learn more