User Tools

Site Tools


qna:hw:lsn65

Α Μάθημα Ανακεφαλαίωσης

Εργαστηριακή διάλεξη

Εργασία A.1

Τρίτος και τελευταίος κώδικας πάνω στο 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.

Έλεγχοι A.1.1

Έλεγχοι ως προς την επιβεβαίωση των τιμών των παραμέτρων των συναρτήσεων.

Έλεγχοι

Test A-1-1-a

Μία ή περισσότερες κλήσεις της boardInit με μηδενικό μήκος ή πλάτος (ή και τα δύο) δεν επέστρεψαν ψευδές όπως ζητούνταν στην εκφώνηση.

Test A-1-1-b

Μία ή περισσότερες κλήσεις της boardInit με αρνητικό μήκος ή πλάτος (ή και τα δύο) δεν επέστρεψαν ψευδές όπως ζητούνταν στην εκφώνηση.

Test A-1-1-c

Μία ή περισσότερες κλήσεις της calcNextGen με μηδενικό μήκος ή πλάτος (ή και τα δύο) δεν επέστρεψαν ψευδές όπως ζητούνταν στην εκφώνηση.

Test A-1-1-d

Μία ή περισσότερες κλήσεις της calcNextGen με αρνητικό μήκος ή πλάτος (ή και τα δύο) δεν επέστρεψαν ψευδές όπως ζητούνταν στην εκφώνηση.

Test A-1-1-e

Η κλήση της boardInit για αποδεκτές τιμές μήκους και πλάτους είτε δεν επέστρεψε αληθές όπως ζητούνταν στην εκφώνηση, είτε δεν έδωσε σωστές διαστάσεις στο grid.

Test A-1-1-f

Η κλήση της calcNextGen με διαστάσεις πίνακα διαφορετικές από του grid δεν επέστρεψε ψευδές όπως ζητούνταν στην εκφώνηση.
Προσοχή! Για να είναι έγκυρο αυτό το σφάλμα πρέπει να μην έχει παρουσιαστεί νωρίτερα το σφάλμα A-1-1-e. Εάν έχει παρουσιαστεί το A-1-1-e θα πρέπει πρώτα να το λύσετε και μετά να λάβετε υπόψη σας αυτό τον έλεγχο (εάν ακόμα θα εμφανίζετα ως εσφαλμένος).

Ερώτημα A.1.2

Έλεγχος λειτουργίας της συνάρτησης boardInit.

Έλεγχοι

Test A-1-2-a

Η συνάρτηση επιστρέφει ψευδές ενώ δεν θα έπρεπε για δεδομένο board. Η δοκιμή αυτή δεν περιέχει έλεγχο των περιεχομένων του grid.

Test A-1-2-b

Η συνάρτηση ενώ επιστρέφει αληθές όπως θα έπρεπε για δεδομένο board, το περιεχόμενο του grid δεν είναι το αναμενόμενο.

Ερώτημα A.1.3

Σύνθετοι έλεγχοι των συναρτήσεων boardInit και calcNextGen. Αν και ο σκοπός είναι να ελεγχθεί η calcNextGen, χρειάζεται και η boardInit ώστε να δημιουργηθούν τα grids.
Προσοχή! Εάν η boardInit δεν έχει περάσει όλες τις δοκιμές της ενότητας A.1.2 , μπορεί να είναι αυτή η αιτία αποτυχίας των δοκιμών Α.1.3.

Έλεγχοι

Test A-1-3-a

Η συνάρτηση boardInit επιστρέφει ψευδές ενώ δεν θα έπρεπε για δεδομένο board. Η δοκιμή αυτή δεν περιέχει έλεγχο των περιεχομένων του grid.

Test A-1-3-b

Η συνάρτηση calcNextGen επιστρέφει ψευδές ενώ δεν θα έπρεπε για δεδομένο board. Η δοκιμή αυτή δεν περιέχει έλεγχο του πίνακα με το αποτέλεσμα, αλλά μόνο την τιμή που επιστρέφει η calcNextGen.

Test A-1-3-c

Η συνάρτηση boardInit επιστρέφει ψευδές ενώ δεν θα έπρεπε για δεδομένο board. Η δοκιμή αυτή δεν περιέχει έλεγχο των περιεχομένων του grid.

Test A-1-3-d

Η συνάρτηση calcNextGen ενώ ορθώς επιστρέφει αληθές, όμως δεν υπολογίζει σωστά την επόμενη γενιά βάσει του grid. Αυτό, ανάλογα την συγκεκριμένη δοκιμή, μπορεί να αφορά την 1η ή μεταγενέστερη γενιά, συμβουλευτείτε το μήνυμα που εμφανίζεται μέσα στο CLion.

Test A-1-3-e

Η συνάρτηση calcNextGen ενώ ορθώς επιστρέφει αληθές, όμως δεν υπολογίζει σωστά την επόμενη γενιά βάσει του grid. Ενώ το νέο board θα έπρεπε να είναι διαφορετικό, αυτό μένει ίδιο με πριν!

Εργασία A.2

Πρώτη εργασία πάνω στην άλγεβρα πινάκων. Τα μηνύματα στο CLion ακολουθούνται από τον πίνακα που δημιουργεί την αποτυχία της δοκιμής.

Ερώτημα A.2.1

Δημιουργία της συνάρτησης bool isLTriangular(int R, int C, double A[R][C]) η οποία απατά στο ερώτημα αν ο πίνακας A είναι κάτω τριγωνικός.

Έλεγχοι

Test A-2-1-a

