September 2018 1 29 Report

proszę o pomoc napisałem program w c++ ale wyznacza on tylko ilość punktów przecięcia, ale nie wyświetla współrzędnych tych punktów.

napisać funkcję która określi liczbę punktów przecięcia paraboli y=ax^2+bx+c z prostą y=mx+k i wyznaczy ich współrzędne, a następnie przekaże te informacje do programu głównego. zastosować wskaźniki.

#include <iostream>
#include <cmath>
using namespace std;

void licz(float a, float b, float c, float m, float k, float *liczba_p, float *x1, float *x2, float *y1, float *y2)
{
float delta, licz_p, licz_x1, licz_x2, licz_y1, licz_y2;
delta=(b-m)*(b-m)-4*a*(c-k);

if ((a==0)&&(b==m)&&(c==k)) licz_p=-1;
else if ((a==0)&&(b==m)&&(c!=k)) licz_p=0;
else if ((a==0)&&(b!=m)) licz_p=1;
else if ((a!=0)&&(delta>0)) licz_p=2;
else if((a!=0)&&(delta==0)) licz_p=1;
else licz_p=0;

if ((a=0)&&(licz_p=1))
{
licz_x1=(k-c)/(b-m);
licz_y1=m*licz_x1+k;
}
if ((a!=0)&&(licz_p=2))
{
licz_x1=-(b-m)-sqrt(delta)/2*a;
licz_x2=-(b-m)+sqrt(delta)/2*a;
licz_y1=m*licz_x1+k;
licz_y2=m*licz_x2+k;
}
if ((a!=0)&&(licz_p=1))
{
licz_x1=-(b-m)/2*a;
licz_y1=m*licz_x1+k;
}

*liczba_p=licz_p;
*x1=licz_x1;
*x2=licz_x2;
*y1=licz_y1;
*y2=licz_y2;


cout<<"liczba punktow= "<<*liczba_p<<endl;


}

int main()
{
float l1,p,a,b,c,m,k,liczb_p,x1,x2,y1,y2;

cout<<"Podaj a ";
cin>>a;
cout<<"Podaj b ";
cin>>b;
cout<<"Podaj c ";
cin>>c;
cout<<"Podaj m ";
cin>>m;
cout<<"Podaj k ";
cin>>k;
licz(a, b, c, m, k, &liczb_p, &x1, &x2, &y1, &y2);
p=liczb_p;
if(p=0) {cout<<"Brak rozwiazan"<<endl;}
if(p=1)
{
cout<<"Jedno rozwiazanie"<<endl;
cout<<"x= "<<x1<<" , y= "<<y1<<endl;
}
if(p=2)
{
cout<<"Dwa rozwiazania"<<endl;
cout<<"x1= "<<x1<<" , y1= "<<y1<<endl;
cout<<"x2= "<<x2<<" , y2= "<<y2<<endl;
}
if(p=-1) {cout<<"nieskonczenie wiele rozwiazan"<<endl;}

system("PAUSE");
return 0;
}


Recommend Questions



Life Enjoy

" Life is not a problem to be solved but a reality to be experienced! "

Get in touch

Social

© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.