[ΕΑ-2] Εργαστήριο 2ης εβδομάδας (Αντικείμενο)

Δευτέρα, 7 Οκτωβρίου 2024 - 9:31 μ.μ.
- από τον χρήστη Θραμπουλίδης Κλεάνθης

Α) Δράσεις

Θα εκτελέσετε τις παρακάτω Δράσεις με την σειρά που παρατίθενται.

[Δ1] - ολοκλήρωση του Εργαστηρίου της 1ης Εβδομάδας

Θα πρέπει να ολοκληρώσετε επιτυχώς τις δράσεις του Εργαστηρίου της 1ης Εβδομάδας. Χωρίς αυτό δεν έχει νόημα να πάτε στις επόμενες Δράσεις.

 

[Δ2] – Ανάπτυξη 1ης έκδοσης του προγράμματος Add2Numbers

 Αναπτύξτε την 1η έκδοση του προγράμματος Add2Numbers αξιοποιώντας μόνο συναρτήσεις της βασικής βιβλιοθήκης (printf() and scanf()).  Στην έκδοση αυτή δεν χρησιμοποιούμε δική μας συνάρτηση.

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

[Δ3] – Ανάπτυξη 2ης έκδοσης του προγράμματος Add2Numbers

 Αναπτύξτε την 2η έκδοση του προγράμματος Add2Numbers την οποία χρησιμοποιήσαμε για να δώσουμε τα συνθετικά μιας συνάρτησης. Χρησιμοποιήστε πρώτα την συνάρτηση getNumber() και μετά βάλτε και την συνάρτηση sum(). Χρησιμοποιήστε τον κώδικα για να κατανοήσετε τις έννοιες δήλωση συνάρτησης, ορισμός συνάρτησης, κλήση συνάρτησης, ορίσματα συνάρτησης και επιστρεφόμενη τιμή.

[Δ4] –  Δημιουργία αρχείου τύπου .pdf που περιέχει τον πηγαίο κώδικα

Οδηγίες θα βρείτε στο DevCpp-GeneratePDF.pdf

 

B) Οδηγίες

Αξιοποιήστε το Φροντιστήριο και το εργαστήριο για να λύσετε τις απορίες που θα σας δημιουργηθούν στην διαδικασία εκτέλεσης των δράσεων [Δ1]-[Δ4].

Δεν χρειάζεται στη φάση αυτή να γνωρίζετε περισσότερα πράγματα από αυτά που αναφέραμε για τα στοιχεία της γλώσσας που χρησιμοποιούμε στο πρόγραμμα Add2Numbers. Θα τα δούμε σιγά-σιγά στις επόμενες εβδομάδες.

Γ) Δράσεις για μετά την ολοκλήρωση των [Δ1]-[Δ4]

Βελτιώσεις για μια καλύτερη εκδοχή της getNumber  

[Δ5] - Βελτίωση που αφορά το όνομα της συνάρτησης

Τώρα που ξέρουμε πως υπάρχουν και αριθμοί κινητής υποδιαστολής απλής ακρίβειας (float) και αριθμοί κινητής υποδιαστολής διπλής ακρίβειας (double) μπορούμε (και είναι καλύτερο) να δώσουμε ως όνομα στην getNumber() το getInteger ή απλά getInt. Αυτό θα μας επιτρέψει να ορίσουμε αργότερα (σε άλλη άσκηση που πιθανόν να χρειάζεται) άλλες δύο συναρτήσεις τις getFloat() και getDouble().

 

[Δ6] - Βελτίωση που αφορά τη λειτουργικότητα

Μια καλύτερη εκδοχή της συνάρτησης είναι να έχουμε τη δυνατότητα να την καλούμε και να μην εμφανίζει πάντα την φράση "Dose arithmo:", ή ότι εσείς έχετε βάλει μέσα στην printf στο σώμα της, αλλά μια διαφορετική φράση την οποία εσείς θα ορίζετε όταν την καλείτε. Αυτό μας δίνει μια πιο επαναχρησιμοποιήσιμη συνάρτηση.

Για να το πετύχουμε αυτό θα πρέπει:
Α) να δηλώσουμε τη συνάρτηση όπως παρακάτω, και

int getInt(char message[]);  // απλά αντιγράφετε. Τη σημασία θα τη δούμε αργότερα όταν

                                                    //μιλήσουμε για πίνακες (arrays)

Β) να αντικαταστήσουμε μέσα στο σώμα της την

            printf("Dose arithmo:");

με την

            printf(message);   

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

Με βάση την παραπάνω δήλωση και τον αντίστοιχο ορισμό μπορείτε να καλέσετε τη συνάρτηση  για παράδειγμα όπως παρακάτω 

            num1 = getInt(“Dose 1o akeraio”);

num2 = getInt(“Dose 2o akeraio”);

 Προσέξτε την εφαρμογή της αφαιρετικότητας που σας επιτρέπει να γράψετε στην main τι θέλετε να κάνει το σύστημα χωρίς να ασχοληθείτε με το πως, κρύβοντας με τον τρόπο αυτό τις λεπτομέρειες χρήσης της snanf.

Σχόλια (1)

Θραμπουλίδης Κλεάνθης
Παρασκευή, 11 Οκτωβρίου 2024 - 9:31 π.μ.
- από τον χρήστη Θραμπουλίδης Κλεάνθης
"This text, likely an excerpt from a university course website, outlines a programming lab for the second week of a programming course. The lab tasks students with developing a simple program called “Add2Numbers” in two stages: first, using only basic library functions and then by incorporating custom functions for input and summation. Emphasis is placed on the concept of functionality through function declaration, definition, calling, arguments, and return values. Students are then encouraged to improve the program by creating a PDF file with the source code and then refining the input function (getInt) to accept a custom message for greater flexibility and reusability. The exercise is designed to introduce abstraction, allowing students to focus on what the program does without concerning themselves with the how, ultimately leading to a deeper understanding of code structure and modularity." NotebookLM