• Страница 3 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Модератор форума: Екатерина_Пашкова  
Форум учителей об образовании в России и мире » Форум педагогов по предметам, разделам » Форум учителей информатики » Олимпиада по информатике (Обсуждение олимпиад по информатике: задания, вопросы, ответы)
Олимпиада по информатике
giferДата: Понедельник, 19.10.2009, 21:04 | Сообщение # 31
gifer

Андрей Малыгин
Ранг: Первоклашка (?)
Группа: Пользователи
Сообщений:
29
Награды: 0
Статус: Offline
Как бы вы решили такую задачу:


Два города соединены прямой дорогой длиной ровно l метров. В начальный момент времени велосипедист начинает движение из города в A в город B со скоростью v1 метров/секунду, а пешеход начинает движение из города B в город A со скоростью V2 м/с. Когда один из них достигает города, дорога кончается, таким образом, велосипедист или пешеход должен развернуться и продолжить движение в противоположном направлении по этой же дороге, сохраняя изначальную скорость. В результате, велосипедист и пешеход путешествуют между городами A и B до бесконечности.
Ваша задача заключается в том, чтобы вычислить число раз, когда они встретятся в течении первых t секунд. Если они встречаются ровно через t секунд после начала движения, эта встреча также должна засчитываться.
Входные данные
Единственная строка содержит четыре целочисленных числа: l, v1, v2 и t. Все числа лежат в пределах 1...10^9.
Выходные данные
Выведите единственное число - количество встреч велосипедиста и пешехода в течении первых t секунд.
Пример входных данных #1
1000 10 1 200
Пример выходных данных #1
2
Пример входных данных #2
4 4 3 4
Пример выходных данных #2
4

19.10.2009


Сообщение отредактировал gifer - Понедельник, 19.10.2009, 23:55
SergeySmlДата: Понедельник, 19.10.2009, 23:04 | Сообщение # 32
SergeySml

Сергей Игнатьевич
Ранг: Студент (?)
Группа: Я - учитель
Сообщений:
161
Награды: 1
Статус: Offline
Не проверял, писал в блокноте, но должно работать. Типичная задача на отскок шарика от стенки к стенке...
Program zadacha;
var
v1,v2,L,t,n,i,x1,x2:integer;
f1,f2: boolean;
begin
write('vq,v2,L,t = ');
read(vq,v2,L,t);
n:=0;
x1:=0;
x2:=0;
f1:=true;
f2:=false;
For i:=1 to t do
begin
if f1 then inc(x1,v1) else dec(x1,v1);
if f2 then inc(x2,v2) else dec(x2,v2);
if (x1=0) or (x1=L) then f1:=not f1;
if (x2=0) or (x2=L) then f2:=not f2;
if x1=x2 then inc(n);
end;
Writeln('n=',n);
end.
19.10.2009
giferДата: Понедельник, 19.10.2009, 23:50 | Сообщение # 33
gifer

Андрей Малыгин
Ранг: Первоклашка (?)
Группа: Пользователи
Сообщений:
29
Награды: 0
Статус: Offline
Это решение неверно... Как я понял у вас учитываются только время встреч в целое число секунд. Однако это не так. Исследуя второй пример, я пришел к выводу, что встречи бывают примерно в 0,57 с, 1,75 с, 2,95 с, и 4 с. Т. е. моменты встреч находятся в непрерывном отрезке [0;t]. Таким образом, цикл здесь не поможет. Ваша программа на втором тесте дает ответ 0.
19.10.2009
SergeySmlДата: Вторник, 20.10.2009, 07:44 | Сообщение # 34
SergeySml

