Objeck 2.0.3
Версия реализации Objeck языка программирования ObjeckВерсия компилятора Objeck, выпущенная 23 августа 2011 года. Список изменений:
- Исправлена критическая ошибка, из-за которой ряд программ сбоили при компиляции со встраиванием методов (этот режим был включен по умолчанию, начиная с версий 2.0.x).
- Открытие файла в режиме записи или чтения/записи удаляет существующий файл с тем же именем.
- Все файлы открываются в бинарном режиме.
-
Исправлен метод
Post
классаHttpClient
- Улучшен метод хеширования строк
Ссылки:
Примеры:
Hello, World! - Objeck (395):
bundle Default {
class Hello {
function : Main(args : String[]) ~ Nil {
"Hello, World!"->PrintLine();
}
}
}
Факториал - Objeck (396):
Используется встроенная функция Factorial
.
bundle Default {
class Factorial {
function : Main(args : String[]) ~ Nil {
for (i := 0; i <= 16; i += 1;) {
i->Print();
"! = "->Print();
i->Factorial()->PrintLine();
};
}
}
}
Числа Фибоначчи - Objeck (397):
Используется рекурсивное определение чисел Фибоначчи.
bundle Default {
class Fib {
function : Fibonacci (n: Int) ~ Int {
if (n<=2) {
return 1;
};
return Fibonacci(n-1) + Fibonacci(n-2);
}
function : Main(args : String[]) ~ Nil {
for (i := 0; i <= 16; i += 1;) {
Fibonacci(i)->Print();
", "->Print();
};
"..."->PrintLine();
}
}
}
Квадратное уравнение - Objeck (398):
use IO;
bundle Default {
class Quadratic {
function : Main(args : String[]) ~ Nil {
A := Console->ReadString()->ToInt();
if (A=0) {
"Not a quadratic equation."->PrintLine();
return;
};
B := Console->ReadString()->ToInt();
C := Console->ReadString()->ToInt();
D := 1.0*(B*B-4*A*C);
if (D=0) {
"x = "->Print();
(0-B/2.0/A)->PrintLine();
};
if (D>0) {
"x1 = "->Print();
((0-B+(D->SquareRoot()))/2.0/A)->PrintLine();
"x2 = "->Print();
((0-B-(D->SquareRoot()))/2.0/A)->PrintLine();
};
if (D<0) {
out := "x1 = (";
out->Append(0-B/2.0/A);
out->Append(",");
out->Append(((D->Abs())->SquareRoot())/2/A);
out->Append(")");
out->PrintLine();
out := "x2 = (";
out->Append(0-B/2.0/A);
out->Append(",");
out->Append(0-((D->Abs())->SquareRoot())/2/A);
out->Append(")");
out->PrintLine();
};
}
}
}
Комментарии
]]>blog comments powered by Disqus
]]>