Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Барбазяка
0 / 0 / 0
Регистрация: 03.04.2014
Сообщений: 12
1

Часы со стрелками, Ошибка в процедуре

03.04.2014, 22:21. Просмотров 615. Ответов 0
Метки нет (Все метки)

Делал часы (часовую стрелку еще не доделал) и столкнулся с проблемой удаления (закрашивания в белый цвет) предыдущей стрелки)
Pascal
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
uses GraphABC,Utils,crt;
var gd,gm,x,y:integer;
    k:char;
    hour,min,sec,hund:word;
    d:datetime;
procedure sekunda(secu:word);    //  секунда
var x1,y1:integer;
const rs=180;
begin
moveto (400,400);
setpencolor(clGreen);
x1:=400+round(rs*cos(pi*secu/30-pi/2));
y1:=400+round(rs*sin(pi*secu/30-pi/2));
Lineto (x1,y1);
sleep(1000);
moveto (400,400);
SetPenColor(clred);
x1:=400+round(rs*cos(pi*secu-1/30-pi/2)); // Проблема тут
y1:=400+round(rs*sin(pi*secu-1/30-pi/2));     // и тут
lineto (x1,y1); 
end;
procedure minute(secu:word);   // минута
var x1,y1:integer;
const rs=150;
begin
Lockdrawing;
moveto (400,400);
setpencolor(clblack);
x1:=400+round(rs*cos(pi*secu/30-pi/2));
y1:=400+round(rs*sin(pi*secu/30-pi/2));
Lineto (x1,y1);
moveto (400,400);
SetPenColor(clwhite);
Redraw;
x1:=400+round(rs*cos(pi*secu-1/30-pi/2)); //проблема тут
y1:=400+round(rs*sin(pi*secu-1/30-pi/2));  // проблема тут
lineto (x1,y1);
end;
begin
circle (400,400,255);
circle (400,400,250);
TextOut (400,400-230,'12');
TextOut (400+230,400,'3');
TextOut (400-8,400+230,'6');
TextOut (400-230,400,'9');
TextOut (400+round(230*cos(pi/3)),400-round(230*sin(pi/3)),'1');
TextOut (400+round(230*cos(pi/6)),400-round(230*sin(pi/6)),'2');
TextOut (400+round(230*cos(pi/6))-8,400+round(230*sin(pi/6)),'4');
TextOut (400+round(230*cos(pi/3))-8,400+round(230*sin(pi/3)),'5');
TextOut (400-round(230*cos(pi/3)),400+round(230*sin(pi/3)),'7');
TextOut (400-round(230*cos(pi/6)),400+round(230*sin(pi/6)),'8');
TextOut (400-round(230*cos(pi/6)),400-round(230*sin(pi/6)),'10');
TextOut (400-round(230*cos(pi/3)),400-round(230*sin(pi/3)),'11');
repeat
moveto(400,400);
d:=CurrentDateTime;
sekunda(d.second);
minute (d.Minute);
if keypressed then
k:=readkey;
until k=#27;
end.
Добавлено через 8 минут
Ошибку нашел, (не поставил скобки) ,тему можно закрыть

Добавлено через 14 минут
Вот готовая программа, кому нужно
Pascal
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
uses GraphABC,Utils,crt;
var gd,gm,x,y:integer;
    k:char;
    hour,min,sec,hund:word;
    d:datetime;
procedure sekunda(secu:word);    //  Г±ГҐГЄГіГ*Г¤Г*
var x1,y1:integer;
const rs=180;
begin
moveto (400,400);
setpencolor(clGreen);
x1:=400+round(rs*cos(pi*secu/30-pi/2));
y1:=400+round(rs*sin(pi*secu/30-pi/2));
Lineto (x1,y1);
moveto (400,400);
SetPenColor(clwhite);
x1:=400+round(rs*cos(pi*(secu-1)/30-pi/2));
y1:=400+round(rs*sin(pi*(secu-1)/30-pi/2));
lineto (x1,y1);
end;
procedure minute(secu:word);   // ìèГ*
var x1,y1:integer;
const rs=150;
begin
moveto (400,400);
setpencolor(clred);
x1:=400+round(rs*cos(pi*secu/30-pi/2));
y1:=400+round(rs*sin(pi*secu/30-pi/2));
Lineto (x1,y1);
moveto (400,400);
SetPenColor(clwhite);
x1:=400+round(rs*cos(pi*(secu-1)/30-pi/2));
y1:=400+round(rs*sin(pi*(secu-1)/30-pi/2));
lineto (x1,y1);
end;
procedure houre(secu,g:word);   // Г·Г*Г±Г»
var x1,y1:integer;
const rs=90;
begin
moveto (400,400);
setpencolor(claqua);
x1:=400+round(rs*cos(pi*secu/6-pi/2)+pi*g/360);
y1:=400+round(rs*sin(pi*secu/6-pi/2)+pi*g/360);
Lineto (x1,y1);
moveto (400,400);
SetPenColor(clwhite);
x1:=400+round(rs*cos(pi*(secu-1)/6-pi/2)+pi*g/360);
y1:=400+round(rs*sin(pi*(secu-1)/6-pi/2)+pi*g/360);
lineto (x1,y1);
end;
begin
putpixel(400,400,clblack);
circle (400,400,255);
circle (400,400,250);
TextOut (400,400-230,'12');
TextOut (400+230,400,'3');
TextOut (400-8,400+230,'6');
TextOut (400-230,400,'9');
TextOut (400+round(230*cos(pi/3)),400-round(230*sin(pi/3)),'1');
TextOut (400+round(230*cos(pi/6)),400-round(230*sin(pi/6)),'2');
TextOut (400+round(230*cos(pi/6))-8,400+round(230*sin(pi/6)),'4');
TextOut (400+round(230*cos(pi/3))-8,400+round(230*sin(pi/3)),'5');
TextOut (400-round(230*cos(pi/3)),400+round(230*sin(pi/3)),'7');
TextOut (400-round(230*cos(pi/6)),400+round(230*sin(pi/6)),'8');
TextOut (400-round(230*cos(pi/6)),400-round(230*sin(pi/6)),'10');
TextOut (400-round(230*cos(pi/3)),400-round(230*sin(pi/3)),'11');
repeat
moveto(400,400);
d:=CurrentDateTime;
sekunda(d.second);
minute (d.Minute);
houre (d.hour,d.Minute);
if keypressed then
k:=readkey;
until k=#27;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2014, 22:21
Ответы с готовыми решениями:

Нарисовать часы с вращающимися с разной скоростью часовой и минутной стрелками
Напишите программу которая выводит динамическое изображение часов с...

Ошибка в процедуре
Нужно написать подпрограмму (процедуру), которая находит в массиве адрес числа...

ошибка в программе. точнее в процедуре(((
составить программу для вычисления суммы факториалов всех чисел, кратных 3 от А...

Ошибка в процедуре сортировки типизированного файла.
Вот процедура : Procedure sort(var h:f); begin reset(h); for i:=1 to...

Пример с импликацией и стрелками Пирса
X1→(X3+X2&X3)↓(X2&X3→X3) помогите перевести на паскаль пожалуйста! =)

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2014, 22:21

Определить угол между часовыми стрелками
помогите плиз, срочно надо определить f-угол (в градусах) между положением...

Вычислить угол между стрелками часов
Несколько задачек. Для себя. Помогите плз! Хочу понять. 1) На плоскости...

Нужно сделать часы со стрелками. Помогите пожалуйста убрать следы, оставляемые стрелками после изменения положения
Всем привет. Нужно сделать часы со стрелками. Помогите пожалуйста убрать следы,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru