Jump to content
FLProg.PRO

Выбираем ChatGPT  

5 members have voted

  1. 1. Какой ChatGPT лучше?

    • ChatGPT-3
      0
    • ChatGPT-4


Recommended Posts

Попробуем. Версия 3.5 понравилась. Пишешь прокомментируй код и вставляешь скопированный код и вот тебе развернутый комментарий. Лимит 10 сообщений всего или в день?

Link to comment
Share on other sites

Чтобы понять логику построения кода ...  в целях обучения.

 

Из блока закрашенный круг для TFT дисплея.
Взял секцию Loop, которая не откомментирована в самом блоке.

И задал роботу такую задачку.

 

откоментируй построчно этот код  

 

Спойлер

if(En == 1){
         OF = 0;
         if (OLD_X != X  OLD_Y != Y  OLD_R != Radius) {
                tft.fillCircle(OLD_X,OLD_Y,OLD_R,ILI9341_BLACK);
         OLD_X = X;
         OLD_Y = Y;
         OLD_R = Radius;
}
        tft.fillCircle(X,Y,Radius,Color);
}
else{
         if(OF == 0){
                tft.fillCircle(OLD_X,OLD_Y,OLD_R,ILI9341_BLACK);
         OF = 1;
}
}
 

 

и получил такой ответ от робота в шапке форума

 

Спойлер

2023-04-16_174805.thumb.png.d241f909578cafe32c883b42ff316c64.png

 

И зря надеялся на эту 4 версию ... GPT-4 
Что робот ответит лучше, чем бот GPT в Телеграм

Который ответил на туже самую задачу  красивее и понятней


откоментируй построчно этот код .... (он уже дан выше)

А это ответ бота в Телеграм

 

Спойлер


// Если переменная En равна 1, то:
if (En == 1) {
    // Устанавливаем переменную OF в 0
    OF = 0;
    // Если координаты X, Y или радиус Radius изменились (по сравнению с их предыдущими значениями OLD_X, OLD_Y, OLD_R), то:
    if (OLD_X != X && OLD_Y != Y && OLD_R != Radius) {
        // Закрашиваем окружность с предыдущими координатами OLD_X, OLD_Y и радиусом OLD_R черным цветом
        tft.fillCircle(OLD_X, OLD_Y, OLD_R, ILI9341_BLACK);
        // Обновляем значения OLD_X, OLD_Y, OLD_R
        OLD_X = X;
        OLD_Y = Y;
        OLD_R = Radius;
    }
    // Закрашиваем окружность с координатами X, Y и радиусом Radius цветом Color
    tft.fillCircle(X, Y, Radius, Color);
}
else {
    // Если переменная OF равна 0, то:
    if (OF == 0) {
        // Закрашиваем окружность с предыдущими координатами OLD_X, OLD_Y и радиусом OLD_R черным цветом
        tft.fillCircle(OLD_X, OLD_Y, OLD_R, ILI9341_BLACK);
        // Устанавливаем переменную OF в 1
        OF = 1;
    }
}

Комментарии построчно описывают, что происходит в коде:
- Если переменная En равна 1, то:
- Устанавливаем переменную OF в 0
- Если координаты X, Y или радиус Radius изменились (по сравнению с их предыдущими значениями OLD_X, OLD_Y, OLD_R), то:
- Закрашиваем окружность с предыдущими координатами OLD_X, OLD_Y и радиусом OLD_R черным цветом
- Обновляем значения OLD_X, OLD_Y, OLD_R
- Закрашиваем окружность с координатами X, Y и радиусом Radius цветом Color
- Иначе, если переменная OF равна 0, то:
- Закрашиваем окружность с предыдущими координатами OLD_X, OLD_Y и радиусом OLD_R черным цветом
- Устанавливаем переменную OF в 1

Код отвечает за отрисовку окружности на дисплее. Если переменная En равна 1, то окружность будет отрисована цветом Color с заданными координатами X, Y и радиусом Radius. Если переменная En не равна 1, то окружность будет удалена с дисплея (закрашена черным цветом). Однако, если переменная OF равна 1, то окружность не будет удалена с дисплея, даже если переменная En не равна 1. Это предотвращает многократное отображение и удаление окружности при ее перерисовке.
 

 

Похоже этот GPT-4 в шапке форума .... якобы GPT-4

И робот в нём явно тупее.

Link to comment
Share on other sites

17 минут назад, fsergei70 сказал:

Лимит 10 сообщений всего или в день?

Есть вариант использовать VPN

У меня такой https://browsec.com, но похоже оф.  сайт блокируют.
Поэтому вот инструкция для желающих https://browsecvpn.ru

 

Закончились сообщения - меняем страну и по новой. :улыбка:

 

Спойлер

