Ενδιαφερον Ασκηση (βοηθεια)

Ξεκίνησε από Νικολας Πεγιος, 17 Φεβ 2021, 09:13:00 ΜΜ

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

Νικολας Πεγιος

Γεια σας ειμαι μαθητης της  Γ λυκειου και μου δοθηκε η παρακατω ασκηση:

Μια ποδοσφαιρικη ομαδα εχει  στη διαθεση της συνολικα 30 ποδοσφαιριστες.Στο τελος της σεζον για καθε εναν απο αυτους αποθηκευουμεσε αντιστοιχους πινακες το ονομα τους και τα λεπτα συμμετοχης τους και τη θεση που παιζουν ('Ε' για επιθεση,'Α'για αμυνα και 'Κ΄ για κεντρο)

Να γινει αλγοριθμος ο οποιος θα διαβαζει τα παραπανω δεδομενα με λεγχο δεδομενων για τηις θεσεις και θα εντοπιζει τους παικτες που εχουν τα περισσοτερα λεπτα συμμετοχης για καθε θεση .(Θεωρειτστε οτι υπαρχει ενας μονο παικτης με τα περισσοτερα λεπτα συμμετοχης σε καθε μια θεση)

                                                                 {Η λυση μου}

Αλγόριθμος ΑΣΚ

Για Ι από 1 μέχρι 30
  Διάβασε ΟΝ[Ι], ΧΡ[Ι]
  Αρχή_επανάληψης
    Διάβασε ΘΕΣ[Ι]
  Μέχρις_ότου ΘΕΣ[Ι] = 'Ε' ή ΘΕΣ[Ι] = 'Α' ή ΘΕΣ[Ι] = 'Κ'
Τέλος_επανάληψης

Για Κ από 2 μέχρι 30
  Για Ι από 30 μέχρι Κ με_βήμα -1
    Αν ΘΕΣ[Ι - 1] < ΘΕΣ[Ι] τότε
      ΤΕΜΠ0 ← ΘΕΣ[Ι]
      ΤΕΜΠ1 ← ΧΡ[Ι]
      ΤΕΜΠ2 ← ΟΝ[Ι]
      ΘΕΣ[Ι] ← ΘΕΣ[Ι - 1]
      ΧΡ[Ι] ← ΧΡ[Ι - 1]
      ΟΝ[Ι] ← ΟΝ[Ι - 1]
      ΘΕΣ[Ι - 1] ← ΤΕΜΠ0
      ΧΡ[Ι - 1] ← ΤΕΜΠ1
      ΟΝ[Ι - 1] ← ΤΕΜΠ2
    αλλιώς_αν ΘΕΣ[Ι] = ΘΕΣ[Ι - 1] τότε
      Αν ΧΡ[Ι - 1] < ΧΡ[Ι] τότε
        ΤΕΜΠ1 ← ΧΡ[Ι]
        ΤΕΜΠ2<-ΟΝ[Ι]
        ΧΡ[Ι] ← ΧΡ[Ι - 1]
        ΟΝ[Ι]<-ΟΝ[Ι-1]
        ΧΡ[Ι - 1] ← ΧΡ[Ι]
        ΟΝ[Ι-1]<-ΤΕΜΠ2
      Τέλος_αν
    αλλιώς_αν(ΘΕΣ[Ι] = ΘΕΣ[Ι - 1]) και ( ΧΡ[Ι] = ΧΡ[Ι - 1]) τότε
      Αν ΟΝ[Ι - 1] < ΟΝ[Ι] τότε
        ΤΕΜΠ2 ← ΟΝ[Ι]
        ΟΝ[Ι] ← ΟΝ[Ι - 1]
        ΟΝ[Ι - 1] ← ΤΕΜΠ2
      Τέλος_αν
    Τέλος_αν
  Τέλος_επανάληψης
Τέλος_επανάληψης



!ΝΑ ΒΡΩ ΠΟΥ ΤΕΛΕΙΩΝΕΙ ΚΑΘΕ ΘΕΣΗ
Για Ι από 1 μέχρι 30
  Αν ΘΕΣ[Ι] = 'Α' τότε
    Κ ← Κ + 1
  Τέλος_αν
Τέλος_επανάληψης

Για Ι από Κ μέχρι 30
  Αν ΘΕΣ[Ι] = 'Ε' τότε
    Π ← Π + 1
  Τέλος_αν
Τέλος_επανάληψης

Εμφάνισε 'ΠΕΡΙΣΣΟΤΕΡΑ ΛΕΠΤΑ ΩΣ ΑΜΥΝΤΗΚΟΣ ΕΙΝΑΙ:', ΟΝ[1]

Εμφάνισε 'ΠΕΡΙΣΣΟΤΕΡΑ ΛΕΠΤΑ ΩΣ ΕΠΙΘΕΤΙΚΟΣ ΕΙΝΑΙ:', ΟΝ[Κ + 1]

Εμφάνισε 'ΠΕΡΙΣΣΟΤΕΡΑ ΛΕΠΤΑ ΩΣ ΚΕΝΤΡΟ ΕΙΝΑΙ:', ΟΝ[Π + 1]

Τέλος


θα ηθελα να μου πειτε τι εχω κανει λαθος  και τι θα μπορουσα να βελτιωσω :D :D

vmargioulas

Γεια σου,
η λύση σου είναι σωστή, με μόνο λάθος το ότι δεν αρχικοποιείς τις μεταβλητές Κ και Π (Υπόδειξη; οι μεταβλητές πρέπει να αρχικοποιηθούν με διαφορετικό τρόπο),
είναι όμως πιο πολύπλοκη από ότι χρειάζεται.
Για να βρεις τα περισσότερα λεπτά συμμετοχής για κάθε θέση δεν χρειάζεται να ταξινομήσεις τον πίνακά σου,
αρκεί να κάνεις μια εύρεση μεγίστου για την αντίστοιχη θέση
π.χ για την θέσε 'Ε'
max <- 0
Για i από 1 μέχρι 30
  Αν ΘΕΣ[i] = 'E' και ΧΡ[i] > max τότε
    max ← ΧΡ[i]
    θεση ← i
  Τέλος_αν
Τέλος_επανάληψης
Γράψε ΟN[θεση]

Νικολας Πεγιος

Σε ευχαριστω!(Αυτο με τα λαθοι απροσεξιας το εχω γενικα χαχα) :laugh: