Witam Was wszystkich.
Jestem pewien, że dla wielu z was napisanie takiego programu, to pestka, ale ja mam z tym troszeczkę problemów. Nauczycielka rzuciła początkowych programistów od razu na głęboką wodę i nie tłumacząc podstaw, przeszła od razu do zadań.
Prosiłbym o pomoc w napisaniu tego programu, a także o (w miarę możliwości) tłumaczenie dlaczego tak, a nie inaczej.
Treść zadania
Napisz program, który określi wzajemne położenie prostej
y = ax + b
i okręgu
x2 + y2 = r2,gdzie: a – współczynnik kierunku prostej;
b – współczynnik przesunięcia prostej;
r – promień okręgu.Parametry a, b i r należy wczytać z klawiatury.
Wynikiem wykonania programu powinien być jeden z trzech tekstów:
a) Prosta przecina okrąg w dwóch punktach,
b) Prosta jest styczna do okręgu,
c) Prosta nie ma punktów wspólnych z okręgiemoraz współrzędne punktów.
Wynik podać w następującym formacie:
Prosta przecina okrąg w dwóch punktach:
x1 = -----.-- y1 = -----.--
x2 = -----.-- y2 = -----.--Znak "_" oznacza miejsce na jedną cyfrę.
UWAGA: Dany układ dwóch równań należy przekształcić do postaci równania kwadratowego względem zmiennej x. Następnie należy rozwiązać równanie kwadratowe. Wzajemne położenie prostej i okręgu będzie zależało od wartości d (delta). W przypadku d = 0 jest jeden punkt wspólny (prosta jest styczną do okręgu); w przypadku d > 0 prosta przecina okrąg w dwóch punktach; w przypadku d < 0 prosta i okrąg nie mają punktów wspólnych.
Póki co, maznąłem coś takiego:
/*------------------------------------------------------------------------------------------
OPIS: Drugi program w języku programowania C++
ZADANIE: Napisz program, który określi wzajemne położenie prostej i okręgu.
AUTOR: Daniel Bojarski
DATA: 03.10.2013
------------------------------------------------------------------------------------------*/
/*Zbiór bibliotek*/
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <conio.h>
/*---------------*/
using namespace std;
/*<Treść programu>*/
int main()
{
int a, b, r, x, y, A, B, C, d;
cout << "Podaj wartosc (a)";
cin >> a;
cout << "Podaj wartosc (b)";
cin >> b;
cout << "Podaj wartosc (r)";
cin >> r;
0 = x^2 + (a*x + b)^2 - r^2; - tutaj jest błąd, ale nie wiem jak z tym iść dalej
d = B^2 - 4*A*C;
if (d==0) {
cout << "Prosta jest styczna do okręgu";
} if (d<0) {
cout << "Prosta nie ma punktow wspolnych z okregiem";
} if (d>0) {
cout << "Prosta przecina okrag w dwoch punktach";
}
_getch();
return 0;
}
/*</Treść programu>*/
Nie wiem zbytnio jak wyciągnąć te zmienne A, B, C.