Ακέραια διαίρεση

Γνωρίζουμε ότι η «ΓΛΩΣΣΑ» διαθέτει τους τελεστές DIV και MOD για τον υπολογισμό του πηλίκου της ακέραιας διαίρεσης και του υπολοίπου αντίστοιχα. Σε αυτή την άσκηση καλείστε να τους αγνοήσετε!
Να υλοποιήσετε δύο συναρτήσεις με ονόματα Diver και Moder που θα παίρνουν σαν ορίσματα δύο ακέραιους αριθμούς και θα επιστρέφουν η μια το πηλίκο και οι άλλη το υπόλοιπο.

Διευκρίνιση: Από σύμβαση θεωρούμε ότι και οι δύο αριθμοί είναι ακέραιοι και ότι ο πρώτος είναι διαιρετέος και ο δεύτερος διαιρέτης.

Η λύση εδώ

Ασφάλεια Πληροφοριακών Συστημάτων

Στο τμήμα Ψηφιακών Συστημάτων, ένας φοιτητής έχει τις εξής υποχρεώσεις στα πλαίσια του μαθήματος «Ασφάλεια Πληροφοριακών Συστημάτων»: να κάνει 3 ασκήσεις, να δώσει μία πρόοδο (Πρόοδος = διαγώνισμα πριν τις εξετάσεις) και να δώσει την τελική εξέταση. Προϋπόθεση για να συμμετάσχει στην τελική εξέταση είναι ο μέσος όρος των 3 ασκήσεων και της προόδου να είναι από 5 και πάνω.

Ο υπολογισμός του τελικού βαθμού γίνεται ως εξής:

α) Σε περίπτωση που ο βαθμός τελικής εξέτασης είναι μικρότερος του 5, κάθε βαθμός άσκησης συμμετέχει σε ποσοστό 10% στον τελικό βαθμό, ο βαθμός Προόδου συμμετέχει σε ποσοστό 15% και ο βαθμός της τελικής εξέτασης συμμετέχει σε ποσοστό 55%.

β) Διαφορετικά κάθε βαθμός άσκησης συμμετέχει σε ποσοστό 6% στον τελικό βαθμό, ο βαθμός Προόδου συμμετέχει σε ποσοστό 12% και ο βαθμός της τελικής εξέτασης συμμετέχει σε ποσοστό 70%.

1. Να γράψετε κατάλληλο υποπρόγραμμα το οποίο διαβάζει το βαθμό του φοιτητή σε μια υποχρέωση και τον αποθηκεύει στην πραγματική μεταβλητή Β. Το υποπρόγραμμα θα πρέπει να εξασφαλίζει ότι ο βαθμός ανήκει στο [0,10].

2. Να γράψετε κατάλληλο υποπρόγραμμα το οποίο δέχεται τους 5 βαθμούς (3 βαθμοί ασκήσεων, 1 προόδου, 1 τελικής εξέτασης) κάθε φοιτητή και επιστρέφει τον τελικό βαθμό στο μάθημα «Ασφάλεια Πληροφοριακών Συστημάτων».

3. Να γράψετε  πρόγραμμα το οποίο:

  • Να περιέχει τμήμα δηλώσεων μεταβλητών
  • Να διαβάζει τα ονοματεπώνυμα και τους βαθμούς στις υποχρεώσεις στο μάθημα «Ασφάλεια Πληροφοριακών Συστημάτων» για ένα σύνολο φοιτητών. Για την εισαγωγή και τον έλεγχο των βαθμών να γίνει χρήση του υποπρογράμματος που αναφέρεται στο ερώτημα 1. Η είσοδος τερματίζεται μόλις δοθεί ως ονοματεπώνυμο το κενό.
  • Να υπολογίζει και να εμφανίζει τον τελικό βαθμό του κάθε φοιτητή που έλαβε μέρος στην τελική εξέταση κάνοντας χρήση του υποπρογράμματος που περιγράφεται στο ερώτημα 2.
  • Να εμφανίζει το ποσοστό των φοιτητών που δεν απέκτησαν το δικαίωμα συμμετοχής στην τελική εξέταση
  • Να εμφανίζει το όνομα του φοιτητή που είχε το μεγαλύτερο βαθμό στην πρόοδο

Διευκρίνιση:

Να θεωρήσετε ότι ο φοιτητής που έγραψε το μέγιστο βαθμό στην Πρόοδο είναι μόνον ένας.

 

Η λύση εδώ

Αλγόριθμος σχολείο

Να αναπτύξετε αλγόριθμο με τις παρακάτω προδιαγραφές:

1. Να δέχεται τα επώνυμα και τα ονόματα 20 μαθητών και να τα αποθηκεύει σε πίνακες ΕΠ[20] και ΟΝ[20] αντίστοιχα.

2. Να δέχεται τους τίτλους 10 μαθημάτων και να τους αποθηκεύει σε πίνακα ΤΙΤ[10].

3. Να δέχεται τους βαθμούς κάθε μαθητή σε κάθε μάθημα και να τους αποθηκεύει σε πίνακα ΒΑΘ[20,10].

4. Να υπολογίζει το μέσο όρο κάθε μαθητή που λέγεται Παπαδόπουλος και να εμφανίζει αλφαβητικά (με κριτήριο το μικρό όνομα) το επώνυμό του, το όνομα και το μέσο όρο του.

