####ID 57-segment-intersection-X #### #### Άσκηση: (δε μετράει στο βαθμό) #### #### Γράψτε μια συνάρτηση #### #### segmentIntersection(a, b, c, d) #### #### που να επιστρέφει (ως μια λίστα μήκους 2) το σημείο [x, y] όπου τέμνονται τα ευθύγραμμα τμήματα #### που ορίζονται από τα σημεία a και b του επιπέδου και από τα σημεία c και d (και τα 4 αυτά #### είναι λίστες πραγματικών μήκους 2). Μπορείτε να υποθέσετε ότι οι αντίστοιχες ευθείες δεν είναι παράλληλες. #### #### Επειδή μπορεί και να μην υπάρχει σημείο τομής η συνάρτηση θα επιστρέφει λίστες μήκους 3 της μορφής #### #### [x, y, status] #### #### όπου το status είναι μια λογική τιμή ίση με True αν υπάρχει τομή (οπότε x και y είναι οι συντεταγμένες #### του σημείου τομής) και ίση με False αν δεν υπάρχει σημείο τομής. #### #### Μπορείτε να χρησιμοποιήσετε τη συνάρτηση solve επίλυσης γραμμικού συστήματος που είχαμε γράψει #### παλιότερα. Κατεβάστε και το αρχείο #### #### linear_system.py #### #### στον ίδιο κατάλογο με το user.py και αν θέλετε να χρησιμοποιήσετε τη συνάρτηση αυτή γράψτε #### πριν τον κώδικά σας #### #### from linear_system import solve #### #### Αν δε θυμάστε πώς καλείται η solve κοιτάξτε μέσα στο αρχείο linear_system.py #### #### *** Γενικές Οδηγίες: *** #### #### Γράφετε τον κώδικά σας αποκλειστικά ανάμεσα στις γραμμές START και STOP παρακάτω. #### Δεν πρέπει να πειράξετε καθόλου τις υπόλοιπες γραμμές #### #### Για να τρέξετε το πρόγραμμά σας (αποθηκευμένο στο αρχείο user.py) δίνετε την εντολή #### #### python3 user.py #### #### ενώ για να το ελέγξετε με τον tester δίνετε την εντολή #### #### python3 tester.py #### #### φροντίζοντας τα αρχεία user.py και tester.py να είναι στον ίδιο κατάλογο (directory) #### #### ****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ*****ΠΡΟΣΟΧΗ**** #### Μη γράψετε καμιά εντολή εισόδου (input) ή εξόδου (print) #### στον κώδικα που θα βάλετε ανάμεσα στα START και STOP. Αυτά είναι ήδη γραμμένα. #### Αν βάλετε και σεις το πρόγραμμά σας βγαίνει λάθος. #### a = eval(input("Δώστε το σημείο a του επιπέδου ως μια λίστα δύο αριθμών: ")) #### b = eval(input("Δώστε το σημείο b του επιπέδου ως μια λίστα δύο αριθμών: ")) #### c = eval(input("Δώστε το σημείο c του επιπέδου ως μια λίστα δύο αριθμών: ")) #### d = eval(input("Δώστε το σημείο d του επιπέδου ως μια λίστα δύο αριθμών: ")) #### #### #### Υποθέσεις: #### #### Στο σημείο αυτό έχουν δοθεί τα 4 σημεία a, b, c, d του επιπέδου τέτοια ώστε #### οι ευθείες ab και cd δεν είναι παράλληλες. #### #### Απαιτήσεις: #### #### Στο τέλος του προγράμματός σας θα πρέπει #### #### η συνάρτηση segmentIntersection #### #### να υπολογίζει αυτό που περιγράφεται στην εκφώνηση. #### ####START Από δω και κάτω γράφετε το πρόγραμμά σας.---------------------------------------------------------------- def segmentIntersection(a, b, c, d): #### ####STOP Μην αλλάξετε ό,τι είναι από τη γραμμή αυτή και κάτω-------------------------------------------------------- print("Η απάντηση είναι {}".format(segmentIntersection(a, b, c, d))) ####