Привет, программисты !
Я вот написал программу для расчёта квадратного уравнения. Задумал её улучшить и сделал медленный вывод строки (как печатают на машинке). Когда я её писал на qbasic'е там была удобная комманда gosub, которая работала как goto, только позволяла вурнуться.
Подскажите, а как это можно сделать на с#.
Вот текст программы:
using System;
namespace MegaRulezzz
{
class Class1
{
static float v1, v2, v3;
static string s0;
static char i;
static int j;
static void Main(string[] args)
{
lminus5:
s0 = "Hellow, dummy user !\n";
i=(char)0;
goto l100;
lminus4:
s0= "I am a Great Programm !\n";
i=(char)1;
goto l100;
lminus3:
s0= "My Great Mission is to solve quadratic equation !\n";
i=(char)2;
goto l100;
lminus2:
s0= "New economy algorithm for memory using !!!\n";
i=(char)3;
goto l100;
lminus1:
l0:
s0= "Please, dummy user, insert a,b,c koefficients :\n";
i=(char)4;
goto l100;
l1:
v1 = (float)Convert.ToDouble(Console.ReadLine());
v2= (float)Convert.ToDouble(Console.ReadLine());
v3= (float)Convert.ToDouble(Console.ReadLine());
l3:
if (v2*v2 <4*v1*v3) goto l4;
goto l5;
l4:
s0= "You are realy dummy user, your equation havn't solve.\n";
i=( char)6;
goto l100;
l4a:
s0="Try again, (Y/N) ?\n";
i=(char)7;
goto l100;
l4b:
v1 = (float)Console.Read();
Console.ReadLine();
if(v1 == 121) goto l0;
if(v1 == 110) goto l9;
goto l4a;
l5:
v3 = v2*v2 -4*v1*v3;
v3 = (float)Math.Sqrt(v3)/ v1/2;
v2 /= -2*v1;
v1 = v2 + v3;
v2 = v1 - 2*v3;
l7:
s0= "x1 =" + v1.ToString()+ "\n";
i=(char)11;
goto l100;
l7a:
s0="x2 = " +v2.ToString() +"\n";
i=(char)10;
goto l100;
l8:
s0="Once again, (Y/N) ?\n";
i=(char)9;
goto l100;
l8a:
v1 = (float)Console.Read();
Console.ReadLine();
if(v1 == 121) goto l0;
if(v1 == 110) goto l9;
goto l8;
l9:
goto l1000;
l100:
j=-1;
l101:
if(j==s0.Length-1) goto l110;
Console.Write(s0[j=j+1].ToString());
System.Threading.Thread.Sleep(50);
goto l101;
l110:
if(i==0 ) goto lminus4;
if(i==1) goto lminus3;
if(i==2) goto lminus2;
if(i==3) goto lminus1;
if(i==4 ) goto l1;
if(i==6 ) goto l4a;
if(i==7) goto l4b;
if(i==11 ) goto l7a;
if(i==10) goto l8;
if(i==9) goto l8a;
if(i==12) goto l1001;
goto lminus5;
l1000:
s0 ="Goodbye, user.\n";
i=(char)12;
goto l100;
l1001:;
}
}
}
Спасибо.
Иван
30.06.05 22:54: Перенесено из '.NET'