C# Console Bir sayının yaklaşık olarak karekökünü hesaplama

{{ page.title }}

Algoritma

  1. Başla
  2. x,a,b,i=2 değişkenlerini al
  3. x değerini gir
  4. Eğer ( i * i ) > a ise b = i * 1, a = ( i – 1) ( i – 1), değilse i++ 4’e git
  5. x = ( i – 1 ) + ( ( x – a ) / ( b – x ) )
  6. Yazdır x
  7. Bitir

Bu soru, ÖSYM’nin yaptığı ales sınavının birinde bir yaklaşım sorusu olarak karşımıza çıkmıştır.Bu yaklaşımı kendimize göre ayarlayıp çözümünü göreceğiz. Bu soruda girilen tam kare olmayan sayının yaklaşık olarak değerini hesaplayan algoritma söz konusudur. Burada amaç a < x < b mantığına göre değişir. x girilen sayımız, a da x ten küçük en yakın tam karesi olan sayı, b ise x’ten büyük en yakın tam karesi olan sayıdır.Bu değerleri algoritma bulacak ona göre formüle yerleştirip bize float yani ondalıklı sayı olarak sonuç verecektir.

Kod Yapısı

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace dmg
{
class Program
{
static void Main(string[] args)
{
double a , b , i = 1;
double x;
Console.Write("Sayıyı giriniz = ");
x = Convert.ToDouble( Console.ReadLine() );
dnz:
if( i * i > x )
{
b = i * i;
a = ( i - 1 ) * ( i - 1 );
}
else
{
i++;
goto dnz;
}
x = ( i - 1 ) + ( ( x - a ) / ( b - x ) );
Console.WriteLine("Sonuç = " + x);
Console.ReadKey();
}
}
}

BOT Benson Topluluk kurucusu ve bir yazılımcı.