Условные конструкции, циклы, массивы и библтотеки
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
print(">>> Library 'lib_utils.fox' loaded successfully!");
|
||||
|
||||
// Глобальные переменные для передачи "аргументов" в функции
|
||||
// (так как в v4.0 аргументы передаются через глобальную память)
|
||||
int arg_val = 0;
|
||||
int return_val = 0;
|
||||
|
||||
// --- Функция 1: Вычисление факториала ---
|
||||
void factorial() {
|
||||
int counter = 1;
|
||||
int result = 1;
|
||||
|
||||
// Цикл while
|
||||
while (counter < arg_val + 1) {
|
||||
result = result * counter;
|
||||
counter = counter + 1;
|
||||
}
|
||||
return_val = result;
|
||||
}
|
||||
|
||||
// --- Функция 2: Красивый заголовок ---
|
||||
void printHeader() {
|
||||
print("===================================");
|
||||
print(" FOX LANG v4.0 DEMO SYSTEM ");
|
||||
print("===================================");
|
||||
fox(); // Вызов встроенной лисы
|
||||
}
|
||||
|
||||
// --- Функция 3: Проверка четности ---
|
||||
void checkParity() {
|
||||
// Используем оператор остатка %
|
||||
int rem = arg_val % 2;
|
||||
if (rem == 0) {
|
||||
print("Number " + arg_val + " is EVEN (Chetnoe).");
|
||||
} else {
|
||||
print("Number " + arg_val + " is ODD (Nechetnoe).");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
// 1. Подключаем нашу библиотеку
|
||||
include("lib_utils.fox");
|
||||
|
||||
// Используем функцию из библиотеки
|
||||
printHeader();
|
||||
|
||||
// ==========================================
|
||||
// ЧАСТЬ 1: Работа с вводом и условиями
|
||||
// ==========================================
|
||||
print("");
|
||||
print("--- Step 1: User Interaction ---");
|
||||
print("Enter your name:");
|
||||
string name = input();
|
||||
|
||||
if (name == "Fox") {
|
||||
print("Hello, Creator!");
|
||||
} else {
|
||||
print("Welcome, user " + name);
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// ЧАСТЬ 2: Математика и Библиотечные функции
|
||||
// ==========================================
|
||||
print("");
|
||||
print("--- Step 2: Math & Logic ---");
|
||||
print("Enter a small number to calculate Factorial:");
|
||||
string inputNum = input();
|
||||
int num = inputNum; // Автоматическое преобразование типов (строка -> число)
|
||||
|
||||
// Передаем аргумент через глобальную переменную библиотеки
|
||||
arg_val = num;
|
||||
factorial(); // Вызываем функцию из lib_utils.fox
|
||||
|
||||
print("Factorial of " + num + " is: " + return_val);
|
||||
|
||||
// Проверяем на четность
|
||||
checkParity();
|
||||
|
||||
// ==========================================
|
||||
// ЧАСТЬ 3: Массивы и Сортировка (Bubble Sort)
|
||||
// ==========================================
|
||||
print("");
|
||||
print("--- Step 3: Array Sorting (Bubble Sort) ---");
|
||||
|
||||
// Объявляем массив на 5 элементов
|
||||
int arrSize = 5;
|
||||
array myNumbers arrSize;
|
||||
|
||||
// Заполняем массив случайными числами
|
||||
int i = 0;
|
||||
while (i < arrSize) {
|
||||
int rnd = random();
|
||||
set(myNumbers, i, rnd);
|
||||
i = i + 1;
|
||||
}
|
||||
|
||||
// Выводим исходный массив
|
||||
print("Original Array:");
|
||||
int k = 0;
|
||||
while (k < arrSize) {
|
||||
print("Index " + k + ": " + get(myNumbers, k));
|
||||
k = k + 1;
|
||||
}
|
||||
|
||||
print("Sorting now... please wait...");
|
||||
|
||||
// Реализация сортировки пузырьком
|
||||
int n = arrSize;
|
||||
int pass = 0;
|
||||
|
||||
// Внешний цикл
|
||||
while (pass < n) {
|
||||
int j = 0;
|
||||
// Внутренний цикл (n - 1)
|
||||
while (j < n - 1) {
|
||||
// Получаем два соседних элемента
|
||||
int val1 = get(myNumbers, j);
|
||||
int val2 = get(myNumbers, j + 1);
|
||||
|
||||
// Если левый больше правого - меняем местами
|
||||
if (val1 > val2) {
|
||||
set(myNumbers, j, val2);
|
||||
set(myNumbers, j + 1, val1);
|
||||
}
|
||||
j = j + 1;
|
||||
}
|
||||
pass = pass + 1;
|
||||
}
|
||||
|
||||
// Выводим отсортированный массив
|
||||
print("Sorted Array (Result):");
|
||||
k = 0;
|
||||
while (k < arrSize) {
|
||||
print("Index " + k + ": " + get(myNumbers, k));
|
||||
k = k + 1;
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// ФИНАЛ
|
||||
// ==========================================
|
||||
print("");
|
||||
print("Test Complete. FoxLang is working perfectly!");
|
||||
Reference in New Issue
Block a user