Решаем задачи от новой версии ChatGPT 4o #2
Всем привет! Сегодня мы продолжаем изучать язык программирования Leo от проекта Aleo, а так же тестировать новую версию нейросети ChatGPT - ChatGPT 4O. Это вторая статья по этой теме, если вы не видели предыдущую, то рекомендую вам её прочитать.
Напомню, какой запрос я сделал в ChatGPT:
Я думаю цель максимально понятна, давайте её решим. Для этого открываем Aleo Studio и создаём новый проект. Назовём его ex2.
У нас создалась базовая программа. Давайте модифицировать функцию main.
Начнём, как обычно с того что напишем вход и выход функции. На входе у нас 5 переменных, среди которых мы будем находить наибольшую и наименьшую.
На выходе функции две переменные типа u32, которые буду хранить наибольшее и наименьшее число.
Теперь давайте создадим две переменные типа u32, которые будут хранить в себе наибольшее и наименьшее число, а также их мы будем выводить по результату работы программы.
Теперь нам нужно скопировать значения переменных, которые мы получили на входе. Это необходимо, так как при поиске наибольшего числа мы будем изменять значения переменных и тем самым потеряем исходные значения.
Переходим к поиску наибольшего числа. Для этого создаем следующую конструкцию: если переменная a больше переменной b, мы задаем переменной b значение переменной a. Далее идем по той же логике. В коде это выглядит так:
Таким образом, значение наибольшей переменной хранится в переменной e. Давайте зададим значение переменной highest равное переменной e.
Теперь делаем тоже самое, но меняем знак больше на знак меньше.
И осталось вернуть переменные highest и lowest.
program ex2.aleo { transition main(a: u32, b: u32, c: u32, d: u32, e: u32) -> (u32, u32) { let highest: u32 = 0u32; let lowest: u32 = 0u32; let a_2: u32 = a; let b_2: u32 = b; let c_2: u32 = c; let d_2: u32 = d; let e_2: u32 = e;
if a > b { b = a; } if b > c { c = b; } if c > d { d = c; } if d > e { e = d; } highest = e; if a_2 < b_2 { b_2 = a_2; } if b_2 < c_2 { c_2 = b_2; } if c_2 < d_2 { d_2 = c_2; } if d_2 < e_2 { e_2 = d_2; } lowest = e_2;
return (lowest, highest); } }
Давайте запустим код с этими входными данными: