powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Кто решал 41 задачу про корабли
16 сообщений из 16, страница 1 из 1
Кто решал 41 задачу про корабли
    #33360767
mamchiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неделю бьемся над задачей-

Рассматривается БД кораблей, участвующих во второй мировой войне. Имеются следующие отношения:
Classes (class, type, country, numGuns, bore, displacement)
Ships (name, class, launched)
Battles (name, date)
Outcomes (ship, battle, result)
Корабли в «классах» построены по одному и тому же проекту, и классу присваивается название первого корабля этого класса. Отношение Classes содержит имя класса, тип (bb для боевого (линейного) корабля или bc для боевого крейсера), страну, в которой построен корабль, число главных орудий, калибр орудий (диаметр ствола орудия в дюймах) и водоизмещение ( вес в тоннах). В отношении Ships записаны название корабля, имя его класса и год спуска на воду. В отношение Battles включены название и дата битвы, в которой участвовали корабли, а в отношении Outcomes – результат участия данного корабля в битве (потоплен-sunk, поврежден - damaged или невредим - OK).
Замечание. В отношение Outcomes могут входить корабли, отсутствующие в отношении Ships.

----Найдите названия всех кораблей из базы данных, спущенных на воду до 1941 г.
Помогите, кто решил!!!
Наши решения основная база принимает, а тестовая нет.
...
Рейтинг: 0 / 0
Кто решал 41 задачу про корабли
    #33360901
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНайдите названия всех кораблей из базы данных, спущенных на воду до 1941 г.

Или я неправильно понимаю условия, или решение просто

select * from ships where launched < 1941;
...
Рейтинг: 0 / 0
Кто решал 41 задачу про корабли
    #33361201
Astron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хрен авторНайдите названия всех кораблей из базы данных, спущенных на воду до 1941 г.

Или я неправильно понимаю условия, или решение просто

select * from ships where launched < 1941;

ГЫ. Когда меня просили студенты решить задачку, я честно предупреждал - работать будет, но не примут. В одном случае сдудента раскололи на названиях переменных (ну кто знал что для вершин треугольника кроме A,B,C других имен препод не представляет?), у другого не приняли задачку на возможность составить 1 слово из другого. Причина - препод считал что надо вложенные циклы, мне про это не сказали и цикл был 1. Что-то мне подсказывает что ситуация аналогичная :-)
...
Рейтинг: 0 / 0
Кто решал 41 задачу про корабли
    #33361207
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хрен авторНайдите названия всех кораблей из базы данных, спущенных на воду до 1941 г.

Или я неправильно понимаю условия, или решение просто

select * from ships where launched < 1941;

поправлю себя:

select distinct name from ships where launched <1941;
...
Рейтинг: 0 / 0
Кто решал 41 задачу про корабли
    #33361396
mamchiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, нет, там не все так просто. Есть еще корабли с неизвестным годом спуска на воду, но принимали участие в битвах до 45 года, Возможна такая ситуация.
1. Головной корабль в Ships с неизвестным годом или в Outcomes c датой
сражения после 41 года.
2. Другие корабли этого класса в Ships тоже имеют неизвестный год спуска на
воду.
3. Один из них участвовал в сражении до 41 года.
Вывод: оба корабля (этот и головной) должны быть в наборе.
...
Рейтинг: 0 / 0
Кто решал 41 задачу про корабли
    #33361593
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор вопроса - для начала напиши все требования к хранимым данным, что должно быть и как связываться. Это и будет ответом.
...
Рейтинг: 0 / 0
Кто решал 41 задачу про корабли
    #33471923
JoddyMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне потребовалось 5 Selectов, чтобы вытащить все,
Если бы те кто это придумал предупредили о не которых допущениях в структуре раньше или в связи с этим заданием то возможно я решил бы быстрее. Селекты предлагаю воссоздать вам, но окончательно:
1.Корабли заложенные до 1941 из Ships
2.Корабли, участвовавшие в битвах до 1941 из Outcomes
3.Корабли, являющиеся головными для кораблей заложенных до 1941 г.
4.Корабли, являющиеся головными для кораблей, участвовавших в битвах до 1941 из Ships
5. Корабли, являющиеся головными для кораблей, участвовавших в битвах до 1941 из Outcomes
...
Рейтинг: 0 / 0
Кто решал 41 задачу про корабли
    #33554717
XramLamers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
воссоздал все selectы но все рано пишет "Ваш запрос вернул правильные данные на основной базе, но не прошел тест на проверочной базе.
* Неверное число записей (меньше на 5)"
...
Рейтинг: 0 / 0
Кто решал 41 задачу про корабли
    #33846395
Rai220
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я уже все перебрал... Написал ИМХО все возможные запросы. Все равно двух кораблей не хватает! Может кто подскажет, что я не учел?

select name from ships where launched<1941

union

select ship from outcomes, battles where battle=name and year(date)<1941

union

select name from ships where name=class and class in (select class from ships where launched<1941)

union

select ship from outcomes where ship in (select class from classes) and ship in (select class from ships where launched<1941)

union

select name from ships where name in (select class from classes) and name in (select class from ships where launched<1941)

union

