Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
-
Paralias
- Gbyte level

- Posts: 1346
- Joined: Mon May 24, 2004 11:30 am
- Academic status: Alumnus/a
- Location: Αθήνα
Post
by Paralias » Wed Nov 10, 2004 4:18 pm
Χαιρετώ!Να ρωτήσω κάτι για τη Java;Στην πρώτη εργασία χρησιμοποίησα ενα if για να απορίπτω τις αρνητικές τιμές των δευτερολέπτων.Έγραψα λοιπόν:
Code: Select all
if (seconds<0)
System.out.println("Dwsate lathos timi!Parakalw dwste thetiki timi");
else{...εντολές...}
Όλα καλά μέχρι εδώ.Ήθελα όμως να απορρίπτω και τις τιμές που είναι μεγαλύτερες από 86400 δευτερόλεπτα γιατί 86400 sec έχει μία μέρα.Και τότε έγραψα:
if (seconds<0)|(seconds>86400)
System.out.println("Dwsate lathos timi!Parakalw dwste timi anamesa sto 0 kai 86400");
else{...εντολές...}
αλλά μου έβγαζε συντακτικό λάθος.Γιατιιιιιιιιιιιιιιιιιιιιιιιι;;;;;;;

-
Ethel
- Venus Project Founder

- Posts: 2395
- Joined: Fri Mar 19, 2004 10:41 am
- Academic status: Alumnus/a
- Gender: ♀
- Location: New York City, NY
-
Contact:
Post
by Ethel » Wed Nov 10, 2004 4:41 pm
Code: Select all
if (seconds<0)
System.out.println("Dwsate lathos timi!Parakalw dwste thetiki timi");
else{...εντολές...}
if ((seconds<0)||(seconds>86400)) //αλλαγή εδώ
System.out.println("Dwsate lathos timi!Parakalw dwste timi anamesa sto 0 kai 86400");
else{...εντολές...}
Για δοκίμασέ το έτσι
There's no place like 127.0.0.1
-
tsilochr
- Wow! Terabyte level

- Posts: 3246
- Joined: Tue Mar 16, 2004 2:47 pm
- Academic status: PhD
- Gender: ♂
- Location: mm.aueb.gr
-
Contact:
Post
by tsilochr » Thu Nov 11, 2004 1:09 pm
Θα γράψω περίπου το ίδιο με την ethel
Code: Select all
if ( (seconds<0) || (seconds>86400) )
Πρέπει ολόκληρη η συνθήκη "
(seconds<0) || (seconds>86400)" να είναι μέσα σε παρενθέσεις
-
Einherjar
- Venus Project Founder

- Posts: 3751
- Joined: Tue Jan 27, 2004 4:42 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Washington DC, USA
-
Contact:
Post
by Einherjar » Thu Nov 11, 2004 1:18 pm
είναι μέσα σε παρενθέσεις
[Better to understand a little than to misunderstand a lot]
-
Ethel
- Venus Project Founder

- Posts: 2395
- Joined: Fri Mar 19, 2004 10:41 am
- Academic status: Alumnus/a
- Gender: ♀
- Location: New York City, NY
-
Contact:
Post
by Ethel » Thu Nov 11, 2004 1:23 pm
tsilochr.... δεν προσέχεις...

There's no place like 127.0.0.1
-
Ganther
- Wow! Terabyte level

- Posts: 2273
- Joined: Fri Jun 18, 2004 9:31 am
- Academic status: 3rd year
- Gender: ♀
Post
by Ganther » Thu Nov 11, 2004 2:21 pm
Σωστη η εθελ. Το δοκιμασα στο Jbuilder. Αμεσως αυτο εβγαλε...

-
Paralias
- Gbyte level

- Posts: 1346
- Joined: Mon May 24, 2004 11:30 am
- Academic status: Alumnus/a
- Location: Αθήνα
Post
by Paralias » Thu Nov 11, 2004 2:54 pm
Ευχαριστώ πολύ παιδιά!Πάντως το λάθος δεν ήταν για το αν θα χρησιμοποιήσω δύο || ή ένα |. Έχει συντακτική σημασία.Αν χρησιμοποιήσω ένα | τότε εξετάζεται η πρώτη συνθήκη και αν βρεθεί true συνεχίζει και εξετάζει την επόμενη.Αν όμως χρησιμοιήσω δύο || τότε αν η πρώτη συνθήκη βρεθεί true δεν εξετάζεται η επόμενη.Βέβαια στη συγκεκριμένη περίπτωση δεν έχει καμία διαφορά,απλά έτσι το ανέφερα.Ευχαριστώ και πάλι!

-
Einherjar
- Venus Project Founder

- Posts: 3751
- Joined: Tue Jan 27, 2004 4:42 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Washington DC, USA
-
Contact:
Post
by Einherjar » Thu Nov 11, 2004 3:48 pm
είσαι σίγουρος γι'αυτό που λες? όταν υπάρχει λογικό OR τότε αρκεί ένας από τους τελεσταίους να είναι αληθής για να είναι ολόλκηρη η συνθήκη αληθής. Οπότε αν το πρώτο είναι αληθές, ολόκληρο θα είναι αληθες.
[Better to understand a little than to misunderstand a lot]
-
HdkiLLeR
- Venus Project Founder

- Posts: 4356
- Joined: Tue Jan 27, 2004 4:41 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: New York, NY
-
Contact:
Post
by HdkiLLeR » Thu Nov 11, 2004 3:48 pm
Paralias wrote:Ευχαριστώ πολύ παιδιά!Πάντως το λάθος δεν ήταν για το αν θα χρησιμοποιήσω δύο || ή ένα |. Έχει συντακτική σημασία.Αν χρησιμοποιήσω ένα | τότε εξετάζεται η πρώτη συνθήκη και αν βρεθεί true συνεχίζει και εξετάζει την επόμενη.Αν όμως χρησιμοιήσω δύο || τότε αν η πρώτη συνθήκη βρεθεί true δεν εξετάζεται η επόμενη.Βέβαια στη συγκεκριμένη περίπτωση δεν έχει καμία διαφορά,απλά έτσι το ανέφερα.Ευχαριστώ και πάλι!

H διαφορά είναι στο ότι το || είναι λογικός τελεστής σύγκρισης. Κοινώς first || second σημαίνει εάν το first ή το second είναι true -> return true. Tο | είναι και αυτός τελεστής αλλά όχι λογικός. Είναι το bitwise or.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
-
Ethel
- Venus Project Founder

- Posts: 2395
- Joined: Fri Mar 19, 2004 10:41 am
- Academic status: Alumnus/a
- Gender: ♀
- Location: New York City, NY
-
Contact:
Post
by Ethel » Thu Nov 11, 2004 9:18 pm
Ganther wrote:Σωστη η εθελ. Το δοκιμασα στο Jbuilder. Αμεσως αυτο εβγαλε...


---->
hdkiller wrote:H διαφορά είναι στο ότι το || είναι λογικός τελεστής σύγκρισης. Κοινώς first || second σημαίνει εάν το first ή το second είναι true -> return true. Tο | είναι και αυτός τελεστής αλλά όχι λογικός. Είναι το bitwise or.
το οποίο bitwise or τι κάνει;
There's no place like 127.0.0.1
-
Einherjar
- Venus Project Founder

- Posts: 3751
- Joined: Tue Jan 27, 2004 4:42 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Washington DC, USA
-
Contact:
Post
by Einherjar » Thu Nov 11, 2004 10:14 pm
είναι αυτό που κάναμε στην αρχιτεκτονική Η/Υ (ή κατά άλλους ψηφιακή σχεδίαση) όπου παίρνεις 2 bits και τα παιρνάς από πύλη OR
[Better to understand a little than to misunderstand a lot]
-
Ganther
- Wow! Terabyte level

- Posts: 2273
- Joined: Fri Jun 18, 2004 9:31 am
- Academic status: 3rd year
- Gender: ♀
Post
by Ganther » Thu Nov 11, 2004 10:33 pm
Chin chan chon, και ειμαι 3οετης... καλα παμε...

:P
(αληθεια ποσο θελετε για ιδιαιτερα??

)
-
Ethel
- Venus Project Founder

