Опрос
Материал из Поле цифровой дидактики
-- Опрос: Нравится ли вам греческий язык?
function createPoll()
print("========== ОПРОС ==========")
print("Вопрос: Нравится ли вам греческий язык?")
print("\nВарианты ответов:")
print("1 - Да, очень нравится")
print("2 - Нравится")
print("3 - Нейтрально")
print("4 - Не нравится")
print("5 - Совсем не нравится")
print("============================")
local results = {
[1] = 0, -- Да, очень нравится
[2] = 0, -- Нравится
[3] = 0, -- Нейтрально
[4] = 0, -- Не нравится
[5] = 0 -- Совсем не нравится
}
local total_votes = 0
while true do
print("\nВведите номер ответа (1-5) или 0 для выхода:")
local input = io.read("*number")
if input == 0 then
break
elseif input >= 1 and input <= 5 then
results[input] = results[input] + 1
total_votes = total_votes + 1
print("✓ Спасибо за ваш голос!")
else
print("✗ Неверный ввод. Пожалуйста, введите число от 1 до 5.")
end
end
-- Показ результатов
print("\n========== РЕЗУЛЬТАТЫ ОПРОСА ==========")
print("Всего голосов:", total_votes)
print("----------------------------------------")
if total_votes > 0 then
local answers = {
"Да, очень нравится",
"Нравится",
"Нейтрально",
"Не нравится",
"Совсем не нравится"
}
for i = 1, 5 do
local percentage = (results[i] / total_votes) * 100
print(string.format("%s: %d голосов (%.1f%%)",
answers[i], results[i], percentage))
-- Визуализация прогресса
local bar_length = math.floor(percentage / 2)
local bar = string.rep("█", bar_length)
print(string.format(" [%-50s] %s", bar, ""))
end
-- Определение победителя
local max_votes = 0
local winning_answer = 0
for i = 1, 5 do
if results[i] > max_votes then
max_votes = results[i]
winning_answer = i
end
end
print("\n🏆 Самый популярный ответ:", answers[winning_answer])
else
print("Голосов не было получено.")
end
print("========================================")
end
-- Запуск опроса createPoll()
