Ασκήσεις στην python: Γραμμική αναζήτηση με διάφορα κριτήρια

Γενική οδηγία:

Αποθηκεύστε τα αρχεία που σας δίνονται στον υπολογιστή σας και χρησιμοποιώντας την υλοποίηση της python που προτιμάτε απαντήστε στην ερώτηση.

Γραμμική Αναζήτηση

Τα κριτήρια της αναζήτησης ενός στοιχείου σε ένα αντικείμενο - δομή της python, δηλαδή σε μια λίστα, λεξικό, αρχείο κ.α., μπορεί να ποικίλουν. Π.χ. μπορεί να θέλουμε να βρούμε το στοιχείο που μέσω μιας συνάρτησης ικανοποιεί μια τιμή.

  1. Αν έχουμε tuples αριθμών με 2 στοιχεία, π.χ. (1,2), (3,-2), (1,-1). Φτιάξτε τη συνάρτηση f_val η οποία να υπολογίζει το άθροισμα των απολύτων τιμών του tuple. Στη συνέχεια χρησιμοποιήστε τη f_val και έναν από τους αλγορίθμους για γραμμική αναζήτηση που παρουσιάσαμε (με while ή με for) για να βρείτε, σε μια λίστα με tuples π.χ. L=[(1,2), (3,-2), (1,-1)], ένα tuple που έχει μια συγκεκριμένη τιμή f_val, π.χ. 2. Search5-point-value.py
    	
  2. Τροποποιήστε την προηγούμενη άσκηση ώστε αντί να αναζητούμε μια συγκεγκριμένη τιμή για τη συνάρτηση f_val, να αναζητούμε τo στοιχείο με τη μέγιστη τιμή για την f_val. Search5-point-value2.py
    	
  3. Φτιάξτε μια συνάρτηση η οποία να δέχεται ως όρισμα μια λίστα με στοιχεία tuples με 2 όρους, που αντιστοιχούν στις συντεταγμένες ενός σημείου στο επίπεδο. Η συνάρτηση θα επιστρέφει τη θέση του στοιχείου για το οποίο το άθροισμα των όρων κατά απόλυτο τιμή είναι το μικρότερο. Δηλ. αν η L=[(1,-1),(1,1),(0,-1),(0.4,-0.5)] θα επιστρέψει τη θέση 3. Search5-point-value3.py
    	
  4. Φτιάξτε μια συνάρτηση η οποία να δέχεται ως όρισμα μια λίστα με στοιχεία tuples με 2 όρους, που αντιστοιχούν στις συντεταγμένες ενός σημείου στο επίπεδο. Η συνάρτηση θα επιστρέφει τη θέση του στοιχείου για το οποίο το άθροισμα των τετραγώνων των όρων είναι το μεγαλύτερο. Δηλ. αν η L=[(2,-1),(1,1),(0,-1),(0.4,-0.5)] θα επιστρέψει τη θέση 0. Search5-point-value4.py
    	
  5. Έστω ότι έχουμε strings με 2 λέξεις, που αντιστοιχούν στο Όνομα και το Επώνυμο ενός ατόμου π.χ. 'Andreas Cook', 'Maria Stuart','James Duck'. Φτιάξτε τη συνάρτηση f_val η οποία να επιστρέφει ένα string που να περιέχει το επώνυμο ενός ατόμου. Δηλαδή η f_val('Andreas Cook') επιστρέφει το 'Cook'. Στη συνέχεια χρησιμοποιήστε τη f_val και έναν από τους αλγορίθμους για γραμμική αναζήτηση που παρουσιάσαμε (με while ή με for) για να βρείτε, σε μια λίστα π.χ. L=[ 'Andreas Cook', 'Maria Stuart','James Duck'] τη θέση ενός στοιχείου με συγκεκριμμένη τιμή, π.χ. 'Duck'. Search5-name-value.py
    	
  6. Φτιάξτε μια συνάρτηση η οποία να δέχεται ως όρισμα μια λίστα με στοιχεία strings με 2 λέξεις, που αντιστοιχούν στό Όνομα και το Επώνυμο ενός ατόμου. Η συνάρτηση θα επιστρέφει το άτομο που έχει το μεγαλύτερο λεξικογραφικά Επώνυμο Δηλ. αν η L=[ 'Andreas Cook', 'Maria Stuart','James Duck'] θα επιστρέψει τo 'Maria Stuart'. Search5-name-value2.py
    	
  7. Φτιάξτε μια συνάρτηση η οποία να δέχεται ως όρισμα ένα λεξικό με κλειδιά strings και τιμές ένα tuple , που αντιστοιχούν στό Όνομα και το Επώνυμο ενός ατόμου. Η συνάρτηση θα επιστρέφει τη θέση του ατόμου που έχει το μεγαλύτερο λεξικογραφικά Επώνυμο Δηλ. αν η L=[ 'Andreas Cook', 'Maria Stuart','James Duck'] θα επιστρέψει τo 1 γιατί το 'Maria Stuart' λεξικογραφικά είναι το μεγαλύτερο επώνυμο. Search5-name-value3.py