select ship from outcomes where ship in (select class from ships) and ship in (select class from ships where launched<1941)

union

select name from ships where name in (select class from ships) and name in (select class from ships where launched<1941)

P.S. Понимаю, что многие запросы - тавтология, но это уже от отчаяния :)
...
Рейтинг: 0 / 0
Кто решал 41 задачу про корабли
    #33846537
Владимор Конев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mamchiyНеделю бьемся над задачей
Помогите, кто решил!!!
Наши решения основная база принимает, а тестовая нет.А что мешает обратиться за помощью к самим разработчикам сайта?
Насколько мне известно, они ребята вполне адекватные и в оказании помощи не отказывают :)
...
Рейтинг: 0 / 0
Кто решал 41 задачу про корабли
    #33846547
Владимор Конев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JoddyMasterМне потребовалось 5 Selectов, чтобы вытащить все,
Если бы те кто это придумал предупредили о не которых допущениях в структуре раньше или в связи с этим заданием то возможно я решил бы быстрее. Селекты предлагаю воссоздать вам, но окончательно:
1.Корабли заложенные до 1941 из Ships
2.Корабли, участвовавшие в битвах до 1941 из Outcomes
3.Корабли, являющиеся головными для кораблей заложенных до 1941 г.
4.Корабли, являющиеся головными для кораблей, участвовавших в битвах до 1941 из Ships
5. Корабли, являющиеся головными для кораблей, участвовавших в битвах до 1941 из OutcomesМне кажется, что пункт 4 там лишний.
Ибо пункт 5 включает в себя в том числе и корабли из пункта 4.
...
Рейтинг: 0 / 0
Кто решал 41 задачу про корабли
    #33862604
ЛЮБ0ПЫTHЫЙ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимор Конев mamchiyНеделю бьемся над задачей
Помогите, кто решил!!!
Наши решения основная база принимает, а тестовая нет.А что мешает обратиться за помощью к самим разработчикам сайта?
Насколько мне известно, они ребята вполне адекватные и в оказании помощи не отказывают :)

2 mamchiy
Ну что, помогли тебе разработчики?
И если помогли, что в чем был затык?
...
Рейтинг: 0 / 0
Кто решал 41 задачу про корабли
    #33971407
Светланка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
теперь я бьюсь над этой задачей!так ты решил эту задачу?
...
Рейтинг: 0 / 0
Кто решал 41 задачу про корабли
    #33973308
alex_Lotar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Найдите названия всех кораблей из базы данных, спущенных на воду до 1941 г.

select name from ships where launched<1941
union
select ship from outcomes inner join battles on battle=name
where year(date)<1941

union
select o.ship
from outcomes o inner join classes cl on o.ship=cl.class
where (select min(launched) from ships where class=o.ship)<1941

union
select o.ship from outcomes o
inner join classes cl on o.ship=cl.class where
(select min(year(bb.date)) from outcomes oo join battles bb on oo.battle=bb.name
where oo.ship in(select name from ships where class=o.ship))<1941

union
select o.ship from outcomes o
left join classes cl on o.ship=cl.class
left join battles on battle=name where year(date)<1941
and not exists (select name from ships where name<>o.ship and class<>o.ship)

union
select name from ships where launched is null
and class in (
select class from ships where launched<1941
union
select o.ship from outcomes o
inner join battles on o.battle=battles.name
where year(date)<1941
union
select o.ship from outcomes o
inner join classes cl on o.ship=cl.class where
(select min(year(bb.date)) from outcomes oo join battles bb on oo.battle=bb.name
where oo.ship in(select name from ships where class=o.ship))<1941
)

пишет несоответствие данных 24... Если убрать последний юнион, то пишет что не хватает еще одного корабля. Пожалыйста помогите!!! если можно скиньте решение на мыло.
...
Рейтинг: 0 / 0
Кто решал 41 задачу про корабли
    #34012161
Alexomsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин, и правда какой-то косяк получается. Самое интересное, что в проверочной базе 40 кораблей и как в ней 24-25 не совпадают с полученными с помощью запроса - ума не приложу, м.б. какое-нибудь приоразование первого символа произвести надо или кодировку поменять, если вдруг проверочные корабли на русском заведены. Короче, если вдруг, кто найдет что-нибудь путнее пишите
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Кто решал 41 задачу про корабли
    #39433306
VSC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VSC
Гость
Добрый день, т.к. по задаче на эту страницу поиск из Яндекса ведет среди первых, а над задачей я раздумывал аж 3 дня, то хочу написать для тех, кто будет искать решение в будущем. Нужно выбрать:
1) Корабли из ships, спущенные до 1941 года;
2) Головные корабли из ships, если хоть один корабль того же класса был спущен до 1941 года;
3) Головные корабли из ships, если хоть один корабль того же класса участвовал в битве до 1941 года;
4) Корабли из outcomes, участвовавшие в битвах до 1941 года;
5) Головные корабли из outcomes, если хоть один корабль того же класса был спущен до 1941 года;
6) Головные корабли из outcomes, если хоть один корабль того же класса участвовал в битве до 1941 года.
Итого: 6 запросов, объединенных через union.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Кто решал 41 задачу про корабли
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]