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

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

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

 
 Ответить  Открыть новую тему 
> Задача про жуков))
Shook Its On
сообщение 20.06.2007 21:52
Сообщение #1


Гость






Помогите плиз решить задачку с использованием динамических списков:

Файл содержит информацию о местах на плоскости некоторого количества жуков. Продемонстрировать (К примеру в матрице - считая в ней 1-жук, 0 - нету жука) поведение колонии жуков на K шагах(каждый шаг матрица меняется). В течение одного шага каждый жук преследует следующего за ним жука. Последний жук преследует первого жука. Если в конце шага жук приблизился к преследуемому жуку ближе, чем на E(задаваемое пользователем число), он поедает преследуемого жука.

Очень надеюсь на вашу помощь и заранее благодарен)))
 К началу страницы 
+ Ответить 
Michael_Rybak
сообщение 20.06.2007 22:40
Сообщение #2


Michael_Rybak
*****

Группа: Модераторы
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

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


Прикольно smile.gif

В чем именно проблема?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Shook Its On
сообщение 20.06.2007 23:06
Сообщение #3


Гость






Да вот просто не знаю как писать - не разобрался ещё толком в динамических списках(( (программирую не так давно - учусь токо)

Сообщение отредактировано: Shook Its On - 20.06.2007 23:07
 К началу страницы 
+ Ответить 
Lapp
сообщение 21.06.2007 0:01
Сообщение #4


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Shook Its On @ 21.06.2007 0:06) *

не разобрался ещё толком в динамических списках((

Про списки почитай вот тут: Все о динамических структурах данных.
А хоть что-то есть? Если начал писать - покажи, поможем.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 21.06.2007 6:52
Сообщение #5


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Интересно - а уже была аналогичная тема! Только что случайно наткнулся, вот:
Жучки
Только не знаю, поможет ли она тебе.. smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Shook Its On
сообщение 22.06.2007 14:59
Сообщение #6


Гость






Спасибо за ссылки)) Посмотрю и всётаки попытаюсь написать прогу - вдруг всётаки додумаю как))

Сообщение отредактировано: Shook Its On - 22.06.2007 15:00
 К началу страницы 
+ Ответить 
Shook Its On
сообщение 24.06.2007 23:17
Сообщение #7


Гость






Вот написал - почти всё работает - жучки бегают но некоторые время от времени размножаются)))) появляется 2 одинаковых)) немогу найти ошибку - Помогите плиз
Заранее благодарен

Код

program Zuki;
type
Dzuk=^Zuk;
Zuk=record
    num:   integer;
    x,y:   integer;
    pnext:     Dzuk
    end;
tmas=array [1..12] of array [1..12] of integer;

var pBeg,pnex,ppr,p1,p2,pd:Dzuk;
    input,output:text;
    n,m,i,j,k,l:integer;
    e:real;
    mas:tmas;

procedure obnul(var as:tmas);
var c,d:integer;
begin
for c:=1 to 12 do begin
   for d:=1 to 12 do as[c,d]:=0;
                  end;
end;

procedure vivod(var as:tmas);
var c,d:integer;
begin
for c:=1 to 12 do begin
   for d:=1 to 12 do if as[c,d]=0 then write(output,'_  ')
                        else write(output,as[c,d],'  ');
   writeln(output);
                  end;
end;


procedure shag(var d1,d2:Dzuk);
var a1,b1,a2,b2:integer;  h:real; r:Dzuk;
begin
a1:=d1^.x;
b1:=d1^.y;
a2:=d2^.x;
b2:=d2^.y;
if a1<a2 then a1:=a1+1;
if b1<b2 then b1:=b1+1;
if a1>a2 then a1:=a1-1;
if a1>a2 then b1:=b1-1;
d1^.x:=a1;
d1^.y:=b1;
h:=sqrt(sqr(a2-a1)+sqr(b2-b1));
if h<e then begin
            r:=d1^.pnext;
            d1^.pnext:=d1^.pnext^.pnext;
            if r=pBeg then pBeg:=d1^.pnext;
            r^.pnext:=nil; k:=k-1;
            end;

end;


begin
assign(input,'input.txt');  reset(input);
assign(output,'output.txt'); rewrite(output);
read(input,n);
writeln(output,'kol-vo zukov =',n);
read(input,m);
writeln(output,'kol-vo wagov =',m);
read(input,e);
writeln(output,'rassto9nie poedani9 =',e);
k:=n;
{____sozdaem___spisok__________________________}
new(p1);
p2:=p1;
pBeg:=p1;
p1^.num:=1;
read(input,p1^.x);
read(input,p1^.y);
for i:=2 to n do
   begin
        new(p2^.pnext);
        p2:=p2^.pnext;
        p2^.num:=i;
        read(input,p2^.x);
        read(input,p2^.y);
   end;
p2^.pnext:=p1;
{_______________________________________________}
ppr:=pBeg;
pnex:=pBeg;
for i:=1 to n do begin
mas[pnex^.x,pnex^.y]:=pnex^.num;
pnex:=pnex^.pnext;
end;
vivod(mas);
writeln(output,'************************');


for j:=1 to m do begin
    obnul(mas);
    ppr:=pBeg;
    for i:=1 to k do begin
ppr:=ppr^.pnext;
end;
     for l:=1 to k do begin
     shag(ppr,ppr^.pnext);
     mas[ppr^.x,ppr^.y]:=ppr^.num;
     ppr:=ppr^.pnext;
     end;

        vivod(mas);
        writeln(output,'************************');

end;

close(output);
end.


Сообщение отредактировано: Shook Its On - 25.06.2007 10:26


Прикрепленные файлы
Прикрепленный файл  zuki.rar ( 2.19 килобайт ) Кол-во скачиваний: 121
 К началу страницы 
+ Ответить 
Bokul
сообщение 25.06.2007 3:15
Сообщение #8


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

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


Прикрепи необходимые файлы.


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Shook Its On
сообщение 25.06.2007 10:27
Сообщение #9


Гость






Добавил)) (сразу после кода)
 К началу страницы 
+ Ответить 

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

 



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