Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2 3 4  Все   Вниз
  Печать  
Автор Тема: Написание программы  (Прочитано 62593 раз)
0 Пользователей и 1 Гость смотрят эту тему.
KOzh1r
Участник

ru
Offline Offline

« : 03-10-2019 11:14 » 

Доброго времени суток, гуру программирования!
Недавно стал открывать для себя увлекательный мир программирования и стал читать "всякие штуки-дрюки" (начал изучать основы программирования на языке С#). Очень интересное и увлекательное это дело! Но произошла со мной не очень классная ситуация:
Влез Я проходить один тест.. Очень такой интересный тест про программирование. Несколько вариантов прохождения каждого этапа - от простого, до сложного. И на одном из таких этапов в моё обучение решил вмешаться младший сын, трёхлетний мальчуган Алёша, и с удовольствием ткнул в красивую кнопочку с надписью "Сложный вариант"...  Жжешь
Я читаю задание:
Поздравляем, Вы решили опробовать себя в сложном задании!(тут Я иронически усмехнулся) Вам необходимо написать программу на одном из популярных языков (Java, Python, C/C++, Javascript), которая будет выводить марки автомобилей в зависимости от запроса. Например, на вход программе подаётся запрос "выведи российские модели" или "перечисли японские марки" и программа должна их вывести. Программа должна понимать небольшие опечатки и сокращения (например, "автомобили" и "авто") и не учитывать регистр букв.
 Меня одолевают смутные сомнения Здесь была моя ладья... Не понял
Представление об этом Я имею какое-то, но как это реализовать в виде программного кода понятия не имею  А черт его знает... ,поэтому прошу вас, о, величайшие умы о содействии! Пройти тест надо до следующей недели, а мой уровень знаний в данный момент - определить разницу в условных операторах (величайшее достижение, не каждый сможет Внимание! Говорит и показывает...)
Подскажите пожалуйста, как мне быть? Информацию ищу уже три дня, безрезультатно.. Спасибо!
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 03-10-2019 13:29 » 

KOzh1r, что такого ценного дадут по результатам этого теста? А написать придётся небольшой яндекс + ИИ, судя по всему.

Для обучения основам программирования тест так себе  Здесь была моя ладья...
Записан

Olej
Интересующийся

us
Offline Offline

« Ответ #2 : 03-10-2019 13:51 » 

(начал изучать основы программирования на языке С#).
Подскажите пожалуйста, как мне быть?
1. Прежде всего - забыть о языке C# как "основах программирования"...
Выберите что-то приличное, дающее идеологию в мозг ... по мере предпочтительности: Python, Go, C, C++, ... Java на худой конец.

2. Далее...
Задача ваша - не сложная, но она - громоздкая, там много рутины... Никто вам её в готовом виде не напишет и нигде вы в точном виде её не найдёте.
Но, хуже того, формулировка задачи - говно  Быть такого не может ... такой вот уровень, значит, спрашивающих ... и курсов их вообще:
- задача должна знать только про автомобили? или ещё какие-то предметы объектного мира? или вообще все?
- программа должна анализировать все вариации естественного языка на котором задан вопрос? или только э-э-э-э  Не надо ... "небольшие опечатки и сокращения"?
- а в чём и до какой степени могут состоять сокращения? "авто" - это ещё автомобиль? или уже и автомат Калашникова?    

В общем, бросайте вы такие говённые курсы, и возвращайтесь к п.1.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 03-10-2019 13:56 » 

Olej, ну, скажем, шарп для начинающих норм в плане стрельбы в ступни (на этом всё)

а вот C из списка я бы убрал точно (и не только для начинающих). C++ для начинающих - тоже под вопросом
Записан

KOzh1r
Участник

ru
Offline Offline

« Ответ #4 : 03-10-2019 14:17 » 

KOzh1r, что такого ценного дадут по результатам этого теста?
Ценного не дадут ничего, но закончить курс хочу по причине того, что не люблю незавершенные дела..

1. Прежде всего - забыть о языке C# как "основах программирования"...
Выберите что-то приличное, дающее идеологию в мозг ... по мере предпочтительности: Python, Go, C, C++, ... Java на худой конец.
Вообще, Я планирую заняться питоном, но после того, как освою "азы", а их как раз "преподают" на С# как на" самом лёгком языке для новичков". После этого курса займусь плотно Python.
Далее..
Задача стоит написать программу, которая ответит на два конкретных вопроса про российские и японские автомобили. Вывести конкретный список на не совсем конкретный (с опечатками) запрос.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 03-10-2019 14:29 » 

KOzh1r, что они там понимают под опечатками, интересно. Например, можно для каждого слова вывести некий критерий похожести в зависимости от использованных букв и их последовательности. Если критерий совпадает, скажем, процентов на 90 - то слово считается похожим. Порядок слов, опять же, важен или нет. После этого по набору слов тебе нужно понять фразу (запрос от юзера). По фразе выполнить "задание" - вывести нужный список автомобилей
Записан

KOzh1r
Участник

ru
Offline Offline

« Ответ #6 : 03-10-2019 14:48 » 

KOzh1r, что они там понимают под опечатками, интересно. Например, можно для каждого слова вывести некий критерий похожести в зависимости от использованных букв и их последовательности. Если критерий совпадает, скажем, процентов на 90 - то слово считается похожим. Порядок слов, опять же, важен или нет. После этого по набору слов тебе нужно понять фразу (запрос от юзера). По фразе выполнить "задание" - вывести нужный список автомобилей
Я думаю сделать что-то простое, по ключевому слову "российские" или "японские". Подскажите пожалуйста, как это реализовать?
Записан
Olej
Интересующийся

us
Offline Offline

« Ответ #7 : 04-10-2019 00:15 » 

а вот C из списка я бы убрал точно (и не только для начинающих).
А вот без C любому, кто собирается работать с Linux, да и с любым другим UNIX like - лучше сразу идти записываться в управдомы... Не надо (ну, можете, по желанию, заменить на: "в WEB программисты"  Что, съел?).
« Последнее редактирование: 04-10-2019 06:19 от Olej » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #8 : 04-10-2019 07:52 » 

Olej, это всё специнструменты, причём обычно для ограниченного в ресурсе железа. А тут речь же про начинающих )

KOzh1r, видимо, перебрать все варианты с опечатками. Для простоты весь текст перевести в один регистр, например нижний
Записан

KOzh1r
Участник

ru
Offline Offline

« Ответ #9 : 04-10-2019 11:02 » 

KOzh1r, видимо, перебрать все варианты с опечатками. Для простоты весь текст перевести в один регистр, например нижний
Подскажите, как это сделать на языке С# (это единственный, на котором Я хоть что-то могу написать). Думаю разделить введённый запрос на отдельные слова в переменных и если в нём есть "российские" или "русские" или "рАссийские", то выводить будет определённый, заранее написанный список.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #10 : 04-10-2019 11:14 » 

KOzh1r, я не использую шарп, поэтому тут вопрос не ко мне )
Записан

Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #11 : 04-10-2019 13:40 » 

