Προτεινόμενο θέμα από τον Νάσο Πέρδο:

Μία εταιρεία για διαφημιστικούς λόγους διοργανώνει μία δικτυακή δημοπρασία με έπαθλο ένα υπερπολυτελές αυτοκίνητο. Νικητής ανακηρύσσεται όποιος έχει δώσει ποσό προσφοράς που ισούται με το εύρος των ποσών προσφοράς που έχουν δοθεί πριν από τη δική του προσφορά. Ένας συμμετέχων μπορεί να δώσει περισσότερες από μία προσφορές. Αν υπάρχουν περισσότεροι με το σωστό ποσό προσφοράς, νικητής ανακηρύσσεται αυτός που έδωσε την τελευταία προσφορά. Η εταιρεία έχει το δικαίωμα να σταματήσει οποιαδήποτε στιγμή τη δημοπρασία και να ανακοινώσει το όνομα του νικητή.

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

Για λόγους αξιοπιστίας της δημοπρασίας να μην αποθηκευτούν τα στοιχεία (ονόματα και προσφορές) των προηγούμενων παικτών που συμμετείχαν στη δημοπρασία σε δομή δεδομένων όπου θα ήταν για κάποιον ειδικό εφικτό να τα προσπελάσει, και να προβλέψει πιθανές επόμενες προσφορές. Η εταιρεία αρχικά θέτει το εύρος ίσο με 100 και μετά την προσφορά του πρώτου παίκτη, ίσο με την προσφορά του. Στη συνέχεια το εύρος ισούται με τη μεγαλύτερη μείον τη μικρότερη προσφορά που έχει δοθεί. Ακόμη υπάρχει σίγουρα έστω και ένας παίκτης που συμμετέχει στη δημοπρασία και το μικρότερο ποσό που μπορεί να δοθεί είναι 0.01 χρηματικές μονάδες.

«Θέμα στην ενότητα της δομής επανάληψης» από τον Νάσο Πέρδο, με άδεια Creative Commons: Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα. Βασισμένη σε υλικό στο ιστολόγιο https://aepp.wordpress.com.