Τώρα είναι Παρ 29 Μαρ 2024 01:55 am

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]




Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 2 Δημοσιεύσεις ] 
Συγγραφέας Μήνυμα
 Θέμα δημοσίευσης: Αριθμομηχανή
ΔημοσίευσηΔημοσιεύτηκε: Τετ 11 Δεκ 2013 10:58 pm 
Χωρίς σύνδεση

Εγγραφή: Τετ 11 Δεκ 2013 10:42 pm
Δημοσιεύσεις: 2
Καλησπέρα ονομάζομαι Δημήτρης είμαι μαθητής της ΄Β Λυκείου και έκανα μια Αριθμομηχανή. Είδα πως στο Forum αυτό έχει και άλλα τέτοια προγράμματα όμως δεν έχουν λάβει υπόψη τους κανένα-δυο πραγματάκια. Αρχικά το γεγονός ότι το πρόγραμμα θα ρωτάει τον χρήστη πράγματα. Αυτό όμως δημιουργεί ένα βασικό πρόβλημα ότι ο χρήστης θα πρέπει να δίνει συγκεκριμένες απαντήσεις στο πρόγραμμα για να δουλέψει. Έτσι εμείς για να αποφύγουμε τυχόν σφάλματα του προγράμματος παίρνουμε σαν δεδομένο ότι ο χρήστης είναι ηλίθιος (χωρίς παρεξήγηση). Με τον τρόπο αυτό θα μπορέσουμε και να κάνουμε το πρόγραμμα πιο φιλικό προς τον χρήστη αλλά και να αποτρέψουμε τυχόν σφάλματα του προγράμματος τα οποία θα οφείλονται σε "λάθος" απαντήσεις του χρήστη. Αυτή είναι η δουλειά που έκανα εάν βρείτε κάποιο λάθος παρακαλώ να με διορθώσετε.Επιπλέον ο συγκεκριμένος κώδικας πιάνει περίπου 73 γραμμές οπότε εάν μπορείτε να μου πείτε εάν υπάρχει και κάποιος τρόπος να το γράψω σε λιγότερες γραμμές. Σας ευχαριστώ εκ των προτέρων.

Syntax: [ Download ] [ Hide ]
ΠΡΟΓΡΑΜΜΑ ΑΡΙΘΜΟΜΗΧΑΝΗ
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ: Α,Β,Γ
  ΧΑΡΑΚΤΗΡΕΣ: Δ, Ψ

