Προγραμματιστική απορία σε Java

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
User avatar
necrofear_13
Wow! Terabyte level
Wow! Terabyte level
Posts: 2141
Joined: Sun Nov 18, 2007 5:32 am
Academic status: Alumnus/a
Gender:
Location: ΗΡΑΚΛΕΙΟ ΑΤΤΙΚΗΣ

Re: Προγραμματιστική απορία σε Java

Post by necrofear_13 » Fri Nov 21, 2008 12:36 am

Παιδια οταν βαζω classname.this τι γινεται τοτε?ολες οι απαντησεις δεκτες,
No matter what kind of sadness envelops the darkness of our despair, if you put one foot in front of the other, at some point you will reach a place where you can see the light.

In heaven or earth, no matter to where we progress, no matter where we walk, that becomes our road.
As long as we keep walking the battle will continue.
And that is exactly why this place will always be a paradise
User avatar
netharis
Venus Former Team Member
Posts: 1845
Joined: Sun Jul 15, 2007 2:37 pm
Academic status: Alumnus/a
Gender:
Location: Seattle, Washington
Contact:

Re: Προγραμματιστική απορία σε Java

Post by netharis » Fri Nov 21, 2008 1:12 am

necrofear_13 wrote:Παιδια οταν βαζω classname.this τι γινεται τοτε?ολες οι απαντησεις δεκτες,
Η τάξη σου θα πρέπει να είναι static για να κάνεις κάτι τέτοιο.
Υποθέτω οτι θα σου επιστρέψει την αναφορά στην οποία στεγάστηκε το μεμονωμένο instance της στατικής τάξης σου.
Image
Resistance is futile. Join the foss-side now!
"UNIX is very simple, it just needs a genius to understand its simplicity." - Dennis Ritchie
"The things that I want, by Max Payne. A smoke. A whiskey. For the sun to shine. I want to sleep, to forget. To change the past. Unlimited ammo and a license to kill. But right then, more than anything, I wanted her."
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

Re: Προγραμματιστική απορία σε Java

Post by rose » Tue Nov 25, 2008 9:53 am

netharis wrote:
necrofear_13 wrote:Παιδια οταν βαζω classname.this τι γινεται τοτε?ολες οι απαντησεις δεκτες,
Η τάξη σου θα πρέπει να είναι static για να κάνεις κάτι τέτοιο.
Υποθέτω οτι θα σου επιστρέψει την αναφορά στην οποία στεγάστηκε το μεμονωμένο instance της στατικής τάξης σου.
Νομίζω είναι λάθος neth.


Θα σου δώσω ένα παράδειγμα.


you need ActionListener ref.

Code: Select all

public class ManagementForm { 
...
Button b=new Button();
		b.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e)
			{
                                                                //
                                                                // this==current object ref - ActionListener.  
				Form form = new Form(this); 
			}
		});
....
}
you need ManagementForm ref

Code: Select all

public class ManagementForm {
....
Button b=new Button();
		b.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e)
			{
                                                                //
                                                                // this==current object ref - ManagementForm.
				Form form = new Form(ManagementForm.this); 
			}
		});
...
}
που θα πάει θα το δουμε...
User avatar
netharis
Venus Former Team Member
Posts: 1845
Joined: Sun Jul 15, 2007 2:37 pm
Academic status: Alumnus/a
Gender:
Location: Seattle, Washington
Contact:

Re: Προγραμματιστική απορία σε Java

Post by netharis » Tue Nov 25, 2008 3:45 pm

Δεν νομίζω να εννοεί κάτι τέτοιο ο necrofear.
Αυτό που λες αναφέρεται σε εσωτερικές τάξεις οπου γίνεται απόκρυψη του this, και χρειάζεσαι άλλο identifier για να πάρεις το reference της εξωτερικής τάξης.

Ο necrofear εννοεί κάτι τέτοιο

Code: Select all

class foo
{
     public void print()
     {
            System.out.println("Hi");
      }
}
και ύστερα σε μία εφαρμογή

Code: Select all

System.out.println(foo.this);
Όντως δεν θα κάνει compile τώρα που το ξανασκέφτομαι.
Πρέπει όταν καλείς την αναφορά this να είσαι μέσα σε εμφωλευμένη τάξη.
Σωστός rose για την επισήμανση ;)
Image
Resistance is futile. Join the foss-side now!
"UNIX is very simple, it just needs a genius to understand its simplicity." - Dennis Ritchie
"The things that I want, by Max Payne. A smoke. A whiskey. For the sun to shine. I want to sleep, to forget. To change the past. Unlimited ammo and a license to kill. But right then, more than anything, I wanted her."
User avatar
necrofear_13
Wow! Terabyte level
Wow! Terabyte level
Posts: 2141
Joined: Sun Nov 18, 2007 5:32 am
Academic status: Alumnus/a
Gender:
Location: ΗΡΑΚΛΕΙΟ ΑΤΤΙΚΗΣ

Re: Προγραμματιστική απορία σε Java

Post by necrofear_13 » Thu Dec 04, 2008 10:47 am

for(h=1;h<=(r-1)/9;h=3*h+1); Παιδια αυτη η εντολη τι κανει?Εννοω το ; εξω απο το for τι ακριβως κανει?
No matter what kind of sadness envelops the darkness of our despair, if you put one foot in front of the other, at some point you will reach a place where you can see the light.

In heaven or earth, no matter to where we progress, no matter where we walk, that becomes our road.
As long as we keep walking the battle will continue.
And that is exactly why this place will always be a paradise
User avatar
tsilochr
Wow! Terabyte level
Wow! Terabyte level
Posts: 3246
Joined: Tue Mar 16, 2004 2:47 pm
Academic status: PhD
Gender:
Location: mm.aueb.gr
Contact:

Re: Προγραμματιστική απορία σε Java

Post by tsilochr » Thu Dec 04, 2008 10:52 am

τίποτα. το αποτέλεσμα αυτού του for είναι να αλλάξει απλά η τιμή του h
User avatar
marios
Wow! Terabyte level
Wow! Terabyte level
Posts: 2810
Joined: Wed Sep 26, 2007 3:44 pm
Academic status: Alumnus/a
Gender:
Location: Μεταξύ φθοράς και αφθαρσίας

Re: Προγραμματιστική απορία σε Java

Post by marios » Thu Dec 04, 2008 10:53 am

Αν είναι σαν το while (συνθήκη); δεν κάνει απολύτως τίποτα... Είναι σαν να έγραφες(αν επιτρεπόταν):

Code: Select all

for(h=1;h<=(r-1)/9;h=3*h+1)
{
}
Μην κλαις επειδή τελείωσε. Χαμογέλα επειδή συνέβη- G.G.M.
Η μεγαλύτερη ευτυχία είναι να ξέρεις την πηγή της δυστυχίας-F.D.
Η μουσική εκφράζει αυτά που δεν μπορούν να ειπωθούν και που είναι αδύνατο να μείνουν στη σιωπή-V.H.
Πίστη στην πρόοδο, δεν σημαίνει και πίστη στο ότι έχει συμβεί κάποια πρόοδος-F.K.
Χωρίς μουσική, η ζωή θα ήταν ένα λάθος-F.N
User avatar
necrofear_13
Wow! Terabyte level
Wow! Terabyte level
Posts: 2141
Joined: Sun Nov 18, 2007 5:32 am
Academic status: Alumnus/a
Gender:
Location: ΗΡΑΚΛΕΙΟ ΑΤΤΙΚΗΣ

Re: Προγραμματιστική απορία σε Java

Post by necrofear_13 » Thu Dec 04, 2008 11:05 am

Ναι παιδια οντως δεν κανει κατι!!!
No matter what kind of sadness envelops the darkness of our despair, if you put one foot in front of the other, at some point you will reach a place where you can see the light.

In heaven or earth, no matter to where we progress, no matter where we walk, that becomes our road.
As long as we keep walking the battle will continue.
And that is exactly why this place will always be a paradise
User avatar
~~Wind~~
Gbyte level
Gbyte level
Posts: 1747
Joined: Thu Nov 30, 2006 1:07 am
Academic status: N>4
Gender:
Location: *void

Re: Προγραμματιστική απορία σε Java

Post by ~~Wind~~ » Thu Dec 04, 2008 4:01 pm

marios wrote:Αν είναι σαν το while (συνθήκη); δεν κάνει απολύτως τίποτα... Είναι σαν να έγραφες(αν επιτρεπόταν):

Code: Select all

for(h=1;h<=(r-1)/9;h=3*h+1)
{
}
επιτρεπεται αυτο, αλλα λιγο διαφορετικα

Code: Select all

for(h=1; h <= (r-1)/9; h=3*h+1) { 
     /*do nothing - empty statement*/ ;
}
ImageImage
Come to foss-aueb ...we have cookies.. yamyam~nomnomnomnomnomnomnomnom
a cookie ~ I will do science to it
User avatar
Luke
Gbyte level
Gbyte level
Posts: 1388
Joined: Wed Aug 09, 2006 11:19 am
Academic status: Alumnus/a
Gender:

Re: encoding για Ελληνικά σε Java

Post by Luke » Sun Dec 07, 2008 1:44 pm

Έχω κάποια προγραμματάκια σε Java (από συνοδευτικό cd ακαδημαϊκού μας συγγράμματος) στα οποία όμως τα text μηνύματα είναι γραμμένα με ελληνικούς χαρακτήρες στον πηγαίο κώδικα. Έτσι όταν τυπώνονται στην κονσόλα βγαίνουν ακαταλαβίστικα. Μπορώ να αλλάξω κάτι (εκτός από τον πηγαίο κώδικα :-p) ώστε να μπορώ να διακρίνω τι γράφει;
Είμαι ένας μοναχικός cowboy...
User avatar
~~Wind~~
Gbyte level
Gbyte level
Posts: 1747
Joined: Thu Nov 30, 2006 1:07 am
Academic status: N>4
Gender:
Location: *void

Re: Προγραμματιστική απορία σε Java

Post by ~~Wind~~ » Sun Dec 07, 2008 2:43 pm

Υπαρχει τροπος να ορισεις το encoding αλλα δε θυμαμαι τωρα πως. :oops:


http://java.sun.com/j2se/1.4.2/docs/api ... tream.html
http://www.insomnia.gr/forum/showthread.php?t=123166
http://www.freestuff.gr/forums/viewtopic.php?p=200813

δοκιμασε.. :smt017
ImageImage
Come to foss-aueb ...we have cookies.. yamyam~nomnomnomnomnomnomnomnom
a cookie ~ I will do science to it
User avatar
netharis
Venus Former Team Member
Posts: 1845
Joined: Sun Jul 15, 2007 2:37 pm
Academic status: Alumnus/a
Gender:
Location: Seattle, Washington
Contact:

Re: Προγραμματιστική απορία σε Java

Post by netharis » Sun Dec 07, 2008 5:23 pm

Αν εννοείς σε command prompt:

Code: Select all

chcp 1253
Αλλάζεις το codepage στα ελληνικά.
Image
Resistance is futile. Join the foss-side now!
"UNIX is very simple, it just needs a genius to understand its simplicity." - Dennis Ritchie
"The things that I want, by Max Payne. A smoke. A whiskey. For the sun to shine. I want to sleep, to forget. To change the past. Unlimited ammo and a license to kill. But right then, more than anything, I wanted her."
User avatar
Luke
Gbyte level
Gbyte level
Posts: 1388
Joined: Wed Aug 09, 2006 11:19 am
Academic status: Alumnus/a
Gender:

Re: Προγραμματιστική απορία σε Java

Post by Luke » Sun Dec 07, 2008 8:23 pm

~~Wind~~ wrote:Υπαρχει τροπος να ορισεις το encoding αλλα δε θυμαμαι τωρα πως. :oops:


http://java.sun.com/j2se/1.4.2/docs/api ... tream.html
http://www.insomnia.gr/forum/showthread.php?t=123166
http://www.freestuff.gr/forums/viewtopic.php?p=200813

δοκιμασε.. :smt017
Ευχαριστώ για τα links.
netharis wrote:Αν εννοείς σε command prompt:

Code: Select all

chcp 1253
Αλλάζεις το codepage στα ελληνικά.
Δυστυχώς με αυτό δε διορθώθηκε το πρόβλημα. Όπως αναφέρει κι ένα από τα links που παρέθεσε ο ~~Wind~~ σε DOS δεν υπάρχει τρόπος για να εμφανιστούν ελληνικά.

Αυτό που τελικά έκανα ήταν να πειράξω (αναγκαστικά) τον κώδικα. Όπου είχε System.err το έκανα System.out και από DOS έκανα ανακατεύθυνση σε ένα text αρχείο την εκτέλεση του προγράμματος (γιατί με το System.err δεν γίνεται ανακατεύθυνση). Εκεί εμφανίζονται κανονικά τα μηνύματα.
Είμαι ένας μοναχικός cowboy...
User avatar
~~Wind~~
Gbyte level
Gbyte level
Posts: 1747
Joined: Thu Nov 30, 2006 1:07 am
Academic status: N>4
Gender:
Location: *void

Re: Προγραμματιστική απορία σε Java

Post by ~~Wind~~ » Sun Dec 07, 2008 8:26 pm

Το διαβασα κι εγω αυτο Luke για το DOS, αλλα
1. Δε νομιζω οτι η cmd των windows ειναι Dos , απλα εχει καποια κοινα στοιχεια.
2. Σε Ελληνικα windows εχεις κ Ελληνικη cmd οποτε...

λιγο αβασιμο μου φαινεται .. :smt002
ImageImage
Come to foss-aueb ...we have cookies.. yamyam~nomnomnomnomnomnomnomnom
a cookie ~ I will do science to it
User avatar
Luke
Gbyte level
Gbyte level
Posts: 1388
Joined: Wed Aug 09, 2006 11:19 am
Academic status: Alumnus/a
Gender:

Re: Προγραμματιστική απορία σε Java

Post by Luke » Sun Dec 07, 2008 8:28 pm

~~Wind~~ wrote: 2. Σε Ελληνικα windows εχεις κ Ελληνικη cmd οποτε...
Δεν έχω ελληνικά windows, αλλά οι ελληνικές γραμματοσειρές είναι κανονικά εγκατεστημένες.
Δεν ξέρω τι συμβαίνει, δεν τα πάω καλά με τις κωδικοποιήσεις. :???:


[Added]
Τελικά επειδή είναι αρκετά τα αρχεία που θέλω να δοκιμάσω δεν γίνεται να κάνω την ίδια διαδικασία συνέχεια. Αν και είναι άσχετα τα περισσότερα μεταξύ τους τα έβαλα όλα σε ένα NetBeans project και παίζουν κανονικά στην κονσόλα του. Το μόνο περίεργο ότι με ένα απλό copy-paste των αρχείων δεν αναγνωρίζει τα ελληνικά στον πηγαίο κώδικα (εμφανίζει κουτάκια στη θέση τους) αλλά με copy-paste του περιεχομένου των αρχείων όλα εντάξει. Έλεος. :-D
Είμαι ένας μοναχικός cowboy...
User avatar
~~Wind~~
Gbyte level
Gbyte level
Posts: 1747
Joined: Thu Nov 30, 2006 1:07 am
Academic status: N>4
Gender:
Location: *void

Re: Προγραμματιστική απορία σε Java

Post by ~~Wind~~ » Mon Dec 08, 2008 1:16 am

NetBeans κ ξερό ψωμι. Παλευετε με τα συνεχομενα compile σε καθε save στο eclipse οι υπολοιποι.. :smt016
Spoiler: εμφάνιση/απόκρυψη
λιγο spam να αναψουν τα αιματα, τι τα περασα τα 1000 ποστ? να τιμισω το επισιμο ονομα μου σαν επισιμος spammer :-D
ImageImage
Come to foss-aueb ...we have cookies.. yamyam~nomnomnomnomnomnomnomnom
a cookie ~ I will do science to it
The Punisher
Venus Former Team Member
Posts: 7561
Joined: Thu Oct 27, 2005 1:43 pm
Academic status: Alumnus/a
Gender:
Location: Boston, MA

Re: Προγραμματιστική απορία σε Java

Post by The Punisher » Mon Dec 08, 2008 1:45 am

