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

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

03.04.2014, 22:21. Просмотров 598. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Часы со стрелками, Ошибка в процедуре (Pascal ABC):

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

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

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

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

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

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

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

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

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

Часы со стрелками
Добрый день! Выдает ошибку ||=== Build: Debug in gggg (compiler: GNU GCC...

Механические часы со стрелками в java!
Помогите решить задачу!!! Реализовать приложение, которое рисует на экране...


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

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

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