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