Η συνάρτηση δεν επιστρέφει ψευδές όπως θα έπρεπε για μηδενικές γραμμές ή/και στήλες του πίνακα.

Test A-2-1-b

Η συνάρτηση δεν επιστρέφει ψευδές όπως θα έπρεπε για αρνητικές γραμμές ή/και στήλες του πίνακα.

Test A-2-1-c

Η συνάρτηση δεν επιστρέφει ψευδές όπως θα έπρεπε για μη κάτω τριγωνικό πίνακα μικρών διαστάσεων (3×3).

Test A-2-1-d

Η συνάρτηση δεν επιστρέφει αληθές όπως θα έπρεπε για όντως κάτω τριγωνικό πίνακα μικρών διαστάσεων (3×3).

Test A-2-1-e

Η συνάρτηση δεν επιστρέφει ψευδές όπως θα έπρεπε για μη τετράγωνικό πίνακα.

Test A-2-1-f

Η συνάρτηση δεν ανιχνεύει σωστά την κάτω-τριγωνικότητα του πίνακα για κάπως μεγαλύτερο πίνακα (5×5).

Test A-2-1-g

Η συνάρτηση δεν ανιχνεύει σωστά την κάτω-τριγωνικότητα του πίνακα για κάπως μεγαλύτερο πίνακα (12×12).

Ερώτημα A.2.2

Δημιουργία της συνάρτησης bool add(int R, int C, double A[R][C], double B[R][C] , double sum[R][C]) η οποία αθροίζει τους πίνακες Α και Β στον πίνακα sum.

Έλεγχοι

Test A-2-2-a

Η συνάρτηση δεν επιστρέφει ψευδές όπως θα έπρεπε για μηδενικές γραμμές ή/και στήλες του πίνακα.

Test A-2-2-b

Η συνάρτηση δεν επιστρέφει ψευδές όπως θα έπρεπε για αρνητικές γραμμές ή/και στήλες του πίνακα.

Test A-2-2-c

Η συνάρτηση δεν επιστρέφει αληθές ή δεν παράγει το σωστό (“διπλάσιο”) άθροισμα όπως θα έπρεπε για δεδομένο τετράγωνο πίνακα, με τον εαυτό του.

Test A-2-2-d

Η συνάρτηση δεν επιστρέφει αληθές ή δεν παράγει το σωστό (μηδενικό) άθροισμα όπως θα έπρεπε για δεδομένο τετράγωνο πίνακα, με τον αντίθετό του.

Test A-2-2-e

Η συνάρτηση δεν επιστρέφει αληθές ή δεν παράγει το σωστό άθροισμα όπως θα έπρεπε για δεδομένο τετράγωνο πίνακα, με έναν ίδιας διάστασης που όλα τα στοιχεία του είναι ίσα με το 1.

Test A-2-2-f

Η συνάρτηση δεν επιστρέφει αληθές ή δεν παράγει το σωστό άθροισμα όπως θα έπρεπε για δεδομένο μη τετράγωνο πίνακα, με έναν ίδιας διάστασης που όλα τα στοιχεία του είναι ίσα με το 1.

Ερώτημα A.2.3

Δημιουργία της συνάρτησης bool mul(int M, int N, int K, double A[M][N], double B[N][K] , double P[Μ][Κ]) η οποία πολλαπλασιάζει τους πίνακες Α και Β στον πίνακα P.

Έλεγχοι

Test A-2-3-a

Η συνάρτηση δεν επιστρέφει ψευδές όπως θα έπρεπε για μηδενικές γραμμές ή/και στήλες κάποιου πίνακα.

Test A-2-3-b

Η συνάρτηση δεν επιστρέφει ψευδές όπως θα έπρεπε για αρνητικές γραμμές ή/και στήλες κάποιου πίνακα.

Test A-2-3-c

Η συνάρτηση δεν επιστρέφει ψευδές όπως θα έπρεπε για αρνητικές δύο ή/και των τριών διαστάσεων των πινάκων σε γραμμές ή/και στήλες κάποιου πίνακα.

Test A-2-3-d

Η συνάρτηση δεν επιστρέφει αληθές ή το σωστό αποτέλεσμα όπως θα έπρεπε για πολλαπλασιασμό τετραγωνικού πίνακα με διαγώνιο.

Test A-2-3-e

Η συνάρτηση δεν επιστρέφει αληθές ή το σωστό αποτέλεσμα όπως θα έπρεπε για πολλαπλασιασμό τετραγωνικού πίνακα με τον μοναδιαίο.

Test A-2-3-f

Η συνάρτηση δεν επιστρέφει αληθές ή το σωστό αποτέλεσμα όπως θα έπρεπε για πολλαπλασιασμό πίνακα γραμμή με τετραγωνικό πίνακα.

Test A-2-3-g

Η συνάρτηση δεν επιστρέφει αληθές ή το σωστό αποτέλεσμα όπως θα έπρεπε για πολλαπλασιασμό μεταξύ δύο τετραγωνικών πινάκων.

Έλεγχοι A.2.4

Αυτή η ενότητα ελέγχων περιέχει έναν συνδυαστικό έλεγχο των συναρτήσεων.

Έλεγχοι

Test A-2-4-a

Οι συναρτήσεις add και mul δεν επιστρέφουν συνδυαστικό το αναμενόμενο αποτέλεσμα όπως θα έπρεπε για για την επιβεβαίωση της παράστασης πινάκων Α*Β - Β*Α ≠ 0.

qna/hw/lsn65.txt · Last modified: 2022/04/18 22:01 by xallos