Авторизация  
Zufero

Основы написания программ или Как сварить мозг за 20 минут

Recommended Posts

Добро пожаловать

Если вы сюда попали то вы хотите научиться программировать на lua

А теперь приготовьтесь опять попасть на урок информатики 

Глава 1   Изучаем проводник

Первые команды которые мы изучим это:

dir или ls - просмотр содержимого папки
mkdir      - сделать папку
edit       - изменить/создать файл
del        - удалить файл

Глава 2   Первый скрипт

Начнём!

Наша первая программа - Hello World, при её запуске мы должны получить одноимённое сообщение, выглядит она вот так

print ("Hello World") -- напечатать Hello World --

Теперь давайте посмотрим на состав данного продукта

print                                   -- Наша первая команда, print, которая печатает текст
("Hello World")                         -- Здесь мы указали что печатать, обратите внимание на "" и (), скобки ставятся обязательно, "" ковычки указывают --
                                                                                           -- на то что мы вводим именно текст, а не число или переменную --
-- напечатать Hello World --            -- обратите внимание на двойное тире, оно обозначает начало и конец коментариев оно нужно для тех кто будет потом --
                                        -- твою программу разбирать или для тебя из будующего --

Познакомимся с переменной, это контейнер содержащий какое-то значение будто число, сумму, слово, предложение и т.д. 

Переменная это любая буква и любое слово на английском(регистр учитывается) , например a, g, cat, qwerty, LuGaNeKiT, qsckgkvi, FREd и тому подобное. 

qwerty = 5 -- присваеваем qwerty 5, обратите внимание на равно --
ytrewq = qwerty + 6 -- присваеваем ytrewq сумму qwerty и 6 --
print (ytrewq) -- печатаем ПЕРЕМЕННУЮ ytrewq, поэтому нету "" --

На этом примере показано что переменную можно задать не только цифрой, а и выражением.

Но программа это обычно ввод, обработка и вывод информации, скажете вы, и будете правы, это были только основа основ, всё самое вкусное впереди.

Для ввода информации используется:

local test = io.stdin:read() -- ввод текста --

А теперь по-подробнее

local                     -- Ссылка на стороннюю библиотеку --
test = io.stdin:read()    -- Ввод текста.

Что за сторонняя библиотека?

Дело в том что в стандартной библиотеке команд крайне мало, для этого есть другие, сторонние библиотеки, 21 из open os и 4 из lua. local означает что мы берём материалы не из стандартной библиотеки.

Но если мы хотим использовать команду local test = io.stdin:read() для ввода числа то нам нужна другая команда

local test = io.stdin:read() -- ввод текста --
wasd = tonumber(test)        -- перевод текста в переменной test в число сохраннённое в wasd --
-- если test не имеет чисел то команда пропустится и wasd не получит число --

А теперь допустим что мы хотим обработать информацию, например произвести арифметические действия

local test = io.stdin:read() -- ввод текста --
wasd = tonumber(test)        -- перевод текста в переменной test в число сохраннённое в wasd --
fred = test * 7              -- произведение test и семи кладём в fred --
print (fred)                 -- печать fred --

А теперь вывод: 

Разберём программу print

n = 42                                   -- задаём что n = 42 --
-- Можно не только так: --
print ("Ку-ку")                          -- Напечатать Ку-ку
-- и так --
print (n)                                -- Напечатать значение n 
-- но и так --
print (n, " - Ответ")                    -- Напечатать значение n и после - Ответ --
-- или так --
print (n+6)                              -- Напечатать сумму n и 6
-- даже вот так --
print (n+423, " rfad ", n, " ", 6+90)    -- Напечатать сумму n и 423, rfad, значение n, пробел, сумму 6 и 90

Здесь я попытался показать что вообще можно творить с print.

Глава 3   IF ELSE ELSEIF

теперь перейдём к ЕСЛИ, выглядит оно вот так

local a = io.stdin:read()  -- Ввод --
a = tonumber(a)            -- Перевод --
if a > 7 then              -- Если 7 больше 7 то --
    print (a, " Больше 7")  -- Напечатать Больше 7 --
  elseif a == 7 then       -- Если же равно 7 то --
    print (a, " Равно 7")   -- Напечатать Равно 7 --
  else                     -- иначе --
    print (a, " Меньше 7")  -- напечатать Меньше 7 --
end                        -- конец цикла

Заметили двойное равно? Это не ошибка, т.к. мы не присваиваем значение а сравниваем его, вот все знаки равентва

>  -- Больше --
>= -- Больше или Равно --
== -- Равно --
<= -- Меньше или Равно --
<  -- Меньше --

Глава 4   Циклы

Циклы как и if'ы тоже имеют end, и выглядят вот так

-- Так --
b = 0                      -- Задаём значение b --
local a = io.stdin:read()  -- Ввод --
a = tonumber(a)            -- Перевод в число --
while b <= a do            -- Пока b меньше или равно a делать --
  print ("Круг номер ", b) -- Напечатать Круг номер и значение b --
  b = b+1                  -- Прибавление 1 к b --
end                        -- Конец --
-- Но есть более короткий способ --
-- for это тот же while но изначальное значение, прибавление за круг и число повторов - в одной строке --
-- или так --
local a = io.stdin:read()  -- Ввод --
a = tonumber(a)            -- Перевод в число --
for b = 0, a, 1 do         -- b = 0 - изначальное значение, a - сколько раз повторять, 1 - за 1 цикл сколько прибавить к b --
  print ("Круг номер ", b) -- Напечатать Круг номер и значение b --
end                        -- Конец --

Это казалось бы всё но для циклов есть ещё одна команда - break

Данная команда ломает цикл, вот пример её использования

while 0 == 0 do              -- Пока 0 равен 0 делать --
  local a = io.stdin:read()    -- Ввод  a --
  a = tonumber(a)              -- Перевод a в число a --
  if a == 42 then              -- Если a равно 42 тогда --
    print ("Угадал это 42")      -- Напечатать Угадал это 42 --
    break                        -- Сломать цикл --
  else                         -- Иначе --
    print ("Нет, это не", a )    -- Напечатать Нет, это не и значение a
  end                          -- Конец ЕСЛИ --
end                          -- Конец цикла --

Данная программа один большой цикл повторяющийся бесконечно до того момента пока игрок не введёт 42. 

Помните Комбинировать Циклы и Если можно в любых комбинациях, можно цикл в цикл засунуть, а можно Если в цикл, можно Если в  Если и т.д.

Это основы, если вас заинтересовало то смело направляйтесь в поисковик, ведь наверное здесь не будет темы про всё остальное.

Буду благодарен если кто - нибудь пожертвует своё время на то что бы сделать 2 часть.

 

Никогда не доверяйте сохранению недописанной темы в редакторе форума

 

Изменено пользователем Zufero
  • Upvote 6

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Замечательный гайд! Все изложено подробно и очень простым и понятным языком.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация