Laskee piin likiarvon jokseenkin tarkasti ympyrän sädettä käyttäen
'PIIN LIKIARVON LASKEMINEN
'Koodi laskee ympyrän säteestä neljänneksen piirtämällä
'pieniä janoja ja laskemalla ne yhteen
'tulos kerrotaan neljällä ja sijoitetaan ympyrän säteen kaavaan
'tämä on ymmärrettävä tapa laskea piin likiarvo
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim x As Double 'x koordinaatti
Dim y As Double 'y koordinaatti
Dim xb As Double 'aikaisempi x koordinaatti
Dim yb As Double 'aikaisempi y koordinaatti
Dim pii As Double 'ratkaisu
Dim n As Double 'kuinka monta viivaa lasketaan ja ympyrän säde
Dim viivanpituudet As Double 'ympyrän säteen neljännes
n = 1000000
xb = 0 'x alkaa nollasta
yb = n 'y ympyrän huipulta eli sama kuin säde
For x = 0 To n '
y = (n ^ 2 - x ^ 2) ^ (1 / 2) 'y laskettuna pythagoraalla
viivanpituudet = viivanpituudet + (((x - xb) ^ 2 + (yb - y) ^ 2) ^ (1 / 2))
'viivan pituus kasvaa joka kerta yhdellä viivalla
'viiva tulee pythagoraan lauseesta a^2+b^2=viiva^2
'a ja b ovat x - xb yb - y eli uusi - vanha ja vanha - uusi
xb = x 'vanhat arvot pitää olla aina jälkeen y ja tulos muuttujien
yb = y
Next x
pii = viivanpituudet / n * 2 '2 * pii * r = 4* viivanpituus
'komennolla math.PI saa vertailu pi:n
TextBox4.Text = pii
TextBox1.Text = Math.PI
End SubMinulla ei ole Visual Basiccia, mutta haluaisin tietää, kuinka monta desimaalia tuo laskee oikein.
9 desimaalia Jos laittaa n arvoksi suuremman luvun saa vielä pari lisää. Kestää vain vähän kauemmin laskea.
ohjelman antama tulos: 3,14159265329581
oikea: 3,14159265358979
miten homma tehdään c:llä?
Joo, kyllä toimi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.