![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
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 - |
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 и язык тоже называется Дельфи... |
![]() ![]() |
![]() |
Текстовая версия | 20.04.2025 13:42 |