Обсуждение решения учебной задачи на C++ (с лямбдами и auto-переменными)
Отщеплен от топика Помогите с двумерным массивом, пж!
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Это я писал, применительно конкретно к этой ситуации, о чем, опять же, упомянул:
Очень странно, что ты воспринимаешь это как абсолютное утверждение, применимое в принципе к программированию на плюсах.
Цель форума — помочь вопрошающим людям решить их проблему. Если твое решение с вероятностью 90% не поможет вопрошающему, то его можно считать неудачным (в данном конкретном случае).
И да, я совершенно не против использования всех возможностей языка. Просто это не тот случай.
При этом точного ответа от ТС мы не получили до сих пор.
Не поможет этому вопрошающиму, поможет кому-то,
пришедшему из гугла после.
Вариантов должно быть больше.
Помочь != решить_за_меня.
Соответственно, если я решаю,
то для себя, а не для ТС.
Это не имеет прямого отношения к сути дискуссии. А именно — применимо ли использовать любые возможности языка C++ и его стандартной библиотеки в учебных задачах.
Вполне возможно. А может и ТС-у поможет. Но опять же, целевая аудитория, приходящая на форум из гугла — в основном, студенты.
Тем не менее, это никак не умаляет актуальность моего комментария, после которого разгорелась эта дискуссия.
Понятие «решить за меня» является частным случаем понятия «помочь». В данном случае, ты предоставил готовое решение. Логично (почему логично — писал в предыдущем посте), что оно должно в достаточной мере разрешать проблему ТС.
а ТЫ, кроме воплей «НИ ТАК НАДА», ничего не предоставил.
И да, тоже, вроде, тебя не ч.... ну, ты понял.
Оно решает, но кто-то просто любит ныть.
И, кстати, мой код никому ничего не должен.
Ответ — применимо. Применимо ли для студентов? Да.
И этому есть реальные примеры.
Применимо ли конкретно для этого студента?
Понятия не имею, он всё равно слился.
Применимо ли для selevit и Cranium?
Видимо, нет, но они не все и не нужно говорить за всех,
однако они всё равно только со своей колокольни...
Для примера мой знакомый учится в ВУЗ'е.
На первом курсе у них был C++.
Они во всю изучали как C'шное наследие,
так и новшества C++, вместе с его стандартной библиотекой.
Мало того, изучались новые возможности C++11.
Препод — практикующий программист со стажем.
Так что трендеть что все они дебилы, и
всем только C-style подавай не нужно.
Опять же, это не имеет прямого отношения к теме обсуждения. Я всего лишь написал аннотацию, чтобы твое решение использовали с осторожностью.
Нет, не понял. Тебя опять беспокоят множественные притяжательные?
Решает, но не в полной мере. Почему — смотри еще раз мой комментарий про 90%.
Код сам по себе конечно же не должен. Это утверждение относится к его автору. См. «страдательный залог». Если тебя коробит слово «должен», замени на «следовало бы».
Си с классами изучают не просто так, а по причине того, что такой подход позволяет студентам освоить работу с памятью и прочие низкоуровневые вещи, а также понять базовые принципы ООП.
Насколько этот подход верный — не могу сказать. Возможно, более правильное решение — сначала учить C, а с принципами ООП знакомиться на примере какого-либо другого языка.
Использовать полный диалект плюсов для обучения студентов программированию (а не конкретному языку) — идея не самая лучшая, потому что плюсы не знает на 100% даже их создатель (по его собственному признанию). Ни к чему забивать голову начинающего студента таким большим количеством информации на этапе начального обучения программированию. По этой же причине, на начальном этапе, людей не нагружают программированием графических интерфейсов.
Изучать полный диалект плюсов на более старших курсах (уже на более прикладном уровне) — вполне допустимо, но это явно не тот случай по причине тривиальности самой задачи.
Ты сливаешься в позицию «у каждого свое мнение», не подкрепляя это мнение конструктивной аргументацией. Примеры из твоей жизни не имеют никакого отношения к объективной реальности.
Давай пожалуйста вести дискуссию цивилизованно, а не ссылаться на абстрактный эмпирический опыт твоего друга и его преподавателя. Я же не подкрепляю свою позицию тем, что в тысячах ВУЗов изучают Си с классами.
То есть если решение подходит 10%,
они всё равно должны делать по другому?
Какую-то хрень Вы молотите, уважаемый.
Код решает задачу, а не проблему ТС,
его преподавателя или вашу.
Полная фраза звучит как-то так —
"мы с вами на брудершафт не пили,
чтобы вы мне здесь тыкали."
Что мне следует делать и как я решу сам.
А что касается должен — не должен.
Подход сверху-вниз делает тоже самое,
но на более поздних этапах.
Для использования смартфона не нужно знать как оно устроено.
Кстати, это же относится и к ООП —
внутренняя реализация скрыта,
важен лишь интерфейс и правила пользования,
которые можно быстро освоить и начать использовать.
А уже потом, можно посмотреть что там внутри.
Почему не верный? Просто он не единственный.
А вы пытаетесь его выставить
как единственный правильный подход к обучению,
собственно, из-за этого весь сыр бор.
Это же можно отнести и к C-стилю.
Когда пишешь в C-стиле,
держать в голове приходится намного больше,
и в придачу к сложной задаче мы еще получаем
все «бонусы» от ручного управления байтиками.
Вот именно. Это отвлекает от задачи.
Вместо решения задачи и работе с сущностями
мы вынуждены следить за тем,
как там у нас байтики лежат
и как бы ничего не забыть.
А что касается наших ВУЗ'ов,
то частенько там преподают ахинею,
которая приводит к тому, что у студента
в коде одни UB и ни черта не работает.
Он Вам об этом лично сказал?
Ну вот у меня знакомый сейчас как раз
на старших курсах и уже работает.
Не вижу, чтобы ему мешали возможности C++,
которые ему дали на первом курсе.
Еще как имеют. Ваши ответы основаны на том,
что мол ТС'у нужно другое.
Я же говорю — мне плевать на то, что нужно ТС.
У меня свой интерес и я ему ничего не должен.
Не нравится, не используй.
И да, у меня был падаван,
сейчас он работает в Европе,
обучение было как раз сверху-вниз.
В результате, пока в ВУЗ'ах гоняются за '\0',
остальные уже пишут софт и зарабатывают.
При этом они прекрасно знают про '\0',
но бегать за ним им уже не нужно.
1) Я не сливаюсь, я с самого начала в этой позиции.
2) А это нужно подкреплять? То есть по-вашему у всех должно быть одинаковое мнение? Чё-т хрень какая-то получается. Вы мне пытаетесь навязать свое мнение, а я говорю вам, что оно не единственно верное.
У Вас какое-то консервативное мышление. Нас так учили, значит нужно всех так учить. Собственно, это одна из причин, по которой во многих ВУЗ'ах до сих пор преподают на диалектах из 80-ых. Ничего не знают о новшествах C++. В результате студенты не конкурентоспособны после ВУЗ'а.
И потом такое вот чудо не может разобраться в софте на C++,
потому что там всё усеяно шаблонами, библиотеками и классами.
Как это нет? На этом же и
основана Ваша изначальная позиция —
преподу нада ни так, а вот так.
А я предлагаю закончить (уже не первый раз, кстати).
Посмотрел тут вашу статью:
Массивы в C++ — урок 5
Это ж урок 5. Какой std::string?
Здесь должно же быть char**,
мы же ведь только начинаем,
и нам нужно знать внутреннее устройство.
Во первых, кто «они»? Во вторых, где ты видишь, что я писал о том, что ТС должен делать по другому? Я писал о том, что твое решение скорее всего не релевантно топику (что в принципе так и есть).
Человек пришел на форум с определенной целью. Он не решает абстрактную задачу. И если ты отвечаешь на сферический вопрос в вакууме, то не удивляйся, что твое решение является не релевантным топику. Никто же не оспаривает его корректность.
Ты лучше бы уважительно общаться научился с людьми. Смотрится гораздо лучше, чем показательное выкание.
Общение на форуме подразумевает публикацию конкретных вопросов и получение на эти вопросы полезных ответов. Если ты отвечаешь невпопад, то не стоит удивляться соответствующей реакции сообщества.
Академическое образование подразумевает изучение в первую очередь фундаментальных вещей, в последнюю — конкретных технологий.
Опять же, мы говорим об фундаментальном образовании, которое дают в университетах. Подход «Научиться делать сайты за 21 день» (утрировано) применим когда нужно быстро научиться чему-то полезному и как можно быстрее приступить к работе, попутно вникая в детали. К сожалению, у нас пока нет ПТУ для программистов, где бы готовили человека, который при выпуске сможет максимально быстро приступить к несложной работе.
Нет, к сожалению, я не знаком с автором лично. По поводу оценки Страуструпом своего уровня C++ — это общеизвестная информация из одного из его интервью. К сожалению, не смог найти ссылку на первоисточник, поэтому не буду биться об заклад за достоверность этого высказывания с его стороны. Но вот тут, например, обсуждается этот вопрос, а также, почему такая ситуация вполне допустима даже для создателя языка.
Да причем тут твой знакомый? У меня знакомый работал прорабом на стройке, а теперь вот программирует (без шуток). Но это не имеет никакого отношения к дискуссии. И использовать подобную аргументацию на основе статистически незначимого опыта у нормальных людей считается моветоном.
Это называется вести обсуждение какого-то вопроса.
У меня может быть мнение о том, что лучший способ похудеть — это больше жрать. Но это мнение ничего не стоит до тех пор, пока я его не аргументирую.
Вуз дает в первую очередь фундаментальное образование. В плане прикладного программирования сейчас действительно есть проблемы с его эффективностью. Но это не отменяет необходимости наличия фундаментальных знаний компьютерных наук у выпускника.
Нормальный здравомыслящий человек вполне способен освоить конкретную технологию, обладая базовым набором знаний. Тем, кто не в состоянии — в ПТУ, либо прикладной бакалавриат, чтобы научиться писать код и решать типовые задачи.
Стоит задача. Она решена.
А подойдет ли решение ТС — решать не Вам, а ему.
ТЫкалку можешь засунуть, как говорится...
Не надо мне тыкать, ты мне никто.
Если кто-то пришел на форум за ответом,
он вполне может получить не релавантный ответ.
Когда-то сюда зайдет человек, которому это поможет
и он скажет спасибо за это,
несмотря на релевантность для ТС.
Запомните, информация на форуме доступна всем,
причем не только сейчас, но и после,
а значит ограничиваться только потребностями ТС — глупо.
Вот-вот, научились бы общаться,
а не тыкать незнакомым людям.
Даже несмотря на то, что это форум,
надо соблюдать какие-то правила,
если Вы их не соблюдаете,
то я посылаю Вас подальше, что я уже,
фактически, и сделал чуть выше, дабы
общаться с невежами я не особо люблю,
так что не обижайтесь за это.
Либо Вы относитесь уважительно,
либо я и правда буду считать Вас невежей.
т.е. они должны вникать в физику
и электронику первым делом,
ведь это основы, не так ли?
Или у Вас курс физики начался в
школе с изучения термоядерных реакций?
А Вы говорить научились до того
как алфавит выучили или после?
А компьютером пользоваться начали только
после разбора принципов работы его технической части?
Что-то мне подсказывает, что всё это происходило иначе.
Так с чего бы и здесь не подойти также?
Вам предоставлены средства для решения задач — пользуйтесь.
Как там байты располагаются можете в любое время посмотреть.
В том то и дело, что этот подход
может и был правильным раньше,
но сейчас из-за этого получаются выпускники,
которые никому не нужны из-за того,
что ничего не знают о разработке софта.
Нужно не попутно, а методично.
Наспех и попутно — будет фигово.
Мда... я как-то писал ему по поводу косяка в стандарте,
который, наверное, до сих пор там (надо будет посмотреть).
Но не думаю, что у него мало писем для чтения и без моего.
Надобно всё-таки в коммитет написать, но лень.
Такая ситуация допустима для любого человека.
Этот язык ужасно огромный по своему функционалу
и по наличию разнообразных нюансов.
Удержать всё в голове, наверное, не реально просто.
Иногда бывает так, что нахожу в стандарте что-то новое,
интересное, хотя такое уже редкость.
Я показал лишь реальные примеры из собственного опыта.
Результаты из книги (или её тоже писали лузеры?) есть выше,
или Вы так и не дочитали всё?
Я Вам говорю — Ваша версия не единственная верная,
Вы мне говорите, что она единственная правильная.
Вы не удосужились даже ни одного
авторитетного источника привести,
где была бы подтверждена Ваша точка зрения,
причем источник должен быть современным.
Я привел Вам цитаты из современных
книг авторитетных авторов,
в т.ч. и из книги Страуструпа,
привел свой личный опыт и опыт знакомых.
Вы же даже собственным опытом не можете ничего показать.
И в какой части здесь обсуждение?
Вы вообще читали что я выше писал?
Там выдержки из книг/опыта/экспериментов.
Так что пока именно Вы не привели ни одного аргумента,
кроме как «Наши ВУЗ'ы преподают вот так»,
причем методички во многих ВУЗ'ах лежат с 80-ых.
Да, да, я не шучу, есть еще те,
кто учит на Turbo-C++ под MS-DOS.
Это даже смешно смотрится.
И где потом нужен такой спец?
Максимум — поддержка старых софтин.
А где я писал, — «не надо знать фундамент»?
Я ж Вам говорю, — «Сначала пользуем, потом разбираем».
Знаете, я видел одну хорошую фразу.
Чтобы написать хороший игровой движок,
нужно сначала использовать готовые,
чтобы разобраться с минимальным набором
необходимого в движке функционала.
Также и здесь. Ну знаем мы как устроена структура данных «двусвязный список», знаем указатели и можем реализовать, но встает сразу два вопроса. Во-первых, что реализовывать?
Что должен поддерживать этот связный список?
Какой интерфейс у него должен быть?
А во-вторых, зачем нужны такие списки?
Где их применять? Да ну навиг всё это, не нужны они...
А при подходе сверху-вниз, дойдя до этого
же момента с реализацией двусвязного списка,
у Вас уже есть опыт в применении списка.
Вы знаете для чего он нужен,
знаете какие операции должны
быть обязательно реализованы.
Кстати, я еще не видел необходимого набора функционала ни у одного студента.
В основном это конструкторы/деструкторы
и всякая фигня типа print.
В редких случаях — итераторы
и поддержка move-семантики.
Нет опыта использования —
нет фундаментального видения проблемы.
Загляните в boost. Легко разобраться в тамошних шаблонах?
Не думаю, что разобраться там можно быстро,
даже имея хорошие знания в шаблонах и макросах,
да и вообще во всём C++. А уж без знаний — подавно.
В текущей ситуации естественно правильная, потому что форум нужен для получения ответов релевантных топику (то есть вопросу, не привязанному к конкретному человеку, но имеющего определенный контекст учебной задачи). Если твой ответ не релевантен топику (что ты сам признаешь выше), то он является неудачным. О чем в принципе и я написал.
Не вижу смысла продолжать общаться с идиотом, который не понимает контекст беседы и не умеет держать в голове логическую нить разговора.
Да глупости всё это.
Форум в первую очередь —
это обмен знаниями и опытом.
Я своими вот делюсь. :)
Ответ на него я дал, и, как Вы сами сказали,
без привязки к конкретному человеку, то бишь ТС'у.
Задача решена. Способы её решения ТС не уточнял.
Он не релевантен (возможно), лишь для этого ТС.
А ответ на сам вопрос дан, причем верный.
Ответы должны быть разносторонними.
Я со своей колокольни, так сказать, уже плюнул ответом.
Как же Вы себя любите, товарищ идиот.
Ни одного аргумента, ни одной здравой мысли,
от Вас не поступило в этой беседе,
одни только «ни так нада, учацца ни так».
Разговор с Вами окончен,
ибо Вы и правда не компетентны в данном вопросе.
Череп хоть аргументировал свою позицию,
причем весьма сильно, а Вы... да и правда идиот.
почему мне нравится спорить с Cranium?
Да потому что он сильный оппонент,
который может не только кричать «ни нада так»,
но и основательно обосновать свою позицию,
поэтому спор с ним интересен и полезен,
даже если он бессмыслен, как в данном случае.
Спорить с Вами — это как со стенкой.
стена никогда не приведет контраргументов,
кроме того, что она стена, возможно, кирпичная.
Так что такое ощущение, что общаешься с деревом
или с женщиной, где один аргумент, — «Ой, всё, я права».
Никто не спорит, что он верный. Но не релевантный (посмотри определение этого понятия). Что я и пытаюсь до тебя донести на протяжении всей беседы.
Публикуя такой ответ на вопрос, ты должен осознавать, что он заведомо недостаточно качественный для большинства людей, интересующихся топиком. В этом и есть понятие релевантности — что в 90% случаев этот ответ бесполезен. Что конечно же не умаляет его формальной корректности.
Ты так говоришь, как будто это что-то плохое.
Все свои высказывания я аргументирую. Хватит голословия, давай больше конкретики по моей некорректной/отсутствующей аргументации.
Как ты определяешь здравость этой самой мысли? Ты только что сам продемонстировал свой стиль ведения дискусии базарной бабушки. И почему-то пытаешься в своих грехах обвинить меня. Поэтому я и говорю, что ты идиот.
Я это понял. Я же пытаюсь донести,
что варианты должны быть разнообразными.
Это не делает его плохим или не верным.
Более того, если человеку интересно,
он будет разбираться с кодом, который ему дали.
Конечно, шанс того, что такой человек будет
постить задачу на форуме и уйдет не прощаясь... :(
Эххх... но, надеюсь, это пригодится кому-то другому.
Пользуясь опытом общения на другом форуме,
могу Вас заверить, что на более популярном ресурсе
шансы любого кода пригодится кому-то,
взлетают многократно и ничем не уступают
варианту, сделанному конкретно под задачу ТС.
У Вас маленький ресурс, причем не очень удобный
(могу отдельно накатать что именно).
Предлагаю решение засчитать не релевантным для ТС,
но релевантным для кого угодно другого, если уж Вам так удобно.
Любить себя нужно, но тоже в меру. )))
Покажите мне хоть один аргумент в пользу того,
что решение на указателях будет лучше.
Я привел со своей стороны собственный опыт,
привел цитаты из книг авторитетных авторов.
У Вас я ничего из этого не вижу.
Только лишь то, что преподу в
90% случаев нужно вот так вот.
Где хоть один аргумент кроме этого?
Приводите такую мысль,
что мол нужно знать фундамент.
А с этим никто не спорит.
Вопрос в другом, стоит ли обязательно
пихать новичка в эти дебри бездонные?
Мой ответ — нет.
Ваш отват — да.
Вот и весь спор.
Мы с Вами не договоримся.
Ну вот Ваша мысль, что ответ должен быть обязательно релевантным.
Это не есть здравая мысль для развития ресурса.
Для развития ресурса важен находящийся на нем контент.
Чем он разностороннее, тем больше аудитории он способен собрать.
Здесь я не грешил.
Ты реально дубовый, походу.
С таким бревном я еще никогда не общался.
ПРИВЕДИ ХОТЬ ОДИН АРГУМЕНТ В ПОДДЕРЖКУ СВОЕЙ ПОЗИЦИИ,
КОНЕЧНО, КРОМЕ СВОЕГО «КОМПЕТЕНТНОГО» МНЕНИЯ.
ПОКА НЕТ НИ ОДНОГО АРГУМЕНТА КРОМЕ ТВОЕГО «ТАК НАДА».
ДАЕШЬ ЦИТАТЫ АВТОРИТЕТНЫХ СПЕЦИАЛИСТОВ (НЕ СЕБЯ),
ДАЕШЬ ЧТО-ТО, ЧТО ПРИДУМАЛ НЕ ТЫ САМ ДЛЯ СЕБЯ.
Этого я добиваюсь с самого начала,
может хоть жирным капсом до такого
дерева как ты эта мысль дойдет. )
И да, раз ты мне до сих пор тыкаешь,
то ты еще и свинья редкостная,
эдакий глупенький невежа.
И да, по традиции далее идет смайлик. :)
т.е. цитаты авторитетов, результаты экспериментов,
собственный опыт — это стиль дискуссии базарной бабушки?
Ты точно даун, даже беседовать дальше не о чем.
Продолжай использовать больше капса, болда и прочего эмоционального шлака (называя при этом женской мою модель ведения диалога :) Это конечно же убедит всех, включая меня в твоей правоте.
Оно будет более релевантным топику (ты вроде как с этим согласен, и я привел достаточно аргументов в пользу этого утверждения). Что опять же не делает твое решение неверным. О чем, в принципе, мы и спорили. Поскольку задача форума давать максимально релевантные ответы на вопросы аудитории, твое решение в данном контексте хуже, чем на «C с классами».
Непонятно зачем сюда приплетать цитаты Страуструпа о каноничных плюсах. Итак понятно, что твой пример более каноничный для C++. И никто с этим не спорит.
Речь идет совсем не об этом, а о том, что в данном конкретном случае твой вариант будет хуже, чем решение на «Си с классами». Почему хуже — смотри в предыдущем абзаце.
Все, что описано выше предельно логично и аргументировано.
Ты пытаешься прыгать из контекста в контекст и не понимаешь, о чем конкретно мы ведем дискуссию.
Из-за этого я обоснованно считаю тебя идиотом.
Капс нужен был, чтобы посмотреть,
дойдет ли для тебя хоть так.
Не дошло, видимо, ну ладно,
таким тупеньким как ты это простительно.
Всё это не релевантно лишь по твоему мнению.
Код решает задачу? Решает.
С этим кто-то спорит? Не спорит.
ТС описал используемые средства?
Нет, не описал. Значит используем любые.
Если этот ответ ему не поможет -
это его проблемы, т.к. в контексте задачи
этот код полностью верный и релевантный.
Если это не подойдет 90% аудитории сайта —
это проблемы этой аудитории, а не мои и не решения.
Вы не в состоянии понять, что ответ,
не устроивший одного, обязательно
устроит кого-то другого.
Посему я и считаю Вас полным придурком,
ежели Вы не в состоянии понять,
что ответов должно быть как можно больше
и разных для продвижения ресурса.
Но, видимо, место ресурса в загнивающей жопе Интернета
Вас вполне устраивает. Тогда удачи, че уж там.
Вы считаете меня идиотом?
Как говорится, хоть писькой назовите,
только облизывайте почаще.
Вы не админ — Вы бестолковый клоун,
не способный понять даже базовых вещей.
И чем там логично и аргументировано?
Вы написали собственное мнение,
о релевантности кода для ТС,
которого даже не знаете,
основываясь на каких-то своих
монописуальных предположениях.
Это не аргумент — это мнение.
А цитаты страуструпа здесь к тому,
что беседа изначально велась с Черепом
о правильности двух подходов к изучению.
А вот Вы сюда впёрлись со своей релевантностю для ТС.
Сами же хоть гляньте название топика, который отщепили.
Этот топик несет в себе контекст студенческой задачи и целевая аудитория его участников (в том числе наблюдателей) — студенты, которым нужно показать свое конечное решение преподавателю. Ты вроде бы не оспариваешь утверждение о том, что бОльшую часть преподавателей в контексте текущей системы образования твое решение введет в недоумение. Из этого следует, что полезность решения для большей целевой аудитории соответствующая.
Если твое решение будет релевантным, к примеру, для 10% наблюдателей, а решение на C классами — на 70%, то очевидно, что решение на C с классами будет более статистически релевантным для группы наблюдателей в конкретном случае.
В контексте форума более высокая релевантность ответа означает то, что этот ответ лучше других выполняет свою задачу (помогать пользователям решить их проблему). Следовательно, твоей ответ хуже более релевантного решения на Си с классами.
В чем ты не согласен с этим утверждением? Я просто оперирую бинарной логикой, а ты продолжаешь видеть тут какие-то мои домыслы.
Название топика звучит как «Обсуждение решения учебной задачи на C++ (с лямбдами и auto-переменными)». Я ранее обозначил тебе суть того, что до тебя пытаюсь донести. А именно, почему я назвал твое решение худшим, чем на Си с классами.
Ты ссылался на Страуструпа уже после того, как Cranium не учавствовал в дискуссии. И в контексте темы обсуждение это выглядит неуместно, потому что не имеет к делу никакого отношения.
Ну Вы сначала напишите этот ответ на C с классами,
а пока нет ни одного конкурента, мой код единоличный лидер.
Я понимаю, если бы код не решал задачу,
но в конкретном случае он её решает.
Кому там ТС будет его показывать мне,
как автору кода, абсолютно безразлично.
Его личные обстоятельства тоже никого не волнуют.
Еще раз. Средства указаны? Нет.
Так что для решения этой задачи любой код
её решающий будет релевантным.
Если код не релевантен для ТС — это уже его проблемы,
значит он не полностью описал требования,
которым должен соответствовать релевантный код.
Кстати, если брать реальную работу,
то за любое изменение, не оговоренное
в изначальной задаче,
придется доплачивать отдельно.
Также и здесь. Нет указания какой код будет ближе к необходимому.
Но, на самом деле, даже если бы и были указания,
я бы всё равно выложил код, который симпатичнее мне,
потому как решения делаются мною не для ТС,
а исключително для собственного удовольствия.
Так что как бы Вас это не раздражало,
я всё равно буду постить код,
который удовлетворяет моим предпочтениям.
А, по моему не малому форумному опыту,
решения, которые даже к теме не относятся,
всегда находят целевого адресата,
которому это пригодилось.