а вот C из списка я бы убрал точно (и не только для начинающих).
А вот без C любому, кто собирается работать с Linux, да и с любым другим UNIX like - лучше сразу идти записываться в управдомы... Не надо (ну, можете, по желанию, заменить на: "в WEB программисты"  Что, съел?).
Я конечно понимаю Ваше стремление похоливарить. Но Ваше утверждение спорное. Для обычного пользователя не нужно знать С, чтобы полноценно работать на ПК. Тут не важно, какая именно стоит современная ОС. В 70 -х годах прошлого века было модно ставить в качестве старта например Basic. И там да, нужно было, хотя бы знать азы Бэйсика для полноценной работы. Даже чтобы администрировать Linux не обязательно знать С. Вполне достаточно bash скрипты. Для более продвинутого python, perl, ruby, java на усмотрение пользователя.

KOzh1r, Данная задача не для новичка. Как правило подобные задачи решают через нейроные сети.
Чтобы разделить строку на отдельные слова в классе string должна быть функция split
Чтобы перевести символы в нижний или верхний регистр: ToLower или ToUpper
Смотри Help как правильно пользоваться ими.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Михалыч
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #12 : 04-10-2019 14:13 » 

KOzh1r, Данная задача не для новичка. Как правило подобные задачи решают через нейроные сети.
Чтобы разделить строку на отдельные слова в классе string должна быть функция split
Чтобы перевести символы в нижний или верхний регистр: ToLower или ToUpper
Смотри Help как правильно пользоваться ими.
Ой, да бросьте, господа...   Отлично
Как же мы раньше то начинали учиться программировать без ИИ и нейронных сетей?   Здесь была моя ладья...
Может не надо для начинающего таких усложнений?
Я себе вижу эту задачу посложнее, разумеется, чем "Hello World!" но не настолько, чтобы прям нейронные сети...  А черт его знает...
Разумное количество шаблонных строк запросов с вариантами оЧепяток, и сообщение типа "Ахтунг! Ай донт андерстенд ю!" когда упоротый пользователь энный раз будет писать галиматью. Вот и весь интеллект и нейронная сеть для самого начала обучения  Быть такого не может
Не забывайте, это же курс начинающего... Стало быть и к заданию надо относиться по возможности буквально. Есть два примера запросов? Есть. Реализуем их, разбавляя щедро собственной фантазией на тему содержания. А там и нейронные сети со временем подтянутся. На этой задаче можно долго и упорно учиться, постоянно модифицируя и усложняя ее решение.
« Последнее редактирование: 05-10-2019 11:36 от RXL » Записан

Поживем - увидим... Доживем - узнаем... Выживу - учту  Улыбаюсь
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #13 : 04-10-2019 14:21 » 

Михалыч, Finch, можно даже регулярное выражение забацать для всех опечаток, наверное
Записан

Михалыч
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #14 : 04-10-2019 14:28 » 

Можно, конечно.  Улыбаюсь
Вопрос, нужно ли для первой работающей итерации программы? Может и нет.
Записан

Поживем - увидим... Доживем - узнаем... Выживу - учту  Улыбаюсь
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #15 : 04-10-2019 14:52 » 

Михалыч, Тут такая проблема, что в слове "Японский" например можно кучу разных вариантов ошибки совершить. Вплоть до "Йапона". замучаетесь вручную все эти варианты вписывать в код программы. Хотя я один раз видел, как вручную писали код ИИ игры "крестики нолики". 
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Михалыч
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #16 : 04-10-2019 15:46 » 

А кто сказал, что надо все варианты?
Записан

Поживем - увидим... Доживем - узнаем... Выживу - учту  Улыбаюсь
darkelf
Молодой специалист

ua
Offline Offline

« Ответ #17 : 04-10-2019 15:52 » 

Можно написать отдельный файл с синонимами, что Иппонский, Йапона, Япон и т.д., например в виде ini-файла:
[японские]
иппонские
ипонские
йапона
япон

[автомобили]
авто
тазы
модели

[российские]
русские
рассейские

[выведи]
перечисли
расскажи про
покажи

Ну а дальше соорудить код, который пытается все эти синонимы "канонизировать" - сначала переведёт в один регистр, например нижний, и затем из всего многообразия переведёт в одну общую форму путём замены того, что после [] в то, что внутри []. Ну а дальше, можно вообще сделать файл выведи_японские_автомобили.txt следующего содержания:
Mazda
Honda
Toyota

и файл выведи_российские_автомобили.txt
ВАЗ
ГАЗ

Ну а делее - получил из многообразия каноническую строку, заменил в ней пробелы на символ "_", добавил в конце .txt, и попытался из этого файла вывести всё содержимое, если такого файла нет - выдал 404, ну или ещё что-то осмысленное. В итоге в качестве запроса будет ожидаться форма "глагол прилагательное существительное". Базу знаний можно ещё более извращённым способом структурировать - например убрать хранение глагола в файле, а "существительные" сделать каталогами:
автомобили/японские.txt
автомобили/российские.txt
пряники/тульские.txt
пряники/сибирские.txt

Можно и описки добавлять - если слово не нашлось - спрашивать, значит ли оно то-же, что и слова в [], и, если да, то добавлять его в файл синонимов в соответствующую секцию. Т.е. такая себе обратная связь.

Главное, чтобы не было двоякого трактования, чтобы не оказалось, что "модели" это не только автомобили, но и например девушки, показывающие моду, и модели телефонов - т.е. определённая узкая специализация.
« Последнее редактирование: 04-10-2019 16:27 от darkelf » Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #18 : 04-10-2019 15:53 » 

А где сказано, какие именно опписки могут быть?
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Михалыч
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #19 : 04-10-2019 17:00 » 

А где сказано, какие именно опписки могут быть?
Да нигде, судя по всему... Такое задание, которое привел топиккастер, можно формировать только для совсем начинающих. И реализовать, для начала, самый простой вариант.
Даже может и без файлов, просто строками.
Опомнитесь, господа, не усложняйте без нужды.
« Последнее редактирование: 04-10-2019 17:02 от Михалыч » Записан

Поживем - увидим... Доживем - узнаем... Выживу - учту  Улыбаюсь
Михалыч
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #20 : 04-10-2019 17:08 » 

