Страница 1 из 1

Оптимизация кода с помощью искуственного интелекта

Добавлено: 23 янв 2026, 11:38
mycos
Сделал небольшой скетч и решил проверить в ИИ
Этот код типичен для визуальных сред программирования (вроде FLProg). Основные проблемы: использование ресурсозатратного класса String, лишние вызовы map и analogRead, а также неэффективная очистка экрана, вызывающая мерцание.
В браузере гугла, в режиме ИИ попросил "оптимизироваь код" и ввел сам код.
Показать

Код: Выделить всё

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C _lcd1(0x27, 16, 2);
int _dispTempLength1=0;
boolean _isNeedClearDisp1;
int _disp1oldLength = 0;
void setup()
{
    Wire.begin();
    delay(10);
    _lcd1.init();
    _lcd1.backlight();
}
void loop()
{
    if (_isNeedClearDisp1) 
    {
        _lcd1.clear();
        _isNeedClearDisp1= 0;
    }
    //Плата:1
    if (!(0)) 
    {
        _dispTempLength1 = (((String((map(((analogRead (0))), (0), (100), (0), (1023))), DEC)))).length();
        if (_disp1oldLength > _dispTempLength1) 
        {
            _isNeedClearDisp1 = 1;
        }
        _disp1oldLength = _dispTempLength1;
        _lcd1.setCursor(int((16 - _dispTempLength1)/2), 0);
        _lcd1.print(((String((map(((analogRead (0))), (0), (100), (0), (1023))), DEC))));
    }
     else 
    {
        if (_disp1oldLength > 0) 
        {
            _isNeedClearDisp1 = 1;
            _disp1oldLength = 0;
        }
    }
}
Думал какую-то шляпу выдаст, но он справился. Оптимизировал, да еще и с комментариями.
Показать

Код: Выделить всё

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

int lastValue = -1; // Для отслеживания изменений

void setup() {
    lcd.init();
    lcd.backlight();
}

void loop() {
    // Читаем значение один раз за итерацию
    int rawValue = analogRead(A0);
    // Аналог вашей логики: map(val, 0, 100, 0, 1023) -> это просто умножение на 10.23
    int mappedValue = map(rawValue, 0, 100, 0, 1023);

    // Обновляем экран только если значение изменилось
    if (mappedValue != lastValue) {
        updateDisplay(mappedValue);
        lastValue = mappedValue;
    }
    delay(50); // Небольшая задержка для стабильности
}

void updateDisplay(int value) {
    // Вычисляем длину числа без использования String
    int length = (value >= 1000) ? 4 : (value >= 100) ? 3 : (value >= 10) ? 2 : 1;
    int pos = (16 - length) / 2;

    // Вместо полной очистки lcd.clear() (которая медленная), 
    // затираем старые символы пробелами
    lcd.setCursor(0, 0);
    for (int i = 0; i < pos; i++) lcd.print(" "); // Пробелы до числа
    lcd.print(value);
    for (int i = 0; i < (16 - pos - length); i++) lcd.print(" "); // Пробелы после
}
После компиляции 14% и 9%. разница ощутимая для маленького кода.
Проверил в tinkercad, работает одинаково, причем после ИИ стабильнее. Первый код иногда прибавляет лишний разряд.
Вот вам и "Иллюзия Интелекта".
Но я. к сожалению, далек от программирования. Поэтому хочется комментариев от знающих людей. Как будет с большими проектами?

Re: Оптимизация кода с помощью искуственного интелекта

Добавлено: 23 янв 2026, 12:18
Phazz
Сильно зависит что за ии и какой промпт. Но оптимизация готового обычно хорошо делает. Но боюсь без минимального знания кода это будет лотерея.

Re: Оптимизация кода с помощью искуственного интелекта

Добавлено: 23 янв 2026, 13:44
mycos
Phazz писал(а): 23 янв 2026, 12:18 Сильно зависит что за ии
Другие, как я понял платные, а в гугле бесплатно. Если он раз в год нужен, зачем платить? Вот и тестирую этот. Пробовал ему описание программы подсунуть, но видимо я не совсем правильно ему алгоритмы скармливаю. Все время немного не то делает.

Re: Оптимизация кода с помощью искуственного интелекта

Добавлено: 23 янв 2026, 17:56
prmres
mycos писал(а): 23 янв 2026, 11:38я. к сожалению, далек от программирования. Поэтому
поэтому и велик восторг от оптимизации кода ИИ

Re: Оптимизация кода с помощью искуственного интелекта

Добавлено: 23 янв 2026, 19:36
mycos
prmres писал(а): 23 янв 2026, 17:56
mycos писал(а): 23 янв 2026, 11:38я. к сожалению, далек от программирования. Поэтому
поэтому и велик восторг от оптимизации кода ИИ
Так большого восторга нет. Просто сработало. А конкретики в вашей реплике, увы - 0

Re: Оптимизация кода с помощью искуственного интелекта

Добавлено: 23 янв 2026, 21:18
cfitymrf
большие проекты (ну как большие) делает . главное делать за один раз или день и постоянно сохранять что то сделанное , если выйти из гугла или продолжить на следующий день то вероятность 90% что будут проблемы , они исправимы но это время , если ему подсовывать не законченный проект для продолжения хотелок сделанный к примеру вчера или после закрытия гугла то он ломает алгоритм работы кода и много чего изменяет , спрашивая зачем ты это делаешь он начинает извиняться , говорит думал так будет лучше и тд. и тп.