Практика: Условные конструкции и циклы
Онлайн редактор кода для Go
Здесь вы можете попробовать свои силы в программировании на языке Go. Для этого мы предоставляем вам онлайн редактор кода, в котором вы можете написать свой код и запустить его.
❗️ При обновлении страницы код пропадёт, по этому, сохраните свой код куда-нибудь, если он важный.
Задание 1: Калькулятор скидок
Задание 1: Расчёт скидки
Создай переменную с ценой товара и процентом скидки. С помощью if-else-if определи категорию скидки и выведи итоговую цену с пояснением.
💡 Подсказка
Используй float64 для расчётов.
Задание 2: Оценка по баллам
Задание 2: Оценка по баллам
Сделай переменную с количеством баллов (0–100). С помощью if-else-if переведи в школьную оценку (2–5) и добавь комментарий.
💡 Подсказка
Добавь отдельный комментарий в зависимости от оценки.
Задание 3: День недели по номеру
Задание 3: День недели
Сделай переменную с номером дня (1–7). С помощью switch выведи название дня и информацию: рабочий или выходной.
💡 Подсказка
Для группировки дней можно использовать switch без выражения и case с несколькими значениями.
Задание 4: Является ли число палиндромом
Задание 4: Является ли число палиндромом (L)
Дано целое число x. Определи, является ли оно палиндромом (читается одинаково слева направо и справа налево). Выведи true или false с пояснением.
💡 Подсказка
Отрицательные числа сразу false — знак "-" ломает симметрию.
Способы решения:
- Преобразовать в строку и сравнить с обратной
- Развернуть число математически (перевернуть цифры)
При математическом способе будь осторожен с переполнением (но в рамках constraints это безопасно).
Выведи результат и короткое пояснение.
После решения основного теста проверь код на дополнительных примерах — они помогут убедиться в правильности.
Задание 5: Таблица умножения
Задание 5: Таблица умножения на число
Создай переменную с N числом. С помощью for выведи таблицу умножения на N от 1 до 10 с красивым форматированием.
💡 Подсказка
Добавь заголовок "Таблица умножения на", n
Задание 6: Сумма и количество в списке
Задание 6: Статистика по списку чисел
Создай слайс из 10–15 чисел. С помощью for-range посчитай сумму, количество элементов, среднее, максимум и минимум.
💡 Подсказка
Выведи всё с пояснениями.
Задание 7: Фильтрация списка
Задание 7: Фильтрация чисел
Создай слайс чисел. С помощью for и continue/break создай новый слайс по условию (чётные, положительные, до определённого значения и т.д.).
💡 Подсказка
Для остановки: if v > 100 { break }
Задание 8: Найти два числа с заданной суммой
Задание 8: Найти два числа с заданной суммой (L)
Дан слайс целых чисел nums и целевое число target. Найди два разных элемента, которые в сумме дают target, и выведи их индексы (в любом порядке). Гарантируется, что решение существует и оно единственное. Нельзя использовать один и тот же элемент дважды.
💡 Подсказка
Решение можно реализовать разными способами:
- Перебор всех пар (вложенные циклы) — просто, но O(n²)
- Использование map для хранения уже пройденных чисел и нужного дополнения — эффективно O(n)
Выводи индексы в формате "Индексы: X и Y" или как слайс [X, Y].
Проверь, что используешь разные элементы (индексы разные).
После решения основного теста проверь код на дополнительных примерах — они помогут убедиться, что алгоритм работает правильно.
Задание 9: Поиск в таблице
Задание 9: Поиск в таблице умножения
Создай таблицу умножения 10×10. С помощью вложенных циклов и метки найди нужную пару или условие и выйди из обоих циклов.
💡 Подсказка
Для пропуска строки: if i%2 == 1 { continue found }
Задание 10: Анализ списка покупок
Задание 10: Анализ корзины товаров
Захардкодь слайс цен товаров. С помощью for-range и if/switch посчитай общую сумму, количество товаров по категориям цены, найди самый дорогой и дешёвый, выведи статистику.
💡 Подсказка
Выведи всё красиво с итогами.
Дополнительные материалы
- Экспериментируй с разными диапазонами в switch
- Рисуй свои фигуры
- Добавляй больше статистики в анализ
Читаемый код — это понятные условия и циклы. Используй хорошие имена переменных.
Коллекции: массивы, слайсы и карты.