~~Wind~~ wrote:Παλευετε με τα συνεχομενα compile σε καθε save στο eclipse οι υπολοιποι
υπάρχει ένα checkbox για αυτό. Γιατί το eclipse δουλεύει τόσο στους luxάτους τύπους, όσο και στους ταπεινούς developers. και δεν σου γεμίζει το profile Κάθε φορά που τολμήσεις να το ανοίξεις .. :twisted:
User avatar
proskopos
Wow! Terabyte level
Wow! Terabyte level
Posts: 2808
Joined: Tue Dec 18, 2007 4:01 pm
Academic status: Alumnus/a
Gender:
Location: Στα φεγγάρια του Πλάνταρ...
Contact:

Re: Προγραμματιστική απορία σε Java

Post by proskopos » Mon Dec 08, 2008 7:13 pm

Code: Select all

	tokenizer.ordinaryChar('+');
	tokenizer.ordinaryChar('-');
	tokenizer.ordinaryChar('*');
	tokenizer.ordinaryChar('/');        
        
        while (tokenizer.nextToken() != StreamTokenizer.TT_EOF) {
        switch (tokenizer.ttype) {
        case StreamTokenizer.TT_WORD:
          System.out.println(tokenizer.sval);
          break;
        case StreamTokenizer.TT_NUMBER:
          System.out.println(tokenizer.nval);
          break;
        default:
          System.out.println(tokenizer.ttype);
        }
      }
τρέχω το παράδειγμα αυτό όπως το βρήκα σε ένα tutorial αλλα μου βγάζει τους τελεστές +,-,/,* σαν αριθμούς.. τους έβαλα ordinaryChar (αν και δεν έχει σχέση νομίζω) αλλά τίποτα...Τι να κάνω για να φαίνονται σωστά...?

--------------------------------------------------------------------------------------------------------------------------------

Η λύση είναι

Code: Select all

            switch (tokenizer.ttype) 
            {
                
                case StreamTokenizer.TT_NUMBER:
                System.out.println(tokenizer.nval);
                break;
                default :
          	System.out.println((char)tokenizer.ttype);
          	break;
            }//switch
Για όσους ενδιαφέρονται...
Extreme Makeover... Mind edition...
3,6 μαθήματα/εξεταστική....
Image
User avatar
Joanna
Mbyte level
Mbyte level
Posts: 563
Joined: Fri Oct 27, 2006 11:02 pm
Academic status: N>4
Gender:

Re: Προγραμματιστική απορία σε Java

Post by Joanna » Tue Dec 09, 2008 2:05 am

Το είδα αργά proskope δυστυχώς και πρόλαβες να βρεις τη λύση μόνος σου! :) Επειδή τα +,-.. είναι char(και όχι string), δεν έχουν ttype = tt_word... Ξενέρωσα κι εγώ όταν μου το πανε, είχα φάει ώρες να παιδεύομαι :???:
Le vent nous portera...
User avatar
proskopos
Wow! Terabyte level
Wow! Terabyte level
Posts: 2808
Joined: Tue Dec 18, 2007 4:01 pm
Academic status: Alumnus/a
Gender:
Location: Στα φεγγάρια του Πλάνταρ...
Contact:

Re: Προγραμματιστική απορία σε Java

Post by proskopos » Tue Dec 09, 2008 9:52 am

