Το πρόβλημα της Αριθμομηχανής (2η έκδοση)

Να κατασκευαστεί πρόγραμμα σε γλώσσα Pascal το οποίο:

  1. Να εμφανίζει μενού επιλογών με τις επιλογές:
    Π. Πρόσθεση
    Α. Αφαίρεση
    Λ. Πολλαπλασιασμός
    Δ. Διαίρεση
    0. Έξοδος
  2. Να διαβάζει την επιλογή του χρήστη και κατόπιν δύο αριθμούς.
  3. Να υπολογίζει και να εμφανίζει το αποτέλεσμα της επιλεχθείσας πράξης.
  4. Η διαδικασία να επαναλαμβάνεται έως ότου επιλεγεί το 0 (μηδέν).

Υποδείξεις για το Θέμα: α) Να γίνει χρήση της εντολής case-of και να εμφανιστούν τα κατάλληλα μηνύματα σε περίπτωση που παρουσιαστεί κάποιο σφάλμα. β) Για την επιλογή πράξης να θεωρηθούν αποδεκτοί όλοι οι χαρακτήρες του πλήκτρου που πατήθηκε. Π.χ. αν πατήθηκε το πλήκτρο ‘Α’ θα πρέπει να αποδεχθούμε και τους 4 χαρακτήρες, Ελληνικούς και Αγγλικούς, ‘Α’, ‘α’, ‘A’ και ‘a’.

program Calculator;

{ Προσομοίωση μιας απλής αριθμομηχανής.
  - Χρήση λίστας ετικετών }

uses
  CRT;

var
  Num_1, Num_2, Result: Real;
  Choice: Char;

begin
  repeat
    ClrScr; { Υποπρόγραμμα από τη βιβλιοθήκη υποπρογραμμάτων
              CRT για να καθαρίσουμε την οθόνη }
    Writeln('+--------------------+');
    Writeln('| ~~ΜΕΝΟΥ ΕΠΙΛΟΓΩΝ~~ |');
    Writeln('+--------------------+');
    Writeln('| Π. Πρόσθεση        |');
    Writeln('| Α. Αφαίρεση        |');
    Writeln('| Λ. Πολλαπλασιασμός |');
    Writeln('| Δ. Διαίρεση        |');
    Writeln('+--------------------+');
    Writeln('| 0. Έξοδος          |');
    Writeln('+--------------------+');
    Write('Δώστε την επιλογή σας (Π/Α/Λ/Δ/0): '); Readln(Choice);

    if Choice in ['π', 'Π', 'p', 'P', 'α', 'Α', 'a',
      'A', 'λ', 'Λ', 'l', 'L', 'δ', 'Δ', 'd', 'D'] then
  { Κάνουμε χρήση του τελεστή in (ανήκει) ώστε να ζητήσουμε
    αριθμούς μόνο εφόσον έχουμε επιλέξει κάποια από τις πράξεις }
    begin
      Write('Δώστε τους δύο αριθμούς: ');
      Readln(Num_1, Num_2);
    end;

    case Choice of
      'π', 'Π', 'p', 'P': begin
           Result := Num_1 + Num_2;
           Writeln('Αποτέλεσμα: ', Result:8:2);
         end;
      'α', 'Α', 'a', 'A': begin
           Result := Num_1 - Num_2;
           Writeln('Αποτέλεσμα: ', Result:8:2);
         end;
      'λ', 'Λ', 'l', 'L': begin
           Result := Num_1 * Num_2;
           Writeln('Αποτέλεσμα: ', Result:8:2);
         end;
      'δ', 'Δ', 'd', 'D': if Num_2 <> 0 then
         begin
           Result := Num_1 / Num_2;
           Writeln('Αποτέλεσμα: ', Result:8:2);
         end
         else
           Writeln('Δεν μπορώ να κάνω διαίρεση με 0');
      '0': Writeln('Bye!');
    else
      Writeln('(!) Δώσατε λάθος κωδικό.');
    end;

    if Choice <> '0' then
    begin
      Write('Πιέστε το πλήκτρο Enter για συνέχεια...'); Readln;
    end;

  until Choice = '0';
end.
Advertisements

Posted on 10/02/2012, in Γλώσσα Pascal, Δομημένος Προγραμματισμός and tagged , , , , , , , , . Bookmark the permalink. Σχολιάστε.

Σχολιάστε

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s

Αρέσει σε %d bloggers: