Перейти к содержимому


Фотография

Hello World!

hello world lua программирование ночью нечего делать

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 27

#1 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 16 Май 2016 - 23:36

EJ0Jhne.png

 

Сколько вы можете придумать способов напечатать фразу "Hello World!" десять раз, при помощи Луа?

 

Мой вклад в копилку:

1) Рекурсией

function hello(times)
  if times > 0 then print "Hello World!"; hello(times-1) end
end
hello(10)

2) Заменой

local source = "          "
local hello = source:gsub(" ", "Hello World!\n")
print(hello)

Сообщение отредактировал Totoro: 17 Май 2016 - 00:08

  • Fingercomp и SergOmarov это нравится

#2 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,82%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 16 Май 2016 - 23:41

for i = 1, 10 do

     print('Hello World!)

end


  • Totoro и lokin135 это нравится

#3 Оффлайн   evgkul

evgkul
  • Пользователи
  • Сообщений: 369
  • Уровень сигнала: 0,64%
  • В игре: 4 час. 49 мин.

Награды

     

Отправлено 17 Май 2016 - 05:59

print('Hello World!')
print('Hello World!')
print('Hello World!')
print('Hello World!')
print('Hello World!')
print('Hello World!')
print('Hello World!')
print('Hello World!')
print('Hello World!')
print('Hello World!')
  • Totoro и SergOmarov это нравится

#4 Оффлайн   Jet

Jet
  • Пользователи
  • Сообщений: 80
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.
  • ГородМосква

Отправлено 17 Май 2016 - 07:34

print(string.rep("Hello world!\n", 10))


  • Totoro и ECS это нравится

#5 Оффлайн   Doob

Doob
  • Пользователи
  • Сообщений: 814
  • Уровень сигнала: 19,36%
  • В игре: 146 час. 10 мин.

Награды

                                   

Отправлено 17 Май 2016 - 07:56

Самое очевидное это циклы

Goto:

i = 10
::hello::
print('Hello World!')
i = i - 1
if i >= 1 then
  goto hello
end

While:

i = 10
while i >= 1 do
  print('Hello World!')
  i = i - 1
end

Repeat:

i = 10
repeat
  print('Hello World!')
  i = i - 1
until i <= 0

  • NEO и Totoro это нравится

#6 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 17 Май 2016 - 12:33

Пара идей, в которых счетчиком цикла является сама фраза "Hello World!"

s1="He" s2="llo World!"
repeat
  print(s1..s2)
  s1=s1..s2:sub(1,1)
  s2=s2:sub(2)
until s2==""
s1="Hello World!"
for _ in s1:gmatch("%w") do
 print(s1)
end

  • Totoro это нравится

#7 Онлайн   cyber01

cyber01

    Техническая поддержка

  • Администраторы
  • Сообщений: 891
  • Уровень сигнала: 1,76%
  • В игре: 13 час. 18 мин.

Награды

            2      

Отправлено 17 Май 2016 - 13:10

print('Hello World! Десять раз')

 

:)


  • Totoro, evgkul, Asummonster и 2 другим это нравится

#8 Оффлайн   danshat

danshat
  • Пользователи
  • Сообщений: 50
  • Уровень сигнала: 0,3%
  • В игре: 2 час. 18 мин.
  • Городст. Мирный

Награды

     

Отправлено 17 Май 2016 - 19:39

local int = 0
local f = require("filesystem")
require("term").clear()

if f.exists("hello") then 
 local file = io.open("hello","r")
 int = file:read(1)
 file:close()
end

if int == 10 then os.exit() end

print("Hello World!")
int = int + 1
file = io.open("hello","w")
file:write(int)
file:flush()
file:close()
os.execute("helloworld")
os.exit()

Прожка достает число из файла hello, если он есть, затем смотрит, если число 10 - то есть прога уже выполнила все, что нужно, то выходит не создавая новый свой экземпляр, если же нет - то пишет Hello World, добавляет 1 к числу, открывает файл hello на запись и пишет туда это число. Затем запускает сама себя и закрывается.

 

Писал по памяти, на компе OC не тестировал, концепт думаю ясен


Сообщение отредактировал danshat: 19 Май 2016 - 21:02

  • Totoro, Asummonster и Kartze это нравится

#9 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 18 Май 2016 - 10:35

gpu=require("component").gpu
s="Hello World!"
for i=1,1000 do
  x=math.random(12)
  y=math.random(10)
  gpu.set(x,y,s:sub(x,x))
  os.sleep(0.1)
end

  • Totoro, Asummonster и danshat это нравится

#10 Оффлайн   LeshaInc

LeshaInc
  • Пользователи
  • Сообщений: 1 207
  • Уровень сигнала: 15,5%
  • В игре: 117 час. 1 мин.
  • ГородЛуна

Награды

                       

Отправлено 02 Сентябрь 2016 - 10:46

local t = {}

for i = 1, 10 do
  t[i] = "Hell"
end

print(table.concat(t, "o, World!\n") .. "o, World!")

Сообщение отредактировал LeshaInc: 02 Сентябрь 2016 - 10:47

  • Totoro и Asior это нравится

#11 Оффлайн   Totoro

Totoro
  • Автор темы
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 02 Сентябрь 2016 - 11:13

function map(func, array)
  local new_array = {}
  for i,v in ipairs(array) do
    new_array[i] = func(v)
  end
  return new_array
end

local range = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

map(function() print("Hello World!") end, range)

  • LeshaInc это нравится

#12 Оффлайн   LeshaInc

LeshaInc
  • Пользователи
  • Сообщений: 1 207
  • Уровень сигнала: 15,5%
  • В игре: 117 час. 1 мин.
  • ГородЛуна

Награды

                       

Отправлено 02 Сентябрь 2016 - 11:19

io.write(string.char(72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10, 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10, 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10, 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10, 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10, 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10, 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10, 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10, 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10, 72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33, 10))

  • Totoro, lokin135 и Appo это нравится

#13 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,82%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 02 Сентябрь 2016 - 12:04

local str = 'hello world'

local str_len = #str

for i = 1, 10 do
  local matches = 0
  local now_ch = string.sub(str, 1, 1)
  while matches <= str_len do
    local ch = string.char(math.random(1, 255))
    if ch == now_ch then
      io.write(ch)
      matches = matches + 1
      now_ch = string.sub(str, matches + 1, matches + 1)
    end
  end
print()
end

Сообщение отредактировал NEO: 02 Сентябрь 2016 - 14:05

  • Totoro это нравится

#14 Оффлайн   Totoro

Totoro
  • Автор темы
  • Хранители Кода
  • Сообщений: 1 735
  • Уровень сигнала: 0,29%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 02 Сентябрь 2016 - 13:51

Надо десять раз напечатать. У тебя только один. =)



#15 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,82%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 02 Сентябрь 2016 - 14:04

Надо десять раз напечатать. У тебя только один. =)

Так печатает 10 раз.



#16 Оффлайн   ALeXeR

ALeXeR
  • Пользователи
  • Сообщений: 204
  • Уровень сигнала: 33,9%
  • В игре: 255 час. 59 мин.
  • ГородОдесса

Отправлено 04 Сентябрь 2016 - 14:03

local gpu = require("component").gpu;
local str = "Hello world!"
 
for i = 1, str:len() do
 gpu.fill(i,1,1,10,str:sub(i,i));
end;

  • Totoro это нравится

#17 Оффлайн   Larban

Larban
  • Пользователи
  • Сообщений: 25
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 12 Сентябрь 2016 - 17:52

io = require("io")
file = io.open("hello.lua","w")
file:write("print('hello world')")
file:flush()
file:close()
for i=1,10 do
dofile("hello.lua")
end
load(string.rep("print(\"hello world\")",10))()

  • Totoro это нравится

#18 Оффлайн   RccHD

RccHD
  • Пользователи
  • Сообщений: 169
  • Уровень сигнала: 17,18%
  • В игре: 129 час. 42 мин.

Награды

           

Отправлено 12 Сентябрь 2017 - 16:18

Многопоточный способ

mQbjrMx.gif
Используя еще недописанную операционку xD

Код программы(запущены 10 копий):
 

local c = "Hello world!"
local gpu = require("component").gpu
for i = 1, #c do
    gpu.set(i, 1, c:sub(i, i))
    os.sleep(0.125)
end

Сообщение отредактировал RccHD: 12 Сентябрь 2017 - 16:27

  • Totoro и lokin135 это нравится

#19 Оффлайн   LeshaInc

LeshaInc
  • Пользователи
  • Сообщений: 1 207
  • Уровень сигнала: 15,5%
  • В игре: 117 час. 1 мин.
  • ГородЛуна

Награды

                       

Отправлено 12 Сентябрь 2017 - 17:05

# resolution 13 11
# yes Hello, World!

  • Totoro и RccHD это нравится

#20 Оффлайн   AnothRt

AnothRt
  • Пользователи
  • Сообщений: 5
  • Уровень сигнала: 0,06%
  • В игре: 0 час. 27 мин.

Отправлено 13 Сентябрь 2017 - 16:37

a = "Hello world!"
print(a, a, a, a, a, a, a, a, a, a)

Предупреждение:я новичок в кубе, по сути то же самое что и у evgkul, просто в двух строчках. Могу и накосячить(возможно)

Я кстать это и подразумевал в чате. 


Сообщение отредактировал AnothRt: 13 Сентябрь 2017 - 16:40

  • Totoro и Andronio это нравится

#21 Оффлайн   SDV

SDV
  • Пользователи
  • Сообщений: 655
  • Уровень сигнала: 27,07%
  • В игре: 204 час. 27 мин.
  • ГородO.R.E.N.B.U.R.G.

Награды

        

Отправлено 14 Сентябрь 2017 - 21:59

