By DePaul Dimadis
Choose your prefered Language: greek_flag uk_flag

Μια εργαλειομηχανή λειτουργεί με 2 περιστρεφόμενους άξονες κυκλικής διατομής με γνωστές διαμέτρους 1,2DD αντίστοιχα. Λόγω της λειτουργίας των αξόνων προκύπτουν αλλοιώσεις της γεωμετρίας τους σε διάφορα σημεία, με αποτέλεσμα οι τομές τους σε διάφορα σημεία κατά το μήκος τους να μην είναι πλήρως κυκλικές.
Ένα σειριακό αρχείο με όνομα crs.txt περιέχει σε κάθε γραμμή του :
α) 2 αριθμούς τύπου double που αντιστοιχούν στο μήκος, σε mm, δύο κάθετων μεταξύ τους διαμέτρων μιας τομής κάθετης στον άξονα περιστροφής κάθε άξονα.
β) Έναν αριθμό τύπου double που αντιστοιχεί στην απόσταση της τομής, σε mm, από την αρχή του άξονα
γ) Έναν ακέραιο θετικό αριθμό, 1 ή 2 , που δηλώνει τον άξονα περιστροφής
παραδειγμα για 1110,2180DD==
180.81 179.93 0.22 2
109.55 109.57 0.15 1
110.22 110.44 0.19 1

Να ορίσετε μια δομή με όνομα crd για τη διαχείριση των διαστάσεων των διαμέτρων των τομών αυτών. Τα private μέλη-δεδομένα της δομής είναι οι τέσσερεις προαναφερόμενοι αριθμοί.
Να οριστεί ένας πίνακας δομών τύπου crd, Ν θέσεων (Ν = γνωστό) .
Τα δεδομένα στον πίνακα δομών θα εισάγονται μέσω προσπέλασης του σειριακού αρχείου crs.txt εφόσον η απόλυτη τιμή της διαφοράς των δύο διαμέτρων κάθε γραμμής του αρχείου είναι μεγαλύτερη από το 2% της διαμέτρου του αντίστοιχου άξονα (1D ή 2D ) .
Να θεωρήσετε ως δεδομένο ότι η τιμή του N υπερκαλύπτει το πλήθος των εγγραφών του αρχείου.
Ζητούνται τα παρακάτω (συνάρτηση main( ) ):
1. να γίνει η εισαγωγή των δεδομένων από το αρχείο crs.txt στον πίνακα δομών σύμφωνα με τα ανωτέρω, ελέγχοντας την ύπαρξη του αρχείου (δείτε τον κώδικα στη συνέχεια) και να βρείτε και να εμφανίσετε το πλήθος των γραμμών του αρχείου που θα περιέχει ο πίνακας δομών.
2. Χρησιμοποιώντας όλα τα στοιχεία του πίνακα δομών να βρείτε και να εμφανίσετε :
a. το πλήθος των τομών κάθε άξονα
b. τη μέση τιμή των αποκλίσεων κάθε μιας από τις δύο μετρούμενες διαμέτρους κάθε άξονα από την αρχική διάμετρο κάθε άξονα, χωρίς να συμπεριληφθούν οι μηδενικές αποκλίσεις, με ακρίβεια 10-4 .
(ΥΠΟΔΕΙΞΗ : πρέπει να προσδιορίσετε 4 τιμές , 2 για κάθε άξονα)
FILE *fp;
errno_t err;

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