Τρίτος και τελευταίος κώδικας πάνω στο Conway's Game Of Life
Δημιουργία της συνάρτησης bool boardInit(int rows, int cols, bool next[rows][cols])
η οποία δίνει τιμές στα κελιά του grid βάσει του πίνακα next
που πρέπει να έχει τις ίδιες διαστάσεις με το grid. Ουσιαστικά αντιγράφει τον πίνακα next
στο grid.
Δημιουργία της συνάρτησης bool calcNextGen(int rows, int cols, bool next[rows][cols])
η οποία υπολογίζει βάσει του grid, την επόμενη γενιά του παιχνιδιού και την αποθηκεύει (αυτό μας βοηθάει πολύ στην πραγματικότητα) στον πίνακα next που πρέπει να έχει τις ίδιες διαστάσεις με το grid.
Έλεγχοι ως προς την επιβεβαίωση των τιμών των παραμέτρων των συναρτήσεων.
Μία ή περισσότερες κλήσεις της boardInit
με μηδενικό μήκος ή πλάτος (ή και τα δύο) δεν επέστρεψαν ψευδές όπως ζητούνταν στην εκφώνηση.
Μία ή περισσότερες κλήσεις της boardInit
με αρνητικό μήκος ή πλάτος (ή και τα δύο) δεν επέστρεψαν ψευδές όπως ζητούνταν στην εκφώνηση.
Μία ή περισσότερες κλήσεις της calcNextGen
με μηδενικό μήκος ή πλάτος (ή και τα δύο) δεν επέστρεψαν ψευδές όπως ζητούνταν στην εκφώνηση.
Μία ή περισσότερες κλήσεις της calcNextGen
με αρνητικό μήκος ή πλάτος (ή και τα δύο) δεν επέστρεψαν ψευδές όπως ζητούνταν στην εκφώνηση.
Η κλήση της boardInit
για αποδεκτές τιμές μήκους και πλάτους είτε δεν επέστρεψε αληθές όπως ζητούνταν στην εκφώνηση, είτε δεν έδωσε σωστές διαστάσεις στο grid.
Η κλήση της calcNextGen
με διαστάσεις πίνακα διαφορετικές από του grid δεν επέστρεψε ψευδές όπως ζητούνταν στην εκφώνηση.
Προσοχή! Για να είναι έγκυρο αυτό το σφάλμα πρέπει να μην έχει παρουσιαστεί νωρίτερα το σφάλμα A-1-1-e
. Εάν έχει παρουσιαστεί το A-1-1-e
θα πρέπει πρώτα να το λύσετε και μετά να λάβετε υπόψη σας αυτό τον έλεγχο (εάν ακόμα θα εμφανίζετα ως εσφαλμένος).
Έλεγχος λειτουργίας της συνάρτησης boardInit
.
Η συνάρτηση επιστρέφει ψευδές ενώ δεν θα έπρεπε για δεδομένο board. Η δοκιμή αυτή δεν περιέχει έλεγχο των περιεχομένων του grid.
Η συνάρτηση ενώ επιστρέφει αληθές όπως θα έπρεπε για δεδομένο board, το περιεχόμενο του grid δεν είναι το αναμενόμενο.
Σύνθετοι έλεγχοι των συναρτήσεων boardInit
και calcNextGen
. Αν και ο σκοπός είναι να ελεγχθεί η calcNextGen
, χρειάζεται και η boardInit
ώστε να δημιουργηθούν τα grids.
Προσοχή! Εάν η boardInit
δεν έχει περάσει όλες τις δοκιμές της ενότητας A.1.2 , μπορεί να είναι αυτή η αιτία αποτυχίας των δοκιμών Α.1.3.
Η συνάρτηση boardInit
επιστρέφει ψευδές ενώ δεν θα έπρεπε για δεδομένο board. Η δοκιμή αυτή δεν περιέχει έλεγχο των περιεχομένων του grid.
Η συνάρτηση calcNextGen
επιστρέφει ψευδές ενώ δεν θα έπρεπε για δεδομένο board. Η δοκιμή αυτή δεν περιέχει έλεγχο του πίνακα με το αποτέλεσμα, αλλά μόνο την τιμή που επιστρέφει η calcNextGen
.
Η συνάρτηση boardInit
επιστρέφει ψευδές ενώ δεν θα έπρεπε για δεδομένο board. Η δοκιμή αυτή δεν περιέχει έλεγχο των περιεχομένων του grid.
Η συνάρτηση calcNextGen
ενώ ορθώς επιστρέφει αληθές, όμως δεν υπολογίζει σωστά την επόμενη γενιά βάσει του grid. Αυτό, ανάλογα την συγκεκριμένη δοκιμή, μπορεί να αφορά την 1η ή μεταγενέστερη γενιά, συμβουλευτείτε το μήνυμα που εμφανίζεται μέσα στο CLion.
Η συνάρτηση calcNextGen
ενώ ορθώς επιστρέφει αληθές, όμως δεν υπολογίζει σωστά την επόμενη γενιά βάσει του grid. Ενώ το νέο board θα έπρεπε να είναι διαφορετικό, αυτό μένει ίδιο με πριν!
Πρώτη εργασία πάνω στην άλγεβρα πινάκων. Τα μηνύματα στο CLion ακολουθούνται από τον πίνακα που δημιουργεί την αποτυχία της δοκιμής.
Δημιουργία της συνάρτησης bool isLTriangular(int R, int C, double A[R][C])
η οποία απατά στο ερώτημα αν ο πίνακας A
είναι κάτω τριγωνικός.
Η συνάρτηση δεν επιστρέφει ψευδές όπως θα έπρεπε για μηδενικές γραμμές ή/και στήλες του πίνακα.
Η συνάρτηση δεν επιστρέφει ψευδές όπως θα έπρεπε για αρνητικές γραμμές ή/και στήλες του πίνακα.
Η συνάρτηση δεν επιστρέφει ψευδές όπως θα έπρεπε για μη κάτω τριγωνικό πίνακα μικρών διαστάσεων (3×3).
Η συνάρτηση δεν επιστρέφει αληθές όπως θα έπρεπε για όντως κάτω τριγωνικό πίνακα μικρών διαστάσεων (3×3).
Η συνάρτηση δεν επιστρέφει ψευδές όπως θα έπρεπε για μη τετράγωνικό πίνακα.
Η συνάρτηση δεν ανιχνεύει σωστά την κάτω-τριγωνικότητα του πίνακα για κάπως μεγαλύτερο πίνακα (5×5).
Η συνάρτηση δεν ανιχνεύει σωστά την κάτω-τριγωνικότητα του πίνακα για κάπως μεγαλύτερο πίνακα (12×12).
Δημιουργία της συνάρτησης bool add(int R, int C, double A[R][C], double B[R][C] , double sum[R][C])
η οποία αθροίζει τους πίνακες Α
και Β
στον πίνακα sum
.
Η συνάρτηση δεν επιστρέφει ψευδές όπως θα έπρεπε για μηδενικές γραμμές ή/και στήλες του πίνακα.
Η συνάρτηση δεν επιστρέφει ψευδές όπως θα έπρεπε για αρνητικές γραμμές ή/και στήλες του πίνακα.
Η συνάρτηση δεν επιστρέφει αληθές ή δεν παράγει το σωστό (“διπλάσιο”) άθροισμα όπως θα έπρεπε για δεδομένο τετράγωνο πίνακα, με τον εαυτό του.
Η συνάρτηση δεν επιστρέφει αληθές ή δεν παράγει το σωστό (μηδενικό) άθροισμα όπως θα έπρεπε για δεδομένο τετράγωνο πίνακα, με τον αντίθετό του.
Η συνάρτηση δεν επιστρέφει αληθές ή δεν παράγει το σωστό άθροισμα όπως θα έπρεπε για δεδομένο τετράγωνο πίνακα, με έναν ίδιας διάστασης που όλα τα στοιχεία του είναι ίσα με το 1
.
Η συνάρτηση δεν επιστρέφει αληθές ή δεν παράγει το σωστό άθροισμα όπως θα έπρεπε για δεδομένο μη τετράγωνο πίνακα, με έναν ίδιας διάστασης που όλα τα στοιχεία του είναι ίσα με το 1
.
Δημιουργία της συνάρτησης bool mul(int M, int N, int K, double A[M][N], double B[N][K] , double P[Μ][Κ])
η οποία πολλαπλασιάζει τους πίνακες Α
και Β
στον πίνακα P
.
Η συνάρτηση δεν επιστρέφει ψευδές όπως θα έπρεπε για μηδενικές γραμμές ή/και στήλες κάποιου πίνακα.
Η συνάρτηση δεν επιστρέφει ψευδές όπως θα έπρεπε για αρνητικές γραμμές ή/και στήλες κάποιου πίνακα.
Η συνάρτηση δεν επιστρέφει ψευδές όπως θα έπρεπε για αρνητικές δύο ή/και των τριών διαστάσεων των πινάκων σε γραμμές ή/και στήλες κάποιου πίνακα.
Η συνάρτηση δεν επιστρέφει αληθές ή το σωστό αποτέλεσμα όπως θα έπρεπε για πολλαπλασιασμό τετραγωνικού πίνακα με διαγώνιο.
Η συνάρτηση δεν επιστρέφει αληθές ή το σωστό αποτέλεσμα όπως θα έπρεπε για πολλαπλασιασμό τετραγωνικού πίνακα με τον μοναδιαίο.
Η συνάρτηση δεν επιστρέφει αληθές ή το σωστό αποτέλεσμα όπως θα έπρεπε για πολλαπλασιασμό πίνακα γραμμή με τετραγωνικό πίνακα.
Η συνάρτηση δεν επιστρέφει αληθές ή το σωστό αποτέλεσμα όπως θα έπρεπε για πολλαπλασιασμό μεταξύ δύο τετραγωνικών πινάκων.
Αυτή η ενότητα ελέγχων περιέχει έναν συνδυαστικό έλεγχο των συναρτήσεων.
Οι συναρτήσεις add
και mul
δεν επιστρέφουν συνδυαστικό το αναμενόμενο αποτέλεσμα όπως θα έπρεπε για για την επιβεβαίωση της παράστασης πινάκων Α*Β - Β*Α ≠ 0
.