July 21, 2023

Практика по языку Leo. Часть 2. feat. ChatGPT.

Привет! В данной статье мы с вами напишем 2 программы на языке программирования Leo. Сначала я дам вам свои объяснения, а дальше посмотрим, что нам скажет chatGPT по нашему коду. Первая программа будет определять, находится ли данное число в диапазоне от -1 до 17. Вторая программа находит наибольшее число из 4х поступивших в функцию.

Данная статья есть в формате видео, можете посмотреть его https://youtu.be/3vcgCHwb7Iw

Пишем первую программу

Для начала открываем Aleo Studio и создаем новый проект.

Напоминаю, что сейчас мы создаем программу, которая проверяет, входит ли число в диапазон. Таким образом, мы имеем, что в функцию поступает 1 переменная типа i32 (так как диапазон может быть, как положительный, так и отрицательный).

transition main(x: i32) -> bool {

На выходе из функции будет переменная типа bool. Если число находится в диапазоне, то получим результат true, иначе, false.

Далее создаем переменную типа bool, которую мы и будем выводить по результату работы программы. Причем присвоим ей значение по умолчанию false.

let b: bool = false;

Теперь пишем условие, где проверяется соответствие диапазону.

if x > -1i32 && x < 17i32 {

            b = true;

        }

Если условие выполняется, то мы присваиваем переменной значение true.

Теперь нам остаётся лишь вернуть переменную. Поскольку при создании мы присвоили ей значение false, то если условие не выполняется, то мы выведем данное значение без изменений.

return b;

Так выглядит финальный код.

Теперь пропишем входные данные. Переходим в файл в папке inputs.

[main]

x: i32 = 100i32;

Давайте запустим код с этими входными данными.

Мы получили значение false, так как данное число не входит в диапазон, то есть программа работает верно.

Давайте посмотрим объяснение ChatGPT.

1 задача. Объяснение ChatGPT.

Эта программа написана на языке программирования Aleo. Она содержит функцию main, которая принимает аргумент x типа i32 (32-битное целое число со знаком) и возвращает значение типа bool (логическое значение).

Цель программы состоит в проверке, находится ли значение x в диапазоне от -1 до 16 (включительно). Вот как работает программа:

  1. Создается переменная b типа bool и инициализируется значением false.
  2. Программа проверяет условие x > -1i32 && x < 17i32. Если значение x больше -1 и меньше 17, то условие считается истинным и переменной b присваивается значение true.
  3. В конце функция main возвращает значение переменной b, которое будет содержать true, если значение x находится в указанном диапазоне, и false в противном случае.

Чтобы использовать эту программу, вы можете вызвать функцию main с аргументом типа i32 и она вернет логическое значение (true или false), указывающее, находится ли значение x в диапазоне от -1 до 16.

Вторая задача. Поиск наибольшего из 4х чисел.

Создаем новый проект. На входе в функцию будет поступать 4 переменные типа u32, на выходе будет наибольшая переменная, поэтому также будет переменная типа u32.

transition main(a: u32, b: u32, c: u32, d: u32) -> u32 {

Далее нам нужно прописать сравнение каждой переменной. Мы сравниваем переменную со следующей перед ней. Если предыдущая переменная больше, тогда следующая переменная получает значение предыдущей. Так это выглядит в формате кода:

if a > b {

            b = a;

        }

        if b > c {

            c = b;

        }

        if c > d {

            d = c;

        }

По итогу мы возращаем переменную d.

return d;

Входные данные будут выглядеть следующим образом.

[main]

a: u32 = 13u32;

b: u32 = 24u32;

c: u32 = 3u32;

d: u32 = 14u32;

По результату работы программы мы должны получить значение 24, так как это наибольшая переменная. Давайте запустим наш код.

Да, всё работает корректно. Давайте попросим ChatGPT объяснить наш код.

2 задача. Объяснение ChatGPT.

Эта программа написана на языке программирования Aleo. Она содержит функцию main, которая принимает четыре аргумента a, b, c и d типа u32 (32-битное целое число без знака) и возвращает значение типа u32.

Цель программы состоит в нахождении наибольшего значения из четырех чисел a, b, c и d. Вот как работает программа:

  1. Сначала программа сравнивает значения a и b. Если значение a больше b, то значение b обновляется значением a.
  2. Затем программа сравнивает значения b и c. Если значение b больше c, то значение c обновляется значением b.
  3. Наконец, программа сравнивает значения c и d. Если значение c больше d, то значение d обновляется значением c.

После всех сравнений и обновлений, программа возвращает значение переменной d, которое будет содержать наибольшее из четырех чисел.

Чтобы использовать эту программу, вы можете вызвать функцию main с четырьмя аргументами типа u32 и она вернет наибольшее значение из этих чисел.

Вывод

Чем меня радует и удивляет ChatGPT, так это пониманием значения программы. Хотя и встречаются некоторые ошибки в объяснении. До встречи в следующей статье!