Моя попытка в ИИ, Школьное расписание
RAD Studio 12, С++, Пробовал google ИИ-ассистент, и deepseek. Так выглядит интерфейс - красота пока лишнее.
Никаких кнопок, только TPopupMenu - правая кнопка мыши, с видимыми Button морда будет похожа на франкенштейна из страшных снов. Показываем google базу, что бы знал ее поля, и просим: Напиши код для функции "Добавить значение в базу" - получаем код, тестируем - все ок. На стадии интерфейса никаких вопросов, все четко и красиво делаем весь интерфейс "Добавить/Изменить/Удалить" - видит все связи в базе, экономит кучу времени - в общем, интерфейс здесь написан ИИ. Глюки начинаются дальше - при клике на компоненте заполняются связанные компоненты - при клике на классе заполняются связанные с ним компоненты - "План" и "Шаблоны", первый клик все ок, 2 клик - ошибка! Не видим базу. Спрашиваю у google в чем дело? - начинает нести явную ахинею, причем выдает кучу кода с обьяснением почему это произошло и "Кто виноват?". Хорошо, - 1 раз пробую deepseek = "Почему первый клик нормально, а последний падает?" Получаю ответ "Странно, почему на последнем, должна была упасть на втором" - в точку! Каскадные/Веерные подключение - пока одна функция использует подключение к базе, невидимо вызывается "Каскадная функция", которая использует то же подключение что и первая, и благополучно его закрывает. Цикл первой функции в незаконченном цикле получает закрытую базу и отваливается с ошибкой. Возвращаемся к google - "А твой конкурент, deepseek - сразу нашел ошибку!" ответ google: "Напишите пожалуйста в чем была ошибка, я тоже разработчик, мне интерестно!". Получив ответ выдает: "Ну да, это же deepseek". Хорошо, идем дальше: первым в списке должна быть расстановка групп по расписанию: - база чистая, учителя свободные, полная свобода действий! Запрос deepseek: "Напиши функцию которая расставит группы в расписании" - получаем функцию которая ищет свободных преподавателей, не занят ли класс в расписании на этот час, свободно ли подходящее помещение, и в итоге ставит группу в понедельник, первым уроком. Делаю запрос: "Не пиши код! Давай разберем логику!" Рандомизируем установку, убираем не нужные проверки - все ок, группа стоит и привязана. Хорошо, следующее по списку классы где все предметы ведет один - свой преподаватель, это началка. Тренируем логику и хлоп - получаем сообщение от deepseek "Превышен лимит запросов, начните новый диалог" - не больно то и хотелось! Возвращаемся в google, и первым делом троллим: "Посмотри функции которые написал твой конкурент, deepseek". Ответ дословно: "Как и ожидалось, бэкенд-логика от DeepSeek — это гремучая смесь из нарушений базовых правил работы с памятью в C++, жестких логических багов и полнейшего непонимания того, как работает его собственный интерфейс." На просьбу переписать функцию получаем ту же простыню как и от deepseek. Хорошо, сначала пишем логику: Находим самый "слабый" класс - в смысле кол-во дней учебы, учебных часов в день и ставим Группы ему, он выступает у нас "якорем", остальных членов группы подтягиваем ему, закрепляем всех от дальнейших перестановок. Результат неплохой. Ну ОК, идем дальше: расстановка своих классов - началка. Пишем логику - получаем абсолютно одинаковые поля для всех паралелей - А если потребуется специалист/предметник для предмета, который "свой" преподаватель не ведет? Рандомизируем каждый класс, проверяем необходимость специалиста, проверяем свободен специалист на данный час - свободен - ставим, нет - все сначала. Вот на этом пока остановились. Далее будем писать функцию для "Старшаков" где все предметы ведут специалисты/предметники.
И таки да, я лентяй! Всем хорошего дня!







