By DePaul Dimadis
Choose your prefered Language: greek_flag uk_flag

Ένα σειριακό αρχείο με όνομα points_3D.txt (για τη λύση της άσκησης πρέπει να το δημιουργήσετε μέσω ενός text editor ή μέσω του MS Excel) περιέχει άγνωστο πλήθος γραμμών που αντιστοιχούν στις τρισδιάστατες καρτεσιανές συντεταγμένες σημείων ενός στερεού σώματος. Κάθε γραμμή του αρχείου περιέχει τρεις τιμές τύπου double που αντιστοιχούν στις τρεις καρτεσιανές συντεταγμένες ενός σημείου.
Να ορίσετε μια δομή με όνομα coord_3D για τη διαχείριση των συντεταγμένων των σημείων ενός στερεού σώματος. Τα μέλη της δομής είναι οι τρεις καρτεσιανές συντεταγμένες()x,y,z, όπως ορίστηκαν προηγουμένως. Όλες οι τιμές είναι τύπου double.
Να οριστεί ένας πίνακας δομών τύπου coord_3D, Ν θέσεων (Ν = γνωστό) .
Θεωρείστε ένα δεδομένο γνωστό σημείο Α στο χώρο με συντεταγμένες ()AΑA,,xyz (να οριστούν ως σταθερές τύπου double στην αρχή του προγράμματος).
Τα δεδομένα στον πίνακα δομών θα εισάγονται μέσω προσπέλασης του σειριακού αρχείου points_3D.txt εφόσον η απόσταση, έστω A,id του σημείου, έστω i, από το σημείο Α ικανοποιεί τη σχέση : 1.0<= da,i <=10.0

Αν το πλήθος των εγγραφών του αρχείου είναι μεγαλύτερο από την τιμή N τότε οι επιπλέον εγγραφές του αρχείου δεν θα συμπεριληφθούν στον πίνακα δομών.
Ζητούνται τα παρακάτω (συνάρτηση main( ) ):
1. να γίνει η εισαγωγή των δεδομένων από το αρχείο points_3D.txt στον πίνακα δομών σύμφωνα με τα ανωτέρω, ελέγχοντας την ύπαρξη του αρχείου (δείτε τον κώδικα στη συνέχεια). Αν το αρχείο περιλαμβάνει περισσότερα από Ν σημεία να βρείτε και να εμφανίσετε το πλήθος των γραμμών του αρχείου που ικανοποιούν τη συνθήκη A,1.010.0id≤≤ και δεν θα συμπεριληφθούν στον πίνακα δομών. Αν το αρχείο περιλαμβάνει λιγότερες από Ν γραμμές να βρείτε και να εμφανίσετε το πλήθος των γραμμών του αρχείου που θα περιέχει ο πίνακας δομών.
2. Στη συνέχεια να βρείτε και να εμφανίσετε :
a. Το σημείο (ή τα σημεία, εφόσον είναι περισσότερα από ένα) του πίνακα δομών με τη μεγαλύτερη απόσταση από το σημείο Α.
b. Το σημείο (ή τα σημεία, εφόσον είναι περισσότερα από ένα) του πίνακα δομών με τη μικρότερη απόσταση από το σημείο Α.
c. Τη μέση τιμή των αποστάσεων όλων των σημείων του πίνακα δομών από το σημείο Α.

FILE *fp;
errno_t err;

if (err=(fopen_s(&fp,filename,mode))!=0)
{
printf("error reading file....\n");
exit(1);
}
else // reading from file
{