środa, 8 lutego 2017

Algorytm sprawdzający czy punkt P leży na prostej


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.

Lista kroków

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:


=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.