ΛΥΣΗ ΑΣΚΗΣΗΣ - ΔΙΑΤΥΠΩΣΗ

Ξεκίνησε από groenendael, 21 Δεκ 2011, 05:51:34 ΜΜ

« προηγούμενο - επόμενο »

groenendael

ΓΡΑΨΕ ΑΛΓΟΡΙΘΜΟ ΠΟΥ ΔΙΑΒΑΖΕΙ 100 ΑΚΕΡΑΙΟΥΣ ΑΡΙΘΜΟΥΣ ΣΤΟ ΔΙΑΣΤΗΜΑ (1,20) ΚΑΙ ΥΠΟΛΟΓΙΖΕΙ ΠΟΣΕΣ ΦΟΡΕΣ ΔΙΑΒΑΣΤΗΚΕ Ο ΚΑΘΕ ΑΡΙΘΜΟΣ ΞΑΝΑ. ( ΠΧ ΤΟ 2 ΔΟΘΗΚΕ 5 ΦΟΡΕΣ). ΠΟΙΑ ΕΙΝΑΙ Η ΒΕΛΤΙΣΤΗ ΛΥΣΗ ΣΕ ΕΥΤΗΝ ΤΗΝ ΑΣΚΗΣΗ; ΜΗΠΩΣ ΣΑΝ ΑΣΚΗΣΗ ΧΩΛΑΙΝΕΙ ΣΤΗΝ ΔΙΑΤΥΠΩΣΗ ΤΗΣ;

Stefevan

Σαν πρώτη σκέψη.. χρειάζεσαι 20 μετρητές   :(

alkisg

politis, αν μπορείς γράφε πεζά, είναι πιο ευανάγνωστα.
Το διάστημα [1, 20] θέλει μεν έλεγχο δεδομένων εισόδου, αλλά η ουσία δεν είναι εκεί, είναι ότι μπορείς να χρησιμοποιήσεις έναν πίνακα Εμφανίσεις[20] με 20 στοιχεία - μετρητές. Σταματάω εδώ για να μην μαρτυρήσω πολλά. :)

Stefevan


groenendael


Πανάγος94

#5
μια ενδεικτική λύση:

Αλγόριθμος ασκ
Για ι από 1 μέχρι 20
  π[ι] ← 0
Τέλος_επανάληψης
Για ι από 1 μέχρι 100
  Αρχή_επανάληψης
    Διάβασε α
  Μέχρις_ότου α ≥ 1 και α ≤ 20
  π[α] ← π[α] + 1
Τέλος_επανάληψης
Για ι από 1 μέχρι 20
  Εμφάνισε "Ο ", ι, " διαβαστηκε ", π[ι], " φορες"
Τέλος_επανάληψης
Τέλος ασκ


dkonetas

Παράθεση από: Πανάγος94 στις 25 Δεκ 2011, 01:11:51 ΜΜ
χρησιμοποιήσα πίνακες αλλά τι να κάνουμε....απο το να χρησιμοποιήσεις 20 μετρητές.....
μα 20 μετρητές χρησιμοποίησες όπως ακριβώς είχε προτείνει και ο Άλκης : "...πίνακα Εμφανίσεις[20] με 20 στοιχεία - μετρητές..."

κατά τα άλλα αυτη είναι η βέλτιστη λύση ενδιαφέρουσα δε παραλλαγή- επέκτασή της είναι η δημιουργία σχετικού οριζόντιου ιστογράμματος όπου πρέπει να δημιουργήσουμε αντίστοιχο δισδιάστατο πίνακα όπου θα γεμίζουμε για κάθε στοιχείο , έστω i, με κάποιο σύμβολο πχ "*" τις θέσεις από την (100, i)  μέχρι την (100-Εμφανίσεις, i)  ...