Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Решение задач на Pascal. Форум 2
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 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 77 78 79 80 81 ]
Модераторы: paradise, KMA
  

93NeRO93



Новичок

Плиз помогите с задачкой вот её условия:

На клетчатом прямоугольном поле размером n на m клеток находятся мышка и две кошки. Первой ходит мышка, затем по одному ходу совершают кошки, затем снова мышка и т.д. За один ход как кошка, так и мышка, перемещаются на одно поле по вертикали или горизонтали. Если мышка оказывается на краю поля, то своим очередным ходом она спрыгивает с поля и спасается от кошек. Если своим очередным ходом одна из кошек попадает на поле, где находится мышка, то мышке спасения нет.
Требуется написать программу, которая по заданному начальному положению мышки и кошек определяет, может ли мышка спастись при наилучших действиях кошек, направленных на ее поимку.

Входные данные
На первой строке находятся натуральные числа n и m, не превосходящие 100. Предполагается, что n - количество строк на поле, а m - количество столбцов. Во второй строке находится число k, не превосходящее 10, которое задает для данного поля количество тестовых случаев. В последующих k строках находятся начальные положения мышки и кошек, для каждого из которых требуется ответить на вопрос задачи. Положения задаются указанием двух чисел, первое из которых - номер строки, а второе, номер столбца. Сначала задаются положение мышки, затем положение первой кошки, затем - второй. Числа в одной строке разделяются символом "пробел".

Выходные данные
Вам следует вывести k строк с ответами для каждого из тестовых случаев. Ответ должен быть YES, если мышка спасается либо NO в противном случае.

А это то что я надумал:

var
   a:array[1..1000]of integer;
   x,b,k,i,j,h:integer;

   function dog(x,y,x1,y1,x2,y2:integer):string;
   var
   YES,NO:string;
   begin
   if(x=1)or(y=1)then dog:='YES'
   else
   begin
   if((x=y)and(x1=y1)and(x2=y2)and(x<x1)and(x<x2)and(y<y1)and(y<y2))or
    ((x=y)and(x1=y1)and(x2=y2)and(x>x1)and(x>x2)and(y>y1)and(y>y2))
   then dog:='YES'
   else
   dog:='NO';
   end;
   end;

begin
 readln(x,b);
 readln(k);
 h:=6*k;
 begin
 for i:=1 to h do
 read(a[ i ]);
 end;
 for j:=1 to k do
 begin
   write(dog(a[1],a[2],a[3],a[4],a[5],a[6]));
 end;
 readln;
 readln;
end.

заранее спасибо:-)


(Сообщение отредактировал KMA 25 марта 2009 10:08)

Всего сообщений: 6 | Присоединился: март 2009 | Отправлено: 24 марта 2009 19:52 | IP
KMA



Долгожитель

Прикольная задача. Только вот код по нормальному оформить и еще комментарии поставить. Кстати - dog по английски собака. Название функции я не понял, собстенно как и саму программу.

Поэтому распиши все как следует. А лучше сам алгоритм нахождения правильного ответа.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 25 марта 2009 10:06 | IP
darika



Новичок

Плиз помогите с задачкой..
Определить принадлежит ли заданная точка Х кольцу с центром (2,3) и R1=5   R2=7
а) Х(4,1)
б)Х(-4,3)
в) Х(-5,-1)
пожалуйста...мне оч срочно нужно!!!


(Сообщение отредактировал darika 25 марта 2009 18:13)

Всего сообщений: 4 | Присоединился: март 2009 | Отправлено: 25 марта 2009 18:11 | IP
93NeRO93



Новичок

вроде так но опять же серв валит

var
 Arr: array of Boolean;
 a:array[1..6]of integer;
 x,y,k,i,j,h:integer;


function cat_mouse(a,b,a1,b1,a2,b2:integer): Boolean;
begin
 RESULT:=true;
 if (a=1) or (b=1) then  // проверка не находится ли мышь на краю поля
   result:=true
 else
 if ((a=a1)and(a1=a2)) and ((b=b1)and (b1=b2)) then    // проверка не находятся ли они на одной точке на одной точке
   RESULT:=false
 else
 if((a=b)and(a1=b1)and(a2=b2))     //проверка находятся ли они на одной диагонали
 and
 ((a>a1)and(a<a2))or ((a<a1)and(a>a2))  //проверка расположения мышки относительно котов
 then  RESULT:=false
 else
   result:=true;
end;

begin
 readln(x,y);
 readln(k);
 SetLength(Arr, k);
 for i:=1 to k do
 begin
   for j:=1 to 6 do
     read(a[j]);
   Arr[k - 1] := cat_mouse(a[1],a[2],a[3],a[4],a[5],a[6]);
 end;
 for I := 0 to High(Arr) do
   if Arr[ I ] then
     if I=High(Arr) then
       write('YES')
     else
       writeln('YES')
   else
     if I=High(Arr) then
       write('NO')
     else
       writeln('NO');
 SetLength(Arr, 0);
readln;
readln;
end.



(Сообщение отредактировал KMA 26 марта 2009 19:59)

Всего сообщений: 6 | Присоединился: март 2009 | Отправлено: 25 марта 2009 18:20 | IP
93NeRO93



Новичок

дарика пойми здесь не решают задачи здесь помогают их решить

Всего сообщений: 6 | Присоединился: март 2009 | Отправлено: 25 марта 2009 18:26 | IP
darika



Новичок

93NeRO93 Теперь буду знать...А не подскажешь где их могут решить???

Всего сообщений: 4 | Присоединился: март 2009 | Отправлено: 25 марта 2009 18:32 | IP
93NeRO93



Новичок

решают только за деньги(((((((

Всего сообщений: 6 | Присоединился: март 2009 | Отправлено: 25 марта 2009 18:38 | IP
darika



Новичок

я эт знаю...а где не знаешь?

Всего сообщений: 4 | Присоединился: март 2009 | Отправлено: 25 марта 2009 18:39 | IP
93NeRO93



Новичок

в гугле поищи он всё найдёт

Всего сообщений: 6 | Присоединился: март 2009 | Отправлено: 25 марта 2009 21:11 | IP
KMA



Долгожитель

93NeRO93

Так, давай по порядку. Во-первых, что означает x,y в твоей проге. Я кроме их считывание нигде не вижу приминения. Что значит k?

Далее, есть у тебя ТОЧНЫЙ алгоритм, который однозначно определяет исход, или нет такого алагоритма. Потому что по большей части у тебя там написано не понятно что, наподобии такого:

Code Sample:
 
if I=High(Arr) then
      write('YES')
    else
      writeln('YES')



Совершенно не понятен ход твоих мыслей. Если нет алгоритма, тогда можем вместе подумать над решением.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 26 марта 2009 20:15 | IP

Эта тема закрыта, новые ответы не принимаются

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 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 77 78 79 80 81 ]

Форум работает на скрипте © Ikonboard.com