- Posts: 2395
- Joined: Fri Mar 19, 2004 10:41 am
- Academic status: Alumnus/a
- Gender: ♀
- Location: New York City, NY
-
Contact:
Post
by Ethel » Thu Nov 11, 2004 10:48 pm
Για αρχή ας πάμε στο workshop να μας μάθουν κάτι για linux και τα υπόλοιπα φαντάζομαι θα τα "διδάξουν" εν καιρώ...

There's no place like 127.0.0.1
-
HdkiLLeR
- Venus Project Founder

- Posts: 4356
- Joined: Tue Jan 27, 2004 4:41 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: New York, NY
-
Contact:
Post
by HdkiLLeR » Sat Nov 13, 2004 1:04 pm
Ethel wrote:το οποίο bitwise or τι κάνει;
Όπως είπε και ο Einherjar παραπάνω απλά περνάει τις τιμές μέσα απο ένα OR(κάνει OR ένα ένα τα bit της τιμής). Η Java αν και δεν είναι η καλύτερη γλώσα για τέτοιου είδους low level operations διαθέτει αρκετούς τελεστές. Πχ ολίσθηση(shift-για να κάνεις αμέσως 2* και να μην χρησιμοποιείς MUL κλπ κλπ), OR, AND και πολλά άλλα τα οποία σπάνια χρησιμοποιείς αλλά πολλές φορές χρειάζονται.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
-
Ethel
- Venus Project Founder

- Posts: 2395
- Joined: Fri Mar 19, 2004 10:41 am
- Academic status: Alumnus/a
- Gender: ♀
- Location: New York City, NY
-
Contact:
Post
by Ethel » Sat Nov 13, 2004 6:29 pm
Μάλιστα... Thanks παιδιά για τη διαφώτιση

There's no place like 127.0.0.1
-
Paralias
- Gbyte level

- Posts: 1346
- Joined: Mon May 24, 2004 11:30 am
- Academic status: Alumnus/a
- Location: Αθήνα
Post
by Paralias » Sat Nov 13, 2004 7:59 pm
Αυτό που είπα παραπάνω για τη διαφορά | και || το έχω διαβάσει σε βιβλίο και συγκεκριμένα γράφει: Παράδειγμα:
boolean unusual = (grimThoughts>10)||(girlfriendAge>75);
και μετά επεξηγεί:Παρατηρήστε τη χρήση του || αντί του |.Λόγω αυτής της χρήσης, αν η grimThoughts>10 είναι true,τότε η unusual τίθεται σε true και η δεύτερη έκφραση δεν αποτιμάται.
Όταν το διάβασα αυτό δεν κατάλαβα γιτί το λέει αφού αρκεί μία έκφραση να είναι true για να είναι όλη η πρόταση true.Αν βρει την πρώτη έκφραση false,τότε θα προχωρήσει στην επόμενη έκφραση.Άρα δεν έχει νόημα αυτό που γράφει το βιβλίο,σωστά;;;Anyway!Το βιβλίο είναι:"Πλήρες εγχειρίδιο της Java 2"
-
vagalati
- Mbyte level

- Posts: 579
- Joined: Tue Mar 16, 2004 2:46 pm
- Location: 7000 miles away from aueb
Post
by vagalati » Sat Nov 13, 2004 8:27 pm
Κοίταξε, παρατήρησε τις δύο παρακάτω εντολές:
Code: Select all
boolean unusual = (grimThoughts>10) || (test.isTrue());
Code: Select all
boolean unusual = (grimThoughts>10) | (test.isTrue());
Στην πρώτη περίπτωση η συνάρτηση isTrue θα εκτελεστεί μόνο αν η πρώτη συνθήκη είναι true. Ενώ στη δεύτερη θα εκτελείται πάντα!
Η διαφορά είναι ότι στην πρώτη περίπτωση ο παραγώμενος κώδικας είναι branch υπο συνθήκη για κάθε μια συνθήκη απο την πρώτη στη τελευταία ενώ στη δεύτερη είναι πρώτα bitwise OR στα αποτελέσματα και μετά συνθήκη επι του τελικού αποτελέσματος. Όσοι έχουν κάνει μεταγγλωτιστές ας θυμηθούν λίγο την παραγωγή κώδικα...
Ni!! Ni!! Ni!!