Изучаем программирование с нуля
Наша первая тема посвящена изучению основных концепций программирования и работе с простыми командами. Давай приступим!
*Yet another Basic (Ещё один BASIC)
https://yabasic.ru/
Код: Выделить всё
REM Моя первая программа на Yabasic
PRINT "Привет, мир!"
Код: Выделить всё
yabasic hello.yab
Код: Выделить всё
REM Это комментарий
Код: Выделить всё
# Это тоже комментарий
Код: Выделить всё
' И это очередной комментарий
Код: Выделить всё
// Ещё один способ оставлять комментарии в начале строки
print "Привет мир!" //и комментарий в теле кода
Код: Выделить всё
PRINT "Привет, " + your_name$ + "!"
Код: Выделить всё
PRINT "Привет, ", your_name$, "!"
Код: Выделить всё
x = 10 // Целое число
y = 3.14 // Вещественное число
name$ = "Вася" // Строка
Код: Выделить всё
a = 5 + 3 // Результат: 8
b = 10 / 2 // Результат: 5
c = 7 % 3 // Остаток от деления: 1
d = 2 ^ 3 // Возведение в степень: 8
Код: Выделить всё
x = 10
IF x > 5 THEN
PRINT "Х больше пяти!"
ELSE
PRINT "Х меньше или равен пяти."
ENDIF
Код: Выделить всё
FOR i = 1 TO 10
PRINT i
NEXT i
' Этот цикл выполняется ровно десять раз, последовательно перебирая значения переменной i от 1 до 10.
Код: Выделить всё
WHILE x < 10
PRINT x
x = x + 1
WEND
' Цикл продолжается до тех пор, пока условие x < 10 истинно.
Код: Выделить всё
REPEAT
PRINT x
x = x + 1
UNTIL x >= 10
' Цикл REPEAT выполняется хотя бы один раз, а потом проверяет условие окончания.
Код: Выделить всё
DIM numbers(5) // Создали массив длиной 5 элементов
Код: Выделить всё
numbers(1) = 10
numbers(2) = 20
numbers(3) = 30
Код: Выделить всё
DIM grades(3)
grades(1) = 5
grades(2) = 4
grades(3) = 5
Код: Выделить всё
my_string$ = "Hello, world!!"
PRINT LEN(my_string$) // Длина строки
PRINT UPPER$(my_string$) // Преобразует в верхний регистр
' Важное замечание!
' Yabasic с русским языком может использовать кодировки текста только
' в KOI8-R, Windows-1251 и ISO-8859-5. UTF-8 не поддерживает.
Код: Выделить всё
OPEN WINDOW 400, 300 // Окно шириной 400px и высотой 300px
Код: Выделить всё
OPEN WINDOW 400, 300
CIRCLE 200, 150, 50 REM Круг радиусом 50px в точке (200, 150)
Код: Выделить всё
DIM students(5) // Объявляем массив студентов на 5 человек
students(1) = "Вася"
students(2) = "Коля"
students(3) = "Миша"
Код: Выделить всё
DIM scores(3, 2) // Матрица оценок трёх предметов на двоих учащихся
scores(1, 1) = 5 // Оценка первого ученика по первому предмету
scores(2, 1) = 4 // Оценка второго ученика по первому предмету
Код: Выделить всё
DIM numbers(5)
SUM = 0
FOR i = 1 TO 5
SUM = SUM + numbers(i)
NEXT i
PRINT "Сумма элементов массива:", SUM
Код: Выделить всё
// Приложение-калькулятор
OPEN WINDOW 400, 300
choice = 0
WHILE choice <> 6
CLEAR SCREEN
clear window
TEXT 50, 50, "Vyberite operaciyu:"
TEXT 50, 70, "1. Slozhenie"
TEXT 50, 90, "2. Vychitanie"
TEXT 50, 110, "3. Umnozhenie"
TEXT 50, 130, "4. Delenie"
TEXT 50, 170, "5. Vyhod"
INPUT "Vvedite nomer operatsii: " choice
IF choice = 1 OR choice = 2 OR choice = 3 OR choice = 4 OR choice = 5 THEN
INPUT "Pervoe chislo: " num1
INPUT "Vtoroe chislo: " num2
switch choice
CASE 1
result = num1 + num2
TEXT 50, 200, "Resultat slozheniya: " + STR$(result) :break
CASE 2
result = num1 - num2
TEXT 50, 200, "Resultat vychitaniya: " + STR$(result) :break
CASE 3
result = num1 * num2
TEXT 50, 200, "Resultat umnozheniya: " + STR$(result) :break
CASE 4
IF num2 <> 0 THEN
result = num1 / num2
TEXT 50, 200, "Resultat deleniya: " + STR$(result) :break
ELSE
TEXT 50, 200, "Oshibka: nelsya delit na nol!" :break
ENDIF
END switch
PAUSE 2
ELSEIF choice = 5 THEN
CLOSE WINDOW
ELSE
TEXT 50, 200, "Nevernyi vybor. Vyberite ot 1 do 5."
PAUSE 2
ENDIF
WEND
Код: Выделить всё
OPEN "output.txt" FOR writing AS #1
Код: Выделить всё
PRINT #1, "Hello, World!"
Код: Выделить всё
CLOSE #1
Код: Выделить всё
// Таблица умножения в файл
OPEN "table.txt" FOR writing AS #1
FOR i = 1 TO 10
FOR j = 1 TO 10
PRINT #1, i, "x", j, "=", i*j
NEXT j
NEXT i
CLOSE #1
PRINT "Таблица умножения записана в файл table.txt"
Код: Выделить всё
// Подпрограмма переворота текста
sub reverseString$(st$)
for i=len(st$) to 1 step -1
reversedStr$=reversedStr$+mid$(st$,i,1)
next i
return reversedStr$
end sub
Код: Выделить всё
// mathlib.yab — библиотека математических функций
sub factorial(n)
res = 1
for i = 1 to n
res = res * i
next i
return res
end sub
sub fibonacci(n)
a = 0
b = 1
for i = 1 to n
temp = a
a = b
b = temp + b
next i
return a
end sub
Код: Выделить всё
// Основная программа
IMPORT mathlib // Импортируем библиотеку
factorial_value = mathlib.factorial(5) // Рассчитываем факториал числа 5
fibonacci_value = mathlib.fibonacci(10) // Рассчитываем 10-е число Фибоначчи
PRINT "Факториал 5 =", factorial_value
PRINT "10-е число Фибоначчи =", fibonacci_value