Το πρόβλημα της Jambafone™

Η εταιρεία παροχής υπηρεσιών κινητής τηλεφωνίας Jambafone™ εφαρμόζει την πολιτική χρέωσης που φαίνεται στον πίνακα που ακολουθεί:

ΜΗΝΙΑΙΟ ΠΑΓΙΟ: 10€
Λεπτά ομιλίας Χρέωση ανά λεπτό σε € Αριθμός μηνυμάτων Χρέωση ανά μήνυμα σε €
Από 0 έως 150 0 Από 0 έως 50 0
Από 151 και άνω 0,5 Από 51 και άνω 0,2

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

Να γράψετε στο τετράδιό σας πρόγραμμα σε γλώσσα Pascal το οποίο:

  1. Να διαβάζει α) το ονοματεπώνυμο του συνδρομητή, β) τον συνολικό αριθμό των λεπτών ομιλίας που πραγματοποίησε και γ) τον συνολικό αριθμό των μηνυμάτων που απέστειλε ο συνδρομητής της Jambafone™.
  2. Να διαβάζει τον αριθμό των λεπτών ομιλίας που πραγματοποίησε και τον αριθμό των μηνυμάτων που απέστειλε ο ίδιος συνδρομητής, σε συνδρομητές της εταιρίας Jambafone™.
  3. Να υπολογίζει το συνολικό ποσό της χρέωσης για τον συνδρομητή.
  4. Να εμφανίζει μήνυμα παρόμοιο του: “Ο συνδρομητής Ιωάννης Γκίνης οφείλει το ποσό των 105,20€”.

Υποδείξεις για το Θέμα:

  1. Η χρέωση, τόσο της ομιλίας όσο και των μηνυμάτων, γίνεται κλιμακωτά. Αυτό σημαίνει ότι, αν κάποιος μιλήσει 160 λεπτά θα χρεωθεί τα 10 λεπτά.
  2. Ο χρόνος ομιλίας (λεπτά ομιλίας) εκφράζεται σε ακέραιες τιμές.
  3. Δεν απαιτείται έλεγχος των τιμών εισόδου.

program Jambafone;

const
  PAGIO = 10;

var
  FullName: string;
  TotalMins, TotalMsgs, JMins, JMsgs: Integer;
  Cost: Real;

begin
  Write('Δώστε το ονοματεπώνυμο του συνδρομητή: '); Readln(FullName);
  Write('Δώστε τα συνολικά λεπτά ομιλίας: '); Readln(TotalMins);
  Write('Δώστε τον συνολικό αριθμό μηνυμάτων: '); Readln(TotalMsgs);
  Write('Δώστε τα λεπτά ομιλίας προς Jambafone: '); Readln(JMins);
  Write('Δώστε τα μηνύματα προς Jambafone: '); Readln(JMsgs);

  Cost := PAGIO;

  if TotalMins - JMins > 150 then
    Cost := Cost + (TotalMins - JMins - 150) * 0.5;

  if TotalMsgs - JMsgs > 50 then
    Cost := Cost + (TotalMsgs - JMsgs - 50) * 0.2;

  Writeln('Ο συνδρομητής ', FullName, ' οφείλει το ποσό των ', Cost:0:2, '€');
end.

Σημειώσεις:

  1. Εφόσον δεν απαιτείται έλεγχος τιμών, δεν ελέγχουμε τη διαφορά TotalMins - JMins να δούμε αν είναι >0.
  2. Η έκφραση TotalMins - JMins > 150 δε χρειάζεται παρενθέσεις εφόσον οι αριθμητικοί τελεστές έχουν μεγαλύτερη προτεραιότητα απ’ τους σχεσιακούς.
  3. Η μορφοποίηση :0:2 που εφαρμόζεται στην πραγματική μεταβλητή Cost κατά την εμφάνισή της με την εντολή Writeln σημαίνει ότι θα εκτυπωθεί ο αριθμός, η υποδιαστολή και τα 2 δεκαδικά χωρίς να προηγηθεί κάποιο κενό.
Advertisements

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

Σχολιάστε

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

Λογότυπο WordPress.com

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

Φωτογραφία Twitter

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

Φωτογραφία Facebook

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

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

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

Σύνδεση με %s

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