Page 4 of 4

Re: Προγραμματισμός Η/Υ με Java

Posted: Mon Jun 26, 2017 11:14 am
by efev2014
Καλημέρα, έχω μια απορία σχετικά με τα θέματα Ιουνίου 2012. Στο 3ο θέμα - 2ο υποερώτημα, η λύση που προτείνει ο κύριος Σύρης είναι η εξής:

Code: Select all

Store getStoreCheapest(String iname){
    Store storeCheapest=null; 
    double priceCheapest=99999999.0; 
    for (Store s: stores)  
      if (s.hasItem(iname) && s.getPrice(iname)<priceCheapest) {  
              storeCheapest=s; priceCheapest=s.getPrice(iname); } 
    return storeCheapest; 
  }
Εγώ σκέφτηκα αυτό εδω:

Code: Select all

Store getStoreCheapest(String iname){
    String tempName = null;
           Store s1; //Αυτό μάλλον είναι λάθος
           double min = s1.getPrice(String iname); //παίρνει την τιμή για ένα τυχαίο s1
		
		   for(Store s : stores){
			   if (s.hasItem(String iname)){
				   if (s.getPrice<min){
					   min = s.getPrice;
					   tempName = s.getName
				   }
			   }
		   }
   
               return tempName;
}
Είναι σωστό σαν σκέψη; Επίσης για ποιό λόγο να θεωρήσω ότι το min είναι 99999999.0 ? Δεν δίνεται πουθενά κάποιο δεδομένο για τα όρια των τιμών.

Ευχαριστώ

Re: Προγραμματισμός Η/Υ με Java

Posted: Mon Jun 26, 2017 1:59 pm
by pgetsos
double min = s1.getPrice(String iname)

Εδω που ξερεις οτι το s1.getPrice δε θα σου σκασει NullPointer? Για αυτο στο loop μεσα τσεκαρεις πρωτα if (s.hasItem(String iname))

H λογικη στο 99999999 ειναι οτι 100 εκ. ειναι αρκετα μεγαλο και αποκλειεται να βρεις κατι με τετοια αξια. Αν θες να εισαι και τυπικα σωστος, Double.MAX_VALUE θα βαλεις, αλλα και το 100εκ. ειναι, πρακτικα, μια κανονικη καλη τιμη

(Αν και σε τιμες κτλ γενικα δεν προτεινονται floating point values, αλλα αυτα ειναι για αλλη φορα, για το μαθημα αρκει :P )

Re: Προγραμματισμός Η/Υ με Java

Posted: Mon Jun 26, 2017 7:17 pm
by Georgilakis Antonios

Code: Select all

Store s1;
double min = s1.getPrice(iname);
Console wrote: Error: variable s1 might not have been initialized.
Ενημερωτικά.

Re: Προγραμματισμός Η/Υ με Java

Posted: Tue Jun 27, 2017 3:45 am
by pgetsos
Ναι, είναι και αυτό :)

Re: Προγραμματισμός Η/Υ με Java

Posted: Fri Jun 30, 2017 5:47 pm
by Hazard
Θα ηθελα να ρωτησω σχετικα με τη βαθμολογηση του Συρη.Χρειαζομαι οπως το κοβω 2.5/4.5 στις ασκησεις θεμα Β,Γ για να περασω.Εχω κανει λαθη ομως τυπου εβαλα void αντι για boolean στι θεμα Γ,εκανα μερικα συντακτικα λαθη οπως να βαλω στο for την ανω κατω τελεια μπροστα απ τη πρωτη λεξη αντι για τη δευτερη κ.λ.π.Απο θεμα λογικης νομιζω οτι ειναι ενταξει ολες οι απαντησεις.Λετε να με περασει η κοβει πολυ?(Επισης αν μου βαλει 3.5 στο γραπτο το στρογγυλοποιει σε 4 η οχι?)Ευχαριστω.

Re: Προγραμματισμός Η/Υ με Java

Posted: Sat Jul 01, 2017 11:20 pm
by Georgilakis Antonios
Το 3.5 θα παραμείνει.

Re: Προγραμματισμός Η/Υ με Java

Posted: Sun Jul 02, 2017 4:22 pm
by Hazard
Καταλαβα.Παντως γενικα στη βαθμολογηση ειναι ελαστικος στις ασκησεις η κοβει κι αυτος οπως ο Τιτσιας?

Re: Προγραμματισμός Η/Υ με Java

Posted: Sun Jul 02, 2017 7:13 pm
by Georgilakis Antonios
Hazard wrote:Καταλαβα.Παντως γενικα στη βαθμολογηση ειναι ελαστικος στις ασκησεις η κοβει κι αυτος οπως ο Τιτσιας?
Αυτό προσωπικά δεν το γνωρίζω, αλλά φαντάζομαι ότι θα υπάρχει τουλάχιστον μια μικρή ποινή για τα συντακτικά σφάλματα. Είναι όμως στην ευχέρεια του καθηγητή να κρίνει ποια από αυτά τα σφάλματα θεωρούνται σημαντικά λάθη για ένα προγραμματιστή, και ποια θεωρούνται "σχεδόν" ασήμαντα. (όσο αφορά διόρθωση κώδικα πάνω σε γραπτό, και έχοντας υπόψη ότι αυτός συντάχθηκε χωρίς την παρουσία υπολογιστή και, πόσο μάλλον, μεταγλωττιστή)

Re: Προγραμματισμός Η/Υ με Java

Posted: Sun Jul 02, 2017 7:35 pm
by nikitas64
Αν υπάρχουν τιποτα θέματα-λυσεις του 17 παρακαλώ ανεβάστε τα αν είναι εύκολο

Re: Προγραμματισμός Η/Υ με Java

Posted: Tue Jul 04, 2017 3:36 am
by chris-
nikitas64 wrote:Αν υπάρχουν τιποτα θέματα-λυσεις του 17 παρακαλώ ανεβάστε τα αν είναι εύκολο
Υποθέτω θα ανέβουν σύντομα από τον ίδιο τον Σύρη στο e-class.

Re: Προγραμματισμός Η/Υ με Java

Posted: Sat Jul 22, 2017 5:00 pm
by fox0077
Τα θέματα του Σεπτεμβρίου είναι ίδια με του Ιουλίου; Πχ αν τον Ιούλιο έβαλε Γ θέμα άσκηση με γενεαλογικό δέντρο (findSiblings, addChildren, κλπ) θα το ξαναβάλει τον Σεπτέμβριο;

Re: Προγραμματισμός Η/Υ με Java

Posted: Sat Sep 16, 2017 8:01 pm
by billk97
Γεια σας μπορεί κάποιος να μου εξηγήσει πως ακριβός βγαίνει ?? το σκεπτικό .Μέσα στο χchange μπερδεύομαι .
Image
:) :)

Re: Προγραμματισμός Η/Υ με Java

Posted: Sat Sep 16, 2017 10:28 pm
by Funk
billk97 wrote:Γεια σας μπορεί κάποιος να μου εξηγήσει πως ακριβός βγαίνει ?? το σκεπτικό .Μέσα στο χchange μπερδεύομαι .
Image
:) :)
Λίγο απλοϊκά:
Όταν καλείται η xchange παίρνει ως παραμέτρους το 2, το οποίο περνάει στη μεταβλητή "int a" και το Test ob με τιμές (2,4).
ob.a = ob.a+ob.b; <<< Από τις τιμές του Test ob (2,4) κάνει την πρώτη (δηλ. το 2) ίση με το άθροισμα 2+4 (δηλ. 6)
ob.b = 2*ob.b; <<< Από τις τιμές του Τest ob (2,4) κάνει τη δεύτερη (δηλ. το 4) ίση με 2 επί τον εαυτό της (δηλ. 2*4 = 8)
a = ob.b; <<< Κάνει τη μεταβλητή a (δηλ. την int a) ίση με το ob.b, άρα την τιμή από την προηγούμενη γραμμή (δηλ. 8)

Στο τέλος τυπώνει τις τιμές του Test ob. (Η μεταβλητή a δεν τυπώνεται πουθενά, ούτε επηρεάζει τις τιμές του Test ob)

Re: Προγραμματισμός Η/Υ με Java

Posted: Tue Sep 19, 2017 12:38 pm
by Hazard
Καλησπερα.Το τελευταιο θεμα του Σεπτεμβρη ειχε ListNode που δεν ειχαν ξαναπεσει απ το 2009 και μας ηρθε πολυ αποτομο.Εγω προσωπικα θελω 1/2.1 εκει για να περασω το μαθημα και θελω να ρωτησω σχετικα με τη διορθωση.Πρωτη φορα εβαλε ασκηση με ξεχωριστη λιστα "l" οποτε ενα λαθος που σκεφτηκα ειναι οτι στο loop εβαλα l.length(),γιατι δεν εχει σταθερο μηκος η λιστα.Εβαλα και l.firstNode.getNext() για να προχωραει το firstNode συνεχως το οποιο στο stackoverflow βλεπω πως ειναι σωστο.Κατα τ αλλα θεωρω οτι εκανα ολα οσα μου ζηταγε σαν θεμα με μερικα λαθακια παραπλησια βιασυνης.Βαζει γενικα βαθμους για προσπαθεια και σωστη σκεψη και μερικως ορθη επιλυση η το κοβει ολο?(Ποσο μαλλον σε θεμα που ειχε να πεσει απ το 2009 και ακομα σε πιο δυσκολη μορφη...)

Re: Προγραμματισμός Η/Υ με Java

Posted: Wed Sep 20, 2017 4:42 pm
by billk97
ok το κατάλαβα thanks