IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на графику
-tania-
сообщение 3.04.2007 19:58
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Женский

Репутация: -  0  +


Задача такая: на паскале пользователь вводит координаты четырех углов ромба. Нужно нарисовать ромб, в центре маленькую окружность, и по кнопкам вверх, вниз, вправо, влево ромб с окружностью должны соответственно двигаться. Задачка простая, но я не могу ее никак написать: ромб я нарисовала, рассчитала координаты центра окружности, акогда начала рисовать саму окружность
circle(xcentra,ycentra,r),
то паскаль мне пишет ошибку type mismatch. xcentra,ycentra у меня real, но как округлять здесь числа я понятия не имею. Помогите пожалуйста!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
-tania-
сообщение 3.04.2007 21:29
Сообщение #2





Группа: Пользователи
Сообщений: 7
Пол: Женский

Репутация: -  0  +


[tag=]uses graph,crt;
var d,m:integer;x1,x2,x3,x4,y1,y2,y3,y4:integer; xc,yc:real; c:char;
begin
clrscr;
initgraph(d,m,'');
readln(x1);
readln(x2);
readln(x3);
readln(x4);
readln(y1);
readln(y2);
readln(y3);
readln(y4);
repeat
line(x1,y1,x2,y2);
line(x2,y2,x3,y3);
line(x3,y3,x4,y4);
line(x4,y4,x1,y1);
xc:=(x4+x2)/2;
yc:=(y1+y3)/2;
circle(round(xc),round(yc),10);
gotoxy(x1,y1);
c:=readkey;
case c of
'd':if(x3+1)<640 then x1:=x1+1;
's':if(y2+1)<480 then y1:=y1+1;
'a':if (x4-1)>0 then x1:=x1-1;
'w':if(y1-1)>0 then y2:=y2-1;
until c=chr(27);
end.

Добавлено через 1 мин.
он мне подчеркивает где until и выдает какую-то ошибку
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
-tania-   Задача на графику   3.04.2007 19:58
Tan   round(x) - округление до целого   3.04.2007 20:01
-tania-   Я и так пробовала, пишут ту же самую ошибку.   3.04.2007 20:03
mamont001   Можеш привести код программы?   3.04.2007 20:07
-tania-   uses graph,crt; var d,m:integer;x1,x2,x3,x4,y1,y2,...   3.04.2007 20:13
Tan   Вероятно речь идёт о вершинах ромба. В таком случ...   3.04.2007 20:13
-tania-   Здесь она выдает мне ошибку, дальше вообще не знаю...   3.04.2007 20:14
Tan   circle (round(xc),round(yc),10). А ты по пифагору ...   3.04.2007 20:17
-tania-   окружность нарисовать получилось, а как тогда двиг...   3.04.2007 20:48
klem4   Есть несколько вариантов как можно перемещать ихоб...   3.04.2007 20:57
Tan   Притивно : идти по всем точкам экрана и проверять ...   3.04.2007 20:59
mamont001   Начнём из далека-считывание клавиши: Procedure ot...   3.04.2007 21:03
-tania-   uses graph,crt; var d,m:integer;x1,x2,x3,x4,y1,y2,...   3.04.2007 21:29
Tan   end после case надо   3.04.2007 21:38
-tania-   Я сейчас написала. Он мне двигает только точки кот...   3.04.2007 21:44
volvo   А я сомневаюсь, что ты знаешь, что такое GetImage ...   4.04.2007 0:35


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 22:41
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"