Code: Select all

 switch (tokenizer.ttype) 
            {
                
                case StreamTokenizer.TT_NUMBER:
                System.out.println((int)tokenizer.nval);
                break;
                default:
          	if ((tokenizer.sval).equalsIgnoreCase("x"))
                {
                    System.out.println(tokenizer.sval);
                }
                else
                {
                    System.out.println("bla");
                    System.out.println(tokenizer.sval);
                }
                break;
Στον παραπάνω κώδικα δεν λειτουργούν οι τελεστές... Για όλα τα input εκτός +,-,*,/ τα αποτελέσματα είναι σωστά... Για τα άλλα μου βγάζει

Code: Select all

Exception in thread "main" java.lang.NullPointerException
        at DerivativeCalculator.DerivativeCalculator.createExpressionTree(DerivativeCalculator.java:158)
        at DerivativeCalculator.DerivativeCalculator.main(DerivativeCalculator.java:225)
Η γραμμή 158 είναι

Code: Select all

if ((tokenizer.sval).equalsIgnoreCase("x"))
και η 225 βρίσκεται στην main

Code: Select all

  base = createExpressionTree ((String)postfixExp);
Δεν μου κάνει λογικό σφάλμα... καμιά ιδέα..?




----------------------------------------------ΑΠΑΝΤΗΣΗ-------------------------------------------------------

Code: Select all

            switch (tokenizer.ttype) 
            {
                
                case StreamTokenizer.TT_NUMBER:
                System.out.println((int)tokenizer.nval);
                break;
                default:
                    
                if(((char)tokenizer.ttype) == 'x' || ((char)tokenizer.ttype) == 'X')
                {
                    System.out.println((char)tokenizer.ttype);
                }
                else
                {
                    System.out.println((char)tokenizer.ttype);
                }

Αυτό συμβαίνει γιατί...Γιατί όταν το Χ το θέσουμε ως ordinaryChar (που το κάναμε), όταν το συναντάμε στο stream, το περνάμε στο ttype ως τον τακτικό του αριθμό και όχι στο sval σαν μεμονωμένο string...

Για να μην πάρω τσάμπα δόξα... Credits to Netharris..... :smt023 Thanks dude...
Extreme Makeover... Mind edition...
3,6 μαθήματα/εξεταστική....
Image
User avatar
emperormario
Wow! Terabyte level
Wow! Terabyte level
Posts: 2569
Joined: Fri Jun 15, 2007 12:30 pm
Gender:
Location: Over the hills and far away..

Re: Προγραμματιστική απορία σε Java

Post by emperormario » Tue Dec 09, 2008 12:32 pm

Thnx!! Και εγώ είχα ψιλοκολλήσει σαυτό
Don't drink and drive. You might spill your drink :b-The Snake
Spoiler: εμφάνιση/απόκρυψη
Giggity giggity goo! [img]http://www.eternalduel.com/forums/images/smiles/quag.gif[/img]
Spoiler: εμφάνιση/απόκρυψη
[color=#800000][size=85]1) You are on the internet 2) You are visiting Venus forum 3) You are reading my signature 5) You didn't notice that point 4 is missing 6) You just checked for point 4 7) You are smiling [/size][/color]
User avatar
S.a.kiss.007
Mbyte level
Mbyte level
Posts: 659
Joined: Wed Nov 28, 2007 2:24 am
Academic status: 4th year
Gender:
Location: Κρήτη (πνευματικά...)
Contact:

Re: Προγραμματιστική απορία σε Java

Post by S.a.kiss.007 » Sat Dec 13, 2008 1:12 am

Βασικά η ερώτησή μου είναι περισσότερο αλγοριθμική, αλλά μιας και γράφω σε java, είπα να το βάλω εδώ...
(κοι Mods, Admins αν θέλετε μετακινείστε το όπου ταιριάζει περισσότερο... :-D )

Λοιπόν, έχω ένα πίνακα με θετικούς αριθμούς int και θέλω να βρω τους Ν μεγαλύτερους (προφανώς Ν <= array.length).
Η προφανής λύση είναι με ένα for για Ν φορές να βρίσκω σε κάθε βήμα τον μεγαλύτερο (με ακόμα ένα for γραμμικά) και στον τέλος να τον μηδενίζω, ώστε να μην επηρεάσει την επόμενη εύρεση...
Αλλά δεν μου φαίνεται και ο πιο γρήγορος-αποδοτικός (αν δεν είναι ο χειρότερος!!! :oops: )...
Έχετε να προτείνετε κάποιο πιο γρήγορο τρόπο?

Προσπαθώ να θυμηθώ κάτι από Δομές, αλλά δνε μου βγαίνει... Και οι ουρές προτεραιότητας κάτι τέτοιο κάνουν....
Υποψιάζομαι heapsort και σορούς... Αλλά δεν τα είπαμε πολύ καλά.. Αν μου τα εξηγήσει κάποιος.... :smt100
Post Reply

Return to “Προγραμματισμός”