Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> найти сокровище 
:(
    Опции темы
banan
Дата 13.12.2004, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 21.11.2004
Где: Киев

Репутация: нет
Всего: нет



Найти закопанное пиратами сокровище просто: все, что для этого нужно - это карта. Как известно, пираты, как правило, рисуют карту от руки и описывают алгоритм поиска сокровища «Встаньте около одинокой пальмы. Пройдите тридцать шагов в сторону леса, потом семнадцать шагов в сторону озера, наконец, десять шагов в сторону большого булыжника. Сокровище находится под ним». Большая часть таких указаний просто взводится до прохождения какого-то количества шагов в одном из восьми направлений (1 - север, 2 - северо-восток, 3 - восток, 4 - юго-восток, 5 -юг, 6 – юго-запад, 7 - запад, 8 - северо-запад) (см. рис). Длина шага в любом направлении равна 1.
Путешествуя по такому пути, это дает возможность помиловаться красотой окружающей природы, но у нас время на это нет . Поэтому пираты хотят идти до точки, где спрятано сокровище. Например, вместо того, чтобы проходить три шага на север, один - на восток, один - па север, три - на восток, два - на юг и один - на запад, можно пройти напрямик, используя приблизительно 3.6 шага.
Вам нужно написать программу которая по которая по указаниям пиратов узнает координати точки где зарит клад.
Формат входящих данных: первый ряд имеет число N-число указаний. Следующие ряды состоят из самых указаний(номер направления и количество шагов между числами есть пропуск)
Формат исходящих данных:у исходящий файл вивести координати точок X I Y(два числа между которими есть пропуск )
Имя входного файла: c.in
Имя исходящего файла: c.out
Максимальный час работы над одним тестом: 2 секунды

Это сообщение отредактировал(а) Pakshin A. S. - 22.1.2005, 20:58
PM MAIL   Вверх
Jureth
Дата 14.12.2004, 06:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 23.11.2004
Где: где-то в Западной Сибири

Репутация: нет
Всего: 3



Цитата
Максимальный час работы над одним тестом: 2 секунды
А машина какая? В смысле - для 4 пня это не проблема, а вот для 286-го ...
PM   Вверх
Fedor
Дата 14.12.2004, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



Ограничения - размер карты, макс. количесвтво указаний?

Вообще, насколько я понимаю, тут самое быстрое решение - если идем вверх, прибавлять к y-коорд еденицу, вниз - отнимать еденицу и т.д.


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
banan
Дата 14.12.2004, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 21.11.2004
Где: Киев

Репутация: нет
Всего: нет



1<Число указаний<40. Номер направления от 1 до 8.Количество шагов от 1 до 1000
PM MAIL   Вверх
Akina
Дата 14.12.2004, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



banan
Код

' Direction - направление, строка 1 байт
' Count - сколь шагов в этом направлении, целое
Nord=0
West=0
For i=1 to DirectionCount
  if instr("128", Direction(i)) then Nord=Nord+Count(i)
  if instr("456", Direction(i)) then Nord=Nord-Count(i)
  if instr("678", Direction(i)) then West=West+Count(i)
  if instr("234", Direction(i)) then West=West-Count(i)
Next i

А на С (или там Паскаль) сами переводите.

PS. Задачка для третьего класса.

Это сообщение отредактировал(а) Akina - 14.12.2004, 14:15


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Ptica
Дата 14.12.2004, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 27.7.2004

Репутация: нет
Всего: 2



...если считать, что вначале игрок стоит в точке (0,0)...
Код

{--- Borland Pascal 6.0 ---}
program pirate;
var inf,outf: text;
   nord,west: integer;
   direction: byte;
   steps: byte;
   numdir,i: byte;
begin
 assign(inf,'c.in');
 reset(inf);

 readln(inf,numdir);

 nord:=0;
 west:=0;

 for i:=1 to numdir do
     begin
       readln(inf,direction,steps);

       case direction of
           1: nord := nord + steps;
           2: begin nord := nord + steps; west := west - steps end;
           3: west := west - steps;
           4: begin nord := nord - steps; west := west - steps end;
           5: nord := nord - steps;
           6: begin nord := nord - steps; west := west + steps end;
           7: west := west + steps;
           8: begin nord := nord + steps; west := west + steps end;
       end;
     end;

 close(inf);

 assign(outf,'c.out');
 rewrite(outf);

 write(outf,nord,' ',west);
 close(outf);
end.

PM MAIL   Вверх
banan
Дата 14.12.2004, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 21.11.2004
Где: Киев

Репутация: нет
Всего: нет



В начале игрок стоит в точке (0,0)
PM MAIL   Вверх
banan
Дата 14.12.2004, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 21.11.2004
Где: Киев

Репутация: нет
Всего: нет



Если игрок идет по направлениям(2,4,6,8)Например 3 шага то длина етого пути составляет 3.6шага(приблизитильно).
PM MAIL   Вверх
Fedor
Дата 14.12.2004, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



Так, я не понял. В чем сейчас заключается вопрос?


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
banan
Дата 14.12.2004, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 21.11.2004
Где: Киев

Репутация: нет
Всего: нет



Если ввести:1
1 10
ТО должно вивести в файл с.оut: 0 10. А виводит: 10 10

Это сообщение отредактировал(а) banan - 14.12.2004, 20:56
PM MAIL   Вверх
Fedor
Дата 15.12.2004, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



Цитата(banan @ 14.12.2004, 19:55)
Если ввести:1
1 10
ТО должно вивести в файл с.оut: 0 10. А виводит: 10 10

Странно. У меня выводит "10 0". Но превратить его в "0 10" можно, поменяв при выводе в файл nord и west


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
slava_s
  Дата 20.12.2004, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 20.12.2004
Где: Киев

Репутация: нет
Всего: нет



Банан привет. Я не знаю как делать ету задачу. От Славана
PM MAIL   Вверх
Fedor
Дата 22.12.2004, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



slava_s Мда... Бывает...


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0569 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.