Idea algorytmu sprawdzającego czy punkt P leży na prostej
Ideą algorytmu jest sprawdzenie czy wprowadzony przez nas punkt leży na danej prostej.
Na płaszczyźnie współrzędnych prostą definiujemy w postaci ogólnej lub kierunkowej.
Postać ogólna równania prostej jest następująca:
Ax+By+C = 0
natomiast postać kierunkowa to:
y = kx+b
Aby sprawdzić czy punkt należy do danej prostej należy sprawdzić jego odległość od prostej, którą oznaczamy literą d. Jeśli d=0 to oznacza, że podany przez nas punkt znajduje się na prostej.
Wartość d obliczamy wzorem
ZADANIE
Algorytm sprawdzi czy punkt P = (x0,y0) leży na prostej o równaniu ogólnym 3x+4y-4 = 0.
Krok 0. Wczytaj wartości danych x0 i y0.
Krok 1. Wykonaj działanie, które obliczy odległość od prostej według powyższego wzoru
d=abs(3*x0+4*y0-4)/sqrt(pow(3.0,2)+pow(4.0,2))
Krok 2. Jeśli d=0 to wypisz: "punkt należy do prostej".
Krok 3. Jeśli d≠0 to wypisz: "punkt nie należy do prostej".
Krok 4. Zakończ algorytm.
Schemat blokowy
Program w C++
//algorytm sprawdzający, czy punkt P leży na prostej 3x+4y–4 = 0
#include <iostream>
#include <cmath>
using namespace std;
bool szukaj (double x0, double y0) //funkcja szukaj
{
double d=abs(3*x0+4*y0-4)/sqrt(pow(3.0,2)+pow(4.0,2)); // oblicza odległość punktu P od prostej
if (d==0) return true;
else return false;
}
int main()
{
double x0, y0;
cout<<"podaj wspolrzedne punktu: ";
cin>>x0>>y0;
if (szukaj(x0,y0)) // sprawdzenie warunku, czy odległość punktu P od prostej równa się 0
cout<<"punkt P=("<<x0<<";"<<y0<<") lezy na prostej 3x+4y-4=0"<<endl;
else
cout<<"punkt P=("<<x0<<";"<<y0<<") nie lezy na prostej 3x+4y-4=0"<<endl;
return 0;
}
Rozwiązanie w Excel
Aby sprawdzić czy punkt P leży na prostej 3x+4y = 0 należy zaprojektować tabelę:
1. Do komórki B1 wpisujemy tytuł algorytmu
2. W komórkach B4 i B5 wprowadzamy wartość punktu x0 i y0
3. W komórce B8 formułę wykorzystująca funkcję logiczną „JEŻELI” w następujący sposób:
Moduł.liczby - zwraca wartość bezwzględną liczby
Pierwiastek - zawraca pierwiastek kwadratowy liczby
//algorytm sprawdzający, czy punkt P leży na prostej 3x+4y–4 = 0
#include <iostream>
#include <cmath>
using namespace std;
bool szukaj (double x0, double y0) //funkcja szukaj
{
double d=abs(3*x0+4*y0-4)/sqrt(pow(3.0,2)+pow(4.0,2)); // oblicza odległość punktu P od prostej
if (d==0) return true;
else return false;
}
int main()
{
double x0, y0;
cout<<"podaj wspolrzedne punktu: ";
cin>>x0>>y0;
if (szukaj(x0,y0)) // sprawdzenie warunku, czy odległość punktu P od prostej równa się 0
cout<<"punkt P=("<<x0<<";"<<y0<<") lezy na prostej 3x+4y-4=0"<<endl;
else
cout<<"punkt P=("<<x0<<";"<<y0<<") nie lezy na prostej 3x+4y-4=0"<<endl;
return 0;
}
Rozwiązanie w Excel
Aby sprawdzić czy punkt P leży na prostej 3x+4y = 0 należy zaprojektować tabelę:
1. Do komórki B1 wpisujemy tytuł algorytmu
2. W komórkach B4 i B5 wprowadzamy wartość punktu x0 i y0
3. W komórce B8 formułę wykorzystująca funkcję logiczną „JEŻELI” w następujący sposób:
=JEŻELI(MODUŁ.LICZBY(3*B4+4*B5-4)/PIERWIASTEK(25)=0;
"punkt leży na prostej";"punkt nie leży na prostej")
Moduł.liczby - zwraca wartość bezwzględną liczby
Pierwiastek - zawraca pierwiastek kwadratowy liczby
Opracowała: Sylwia B.