ΑΡΧΗ
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ 'ΤΙ ΠΡΑΞΗ ΘΑ ΘΕΛΑΤΕ ΝΑ ΚΑΝΕΤΕ? (+ , - , * , /)'
    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΔΙΑΒΑΣΕ Δ
      ΑΝ Δ <> '+' ΚΑΙ Δ <> '-' ΚΑΙ Δ <> '*' ΚΑΙ Δ <> '/' ΤΟΤΕ
        ΓΡΑΨΕ 'Η ΠΡΑΞΗ ΠΟΥ ΕΙΣΑΓΑΤΕ ΔΕΝ ΕΙΝΑΙ ΕΓΚΥΡΗ. ΠΑΡΑΚΑΛΩ ΕΙΣΑΓΕΤΕ ΕΓΚΥΡΗ ΠΡΑΞΗ. (+ , - , * , /)'
      ΤΕΛΟΣ_ΑΝ

    ΜΕΧΡΙΣ_ΟΤΟΥ Δ = '+' Ή Δ = '-' Ή Δ = '*' Ή Δ = '/'


    ΓΡΑΨΕ 'ΠΕΙΤΕ ΜΟΥ ΤΟΝ ΠΡΩΤΟ ΑΡΙΘΜΟ'
    ΔΙΑΒΑΣΕ Α
    ΓΡΑΨΕ 'ΠΕΙΤΕ ΜΟΥ ΤΟΝ ΔΕΥΤΕΡΟ ΑΡΙΘΜΟ'
    ΔΙΑΒΑΣΕ Β

    ΑΝ Δ = '+' ΤΟΤΕ

      Γ <-- Α + Β
      ΓΡΑΨΕ ' ΤΟ ΑΠΟΤΕΛΕΣΜΑ ΕΙΝΑΙ:' , Γ


    ΑΛΛΙΩΣ_ΑΝ Δ = '-' ΤΟΤΕ

      Γ <-- Α - Β
      ΓΡΑΨΕ ' ΤΟ ΑΠΟΤΕΛΕΣΜΑ ΕΙΝΑΙ:' , Γ

    ΑΛΛΙΩΣ_ΑΝ Δ = '*' ΤΟΤΕ

      Γ <-- Α * Β
      ΓΡΑΨΕ ' ΤΟ ΑΠΟΤΕΛΕΣΜΑ ΕΙΝΑΙ:' , Γ

    ΤΕΛΟΣ_ΑΝ

    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΑΝ Δ = '/' ΚΑΙ Β = 0 ΤΟΤΕ

        ΓΡΑΨΕ 'ΔΙΑΙΡΕΣΗ ΜΕ ΤΟ ΜΗΔΕΝ. Η ΠΡΑΞΗ ΔΕΝ ΕΙΝΑΙ ΕΓΚΥΡΗ ΠΑΡΑΚΑΛΩ ΕΙΣΑΓΕΤΕ ΕΓΚΥΡΟ ΝΟΥΜΕΡΟ.'
        ΓΡΑΨΕ 'ΠΕΙΤΕ ΜΟΥ ΞΑΝΑ ΤΟΝ ΔΕΥΤΕΡΟ ΑΡΙΘΜΟ'
        ΔΙΑΒΑΣΕ Β

      ΤΕΛΟΣ_ΑΝ

      ΑΝ Δ = '/' ΚΑΙ Β <> 0 ΤΟΤΕ

        Γ <-- Α / Β
        ΓΡΑΨΕ ' ΤΟ ΑΠΟΤΕΛΕΣΜΑ ΕΙΝΑΙ:' , Γ
      ΤΕΛΟΣ_ΑΝ
    ΜΕΧΡΙΣ_ΟΤΟΥ  Β <> 0
    ΓΡΑΨΕ 'ΘΕΛΕΤΕ ΝΑ ΚΑΝΕΤΕ ΚΑΠΟΙΑ ΑΛΛΗ ΠΡΑΞΗ? (Υ/Ν)'
    ΔΙΑΒΑΣΕ Ψ

    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΑΝ Ψ <> 'Ν' ΚΑΙ Ψ <> 'Υ' ΤΟΤΕ

        ΓΡΑΨΕ 'Η ΑΠΑΝΤΗΣΗ ΠΟΥ ΕΙΣΑΓΑΤΕ ΔΕΝ ΕΙΝΑΙ ΕΓΚΥΡΗ. ΠΑΡΑΚΑΛΩ ΕΙΣΑΓΕΤΕ ΕΓΚΥΡΗ ΑΠΑΝΤΗΣΗ. (Υ/Ν)'

        ΔΙΑΒΑΣΕ Ψ
      ΤΕΛΟΣ_ΑΝ
    ΜΕΧΡΙΣ_ΟΤΟΥ Ψ = 'Ν' Ή Ψ = 'Υ'
  ΜΕΧΡΙΣ_ΟΤΟΥ Ψ = 'Ν'
  ΓΡΑΨΕ
  ΓΡΑΨΕ ' ΕΥΧΑΡΙΣΤΩ ΠΟΥ ΧΡΗΣΗΜΟΠΟΙΗΣΑΤΕ ΤΟ ΠΡΟΓΡΑΜΜΑ ΜΟΥ'
  ΓΡΑΨΕ
  ΓΡΑΨΕ ' ΕΠΙΜΕΛΕΙΑ: ΖΑΓΟΡΑΚΗΣ ΔΗΜΗΤΡΗΣ'
  ΓΡΑΨΕ ' © 2013 - 2014'
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

 


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
 Θέμα δημοσίευσης: Re: Αριθμομηχανή
ΔημοσίευσηΔημοσιεύτηκε: Πέμ 19 Δεκ 2013 11:09 pm 
Χωρίς σύνδεση

Εγγραφή: Τετ 11 Δεκ 2013 10:42 pm
Δημοσιεύσεις: 2
Καλησπέρα φίλοι, μετά από πολλά test διαπίστωσα ότι το πρόγραμμα έχει ένα λάθος. Όσοι από εσάς προσπαθήσατε να κάνετε αφαίρεση ή πρόσθεση με τον δεύτερο αριθμό να είναι ίσος με το 0 τότε το πρόγραμμα θα κολλούσε. Αυτό γινόταν γιατί στην εντολή "Αν" στην οποία τσεκάρω στην πράξη της διαίρεσης αν ο δεύτερος αριθμός είναι ίσος με το μηδέν αυτή την εντολή λοιπόν την είχα βάλει σε μία Επανάληψη και στο τέλος της Επανάληψης έβαλα "Μεχρις_Οτου Β <> 0" και για τον λόγο αυτόν το πρόγραμμα κολλούσε. Έτσι πρόσθεσα την εξής διόρθωση όπου στην ουσία επέκτεινα το "Μεχρις_Οτου Β <> 0" σε "Μεχρις_Οτου Β <> 0 ΚΑΙ Δ <> "/" ". Υπάρχει και άλλος τρόπος όμως να διορθωθεί το πρόβλημα αυτό με την Εντολή "ΟΣΟ" όμως επέλεξα να το συνεχίσω με την εντολή "Επαναλαψη". Εάν διαπιστώσετε οποιοδήποτε άλλο λάθος στον κώδικα αυτόν παρακαλώ να με ενημερώσετε. Σας ευχαριστώ εκ των προτέρων.

Syntax: [ Download ] [ Hide ]
ΠΡΟΓΡΑΜΜΑ ΑΡΙΘΜΟΜΗΧΑΝΗ
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ: Α,Β,Γ
  ΧΑΡΑΚΤΗΡΕΣ: Δ, Ψ