Сергей Игнатьевич
Ранг: Студент (?)
Группа: Я - учитель
Сообщений:
161
Награды: 1
Статус: Offline
gifer, Как я понял, из условия задачи, речь идет о дискретных величинах. Причем уровень дискретности задан типом - целые. Мы имеем МОДЕЛЬ, а не реальное явление. С этой точки зрения задача решена верно.
Если рассматривать Вашу точку зрения, то следует задавать скорости вещественными числами, для координат х1, х2, счетчика времени i выбрать вещественный тип. Задавать величины скоростей с определенной степенью точности (хотя это и не обязательно). И, наконец, применить цикл While или Repeat, где изменение времени будет происходить через выбранный промежуток (степень точности!), а моменты встреч фиксироваться по условию: abs(abs(x1)-abs(x2))<=0.001(выбранная степень точности). Ну и конечно приращение координат на ДОЛЮ от введенного значения скорости.
В Basic можно и циклом For.

Но, вероятно, и приводимое мной решение можно улучшить: if abs(abs(x1)-abs(x2))<=1 then inc(n);

20.10.2009


Сообщение отредактировал SergeySml - Вторник, 20.10.2009, 08:03
giferДата: Вторник, 20.10.2009, 10:05 | Сообщение # 35
gifer

Андрей Малыгин
Ранг: Первоклашка (?)
Группа: Пользователи
Сообщений:
29
Награды: 0
Статус: Offline
Типичная ошибка... Нигде в условие не написано, что учитываются встречи только в целое количество времени. Целыми являются только и лишь ТОЛЬКО l, v1, v2 и t (именное это вытекает из условия но ничего больше). Многие школьники на начальном этапе видят в условиях больше чем есть на самом деле.
В последнем Вашем решении Вы предлагаете опять расматривать дискретные промежутки времени, а как это видать из условия, это не есть верно... Кроме того, мне просто интересно, сколько ваше решение будет работать при экстремальных данных (например, 1000 1 1000000 1000000000). В олимпиадных задачах обычно есть ограничение времени работы программы. В данном случае 2 секунды.
Кстати, эта задача предлагалась школьникам на региональных соревнованях.
20.10.2009


Сообщение отредактировал gifer - Вторник, 20.10.2009, 10:07
SergeySmlДата: Вторник, 20.10.2009, 13:13 | Сообщение # 36
SergeySml

Сергей Игнатьевич
Ранг: Студент (?)
Группа: Я - учитель
Сообщений:
161
Награды: 1
Статус: Offline
В таком случае:
Нужно искать число "преломлений" относительного движения объектов...
Я знаю как решается задача!
20.10.2009
AditДата: Понедельник, 09.11.2009, 01:55 | Сообщение # 37
Adit

Денис Слетков
Ранг: Дошколенок (?)
Группа: Я - учитель
Сообщений:
12
Награды: 0
Статус: Offline
Вообще решение любой задачи начинается с листа бумаги. Я вот на задачу посмотрел, и вот что получилось, в координатах x(t) движение объектов ломанная линия, т.е. задача сводится нахождению точек пересечений ломанных, уравнения на отдельном отрезке получить не проблема, пересечение линий найти тоже.
09.11.2009
giferДата: Вторник, 10.11.2009, 18:29 | Сообщение # 38
gifer

Андрей Малыгин
Ранг: Первоклашка (?)
Группа: Пользователи
Сообщений:
29
Награды: 0
Статус: Offline
Adit, Ваш подход как раз совпадает с моим. Только я сами уравнения прямых не нахожу, я сразу составляю диофантово уравнение и нахожу количество его решений.
10.11.2009
мыхаДата: Четверг, 12.11.2009, 13:34 | Сообщение # 39
мыха

МСОШ
Ранг: Школьник (?)
Группа: Я - учитель
Сообщений:
97
Награды: 0
Статус: Offline
В этом году проводятся олимпиады по информатике для 7-8 классов.. Кто - нибудь принимал участие в подобных? Может знаете что там примерно? Уж, надеюсь, в 7 классе не будет программирование
12.11.2009
K@ttiДата: Четверг, 12.11.2009, 15:29 | Сообщение # 40
K@tti

Екатерина
Ранг: Академик (?)
Admin
Группа: Пользователи
Должность: информатика
Сообщений:
6010
Награды: 77
Статус: Offline
Quote (мыха)
В этом году проводятся олимпиады по информатике для 7-8 классов.. Кто - нибудь принимал участие в подобных? Может знаете что там примерно? Уж, надеюсь, в 7 классе не будет программирование

У нас олимпиады только в 9-11 кл.

12.11.2009
chernysh8Дата: Четверг, 12.11.2009, 16:34 | Сообщение # 41
chernysh8

Ранг: Доцент (?)
Группа: Я - учитель
Сообщений:
1503
Награды: 21
Статус: Offline
"Блажен, кто верует"
Решение задач составлением программы.
"По номеру квартиры определить подъезд и этаж. Задаётся количество этажей, подъездов, квартир." Примерно такая первая задача. Остальные в том же духе. Четвёртый год наша школа в олимпиадах по такой информатике не участвует.
Первую задачу я решил, потому и запомнил текст. В остальных до меня не дошло условие. Больно не пинайте, я самоучка, решение задач "изучал" часа два на Бейсике 10 лет тому назад.
12.11.2009
giferДата: Четверг, 12.11.2009, 19:22 | Сообщение # 42
gifer

Андрей Малыгин
Ранг: Первоклашка (?)
Группа: Пользователи
Сообщений:
29
Награды: 0
Статус: Offline
Насколько я знаю, у нас задачи на программирование начинаются только с олимпиад 9 класса. В восьмом классе предлагают просто составить словесный алгоритм решения задачи, на худший случай дадут несколько логических задачек. Насчет 7 класса - в первый раз слышу. У нас все с 8 ездят.
12.11.2009
мыхаДата: Воскресенье, 15.11.2009, 15:46 | Сообщение # 43
мыха

МСОШ
Ранг: Школьник (?)
Группа: Я - учитель
Сообщений:
97
Награды: 0
Статус: Offline
gifer, а есть у вас примеры таких задач для 8 класса?
вообще не могу ничего найти кроме программирования в олимпиадах
15.11.2009
K@ttiДата: Воскресенье, 15.11.2009, 16:02 | Сообщение # 44
K@tti

Екатерина
Ранг: Академик (?)
Admin
Группа: Пользователи
Должность: информатика
Сообщений:
6010
Награды: 77
Статус: Offline
Quote (мыха)
вообще не могу ничего найти кроме программирования в олимпиадах

На РМО у нас задали такой вопрос. Ответ был таков: не ждите в олимпиадах ничего, кроме программирования. Все остальные темы у нас идут на конкурсах.

15.11.2009
мыхаДата: Воскресенье, 15.11.2009, 16:15 | Сообщение # 45
мыха

МСОШ
Ранг: Школьник (?)
Группа: Я - учитель
Сообщений:
97
Награды: 0
Статус: Offline
у нас для 7-8 классов сказали будут основы только... многие только начинают изучать ее в 8 классе. я задачки хочу найти для тренировки учащимся на алгоритмику, логику, кодирование но уровень семи-висьмикласников
15.11.2009
Форум учителей об образовании в России и мире » Форум педагогов по предметам, разделам » Форум учителей информатики » Олимпиада по информатике (Обсуждение олимпиад по информатике: задания, вопросы, ответы)
  • Страница 3 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:



Спорная ситуация с родителями или администрацией? Ищете выход из проблемы на уроке или с учеником?
Не знаете, как что-то сделать на компьютере?


Вы можете задать анонимный вопрос
х
Подробно изложите суть вашего вопроса.
Обратите внимание, что вопросы публикуются в открытом доступе на сайте, поэтому не указывайте персональные данные ваши или иных лиц. Однако стоит указать свой РЕГИОН, т.к. законодательство в разных регионах разное.
Отправить