Μετάβαση στο κύριο περιεχόμενο

Πληροφορική Γ' Λυκείου: Επαναληπτική Άσκηση #15

Η δέκατη πέμπτη επαναληπτική άσκηση για το μάθημα της Πληροφορικής (πρώην ΑΕΠΠ) συνδυάζει τον αλγόριθμο της ταξινόμησης φυσαλίδας με τον αλγόριθμο της σειριακής αναζήτησης. Το πρόβλημα απαιτεί να κάνεις πρώτα κάποιες δοκιμές με συγκεκριμένα νούμερα για να το καταλάβεις.

15η Επαναληπτική άσκηση για το μάθημα της Πληροφορικής

15η Επαναληπτική Άσκηση

Τίτλος: Δείκτης επιστημονικής ποιότητας
Κατηγορία: Αναζήτηση, Ταξινόμηση

Ο δείκτης επιστημονικής ποιότητας (h-index) είναι ένας δείκτης της ποιότητας των ακαδημαϊκών δημοσιεύσεων ενός επιστήμονα. Ισούται με τη μεγαλύτερη τιμή του h για την οποία ο επιστήμονας έχει h δημοσιεύσεις που έχουν τουλάχιστον h ετεροαναφορές (citations) από άλλους επιστήμονες. Για παράδειγμα αν ένας επιστήμονας έχει ετεροαναφορές [5, 12, 4, 0, 5, 8] σημαίνει ότι έχει έξι δημοσιεύσεις και κάθε μία έχει 5, 12, 4, 0, 5 και 8 ετεροαναφορές. Αφού ο επιστήμονας έχει τέσσερις δημοσιεύσεις με τουλάχιστον τέσσερις ετεροαναφορές και δεν υπάρχουν πέντε δημοσιεύσεις με τουλάχιστον πέντε ετεροαναφορές, ο δείκτης h-index θα είναι τέσσερα.

Να γραφεί πρόγραμμα το οποίο:
α) Θα διαβάζει τον αριθμό των δημοσιεύσεων ενός επιστήμονα (να γίνεται έλεγχος ώστε ο αριθμός των δημοσιεύσεων να είναι ένας αριθμός από μηδέν έως και εκατό),
β) Για κάθε δημοσίευση, θα διαβάζει τον αριθμό των ετεροαναφορών (να γίνεται έλεγχος ώστε ο αριθμός των ετεροαναφορών να είναι ένας θετικός αριθμός) και
γ) Θα εμφανίζει τον δείκτη επιστημονικής ποιότητας (h-index) του επιστήμονα.

Παρατήρηση: Η άσκηση να λυθεί αρχικά με την υπόθεση ότι ο πίνακας των ετεροαναφορών που διαβάζεται είναι αταξινόμητος. Στη συνέχεια θεωρείστε ότι ο πίνακας των ετεροαναφορών είναι ταξινομημένος κατά αύξουσα σειρά και προσπαθήστε να προτείνετε μία λύση που δεν θα ελέγχει όλα τα στοιχεία του πίνακα ετεροαναφορών.

Λύση 15ης επαναληπτικής άσκησης

ΠΡΟΓΡΑΜΜΑ Δείκτης_Επιστημονικής_Ποιότητας
ΜΕΤΑΒΛΗΤΕΣ 
  ΑΚΕΡΑΙΕΣ: ΔΗΜΟΣ, Ι, Ξ, ΕΤΕΡ[100], ΔΕΙΚΤΗΣ, TEMP
  ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ

ΑΡΧΗ 
 
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ 'Πόσες δημοσιεύσεις έχει ο επιστήμονας; '
    ΔΙΑΒΑΣΕ ΔΗΜΟΣ
  ΜΕΧΡΙΣ_ΟΤΟΥ ΔΗΜΟΣ >= 0 ΚΑΙ ΔΗΜΟΣ <= 100

  ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ ΔΗΜΟΣ
    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΓΡΑΨΕ 'Πόσες ετεροαναφορές έχει η ', Ι, 'η δημοσίευση; '
      ΔΙΑΒΑΣΕ ΕΤΕΡ[Ι] 
    ΜΕΧΡΙΣ_ΟΤΟΥ ΕΤΕΡ[Ι] >= 0
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ ΔΗΜΟΣ
    ΓΙΑ Ξ ΑΠΟ ΔΗΜΟΣ ΜΕΧΡΙ Ι ΜΕ_ΒΗΜΑ -1
      ΑΝ ΕΤΕΡ[Ξ] < ΕΤΕΡ[Ξ - 1] ΤΟΤΕ
        TEMP <- ΕΤΕΡ[Ξ] 
        ΕΤΕΡ[Ξ] <- ΕΤΕΡ[Ξ - 1] 
        ΕΤΕΡ[Ξ - 1] <- TEMP
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΒΡΕΘΗΚΕ <- ΨΕΥΔΗΣ
  Ι <- 1
  ΔΕΙΚΤΗΣ <- 0

  ΟΣΟ Ι <= ΔΗΜΟΣ ΚΑΙ ΟΧΙ ΒΡΕΘΗΚΕ ΕΠΑΝΑΛΑΒΕ
    ΑΝ ΕΤΕΡ[Ι] <= ΔΗΜΟΣ - Ι + 1 ΤΟΤΕ
      ΔΕΙΚΤΗΣ <- ΕΤΕΡ[Ι] 
    ΑΛΛΙΩΣ
      ΒΡΕΘΗΚΕ <- ΑΛΗΘΗΣ
    ΤΕΛΟΣ_ΑΝ
    Ι <- Ι + 1

  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ 'Δείκτης H-Index ', ΔΕΙΚΤΗΣ

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Δείκτης_Επιστημονικής_Ποιότητας


Όλες τις επαναληπτικές ασκήσεις για το μάθημα της Πληροφορικής (πρώην ΑΕΠΠ) μπορείτε να τις βρείτε στο παρακάτω άρθρο:

Σχόλια

Δημοφιλείς αναρτήσεις από αυτό το ιστολόγιο

30 επαναληπτικές ασκήσεις για το μάθημα της Πληροφορικής της Γ' Λυκείου

10 Επαναληπτικές Ασκήσεις στην Πληροφορική (2021)

Πληροφορική Γ' Λυκείου: Επαναληπτική Άσκηση #6 (2021)