ищу GOSUB
От: BCoder Россия http://bcoder.narod.ru
Дата: 30.06.05 16:55
Оценка: 33 (11) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :)
Привет, программисты !

Я вот написал программу для расчёта квадратного уравнения. Задумал её улучшить и сделал медленный вывод строки (как печатают на машинке). Когда я её писал на 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'
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.