Понятно, что уже все предложили всевозможные методы этого примера.
Вроде попытался практически сделать чтобы не совпадал с примерами в этом топике.
И вот на сколько мой мозг смог сгенерировать данную идею  B-)
 
У самый банальный и извращенный способ, но просто я не указываю, что нужно 10 раз выводить, все идет автоматически.
Ну думаю продвинутые Лунатики прочтут и поймут мой патологически больной способ  :D
for i = 1, table.concat({"Hello World!"}):gsub('%W',''):len() do
  print(table.concat({"Hello World!"}))
end
Но вроде работает, можете проверить  ;)
  • Totoro, Doob, vx13 и еще 1 это нравится

#22 Оффлайн   swg2you

swg2you
  • Пользователи
  • Сообщений: 268
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 01 Октябрь 2017 - 01:43

Дратути!

 

Программисты такие программисты ;)

 

Скопировать Hello World! в буфер, запустить цомпутер в майне и прямо в командной строке 10 раз нажать инсерт. Фомально условия ТЗ выполнены, т.к. ОС на Луа обрабатывает ввод/вывод.

 

Можно еще с echo извратиться. Как в древней бородатой задачке.

 

ЗЫ

Есть еще медитативно-хаотический метод для истинных гуру, выводить в поток рандомные символы. Рано или поздно фраза Hello World! будет выведена 10 раз, и дзен результат будет достигнут. 


Сообщение отредактировал swg2you: 01 Октябрь 2017 - 01:48

  • Totoro и Laine_prikol это нравится

#23 Онлайн   eu_tomat

eu_tomat
  • Хранители Кода
  • Сообщений: 880
  • Уровень сигнала: 6,36%
  • В игре: 48 час. 1 мин.

Награды

                          

Отправлено 01 Октябрь 2017 - 02:42

напечатать фразу "Hello World!" десять раз, при помощи Луа

Программисты такие программисты
...
Фомально условия ТЗ выполнены

И не говори. Программисты вечно всё усложняют.
E8zddO7.png
  • Totoro, ECS и swg2you это нравится

#24 Оффлайн   swg2you

swg2you
  • Пользователи
  • Сообщений: 268
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 01 Октябрь 2017 - 04:07

И не говори. Программисты вечно всё усложняют.

Зачот. Ждем программу для робота, которая будет высекать хеловорды в толще породы.

Сообщение отредактировал eu_tomat: 01 Октябрь 2017 - 16:15
оффтопчик

  • Totoro и Andronio это нравится

#25 Оффлайн   Laine_prikol

Laine_prikol
  • Пользователи
  • Сообщений: 133
  • Уровень сигнала: 0,54%
  • В игре: 4 час. 6 мин.

Награды

           

Отправлено 09 Ноябрь 2017 - 19:16

local charset = {}
txt1 = ""
txt2 = ""
hello_build = false
-- qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890
for i = 48,  57 do table.insert(charset, string.char(i)) end
for i = 65,  90 do table.insert(charset, string.char(i)) end
for i = 97, 122 do table.insert(charset, string.char(i)) end

function string.random(length)
  math.randomseed(os.time())

  if length > 0 then
    return string.random(length - 1) .. charset[math.random(1, #charset)]
  else
    return ""
  end
end
print("Building hello world please wait...")
while true do
  m = string.random(5)
  if m == "hello" then
    txt1 = m
    hello_build = true
    print("HELLO IS BUILDED! Building word 'world' ")
  end
  if m == "world" and hello_build then
    txt2 = m
    hello_build = true
    print("Hello world is builded. printing 10 times!")
    print(txt1, txt2)
    print(txt1, txt2)
    print(txt1, txt2)
    print(txt1, txt2)
    print(txt1, txt2)
    print(txt1, txt2)
    print(txt1, txt2)
    print(txt1, txt2)
    print(txt1, txt2)
    print(txt1, txt2)
    break
  end
end

Когда-нибудь всё таки напишет Hello World 10 раз


Сообщение отредактировал Laine_prikol: 10 Ноябрь 2017 - 14:05


#26 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,82%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 09 Ноябрь 2017 - 21:13

and hello_build = true

5669-arhimed.jpg


  • eu_tomat это нравится

#27 Оффлайн   ivan52945

ivan52945
  • Пользователи
  • Сообщений: 150
  • Уровень сигнала: 61,43%
  • В игре: 463 час. 53 мин.

Награды

                       

Отправлено 09 Ноябрь 2017 - 21:27

-- qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890

эт чё

как говрил леший
Просто и без задней мысли при помощи Луа


Сообщение отредактировал ivan52945: 09 Ноябрь 2017 - 21:33


#28 Оффлайн   HixOff

HixOff
  • Пользователи
  • Сообщений: 162
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

     

Отправлено 10 Ноябрь 2017 - 08:21

эт чё

латинские буквы и цифры в порядке QWERTY-клавиатуры :D
другое дело - зачем оно тут?







Темы с аналогичным тегами hello, world, lua, программирование, ночью нечего делать

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных