THMMY.gr

Μαθήματα Βασικού Κύκλου => Δομημένος Προγραμματισμός => Topic started by: Scopeng on May 11, 2006, 12:17:27 pm



Title: Εργασία E 2006
Post by: Scopeng on May 11, 2006, 12:17:27 pm

Εργασία E (Hμ/νία λήξης δηλώσεων: 18/05/2006)

        Για να επιλυθεί μια διαφορική εξίσωση μερικών παραγώγων που εκφράζει τη διάδοση ενός ηλεκτρομαγνητικού πεδίου πρέπει να λυθεί ένα γραμμικό σύστημα εξισώσεων με Ν αγνώστους. Προκειμένου να ελεγχθεί η σύγκληση μιας επαναληπτικής μεθόδου που επιλύει το σύστημα πρέπει να διαπιστωθεί αν ο πίνακας των συντελεστών του συστήματος είναι διαγωνίως υπερτερών. Για το σκοπό αυτό να γραφεί το πρόγραμμα στο οποίο ορίζεται η συνάρτηση void d_matrix(…) η οποία επεξεργάζεται έναν πίνακα τύπου NxN και υπολογίζει:

α) Την ελάχιστη από τις διαφορές Di – Gi, για i=0,…,N-1, όπου Di η απόλυτη τιμή του στοιχείου της κύριας διαγωνίου που βρίσκεται στην i γραμμή και Gi το άθροισμα των απολύτων τιμών υπόλοιπων στοιχείων της ίδιας γραμμής.

β) Την ελάχιστη από τις διαφορές Dj – Sj, για j=0,…,N-1, όπου Dj η απόλυτη τιμή του στοιχείου της κύριας διαγωνίου που βρίσκεται στην j στήλη και Sj το άθροισμα των απολύτων τιμών υπόλοιπων στοιχείων της ίδιας στήλης.

        Η συνάρτηση main του προγράμματος να διαβάζει τη διάσταση N του πίνακα να δεσμεύει δυναμικά μνήμη για ένα πίνακα τύπου NxN με στοιχεία τύπου float και αφού διαβάσει τις τιμές των στοιχείων του πίνακα να καλεί τη συνάρτηση d_matrix και να εξετάζει αν κάποια από τις διαφορές που αυτή υπολόγισε έχει θετικό πρόσημο. Αν ναι να τυπώνει το μήνυμα «Ο πίνακας είναι διαγωνίως υπερτερών» Σε διαφορετική περίπτωση να τυπώνει ανάλογο μήνυμα.

Σημείωση: Να μη χρησιμοποιηθούν πουθενά γενικές μεταβλητές. Η συνάρτηση d_matrix δεν διαβάζει δεδομένα και δεν εκτυπώνει αποτελέσματα.