browsec.jpg.07d38de2a32d896e6c38ef7bb23847d9.jpg

 

Link to comment
Share on other sites

Думаю робота для начала надо научиться использовать не для написания кода.
А в учебных целях.

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

 

Для блоков написанных в Code-Professional
Можно использовать этот путь копирования кода с дальнейшей его передачей роботу.

 

Спойлер

2023-04-16_184342.thumb.png.7d7e215ab9385b0b45bd99a18f006c99.png

 

Скопировал весь код и вставил роботу

прокоментируй этот код

 

Спойлер

#include "flprogUtilites.h"
unsigned long counterTick = 0;
void setup()
{
}
void loop()
{
    counterTick++;
    //Плата:1
}


ответ робота в шапке форума

 

Спойлер

2023-04-16_185906.thumb.png.f335d228cb2bb251d60ea4a40761bb52.png

 

 

ответ робота из телеграм

 

Спойлер

Данный код объявляет переменную "counterTick" типа "unsigned long" и устанавливает ее значение в 0. 

Далее, в функции "loop()" переменная "counterTick" увеличивается на 1 при каждом проходе цикла. 

Комментарий "// Плата:1" не имеет никакого отношения к коду и не влияет на его работу. Скорее всего, он является пометкой для отладки или для указания номера платы, на которой выполняется данный код.

 

Ответ почти один в один.
Но робот в Телеграм опять чуток многословней.

 

Этот шаг - построчное коментирование кода на русском языке.
Это и есть начало и его нельзя пропускать в учёбе.

 

Главное предупредить.

Робот в шапке форума чуток туповат.

 

Но его надо обязательно оставить ... на безрыбье и рак рыба
 

Link to comment
Share on other sites

1 час назад, fsergei70 сказал:

Попробуем. Версия 3.5 понравилась. Пишешь прокомментируй код и вставляешь скопированный код и вот тебе развернутый комментарий. Лимит 10 сообщений всего или в день?

Лимит в ответе бота 4096 символов если превышает оставляет недописанным, попробуйте еще bing AI тоже интересный.

Link to comment
Share on other sites

Роботу в шапке форума отправил

добавь в этот код толщину линии в 2 пикселя

 

Спойлер

if(En == 1){
         OF = 0;
         if (OLD_X0 != X0 || OLD_Y0 != Y0 || OLD_X1 != X1 || OLD_Y1 != Y1) {
                tft.drawLine(OLD_X0,OLD_Y0,OLD_X1,OLD_Y1,ILI9341_BLACK);
                OLD_X0 = X0;
                OLD_Y0 = Y0;
                OLD_X1 = X1;
                OLD_Y1 = Y1;
}
        tft.drawLine(X0,Y0,X1,Y1,Color);
}
else{
         if(OF == 0){
                tft.drawLine(OLD_X0,OLD_Y0,OLD_X1,OLD_Y1,ILI9341_BLACK);
         OF = 1;
}
}
 

 

Робот в шапке форума не справился и выдал тот же самый код.

 

На туже самую задачу робот из Телеграм ответил так.

 

Спойлер


Для добавления толщины линии в 2 пикселя 
можно использовать метод tft.setStrokeWeight(2), который устанавливает толщину линии в 2 пикселя. Таким образом, код должен выглядеть следующим образом:

```
if(En == 1){
  OF = 0;
  if (OLD_X0 != X0 || OLD_Y0 != Y0 || OLD_X1 != X1 || OLD_Y1 != Y1) {
     tft.setStrokeWeight(2); // Установить толщину линии в 2 пикселя
     tft.drawLine(OLD_X0,OLD_Y0,OLD_X1,OLD_Y1,ILI9341_BLACK);
     OLD_X0 = X0;
     OLD_Y0 = Y0;
     OLD_X1 = X1;
     OLD_Y1 = Y1;
  }
  tft.setStrokeWeight(2); // Установить толщину линии в 2 пикселя
  tft.drawLine(X0,Y0,X1,Y1,Color);
}
else{
  if(OF == 0){
     tft.setStrokeWeight(2); // Установить толщину линии в 2 пикселя
     tft.drawLine(OLD_X0,OLD_Y0,OLD_X1,OLD_Y1,ILI9341_BLACK);
     OF = 1;
  }
}
 

 

Выделил синим что добавил робот для линии в 2 пикселя.

Это фиаско.

 

Увидел ваш пост ... это был GPT-4  и его фиаско

 

 

 GPT-3 ответил так

 

Спойлер

if(En == 1){ OF = 0; if (OLD_X0 != X0 || OLD_Y0 != Y0 || OLD_X1 != X1 || OLD_Y1 != Y1) { tft.drawLine(OLD_X0,OLD_Y0,OLD_X1,OLD_Y1,ILI9341_BLACK, 2); // установка толщины линии в 2 пикселя OLD_X0 = X0; OLD_Y0 = Y0; OLD_X1 = X1; OLD_Y1 = Y1; } tft.drawLine(X0,Y0,X1,Y1,Color, 2); // установка толщины линии в 2 пикселя } else{ if(OF == 0){ tft.drawLine(OLD_X0,OLD_Y0,OLD_X1,OLD_Y1,ILI9341_BLACK, 2); // установка толщины линии в 2 пикселя OF = 1; } }

 

код я скопировал поэтому всё построилось криво

здесь  https://flprog.pro/index.php?/gpt-3/ посмотрите как построен код

 

чуток не так, как сделал бот в Телеграм.

GPT-3 просто добавил двойку  в tft.drawLine

Кто из них не прав ответит только Dryundel

 

 GPT-3 хоть постарался а  GPT-4 плюнул на задание

.

Edited by пенсионер
Link to comment
Share on other sites

4 часа назад, fsergei70 сказал:

Попробуем. Версия 3.5 понравилась. Пишешь прокомментируй код и вставляешь скопированный код и вот тебе развернутый комментарий. 

 

Каюсь,  не прочёл первый пост fsergei70
Оказывается мы с ним пишем одно и тоже.
Какой шерсти клок надо оторвать от этого робота.

.

Link to comment
Share on other sites

12 часов назад, пенсионер сказал:

Кто из них не прав

Ни один из них. В первом варианте в библиотеке нет такой функции. Во втором в функции лишний операнд, что приведет к ошибке компиляции. Рисуйте линию с нужной толщиной закрашенным прямоугольником.

  • Like 1
Link to comment
Share on other sites

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

Оба сервиса ChatGPT, размещенные на площадке FLProg.PRO, взяты с русских ресурсов и скорее всего к настоящему ChatGPT от OpenAI, имеют опосредованное отношение.

Официальный https://chat.openai.com легальным путем для России недоступен по известным всем причинам.

Есть конечно способы и зарегистрироваться в нем и подписку оформить но не об этом речь.

Имеем то, что имеем. Есть два варианта. Надо выбрать какой то один.

Или же вообще исключить данный сервис с площадки FLProg.PRO.

 

Как общественность скажет, так и сделаем.

Link to comment
Share on other sites

4 часа назад, av. сказал:

 Рисуйте линию с нужной толщиной закрашенным прямоугольником.

 

Из закрашенных прямоугольников строить линии динамических графиков я не согласен.

 

3 часа назад, Phazz сказал:

Хмм, опять круг замкнулся.

 

Если в библиотеке нет такой функции ... она там будет!
Найду её и вставлю.
И круг снова разорвётся.

 

Женитьба Фигаро.
- там запятая была!
- не было!
- тогда она там будет!

 

 

 

 

Link to comment
Share on other sites

12 минут назад, пенсионер сказал:

я не согласен

Авторы библиотеки видимо забыли спросить вашего согласия. Нет там функции толщина линии или я плохо ищу. Можно по конечно по несколько линий со сдвигом в 1 пиксель рисовать. Но прямоугольник мне кажется оптимальнее.

Link to comment
Share on other sites

Реально интересно.
Кто впустил на форум в доброжелательные помощники.
Такого кренделя, как Phazz.

 

https://flprog.pro/index.php

 

1.thumb.png.c4816c5d5aa5b5733d5598d530be6253.png

 

 

Роботу в Телеграм.

как добавить в билиотеку фунцию tft.setStrokeWeight
 

ответ

 

Спойлер

Чтобы добавить функцию tft.setStrokeWeight в вашу библиотеку, выполните следующие шаги:

1. Откройте файл библиотеки, в которую вы хотите добавить функцию.
2. Найдите блок с определением класса вашей библиотеки и добавьте следующую строку перед закрывающей скобкой:

  ```cpp
  void setStrokeWeight(int weight);
  ```

3. Определите новую функцию вне блока определения класса:

  ```cpp
  void YourLibraryName::setStrokeWeight(int weight)
  {
      tft.setStrokeWeight(weight);
  }
  ```

4. Сохраните файл и перекомпилируйте библиотеку.

После этого вы можете использовать функцию setStrokeWeight в своем коде для установки толщины линии на дисплее. Пример:

```cpp
#include <YourLibraryName.h>

YourLibraryName myLibrary;

void setup() {
  myLibrary.setStrokeWeight(3);
}

void loop() {
  // ваш код
}

 

фас

.

Edited by пенсионер
  • Sad 3
Link to comment
Share on other sites

Опять вас забыли спросить?

23 минуты назад, пенсионер сказал:

как добавить в билиотеку фунцию tft.setStrokeWeight

То есть вы предлагаете править библиотеку? 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...