5. Να βρίσκει και να εμφανίζει το ονοματεπώνυμο του μαθητή με το χειρότερο βαθμό στο μάθημα «Έκθεση».

6. Να υπολογίζει και να εμφανίζει το μέσο όρο τάξης σε κάθε μάθημα.

7. Να υπολογίζει και να εμφανίζει το πλήθος των μαθητών που πήραν 20 σε πάνω από 5 μαθήματα.

Διευκρινίσεις:
– Να θεωρήσετε ότι όλοι οι Παπαδόπουλοι (αν υπάρχουν) θα έχουν διαφορετικό μικρό όνομα.
– Να θεωρήσετε ότι το μάθημα έκθεση υπάρχει στον πίνακα ΤΙΤ.

 

Η λύση εδώ

 

Συγχώνευση 1

Σε ένα ενιαίο λύκειο, λόγω του ότι υπάρχει μόνον ένας μαθηματικός, τα τμήματα Γ’2 (τεχνολογική) και Γ’3 (θετική) στα μαθηματικά κατεύθυνσης ενώνονται σε ένα τμήμα, το Γ’23. Συνολικά υπάρχουν 32 μαθητές τεχνολογικής και θετικής κατεύθυνσης.

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

2. Να αναπτύξετε πρόγραμμα με τις παρακάτω προδιαγραφές:

2.1. Να περιέχει τμήμα δηλώσεων

2.2. Να δέχεται το ονοματεπώνυμο και την κατεύθυνση καθενός από τους 32 μαθητές εφαρμόζοντας έλεγχο εγκυρότητας ώστε η κατεύθυνση να είναι «τεχνολογική» ή «θετική». Να αποθηκεύει το ονοματεπώνυμο στην ονομαστική κατάσταση Γ2 (αν ανήκει στην τεχνολογική) ή Γ3 (αν ανήκει στη θετική).

2.3. Κάνοντας χρήση του υποπρογράμματος που περιγράφεται στο ερώτημα 1, να ταξινομεί αλφαβητικά τις λίστες Γ2 και Γ3.

2.4. Να παράγει την αλφαβητική κατάσταση Γ23 που θα περιέχει τα ονοματεπώνυμα τεχνολογικής και θετικής, ταξινομημένα αλφαβητικά.

 

Η λύση εδώ

America’s Cup

Το America’s Cup είναι ο μεγαλύτερος αγώνας ιστιοπλοΐας παγκοσμίως. Αποτελεί αγώνα δεξιοτεχνίας (match race) και όχι χρόνου. Σε κάθε ιστιοδρομία αγωνίζονται δύο μόνο σκάφη και νικά εκείνο που θα κάνει τις λιγότερες παραβάσεις κανονισμού (fouls). Στο τελευταίο America’s Cup συμμετείχαν 20 σκάφη. Κάθε σκάφος διαγωνίζεται με κάθε ένα από τα υπόλοιπα 19. Να αναπτύξετε πρόγραμμα με τις παρακάτω προδιαγραφές:

1. Να περιέχει τμήμα δηλώσεων

2. Να ζητά και να δέχεται τα ονόματα των σκαφών σε πίνακα ΟΝ[20]

3. Να δέχεται για κάθε σκάφος το πλήθος των fouls που έκανε σε καθένα από τα υπόλοιπα και να αποθηκεύει τα δεδομένα σε πίνακα F[20,20]. Δεδομένου ότι κάθε σκάφος δεν τρέχει με τον εαυτό του, να εισάγετε στην κύρια διαγώνιο την τιμή -1.

4. Κάνοντας χρήση του υποπρογράμματος που περιγράφεται στο ερώτημα 9, να παράγει τον πίνακα Ν[20] ο οποίος περιέχει το συνολικό αριθμό νικών του κάθε σκάφους.

5. Να εμφανίζει το όνομα του σκάφους που νίκησε στη διοργάνωση.

6. Να βρίσκει και να εμφανίζει τον ελάχιστο αριθμό fouls που έγιναν σε κάποιο σκάφος, σε έναν μόνο αγώνα.

7. Να βρίσκει και να εμφανίζει το όνομα ή τα ονόματα των σκαφών που δέχτηκαν τον ελάχιστο αριθμό fouls από κάποιο σκάφος.

8. Να βρίσκει και να εμφανίζει πόσα fouls δέχτηκε συνολικά το σκάφος «ALINGHI».

9. Να γράψετε τον ορισμό του υποπρογράμματος που καλείται στο ερώτημα 4. Το υποπρόγραμμα δέχεται τον πίνακα F και παράγει τον πίνακα Ν (Νίκες ανά σκάφος). Για κάθε ένα από τα 20 σκάφη, υπολογίζει το συνολικό αριθμό νικών του στη διοργάνωση. Ένα σκάφος νικά τον αντίπαλο, αν σε έναν αγώνα κάνει λιγότερα fouls από τον αντίπαλο. Σε περίπτωση που τα δύο σκάφη κάνουν ίσο αριθμό fouls, κερδίζουν από μια νίκη το καθένα.

Διευκρινίσεις:

Α) Να θεωρήσετε ότι δεν υπάρχει ισοβαθμία στην πρώτη θέση της διοργάνωσης.
Β) Να θεωρήσετε ότι το σκάφος «ALINGHI» συμμετείχε στη διοργάνωση.


 

Η λύση εδώ