Mono C#
Реализация языка программирования C#Mono — проект по созданию полноценного воплощения системы .NET на базе свободного программного обеспечения. Проект Mono возглавляет Мигель де Иказа, известный участием в проекте GNOME.
Mono включает компилятор языка C# — mcs, написанный на языке C#, среду исполнения .NET — mono (с поддержкой JIT) и mint (без поддержки JIT), отладчик, а также ряд библиотек, включая реализацию ADO.NET и ASP.NET. В рамках проекта также разрабатываются привязки для графической системы GTK+ на платформу .NET.
Ссылки:
Примеры:
Факториал:
Пример для версий .NET 1.0, .NET 2.0, Mono 1.2.4, gmcs 2.0.1Используется рекурсивное определение факториала.
using System;
class Program
{
static long Factorial(int n)
{
if (n == 0)
return 1;
else
return n * Factorial(n - 1);
}
static void Main(string[] args)
{
for (int i = 0; i < 17; i++)
Console.WriteLine("{0}! = {1}",i,Factorial(i));
}
}
Hello, World!:
Пример для версий gmcs 2.0.1using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
Числа Фибоначчи:
Пример для версий gmcs 2.0.1Используется рекурсивное определение чисел Фибоначчи.
using System;
class Program
{
static long Fibonacci(int n)
{
if (n < 3)
return 1;
else
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
static void Main(string[] args)
{
for (int i = 1; i < 17; i++)
Console.Write("{0}, ", Fibonacci(i));
Console.WriteLine("...");
}
}
Квадратное уравнение:
Пример для версий gmcs 2.0.1using System;
class Program
{
static void Main(string[] args)
{
int A, B, C, D;
try
{ Console.Write("A = ");
A = Convert.ToInt32(Console.ReadLine());
Console.Write("B = ");
B = Convert.ToInt32(Console.ReadLine());
Console.Write("C = ");
C = Convert.ToInt32(Console.ReadLine());
}
catch
{ Console.WriteLine("Invalid input");
return;
}
if (A == 0)
{ Console.WriteLine("Not a quadratic equation.");
return;
}
D = B * B - 4 * A * C;
if (D == 0)
Console.WriteLine("x = {0}", -B / 2.0 / A);
else if (D > 0)
Console.WriteLine("x1 = {0}\nx2 = {1}", (-B + Math.Sqrt(D)) / 2 / A, (-B - Math.Sqrt(D)) / 2 / A);
else
Console.WriteLine("x1 = ({0},{1})\nx2 = ({0},-{1})", -B/2.0/A, Math.Sqrt(-D)/2/A);
}
}
CamelCase:
Пример для версий gmcs 2.0.1Первая строка метода Main
читает из консоли строку и переводит ее в нижний регистр. Вторая строка заменяет все последовательности из 1 и более не-буквы пробелами. Третья и четвертая строки получают объект класса TextInfo
и используют его для того, чтобы перевести строку в Title Case (каждое слово начинается с большой буквы). Наконец, из полученной строки удаляются все пробелы (методом замены строки из одного пробела на пустую строку), и результат выводится на печать.
using System;
using System.Globalization;
using System.Text.RegularExpressions;
public class Program
{ public static void Main(string[] args)
{ string text = Console.ReadLine().ToLower();
text = Regex.Replace(text,"([^a-z]+)"," ");
TextInfo ti = new CultureInfo("en-US",false).TextInfo;
text = ti.ToTitleCase(text);
text = text.Replace(" ","");
Console.WriteLine(text);
}
}
CamelCase:
Пример для версий gmcs 2.0.1Этот пример использует только регулярные выражения. Первое обращение к ним заменяет все максимальные последовательности букв в строке на результат применения к ним функции CapitalizePart
, то есть переводит первый символ в верхний регистр. Второе — заменяет все не-буквы на пустые строки.
using System;
using System.Text.RegularExpressions;
class Program
{ static string CapitalizePart(Match m)
{ string x = m.ToString();
return char.ToUpper(x[0]) + x.Substring(1, x.Length-1);
}
static void Main()
{ string text = Console.ReadLine().ToLower();
string cc = Regex.Replace(text, "([a-z]+)", new MatchEvaluator(Program.CapitalizePart));
cc = Regex.Replace(cc, "[^a-zA-Z]+", string.Empty);
Console.WriteLine(cc);
}
}
Комментарии
]]>blog comments powered by Disqus
]]>