2019. január 27., vasárnap

2019.01.25. Példa leíró nyelven megírt algoritmus programba való átírására

Az alábbi két, leíró nyelven készült algoritmus alá mellékeltem a Visual C# nyelven leírt megoldását.
(Nem kell megijedni, ezt a programot majd csak 11. osztályban kell tudni megírni.)

Nem kell megtanulni ebből semmit!

    class Program
    {
        static void KI(string mod)
        {
            Console.WriteLine(mod);
        }
        static void Main(string[] args)
        {
            int[] A = new int[10];
            int I;
            int Min;
            int Max;
            int P;

            Random rnd = new Random();
            I = 0;
            while (I < 10)
            {
                A[I] = rnd.Next(100);
                KI(Convert.ToString(A[I]));
                I++;
            }
            KI("");
            KI("Kérem a számot:");
            P = Convert.ToInt32(Console.ReadLine());
            Min = 100;
            Max = 0;
            I = 0;
            while (I < 10)
            {
                if (A[I] > P)
                {
                    if (A[I] < Min)
                        Min = A[I];
                }
                else
                {
                    if (A[I] > Max)
                        Max = A[I];
                }
                I++;
            }
            KI("P szám:");
            KI(Convert.ToString(P));
            KI("A legkisebb:");
            KI(Convert.ToString(Min));
            KI("A legnagyobb:");
            KI(Convert.ToString(Max));

            Console.ReadLine();
        }
    }



class Program
    {
        static double Negyzetgyok(double x)
        {
            double pontossag;
            double also;
            double felso;
            double proba;

            if (x > 0)
            {
                pontossag = 0.00000000000001;

                if (x < 1)
                    {
                        also = x;
                        felso = 1;
                    }
                else
                    {
                        also = 1;
                        felso = x;
                    }
                    while ((felso - also) > pontossag)
                    {
                        proba = (also + felso) / 2;
                        if (proba * proba > x)
                        {
                            felso = proba;
                        }
                        else
                        {
                            also = proba;
                        }
                    }
                    return ((also + felso) / 2);
            }
            else
            {
                if (x == 0)
                {
                    return 0;
                }
                else
                {
                    return -1;
                }
            }

        }
        static void Main(string[] args)
        {
            Console.WriteLine(Negyzetgyok(0));
            Console.WriteLine(Negyzetgyok(3.3));
            Console.WriteLine(Negyzetgyok(2));
            Console.WriteLine(Negyzetgyok(9));
            Console.WriteLine(Negyzetgyok(-9));
            Console.ReadLine();
        }
    }


Nincsenek megjegyzések:

Megjegyzés küldése