Михалыч, Тут такая проблема, что в слове "Японский" например можно кучу разных вариантов ошибки совершить. Вплоть до "Йапона". замучаетесь вручную все эти варианты вписывать в код программы. Хотя я один раз видел, как вручную писали код ИИ игры "крестики нолики". 
А мне сдается, что и не надо. Сделать 3-4-5 вариантов с ошибками. А на все остальные опечатки - "моя твоя не понимай".
И достаточно для реализации задания и понимания процесса.
А вообще, все зависит от того, на каком этапе обучения возникает такое задание. Контекста не хватает...
Соответственно, пытаемся смотреть максимально возможно шире, а может там еще до работы с файлами даже и не дошло... Улыбаюсь
Записан

Поживем - увидим... Доживем - узнаем... Выживу - учту  Улыбаюсь
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #21 : 04-10-2019 18:36 » 

Михалыч, Я изначально написал, что в такой постановке задания это не для новичка.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #22 : 04-10-2019 19:20 » 

ну почему же, можно и самостоятельно..

Но первоначально нужны словари.
А тут есть куда развернуться
Сбор словаря, организация словаря, словоформы, синонимы, паронимы, морфемы и прочее..
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Olej
Интересующийся

us
Offline Offline

« Ответ #23 : 04-10-2019 20:19 » 

Даже чтобы администрировать Linux не обязательно знать С. Вполне достаточно bash скрипты.
Даже, блин  Жжешь ... администра-а-а-а-атора  Класс!
Так и официанту в ресторане не нужно знать премудрости кулинарии и познания шеф-повара.
А администратор в IT-конторе - это и есть официант ... только часто они не понимают своё место.  Не надо

А программист в Linux/UNIX, не знающий C, хотя бы в основах - никогда не поймёт API Linux (POSIX), и цена ему - 3 копейки в базарный день.
« Последнее редактирование: 04-10-2019 20:23 от Olej » Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #24 : 05-10-2019 03:53 » 

Olej, Не верное сравнение. Официант в ресторане не отвечает за безопасность ресторана. Это менеджер по продажам, если переводить на конторский язык. Хотя хороший официант должен разбираться в тонкостях кулинарии, чтобы правильно подобрать для клиента тонкости вкуса. А вот админ отвечает за безопасность и стабильность работы вверенного ему оборудования.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Olej
Интересующийся

us
Offline Offline

« Ответ #25 : 05-10-2019 10:45 » 

Не верное сравнение.
Ага...  Жжешь
Системные администраторы - это низшая каста IT-работников, возомнившая о себе невесть что.  Для глухих

Продолжайте упиваться своим самомнением ... официанты  Не могу...
Записан
Михалыч
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #26 : 05-10-2019 11:31 » 

Olej, Finch, не съезжайте в сторону Улыбаюсь
Дискуссия у вас не в тему.  Отлично От слова совсем. Скромно так...
« Последнее редактирование: 05-10-2019 11:47 от Михалыч » Записан

Поживем - увидим... Доживем - узнаем... Выживу - учту  Улыбаюсь
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #27 : 05-10-2019 11:34 » 

Ой, да бросьте, господа...  Отлично
Как же мы раньше то начинали учиться программировать без ИИ и нейронных сетей?  Здесь была моя ладья...

У меня на работе коллега очень горит D. Устроился для собственного удовлетворения преподавать его раз в неделю в один столичный ВУЗ. Вроде там уже второй курс и в активе пройденных материалов у студентов значатся и Java и Python, а почти нихрена не понимают. Одним из первых вопросов, был: "можно ли на D написать нейронную сеть". Это у современной молодежи панацея такая от всей работы  Еще давным давно...
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Михалыч
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #28 : 05-10-2019 11:43 » 

RXL, современная молодежь, она такая  Ребенок
В свое время, когда я немного преподавал (слава богу немного), мне аж поплохело, когда я вдруг понял, что студенты не способны в уме перемножать двухзначные числа. Принципиально не способны без калькулятора... Нет, жить то без этого вполне можно, но...  Еще давным давно...
Записан

Поживем - увидим... Доживем - узнаем... Выживу - учту  Улыбаюсь
KOzh1r
Участник

ru
Offline Offline

« Ответ #29 : 06-10-2019 13:12 » 

реализовать, для начала, самый простой вариант.
Именно то, что и хочу сделать. Чтобы было

достаточно для реализации задания

в самом лёгком варианте. Без списков, файлов и ИИ. Просто анализ запроса и вывод из нескольких моделей.
Записан
Страниц: [1] 2 3 4  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines