kiriazispao4ever
Δραστήριο μέλος
Πάρτε και μια ωραία που κατέβασα τώρα, με αφορμή ένα επιτραπέζιο που μ' αρέσει. Δεν είναι δύσκολη.
Αυτό θα σας εξασκήσει στο αν μπορείτε να εξάγετε πληροφορίες από εκφώνηση, κάτι που πέφτει σε Πανελλήνιες. Δεν απαιτεί πίνακες ή επανάληψη, μόνο απλές δομές ελέγχου.ΆσκησηΖήτημα να είναι 10-20 γραμμές κώδικας. Και για όσους ξέρουν υποπρογράμματα και συναρτήσεις, υπάρχει μια ωραία επέκταση.
Στο επιτραπέζιο παιχνίδι «7 Wonders», οι παίχτες μπορούν να μαζεύουν πόντους νίκης με 7 διαφορετικούς τρόπους. Ένα μονοπάτι είναι μέσω συλλογής επιστημονικών συμβόλων. Στο παιχνίδι υπάρχουν τρία διαφορετικά επιστημονικά σύμβολα, καθένα σε πολλαπλά αντίγραφα: ο τροχός, η ταμπλέτα και ο διαβήτης.
Η αξία των επιστημονικών συμβόλων υπολογίζεται στο τέλος του παιχνδιού και φέρνουν πόντους νίκης με δύο τρόπους:
Παράδειγμα: η Σοφία έχει μαζέψει στο τέλος του παιχνιδιού 2 τροχούς, 1 ταμπλέτα και 3 διαβήτες. Από το κάθε σύμβολο ξεχωριστά, θα μαζέψει (2)² + (1)² + (3)² = 14 πόντους. Επιπλέον, επειδή έχει ένα ολοκληρωμένο σετ θα πάρει 7 επιπλέον πόντους, οπότε η τελική της βαθμολογία θα είναι 14 + 7 = 21 πόντοι νίκης.
- Κάθε σύμβολο που έχει μαζευτεί n φορές, φέρνει n² πόντους νίκης.
- Επιπλέον, για κάθε ολοκληρωμένο σετ τροχού-ταμπλέτα-διαβήτη, ο παίχτης παίρνει επιπλέον 7 πόντους ως bonus.
Να γραφεί αλγόριθμος ο οποίος θα δέχεται ως είσοδο τον αριθμό του κάθε επιστημονικού συμβόλου που έχει μαζέψει ένας παίχτης και θα εμφανίζει την τελική του βαθμολογία. Θεωρήστε ότι στην είσοδο θα δίνονται μη-αρνητικές τιμές.
Εκφώνηση από Γιώργος
print ("θα μετρησουμε τους βαθμους στο επιτραπέζιο παιχνίδι '7 Wonders'")
on=input ("Δωσε ονομα: ")
x=int(input ("δωσε βαθμους για τροχό:"))
c=int(input ("δωσε βαθμους για ταμπλέτα:"))
v=int(input ("δωσε βαθμους για διαβήτη:"))
k=x*x
j=c*c
l=v*v
print (" οι ποντοι απο τον τρόχο είναι :",(k))
print (" οι ποντοι απο την ταμπλέτα είναι :",(j))
print (" οι ποντοι απο τον διαβητη είναι :",(l))
print ("Συνολικοι πόντοι για τον/την:",on,"είναι :",k+j+l)
if (x<1 or c<1 or v<1):
print("Δεν δικαιούσαι Bonus")
else:
min=0
if (x<c and c<v):
min=x
elif (c<x and v>c):
min=c
else:
min=v
bonus=min*7
print ("Συνολικοι πόντοι μαζί με τα Bonus για τον την:",on,"είναι :",k+j+l+bonus)
Γιώργο είναι σωστή η λύση?
Βασικά πρώτα με ενδιαφέρει αν έχω χρησιμοποιήσει σωστά την python ...
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Guest 875331
Επισκέπτης
Αυτό βλέπω τώρα δε μπορούσα να μη το αναφέρω με το που είδα το θρεντ.
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
kiriazispao4ever
Δραστήριο μέλος
Αυτό βλέπω τώρα δε μπορούσα να μη το αναφέρω με το που είδα το θρεντ.
???
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Guest 875331
Επισκέπτης
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
kiriazispao4ever
Δραστήριο μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Γιώργος
Τιμώμενο Μέλος
Σωστό *φαίνεται*, αλλά για να τσεκάρεις την ορθότητα θα πρέπει να το τρέξεις. Αν έχεις linux, απλώς γράψε σε terminal "python 7w.py"Γιώργο είναι σωστή η λύση?Code:print ("θα μετρησουμε τους βαθμους στο επιτραπέζιο παιχνίδι '7 Wonders'") on=input ("Δωσε ονομα: ") x=int(input ("δωσε βαθμους για τροχό:")) c=int(input ("δωσε βαθμους για ταμπλέτα:")) v=int(input ("δωσε βαθμους για διαβήτη:")) k=x*x j=c*c l=v*v print (" οι ποντοι απο τον τρόχο είναι :",(k)) print (" οι ποντοι απο την ταμπλέτα είναι :",(j)) print (" οι ποντοι απο τον διαβητη είναι :",(l)) print ("Συνολικοι πόντοι για τον/την:",on,"είναι :",k+j+l) if (x<1 or c<1 or v<1): print("Δεν δικαιούσαι Bonus") else: min=0 if (x<c and c<v): min=x elif (c<x and v>c): min=c else: min=v bonus=min*7 print ("Συνολικοι πόντοι μαζί με τα Bonus για τον την:",on,"είναι :",k+j+l+bonus)
Βασικά πρώτα με ενδιαφέρει αν έχω χρησιμοποιήσει σωστά την python ...
Δοκίμασα να το τρέξω, αλλά κολλάει στα ελληνικά γράμματα. Και δεν έχω χρόνο να το διορθώσω εγώ, για να το τρέξω. Η λογική φαίνεται σωστή.
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
kiriazispao4ever
Δραστήριο μέλος
Σωστό *φαίνεται*, αλλά για να τσεκάρεις την ορθότητα θα πρέπει να το τρέξεις. Αν έχεις linux, απλώς γράψε σε terminal "python 7w.py"
Δοκίμασα να το τρέξω, αλλά κολλάει στα ελληνικά γράμματα. Και δεν έχω χρόνο να το διορθώσω εγώ, για να το τρέξω. Η λογική φαίνεται σωστή.
ναι οκ...ετρεχε
σωστά πρέπει να ναι και τα αποτελέσματα
ευχαριστωωω
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Guest 875331
Επισκέπτης
(ξεκίνησα python σήμερα)
βάζω:
y = int(raw_input("dwse ari8mo:")
if y < 3 :
print( "kati" )
else :
print( " kati allo")
και βγάζει error τι κάνω λάθος?
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
kiriazispao4ever
Δραστήριο μέλος
Να ρωτήσω και γω κάτι:
(ξεκίνησα python σήμερα)
βάζω:
y = int(raw_input("dwse ari8mo:")
if y < 3 :
print( "kati" )
else :
print( " kati allo")
και βγάζει error τι κάνω λάθος?
απο τα λίγα που ξέρω στην Python
1ον )ξεκίνα την python 3 και οχι την 2.7 (πχ δεν θα έχεις την raw_input,που θα αντικατασταθεί απο την input)
τα λάθη σου (ΙΣΩΣ ...ΔΕΝ ΞΕΡΩ ΚΑΛΑ PYTHON,ΟΥΤΕ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ )
1on Η συνάρτηση raw_input είναι για αλφαριθμητικά.. όχι για αριθμούς..Αρκουσε να βάλεις στην πρώτη σειρά
y=int(input("δωσε αριθμο:"))
η σύνταξη είναι η εξής :
if (y<3):
print ("kati")
else:
print ("kati allo")
συνολικα ο κώδικας (που τρέχει σε python 3)είναι...
y=int(input("δωσε αριθμο:"))
if (y<3):
print ("kati")
else:
print ("kati allo")
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Stelios1997
Εκκολαπτόμενο μέλος
Να ρωτήσω και γω κάτι:
(ξεκίνησα python σήμερα)
βάζω:
y = int(raw_input("dwse ari8mo:")
if y < 3 :
print( "kati" )
else :
print( " kati allo")
και βγάζει error τι κάνω λάθος?
Στην 2.7 μπορεί να γραφεί και έτσι(Με τα απαραίτητα κενά αριστερά από κάθε print.Τα οποία δεν τα βγάζει εδώ.):
y = input("Δώσε τον αριθμό:")
if y:
print "Κάτι"
else:
print "Κάτι άλλο"
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
MakisH
Εκκολαπτόμενο μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Stelios1997
Εκκολαπτόμενο μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
MakisH
Εκκολαπτόμενο μέλος
Μια κλάση είναι ένα "καλούπι" που "γεννάει" αντικείμενα.
Ένα αντικείμενο στον προγραμματισμό μπορείς να πεις ότι είναι κάτι το οποίο έχει όνομα, ιδιότητες, μεθόδους (και ίσως ξεχνάω κάτι).
Π.χ. το αντικείμενο "Stelios1997" θα μπορούσαμε να πούμε ότι έχει τις ιδιότητες: όνομα ("Stelios1997"), τάξη ("Β' Λυκείου"), τοποθεσία ("Λαμία"), αριθμό posts (124) κτλ. Παράλληλα, έχει π.χ. τη μέθοδο "replyToPost".
Όταν λοιπόν καλείς τη μέθοδο "Stelios1997.replyToPost", δηλαδή τη μέθοδο "replyToPost" του αντικειμένου "Stelios1997", τότε το αντικείμενο στέλνει ότι είναι να στείλει, αυξάνει κατά ένα την ιδιότητα "αριθμός posts" του κτλ.
Αντίστοιχα, ένα αντικείμενο είναι το "MakisH". Έχει διαφορετικές τιμές για τις ίδιες ιδιότητες. Τα αντικείμενα λοιπόν "Stelios1997" και "MakisH" προέρχονται από την ίδια κλάση (έστω η κλάση "χρήστης").
Αν τώρα ορίζαμε το αντικείμενο "τυρόπιτα", αυτό δεν προέρχεται από την ίδια κλάση, καθώς έχει διαφορετικές ιδιότητες και μεθόδους. Έχει πχ την ιδιότητα "γεύση", ενώ δεν έχει την ιδιότητα "αριθμός posts". Αντίστοιχα, έχει τη μέθοδο "φαγώσου", αλλά δεν έχει τη μέθοδο "replyToPost" Είναι και τελείως άλλο.
Υπάρχει και η έννοια της κληρονομικότητας. Από μια κλάση τύπου "χρήστης" μπορώ να φτιάξω πχ μια κλάση του τύπου "συντονιστής". Τα αντικείμενα που φτιάχνονται από αυτήν θα έχουν όλες τις ιδιότητες ενός αντικειμένου που προέρχεται από την κλάση "χρήστης", συν μερικές ακόμα ιδιότητες. Άρα η κλάση "συντονιστής" έχει κληρονομήσει μερικές ιδιότητες από την κλάση "χρήστης".
Παρακαλώ διορθώστε με αν έχω κάνει λάθος.
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Stelios1997
Εκκολαπτόμενο μέλος
ΔΕΝ προγραμματίζω γενικώς σε αντικειμενοστραφείς γλώσσες, ούτε από Python ξέρω, αλλά από κάτι σεμινάρια Java που είχα παρακολουθήσει και από ότι έχω καταλάβει σου μεταφέρω τα εξής:
Μια κλάση είναι ένα "καλούπι" που "γεννάει" αντικείμενα.
Ένα αντικείμενο στον προγραμματισμό μπορείς να πεις ότι είναι κάτι το οποίο έχει όνομα, ιδιότητες, μεθόδους (και ίσως ξεχνάω κάτι).
Π.χ. το αντικείμενο "Stelios1997" θα μπορούσαμε να πούμε ότι έχει τις ιδιότητες: όνομα ("Stelios1997"), τάξη ("Β' Λυκείου"), τοποθεσία ("Λαμία"), αριθμό posts (124) κτλ. Παράλληλα, έχει π.χ. τη μέθοδο "replyToPost".
Όταν λοιπόν καλείς τη μέθοδο "Stelios1997.replyToPost", δηλαδή τη μέθοδο "replyToPost" του αντικειμένου "Stelios1997", τότε το αντικείμενο στέλνει ότι είναι να στείλει, αυξάνει κατά ένα την ιδιότητα "αριθμός posts" του κτλ.
Αντίστοιχα, ένα αντικείμενο είναι το "MakisH". Έχει διαφορετικές τιμές για τις ίδιες ιδιότητες. Τα αντικείμενα λοιπόν "Stelios1997" και "MakisH" προέρχονται από την ίδια κλάση (έστω η κλάση "χρήστης").
Αν τώρα ορίζαμε το αντικείμενο "τυρόπιτα", αυτό δεν προέρχεται από την ίδια κλάση, καθώς έχει διαφορετικές ιδιότητες και μεθόδους. Έχει πχ την ιδιότητα "γεύση", ενώ δεν έχει την ιδιότητα "αριθμός posts". Αντίστοιχα, έχει τη μέθοδο "φαγώσου", αλλά δεν έχει τη μέθοδο "replyToPost" Είναι και τελείως άλλο.
Υπάρχει και η έννοια της κληρονομικότητας. Από μια κλάση τύπου "χρήστης" μπορώ να φτιάξω πχ μια κλάση του τύπου "συντονιστής". Τα αντικείμενα που φτιάχνονται από αυτήν θα έχουν όλες τις ιδιότητες ενός αντικειμένου που προέρχεται από την κλάση "χρήστης", συν μερικές ακόμα ιδιότητες. Άρα η κλάση "συντονιστής" έχει κληρονομήσει μερικές ιδιότητες από την κλάση "χρήστης".
Παρακαλώ διορθώστε με αν έχω κάνει λάθος.
Ευχαριστώ για πληροφορίες τα περισσότερα ήδη τα γνώριζα απλά δεν μπορώ να βρώ σαφή ορισμό για την κλάση.Αυτό που είπες με το καλούπι απλοποιεί κάπως τα πράγματα μες το μυαλό μου.
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
kiriazispao4ever
Δραστήριο μέλος
πχ
x=int(input("dwse ari8mo"))
counter=0
counter2=0
if (x=="2"):
counter2=counter2+1
else:
counter=counter+1
print (counter,counter2)
κάθε φορά που τρέχει το πρόγραμμα ο κάθε counter να συνεχίζει απο κει που είχε μείνει..
πχ τρέχει το προγραμμα 10 φορές (το κλεινουμε και το ξανανοιγουμε)
καθε φορά ο χρήστης δίνει τον αριθμό 2...
ομως αν το αφήσουμε ετσι ΚΑΘΕ ΦΟΡΑ στο τέλος του προγραμματος θα δίνεται ως έξοδος η τιμη (1)...
εγώ θα ήθελα ..μετα απο 10 φορές να δίνεται η έξοδος 10...
υγ1* Δεν ξέρω αν ο κώδικας που παρέθεσα τρέχει...δεν τον δοκίμασα
υγ2*το προγραμμα θα κλείνει και θα ξανανοίγει ...δεν μιλάω για loop..
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Πληροφορικάριος
Δραστήριο μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
kiriazispao4ever
Δραστήριο μέλος
Αν θές να αποθηκέυσεις μόνιμα τιμές στον δίσκο χρησιμοποίησε αρχεία.
το φαντάστηκα οτι κάπως έτσι θα γίνεται ..
θα το ψάξω..ευχαριστωωω
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
kiriazispao4ever
Δραστήριο μέλος
λοιπον το έψαξα λίγοΑν θές να αποθηκέυσεις μόνιμα τιμές στον δίσκο χρησιμοποίησε αρχεία.
και το έκανα ,βέβαια οχι όπως περίμενα (γιατι δεν με αφήνει να γράψω στο αρχείο αριθμούς,παρα μόνο string...αλλά άλλο θέμα)
αυτό που πρόσεξα όμως είναι ότι στο αρχείο ΔΕΝ ΑΠΟΘΗΚΕΥΕΤΑΙ η τελευταία τιμή
το προγραμμα που έφτιαξα κανει το εξής
1)ρωταεί το χρήστη που πηγε
2)ανάλογα την απάντηση του γραφει στο αρχείο το μέρος που πήγε
εστω οτι τρέχω το προγραμμα 5 φορες...
Σαν είσοδοι δίνονται:
μερος1,μερος1,μερος2,μερος1,μερος3,
Η έξοδος θα έπρεπε να είναι
μερος1
μερος1
μερος2
μερος1
μερος3
Σε μένα ομως η έξοδος είναι
μερος1
μερος1
μερος2
μερος1
ΛΕΙΠΕΙ το μερος3 ..γιατί άραγε? καμιά ιδέα?
αυτή την εντολή χρησιμοποιήσα
arxeio=open("metrhtes.txt","a")
και μεσα σε καθε if
arxeio.write("meros(x)\n"
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
MakisH
Εκκολαπτόμενο μέλος
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
kiriazispao4ever
Δραστήριο μέλος
Κάτι παίζει με τη σειρά των εντολών. Δώσε όλο τον κώδικα.
print ("ΓΡΑΦΕ ΚΕΦΑΛΑΙΑ")
print ("ΠΙΘΑΝΕΣ ΑΠΑΝΤΗΣΕΙΣ: Α,Π,Ι,ΠΑ,Σ")
meros=str(input('ΠΟΥ ΠΗΓΕΣ Η ΘΑ ΠΑΣ :'))
ca=0
cp=0
ci=0
cpa=0
cps=0
arxeio=open("metrhtes.txt","a")
if (meros=="Α"):
ca=ca+1
arxeio.write("Α\n")
elif (meros=="Π"):
cp=cp+1
arxeio.write("Π\n")
elif (meros=="Ι"):
ci=ci+1
arxeio.write("Ι\n")
elif (meros=="ΠΑ"):
cpa=cpa+1
arxeio.write("ΠΑ\n")
elif (meros=="Σ"):
cps=cps+1
arxeio.write("Σ\n")
else:
print ("ΛΑΘΟΣ ΕΙΣΑΓΩΓΗ");
Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.
Χρήστες Βρείτε παρόμοια
-
Τα παρακάτω 0 μέλη και 1 επισκέπτες διαβάζουν μαζί με εσάς αυτό το θέμα:Tα παρακάτω 3 μέλη διάβασαν αυτό το θέμα:
-
Φορτώνει...
-
Το forum μας χρησιμοποιεί cookies για να βελτιστοποιήσει την εμπειρία σας.
Συνεχίζοντας την περιήγησή σας, συναινείτε στη χρήση cookies στον περιηγητή σας.