![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
phoenix85 |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Stas Репутация: ![]() ![]() ![]() |
Помогите, пожалуйста, решить 3 задачки в Паскале..
на выходных сдавать, а я в этом ни гу-гу... есть 3 задачки: 1. сгибающаяся под тяжестью растущего плода ветка; 2. Перемещать три звезды разного цвета в пределах экрана; 3. Построить прямоугольник со сторонами разного цвета и основанием, движущимся согласно процедуре OTREZOK |
Archon |
![]()
Сообщение
#2
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: ![]() ![]() ![]() |
Что, совсем ни гу-гу? Просто не ясно, с чего начинать помощь: с анимации, с графики или вообще с основ Паскаля.
Попробуй для начала первую сделать. Вот заготовка, а описание конкретных процедур для рисования можно найти например здесь. uses
Graph, Crt;
procedure DrawBranch;
begin
{ Тут следует разместить команды для рисования ветки. }
end;
var
gd, gm: Integer;
begin
gd := Detect;
InitGraph(gd, gm, '');
DrawBranch;
ReadKey;
CloseGraph;
end.
-------------------- Close the World...txeN eht nepO
|
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Archon, похоже, что не все так просто, и нарисовать надо не статическую ветку с плодом на ней, а анимацию, отображающую рост этого самого "фрукта" (ну, или что там еще на деревьях растет) и изгибание под его весом ветки. Заметь, все остальные задачи - тоже на анимацию...
А вообще, автору очень не мешало бы сначала ознакомиться с правилами (как форума в целом, так и этого раздела в частности), и только потом задавать вопросы... |
phoenix85 |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Stas Репутация: ![]() ![]() ![]() |
я конечно много извиняюсь,
но просто время уже поджимает.. да, задачи на анимацию.. я уже не знаю, что и сделать... помогите.. сори что может не туда пишу, но просто выхода уже нету... а я в паскале - ноль... так что помогите с кодами.. уж не ругайте сильно... |
phoenix85 |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Stas Репутация: ![]() ![]() ![]() |
3ю задачу на треуголник решил..
а вот первые две - никак. |
Archon |
![]()
Сообщение
#6
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: ![]() ![]() ![]() |
Покажи, как решил, поможем переделать.
-------------------- Close the World...txeN eht nepO
|
phoenix85 |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Stas Репутация: ![]() ![]() ![]() |
да третью я уже сделал,
мне надо с первыми двумя разобраться, или хотя бы со звездами... напишите плиз код, я не знаю как делать... |
Archon |
![]()
Сообщение
#8
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: ![]() ![]() ![]() |
Даже если кто-нибудь захочет делать тебе программы с нуля и бесплатно, ему придется гадать как именно их надо сделать. Например, можно ли использовать объекты, записи. Если ты приведешь свой код решения третьей задачи, это поможет правильно написать решение первых двух, а кроме того, покажет, что ты не халяву ловишь, а пытаешься и сам что-то сделать.
-------------------- Close the World...txeN eht nepO
|
phoenix85 |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Stas Репутация: ![]() ![]() ![]() |
PROGRAM treug;
uses Graph;
var Gd,Gm: Integer;
BEGIN
Gd:=VGA; Gm:=VGAHi; InitGraph (Gd,Gm,'c:\tp\bgi');
If GraphResult=grOk
then
begin
SetColor (LightMagenta); {cvet gorizont linii}
Line (120,210,520,210); {gorizont otrezok }
SetColor (LightCyan); {cvet levogo}
Line (120,210,320,10); {levii katet}
SetColor (Green); { cvet pravogo}
Line (320,10,520,210); {pravii katet}
ReadLn
end
END.
вот код треугольника... а вращающаяся линия отпадает, не могу доделать Сообщение отредактировано: Lapp - 26.06.2009 22:05 |
Archon |
![]()
Сообщение
#10
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ладно, вот код ко второй задаче. Разбирайся, задавай вопросы.
uses
Graph, Crt;
const
NumStars = 5; { Число звезд. }
StarRadius = 25; { Размер звезд. }
Step = 1; { Шаг, с которым перемещаются звезды. }
FrameDelay = 1; { Задержка кадра. Попробуй увеличить это значение, }
{ если звезды движутся слишком быстро. }
var
Star: array [0..5] of PointType;
gd, gm: Integer;
i: Integer;
Pos, Offset: array[1..NumStars] of PointType;
Color: array[1..NumStars] of Word;
begin
gd := Detect;
InitGraph(gd, gm, '');
{ Начальные координаты звезд, направления их движения и цвет задаются случайно. }
Randomize;
for i := 1 to NumStars do begin
Pos[i].x := StarRadius + Random(GetMaxX - 2 * StarRadius);
Pos[i].y := StarRadius + Random(GetMaxY - 2 * StarRadius);
Offset[i].x := Step * (1 - 2 * Random(2));
Offset[i].y := Step * (1 - 2 * Random(2));
Color[i] := Random(GetMaxColor - 1) + 1;
end;
{ Вычисление вершин звезды. }
for i := 0 to 5 do begin
Star[i].x := Round(Sin(i * Pi * 0.8) * StarRadius);
Star[i].y := Round(-Cos(i * Pi * 0.8) * StarRadius);
end;
{ Основной цикл. }
repeat
for i := 1 to NumStars do begin
{ Стираем звезду. }
SetColor(Black);
SetViewPort(Pos[i].x, Pos[i].y, Pos[i].x, Pos[i].y, false);
DrawPoly(6, Star);
{ Меняем положение звезды. }
Inc(Pos[i].x, Offset[i].x);
Inc(Pos[i].y, Offset[i].y);
{ Если звезда достигла края экрана, меняем направление ее движения. }
if (Pos[i].x < StarRadius) or (Pos[i].x > GetMaxX - StarRadius) then
Offset[i].x := -1 * Offset[i].x;
if (Pos[i].y < StarRadius) or (Pos[i].y > GetMaxY - StarRadius) then
Offset[i].y := -1 * Offset[i].y;
{ Рисуем звезду в новом месте. }
SetColor(Color[i]);
SetViewPort(Pos[i].x, Pos[i].y, Pos[i].x, Pos[i].y, false);
DrawPoly(6, Star);
end;
{ Задержка, чтобы кадры не сменяли друг друга слишком быстро. }
Delay(FrameDelay);
until KeyPressed;
CloseGraph;
end.
-------------------- Close the World...txeN eht nepO
|
phoenix85 |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Stas Репутация: ![]() ![]() ![]() |
Archon - огромное тебе спасибо, немного поэксперементировал со звездами...
блин, ты меня выручил... а что делать с 1ой ? есть парочка идей.. можно сделать статическую линию и тупо круг под ней, линия опускается, и круг немного увеличивается, (ну скажем до 10 раз так может происходить).. а дальше надо сделать, что бы предыдущий рисунок стирался.. идея правильная? можно ведь так? и легче будет, и особо заморачиваться не надо... |
Archon |
![]()
Сообщение
#12
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата идея правильная? можно ведь так? и легче будет, и особо заморачиваться не надо... Конечно ![]() uses
Graph, Crt;
const
FrameDelay = 50; { Задержка кадра. }
NumStages = 100; { Число степеней "зрелости" фрукта. }
procedure DrawBranch(Stage: Integer; Draw: Boolean);
begin
{ ... }
{ Здесь надо поместить код рисования ветки с фруктом в зависимости от степени }
{ зрелости фрукта (Stage). В примере это число меняется от 0 до 99, но ты }
{ можешь сделать так, как будет удобнее. Если Draw = false, то рисовать надо }
{ черным цветом, если Draw = true, то рисовать надо обычными цветами. }
{ Это просто пример, чтобы убедиться, что все работает: }
if Draw then SetColor(Red) else SetColor(Black);
Line(10, 50, 200, 50 + Stage);
end;
var
gd, gm: Integer;
Stage: Integer;
begin
gd := Detect;
InitGraph(gd, gm, '');
{ Основной цикл. }
Stage := 0;
repeat
{ Стираем ветку. }
DrawBranch(Stage, false);
{ Переходим на новую стадию наклона. }
Inc(Stage);
{ Рисуем ветку в новой стадии. }
DrawBranch(Stage, true);
{ Задержка, чтобы кадры не сменяли друг друга слишком быстро. }
Delay(FrameDelay);
until Stage > NumStages;
ReadKey;
CloseGraph;
end.
-------------------- Close the World...txeN eht nepO
|
phoenix85 |
![]()
Сообщение
#13
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Stas Репутация: ![]() ![]() ![]() |
конечно огромное спасибо за основу, но все же, у меня нету никаких идей, как сделать,
будь добр, выручи то... а то не сдам эти лабы, чтоб их... |
лёшик |
![]()
Сообщение
#14
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
Чото у меня в задачке со звездами пишет, что файл Graph.dcu не находит. Дельфи7, чо бы это значило?
|
V877 |
![]()
Сообщение
#15
|
Гость ![]() |
Цитата чо бы это значило? Это значило бы, что надо пользоваться Паскалем, а не Дельфи для работы с модулем Graph (которого в Дельфи просто нет) |
лёшик |
![]()
Сообщение
#16
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
хи-хи, скачал Паскаль с "Паскалера.ру", а он 97 года и ругается, не может в нормальную ХР-ку прописаться
![]() Добавлено через 3 мин. Мож, Паскаль уже устарел, лучше язык Дельфи учить? ![]() Добавлено через 3 мин. Доброе утро, Владимир, рад Вас видеть! ))) ![]() |
volvo |
![]()
Сообщение
#17
|
Гость ![]() |
Я не знаю, чего и откуда ты качал, но Турбо Паскаль 1992 года в XP работает прекрасно, причем никуда не прописывается... Или (если не можешь установить Турбо), скачай FPC: http://www.freepascal.org/download.var , он тоже прекрасно работает с Graph.
Цитата Мож, Паскаль уже устарел, лучше язык Дельфи учить? Ну вот учишь ты Дельфи, тебе это помогло? Простейшую программу запустить и то не можешь... А то что Паскаль устарел - это ищи в Гугле место для холиваров и иди туда, здесь - не надо... Паскали они разные, я тебе сказал уже... |
Lapp |
![]()
Сообщение
#18
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
скачал Паскаль с "Паскалера.ру", а он 97 года и ругается, не может в нормальную ХР-ку прописаться Незачем ему прописываться. Если это не 64-версия, то просто нужно создать каталог ТР и скопировать его туда.Мож, Паскаль уже устарел, лучше язык Дельфи учить? Нету такого языка: Дельфи. Есть система разработчика Дельфи, которая использует язык Object Pascal.-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
лёшик |
![]()
Сообщение
#19
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не, совершенно очевидно, что сам Паскаль не устареет, стареют только его турбо-воплощения))) И одно другому не мешает))) А кто такие холивары??
![]() |
volvo |
![]()
Сообщение
#20
|
Гость ![]() |
Цитата Есть система разработчика Дельфи, которая использует язык Object Pascal. Неправда, начиная с D7 и язык тоже называется Дельфи... |
![]() ![]() |
![]() |
Текстовая версия | 29.07.2025 7:48 |