Witam otóż mam problem z zadaniem 4.1 z matury. Należało w nim wypisać ile pkt należy do krawędzi okręgu, a ile jest w środku okręgu. Może ktoś wytłumaczyć mi dlaczego program nie bierze pod uwagę wszystkich punktów z pliku tekstowego, tylko ich część? Z góry dziękuje. Plik z punktami można pobrać z oficjalnej strony cke (https://www.cke.edu.pl/).
#include <iostream>
#include <string>
#include <sstream>
#include <cstdlib>
#include <fstream>
using namespace std;
string punkty[10000], pkt[10000];
int tablica[10000];
int n=0, ln=0, lnn=0, lo=0;
string tekst;
void rozdz(string tekst);
int main()
{
fstream plik;
plik.open("punkty.txt", ios::in);
if(plik.good()==false){cout<<"Plik nie zostal wczytany poprawnie "; exit(0);}
string linia;
int nrl=1, j=0;
while(getline(plik,linia))
{
switch(nrl)
{
case 1: rozdz(linia);break;
}
}
plik.close();
int l=0, m=1;
for(int i=0; i<=n;i++){
if((tablica[l]-200)*(tablica[l]-200)+((tablica[m]-200)*(tablica[m]-200))==200*200)
{
cout<<"Punkt o wspolzednych ("<<tablica[l]<<", "<<tablica[m]<<") lezy na brzegu tego okregu "<<endl; lo++;
}
else if((tablica[l]-200)*(tablica[l]-200)+(tablica[m]-200)*(tablica[m]-200)<200*200)
{
cout<<"Punkt o wspolzednych ("<<tablica[l]<<", "<<tablica[m]<<") nalezy do tego kola "<<endl; ln++;
}
else if((tablica[l]-200)*(tablica[l]-200)+(tablica[m]-200)*(tablica[m]-200)>200*200){
cout<<"Punkt o wspolzednych ("<<tablica[l]<<", "<<tablica[m]<<") nie nalezy do tego kola "<<endl; lnn++;
}
l+=2;
m+=2;
}
cout<<lo<<" - tyle jest na krawedzi"<<endl;
cout<<ln<<" - tyle nalezy"<<endl;
cout<<lnn<<" - tyle nie nazlezy"<<endl;
return 0;
}
void rozdz(string tekst)
{
istringstream iss(tekst);
string token;
while (getline(iss, token, ' '))
{
tablica[n]=atoi(token.c_str());
n++;
}
}