NtinosShm Δημοσ. 15 Μαΐου 2017 Δημοσ. 15 Μαΐου 2017 Καλησπέρα, η άσκηση ζητάει: -Συναρτηση με ονομα Debit που θα υπολογιζει μηνιαια χρεωση ενος πελατη, δεδομενου οτι το παγιο ειναι 5 ευρω. Η συναρτηση θα δεχεται ως παραμετρους τα λεπτα ομιλιας και θα επιστρεφει την χρεωση, η οποια ειναι κλιμακωτη με βαση εναν πινακα. -Θα διαβαζει το επωνυμο του πελατη και τα λεπτα ομιλιας του με τη χρηση καταλληλου μηνυματος. Οι τιμες θα αποθηκευονται αντιστοιχα σε δυο λιστες με ονοματα customer και minutes. Ακολουθως θα υπολογιζει τη χρεωση του πελατη (κανοντας χρηση της συναρτησης debit) και θα την αποθηκευει σε λιστα με ονομα money. Η διαδικασια αυτη να επαναλαμβανεται μεχρι να δωθει για το επωνυμο "χ" -Να χρησιμοποιει BubbleSort ωστε να ταξινομει ταυτοχρονα και τις 3 λιστες σε φθινουσα ταξινομηση ως προς τη χρεωση. Ακολούθως θα εμφανιζει τους 5 πρωτους πελατες με μεγαλυτερη χρεωση.. -Θα κανει εκπτωση 5% στην χρεωση των πελατων που εχουν πανω απο 200 λεπτα και θα γραφει σε αρχειο κειμενου "apot.txt" τα επωνυμα τους και το ποσο τελικης χρεωσης.. To link με το αρχειο (μιας και στο spoiler χαλάει ολος ο κωδικας) ειναι αυτο . Το τελευταιο βήμα δεν το εχω κανει ακομα, διοτι εχω κολλησει.. Μπορει καποιος να βοηθησει? Τι εχω κανει λαθος? Edit: Ευχομαι να φανει νορμάλ.. # -*- coding: utf-8 -*- def debit(lepta): pagio=5 if lepta>=0 and lepta<=60: xrewsi=lepta*0.15 global teliko teliko=xrewsi #print "Χρέωση: %f ευρώ." #print "Η τελική χρέωση είναι %f ευρώ. (μαζί με το πάγιο)" elif lepta>=61 and lepta<=120: xrewsi=lepta*0.1 global teliko teliko=xrewsi #print "Χρέωση: %f ευρώ." # print "Η τελική χρέωση είναι %f ευρώ. (μαζί με το πάγιο)" elif lepta>120: xrewsi=lepta*0.05 global teliko teliko=xrewsi #print "Χρέωση: %f ευρώ." #print "Η τελική χρέωση είναι %f ευρώ. (μαζί με το πάγιο)" def BubbleSort(A, B, C): N=len© for i in range(N): for j in range(N-1,i,-1): if C[j]<C[j-1]: A[j], A[j-1]=A[j-1], A[j] B[j], B[j-1]=B[j-1], B[j] C[j], C[j-1]=C[j-1], C[j] epwnimo=" " customer=[] minutes=[] money=[] while epwnimo!="x": epwnimo=raw_input("Dwse epwnymo pelati :") lepta=0 if epwnimo!="x": lepta=input("Dwse lepta omilias :") debit(lepta) customer.append(epwnimo) minutes.append(lepta) money.append(teliko) BubbleSort(customer, minutes, money) print customer[0], customer[1], customer[2], customer[3], customer[4] print minutes[0], minutes[1], minutes[2], minutes[3], minutes[4] print money[0], money[1], money[2], money[3], money[4]
k33theod Δημοσ. 16 Μαΐου 2017 Δημοσ. 16 Μαΐου 2017 Η συνάρτησή σου δεν κάνει αυτό που ζητάει η άσκηση (δεν επιστρέφει τίποτα, επιστρέφω= return) Kανείς δεν πληρώνει το πάγιο το loop while είναι λάθος
NtinosShm Δημοσ. 16 Μαΐου 2017 Μέλος Δημοσ. 16 Μαΐου 2017 Η συνάρτησή σου δεν κάνει αυτό που ζητάει η άσκηση (δεν επιστρέφει τίποτα, επιστρέφω= return) Kανείς δεν πληρώνει το πάγιο το loop while είναι λάθος τελικα με τη βοηθεια ενος παιδιου μπορεσα και βρηκα το λαθος... (τα λαθη βασικα) def debit(lepta): pagio=5 global xrewsi if lepta<=60: xrewsi=lepta*0.15 elif lepta<=120: xrewsi=(60*0.15)+((lepta-60)*0.1) else: xrewsi=(60*0.15)+(60*0.1)+((lepta-120)*0.05) print xrewsi xrewsi=xrewsi+pagio return xrewsi print("I xrewsi einai :", xrewsi) def BubbleSort(A, B, C): N=len© for i in range(1,N,1): for j in range(N-1,i-1,-1): if C[j]<C[j-1]: A[j], A[j-1]=A[j-1], A[j] B[j], B[j-1]=B[j-1], B[j] C[j], C[j-1]=C[j-1], C[j] epwnimo=" " customer=[] minutes=[] money=[] while epwnimo!="x": epwnimo=raw_input("Dwse epwnymo pelati :") lepta=0 if epwnimo!="x": lepta=input("Dwse lepta omilias :") debit(lepta) customer.append(epwnimo) minutes.append(lepta) money.append(xrewsi) BubbleSort(customer, minutes, money) customer.reverse() minutes.reverse() money.reverse() print customer[0:4:1] print minutes[0:4:1] print money[0:4:1] Emfanistikan kanonika ta apotelesmata auti ti fora..
k33theod Δημοσ. 16 Μαΐου 2017 Δημοσ. 16 Μαΐου 2017 Παράξενο το while είναι λάθος κάπως έτσι πρέπει να είναι while True: epwnimo=raw_input("Dwse epwnymo pelati :") if epwnimo=="x": break lepta=input("Dwse lepta omilias :") customer.append(epwnimo) minutes.append(lepta) money.append(debit(lepta))
NtinosShm Δημοσ. 16 Μαΐου 2017 Μέλος Δημοσ. 16 Μαΐου 2017 Παράξενο το while είναι λάθος κάπως έτσι πρέπει να είναι while True: epwnimo=raw_input("Dwse epwnymo pelati :") if epwnimo=="x": break lepta=input("Dwse lepta omilias :") customer.append(epwnimo) minutes.append(lepta) money.append(debit(lepta)) Σου εχω στειλει μηνυμα
xristos97 Δημοσ. 16 Μαΐου 2017 Δημοσ. 16 Μαΐου 2017 Την global γιατι τη χρησιμοποιεις; Επισης το print μετα το return δεν θα κανει κατι, στο return σταματαει η συναρτηση. Ακυρο για την global.
k33theod Δημοσ. 17 Μαΐου 2017 Δημοσ. 17 Μαΐου 2017 Την global γιατι τη χρησιμοποιεις; Επισης το print μετα το return δεν θα κανει κατι, στο return σταματαει η συναρτηση. Ακυρο για την global. To global είναι λάθος, δεν επηρεάζει βέβαια άμεσα τον κώδικα αλλά δεν έχει λόγο ύπαρξης Έχει κα άλλα λαθάκια θα τα βρει όμως
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα