Du får - ganske rigtigt 0, 1 eller 2 mulige løsninger.
0 - hvis cirlen ikke skærer 1 - hvis linien tangerer cirklen 2 - hvis linien skærer cirklen
som du har stillet opgaven kan den ikke løses. Der er to muligheder:
1. Du laver to funktioner som du kalder med samme parametre. Du kontrollerer om den første fejler (så behøves du ikke kalde den anden). Hvis ikke, sammen ligner du resultaterne for at se, som de er ens (1 løsning) eller forskellige (2 løsninger).
Jeg har vist koden her i VBA - du kan nok selv oversætte:
Option Explicit
Function circle_y1(a, b, r, x) As Single Dim c, d As Single c = x ^ 2 + a ^ 2 - 2 * x * a + b ^ 2 - r ^ 2 d = (2 * b) ^ 2 - 4 * 1 * c
If d < 0 Then Err.Raise 0
If d > 0 Then circle_y = (2 * b + Sqr(d)) / (2 * 1)
End Function
Function circle_y2(a, b, r, x) As Single Dim c, d As Single c = x ^ 2 + a ^ 2 - 2 * x * a + b ^ 2 - r ^ 2 d = (2 * b) ^ 2 - 4 * 1 * c
If d < 0 Then Err.Raise 0
If d > 0 Then circle_y = (2 * b - Sqr(d)) / (2 * 1)
tja, det er det han gør, men jeg skal ikke bruge det aligevel, for den giver aldrig en skid de rigtige resultater.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.