Potrzebuje rozwiązać to zadanie
a) Utwórz tablicę 5 punktów. Opis punktu składa się z jednoliterowej nazwy i współrzędnych. Znajdź punkt znajdujący się najbliżej i najdalej od początku układu współrzędnych. Wyświetl jego nazwę i współrzędne. Wykorzystaj funkcje z poprzednich zadań.
b) Wczytaj współrzędne punktów z pliku. Przykładowa postać plik z danymi:
a 1 1
b 2 3
c 3 5
d 4 5
e 2 6
c) Załóżmy, że w pierwszym wierszu pliku z danymi umieszczona jest liczba punktów. Zmodyfikuj program tak, aby uwzględnić zmienną liczbę wczytywanych danych. Zabezpiecz się przed przekroczeniem rozmiaru tablicy.
Fragment kodu napisanego przez mnie to
#include <iostream>
#include<cmath>
using namespace std;
const int maax=4;
struct Punkt
{
double x;
double y;
char znak;
} tab_wsp[10][10];//w tablicy mozna umiescic 100 punktow
void czytajP(Punkt *p);
void wypiszP(Punkt *p);
void obliczodleg(Punkt *p);
int main ()
{
Punkt pkt;
czytajP(&pkt);
wypiszP(&pkt);
obliczodleg(&pkt);
return 0;
}
void czytajP(Punkt *p)
{
for (int i=0; i<=maax; i++)
{
cout <<"Podaj wspolrzedne ";
cout <<endl;
cout << "x1=";
cin >> tab_wsp[i][i].x;
cout << "y1=";
cin >> tab_wsp[i][i].y;
cout << "Znak punktu :";
cin >> tab_wsp[i][i].znak;
}
}
void wypiszP(Punkt *p)
{
for (int i=0; i<=maax; i++)
{
cout << "Punkt "<< tab_wsp[i][i].znak <<": (" << tab_wsp[i][i].x << ","<< tab_wsp[i][i].y << ")" << endl;
}
}
void obliczodleg(Punkt *p)
{
double wynik[maax];
for (int i=0; i<=maax; i++)
{
wynik[i]= sqrt(tab_wsp[i][i].x*tab_wsp[i][i].x+tab_wsp[i][i].y*tab_wsp[i][i].y);
cout << "Odleglosc punktu " << tab_wsp[i][i].znak << " od poczatku ukladu wspolrzednych to: " << wynik[i];
cout << endl;
}