ΑΡΧΗ
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ 'ΤΙ ΠΡΑΞΗ ΘΑ ΘΕΛΑΤΕ ΝΑ ΚΑΝΕΤΕ? (+ , - , * , /)'
    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΔΙΑΒΑΣΕ Δ
      ΑΝ Δ <> '+' ΚΑΙ Δ <> '-' ΚΑΙ Δ <> '*' ΚΑΙ Δ <> '/' ΤΟΤΕ
        ΓΡΑΨΕ 'Η ΠΡΑΞΗ ΠΟΥ ΕΙΣΑΓΑΤΕ ΔΕΝ ΕΙΝΑΙ ΕΓΚΥΡΗ. ΠΑΡΑΚΑΛΩ ΕΙΣΑΓΕΤΕ ΕΓΚΥΡΗ ΠΡΑΞΗ. (+ , - , * , /)'
      ΤΕΛΟΣ_ΑΝ

    ΜΕΧΡΙΣ_ΟΤΟΥ Δ = '+' Ή Δ = '-' Ή Δ = '*' Ή Δ = '/'


    ΓΡΑΨΕ 'ΠΕΙΤΕ ΜΟΥ ΤΟΝ ΠΡΩΤΟ ΑΡΙΘΜΟ'
    ΔΙΑΒΑΣΕ Α
    ΓΡΑΨΕ 'ΠΕΙΤΕ ΜΟΥ ΤΟΝ ΔΕΥΤΕΡΟ ΑΡΙΘΜΟ'
    ΔΙΑΒΑΣΕ Β

    ΑΝ Δ = '+' ΤΟΤΕ

      Γ <-- Α + Β
      ΓΡΑΨΕ ' ΤΟ ΑΠΟΤΕΛΕΣΜΑ ΕΙΝΑΙ:' , Γ                          


    ΑΛΛΙΩΣ_ΑΝ Δ = '-' ΤΟΤΕ

      Γ <-- Α - Β
      ΓΡΑΨΕ ' ΤΟ ΑΠΟΤΕΛΕΣΜΑ ΕΙΝΑΙ:' , Γ

    ΑΛΛΙΩΣ_ΑΝ Δ = '*' ΤΟΤΕ

      Γ <-- Α * Β
      ΓΡΑΨΕ ' ΤΟ ΑΠΟΤΕΛΕΣΜΑ ΕΙΝΑΙ:' , Γ

    ΤΕΛΟΣ_ΑΝ

    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΑΝ Δ = '/' ΚΑΙ Β = 0 ΤΟΤΕ

        ΓΡΑΨΕ 'ΔΙΑΙΡΕΣΗ ΜΕ ΤΟ ΜΗΔΕΝ. Η ΠΡΑΞΗ ΔΕΝ ΕΙΝΑΙ ΕΓΚΥΡΗ ΠΑΡΑΚΑΛΩ ΕΙΣΑΓΕΤΕ ΕΓΚΥΡΟ ΝΟΥΜΕΡΟ.'
        ΓΡΑΨΕ 'ΠΕΙΤΕ ΜΟΥ ΞΑΝΑ ΤΟΝ ΔΕΥΤΕΡΟ ΑΡΙΘΜΟ'
        ΔΙΑΒΑΣΕ Β

      ΤΕΛΟΣ_ΑΝ

      ΑΝ Δ = '/' ΚΑΙ Β <> 0 ΤΟΤΕ

        Γ <-- Α / Β
        ΓΡΑΨΕ ' ΤΟ ΑΠΟΤΕΛΕΣΜΑ ΕΙΝΑΙ:' , Γ
      ΤΕΛΟΣ_ΑΝ
    ΜΕΧΡΙΣ_ΟΤΟΥ  Β <> 0 Ή Δ <> '/'

    ΓΡΑΨΕ 'ΘΕΛΕΤΕ ΝΑ ΚΑΝΕΤΕ ΚΑΠΟΙΑ ΑΛΛΗ ΠΡΑΞΗ? (Υ/Ν)'
    ΔΙΑΒΑΣΕ Ψ

    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΑΝ Ψ <> 'Ν' ΚΑΙ Ψ <> 'Υ' ΤΟΤΕ

        ΓΡΑΨΕ 'Η ΑΠΑΝΤΗΣΗ ΠΟΥ ΕΙΣΑΓΑΤΕ ΔΕΝ ΕΙΝΑΙ ΕΓΚΥΡΗ. ΠΑΡΑΚΑΛΩ ΕΙΣΑΓΕΤΕ ΕΓΚΥΡΗ ΑΠΑΝΤΗΣΗ. (Υ/Ν)'

        ΔΙΑΒΑΣΕ Ψ
      ΤΕΛΟΣ_ΑΝ
    ΜΕΧΡΙΣ_ΟΤΟΥ Ψ = 'Ν' Ή Ψ = 'Υ'
  ΜΕΧΡΙΣ_ΟΤΟΥ Ψ = 'Ν'
  ΓΡΑΨΕ
  ΓΡΑΨΕ ' ΕΥΧΑΡΙΣΤΩ ΠΟΥ ΧΡΗΣΗΜΟΠΟΙΗΣΑΤΕ ΤΟ ΠΡΟΓΡΑΜΜΑ ΜΟΥ'
  ΓΡΑΨΕ
  ΓΡΑΨΕ ' ΕΠΙΜΕΛΕΙΑ: ΖΑΓΟΡΑΚΗΣ ΔΗΜΗΤΡΗΣ'
  ΓΡΑΨΕ ' © 2013 - 2014'
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
Τελευταίες δημοσιεύσεις:  Ταξινόμηση ανά  
Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 2 Δημοσιεύσεις ] 

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]


Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 8 επισκέπτες


Δεν μπορείτε να δημοσιεύετε νέα θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να απαντάτε σε θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επεξεργάζεστε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να διαγράφετε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επισυνάπτετε αρχεία σε αυτή τη Δ. Συζήτηση

Αναζήτηση για:
Μετάβαση σε:  
cron
Προβολές: