Δήλωση αριθμημένων μεταβλητών στη java?
- weralacroix
- byte level
- Posts: 61
- Joined: Thu Aug 24, 2006 11:37 am
Δήλωση αριθμημένων μεταβλητών στη java?
Ρε παιδιά έχω ένα πρόβλημα στην java που με προβληματίζει πολύ εδώ και αρκετές εργασίες και θα μου έλυνε τα χέρια σε μεγάλο βαθμο εάν γινόταν.
Μπορείς με κάποιο τρόπο να δηλώσεις μια μεταβλητή η οποία να πάρει για όνομα το περιεχόμενο ενός String,ότι και εάν είναι αυτό την συγκεκριμένη στιγμή;
Δηλαδή εάν θες να φτιάξεις ένα πρόγραμμα που να σου ζητάει έναν αριθμό "ν" και έπειτα αυτό να δηλώνει τις μεταβλητές var1,var2,var3,....,var(v-1),var(v);Πώς το κάνεις;
Μπορείς με κάποιο τρόπο να δηλώσεις μια μεταβλητή η οποία να πάρει για όνομα το περιεχόμενο ενός String,ότι και εάν είναι αυτό την συγκεκριμένη στιγμή;
Δηλαδή εάν θες να φτιάξεις ένα πρόγραμμα που να σου ζητάει έναν αριθμό "ν" και έπειτα αυτό να δηλώνει τις μεταβλητές var1,var2,var3,....,var(v-1),var(v);Πώς το κάνεις;
- AmmarkoV
- Wow! Terabyte level
- Posts: 2838
- Joined: Thu Nov 04, 2004 2:55 pm
- Gender: ♂
- Location: Reloaded @ Santa Friday
- Contact:
Ψάχνεις για Arrays!
Αυτό που λές μπορεί να γίνει ως εξής :
var[255] και να έχεις var[0] var[1] var [2] var[3] κτλ
Κοίτα στο google..
(Αν καταλαβαίνω σωστά τι λες.. )
Αυτό που λές μπορεί να γίνει ως εξής :
var[255] και να έχεις var[0] var[1] var [2] var[3] κτλ
Κοίτα στο google..
(Αν καταλαβαίνω σωστά τι λες.. )
- Spoiler: εμφάνιση/απόκρυψη
- weralacroix
- byte level
- Posts: 61
- Joined: Thu Aug 24, 2006 11:37 am
- AmmarkoV
- Wow! Terabyte level
- Posts: 2838
- Joined: Thu Nov 04, 2004 2:55 pm
- Gender: ♂
- Location: Reloaded @ Santa Friday
- Contact:
Δεν έχει πολυ νόημα να το κάνεις αυτό αλλά αν το θες τότε μπορείς να γράψεις το όνομα της μεταβλητής hardcoded σαν string δηλαδή
(Το παρακάτω είναι μια ιδέα , ψευδοκώδικας, είναι περίπου Java )
String metavliti_test[15];
if Equals("metavliti_test",metavliti_test[3])
{ System.out.println("I metavliti 3 exei onoma san tin metavliti :P "); }
(Το παρακάτω είναι μια ιδέα , ψευδοκώδικας, είναι περίπου Java )
String metavliti_test[15];
if Equals("metavliti_test",metavliti_test[3])
{ System.out.println("I metavliti 3 exei onoma san tin metavliti :P "); }
- Spoiler: εμφάνιση/απόκρυψη
- weralacroix
- byte level
- Posts: 61
- Joined: Thu Aug 24, 2006 11:37 am
Αυτό είναι το βασικό πρόβλημά μου!:
===========================================
static void acceptpc(Vector components,Vector softwares,Vector sales,computer madepc){
int count=0;
int count2=0;
while(count<((Vector)components.get(0)).size()){
if((madepc.compmotherboard).name==((motherboard)((Vector)components.get(0)).get(count)).name){
((motherboard)((Vector)components.get(0)).get(count)).quantity--;
}
count++;
}
count=0;
while(count<((Vector)components.get(1)).size()){
if((madepc.compcpu).name==((cpu)((Vector)components.get(1)).get(count)).name){
((cpu)((Vector)components.get(1)).get(count)).quantity--;
}
count++;
}
sales.add(madepc);
}
===========================================
Αυτή η μέθοδος επαναλαμβάνει τα ίδια δύο φορές(Η κανονική τα επαναλάμβανε πολύ περισσότερες) και το μόνο που αλλάζει είναι τα
compcpu--compmotherboard(μεταβλητές της τάξης computer που είναι υποτάξη της item)
cpu---motherboard(υποτάξεις της component που είναι υποτάξη της item)
Δεν υπάρχει κάποιος τρόπος να αποφύγω αυτή την επανάληψη περνώντας κάποιες παραμέτρους στην μέθοδο ίσως;
===========================================
static void acceptpc(Vector components,Vector softwares,Vector sales,computer madepc){
int count=0;
int count2=0;
while(count<((Vector)components.get(0)).size()){
if((madepc.compmotherboard).name==((motherboard)((Vector)components.get(0)).get(count)).name){
((motherboard)((Vector)components.get(0)).get(count)).quantity--;
}
count++;
}
count=0;
while(count<((Vector)components.get(1)).size()){
if((madepc.compcpu).name==((cpu)((Vector)components.get(1)).get(count)).name){
((cpu)((Vector)components.get(1)).get(count)).quantity--;
}
count++;
}
sales.add(madepc);
}
===========================================
Αυτή η μέθοδος επαναλαμβάνει τα ίδια δύο φορές(Η κανονική τα επαναλάμβανε πολύ περισσότερες) και το μόνο που αλλάζει είναι τα
compcpu--compmotherboard(μεταβλητές της τάξης computer που είναι υποτάξη της item)
cpu---motherboard(υποτάξεις της component που είναι υποτάξη της item)
Δεν υπάρχει κάποιος τρόπος να αποφύγω αυτή την επανάληψη περνώντας κάποιες παραμέτρους στην μέθοδο ίσως;
- tsilochr
- Wow! Terabyte level
- Posts: 3246
- Joined: Tue Mar 16, 2004 2:47 pm
- Academic status: PhD
- Gender: ♂
- Location: mm.aueb.gr
- Contact:
εσυ βασικά θες να μειώνεις τις ποσότητες από την αποθήκη. αυτό γίνεται απίστευτα πιο εύκολα αν είχες κατανοήσει πλήρως τον τρόπο με το οποίο δουλεύουν τα αντικείμενα, οι αναφορές τους, αντίγραφα αντικειμένων κλπ
Το πιο πιθανό είναι οι αναφόρες προς τα items που έχεις στο madepc να είναι οι ίδιες με τις αναφορές στα vectors. Θα πρέπει να ψάξεις από το βιβλίο πως λειτουργούν τα αντικείμενα, αναφορές κλπ.
Το πιο πιθανό είναι οι αναφόρες προς τα items που έχεις στο madepc να είναι οι ίδιες με τις αναφορές στα vectors. Θα πρέπει να ψάξεις από το βιβλίο πως λειτουργούν τα αντικείμενα, αναφορές κλπ.
- weralacroix
- byte level
- Posts: 61
- Joined: Thu Aug 24, 2006 11:37 am
Ξέρω πως δουλεύουν τα αντικείμενα,αναφορες κλπ.
Το προβλημά μου δεν είναι να κάνω την εργασία ή να μειώσω τις ποσότητες από την αποθήκη,την έχω ήδη παραδώσει την εργασία.
Η μέθοδος αυτή δεν είναι όπως είναι στο πρόγραμμά μου και μην την συσχετίζετε με την εργασία.Την μετέτρεψα έτσι ώστε να δείξω αυτό που ψάχνω.
Το προβλημά μου δεν είναι να κάνω την εργασία ή να μειώσω τις ποσότητες από την αποθήκη,την έχω ήδη παραδώσει την εργασία.
Η μέθοδος αυτή δεν είναι όπως είναι στο πρόγραμμά μου και μην την συσχετίζετε με την εργασία.Την μετέτρεψα έτσι ώστε να δείξω αυτό που ψάχνω.
- AmmarkoV
- Wow! Terabyte level
- Posts: 2838
- Joined: Thu Nov 04, 2004 2:55 pm
- Gender: ♂
- Location: Reloaded @ Santa Friday
- Contact:
Βασικά ο κώδικας σου παραείναι αντικειμενοστραφής
Θα πρέπει να ξαναοργανώσεις τα πράγματα , τουλάχιστον εγώ θα το σκεφτόμουν ώς εξής
Βασικά ουτε κάν.. Απλά η παρακάτω κατάταξη πιστεύω πως είναι πολυ λογική..
3 arrays n=255 πχ θέσεων
String product_names[255] // Τα ονόματα 255 προϊόντων
String product_types[255] // Οι τύποι των προϊόντων (Motherboard κτλ)
unsigned int product_quantity[255] // για κάθε ένα από τα παραπάνω προϊόντα το απόθεμα μας
και αν θές πχ να πάρεις ένα PC με Mobo ASUS p4p800 Deluxe (μου κάηκε btw ) και CPU p4 2.4Ghz
Να λές
PC.add("ASUS p4p800 Deluxe");
PC.add("P4 2.4Ghz");
sales.add(PC);
και το προγραμματάκι σου για κάθε add να ψάχνει στο product names και να μειώνει το αντίστοιχο product_quantity..
Ελπίζω να σε βοήθησα!
Θα πρέπει να ξαναοργανώσεις τα πράγματα , τουλάχιστον εγώ θα το σκεφτόμουν ώς εξής
Βασικά ουτε κάν.. Απλά η παρακάτω κατάταξη πιστεύω πως είναι πολυ λογική..
3 arrays n=255 πχ θέσεων
String product_names[255] // Τα ονόματα 255 προϊόντων
String product_types[255] // Οι τύποι των προϊόντων (Motherboard κτλ)
unsigned int product_quantity[255] // για κάθε ένα από τα παραπάνω προϊόντα το απόθεμα μας
και αν θές πχ να πάρεις ένα PC με Mobo ASUS p4p800 Deluxe (μου κάηκε btw ) και CPU p4 2.4Ghz
Να λές
PC.add("ASUS p4p800 Deluxe");
PC.add("P4 2.4Ghz");
sales.add(PC);
και το προγραμματάκι σου για κάθε add να ψάχνει στο product names και να μειώνει το αντίστοιχο product_quantity..
Ελπίζω να σε βοήθησα!
- Spoiler: εμφάνιση/απόκρυψη
- weralacroix
- byte level
- Posts: 61
- Joined: Thu Aug 24, 2006 11:37 am
Ναι,αυτό σκέφτηκα και εγώ.
Βασικά, η πρώτη σου απάντηση με βοήθησε να το σκεφτώ!
Αυτός είναι ένας πολύ καλός τρόπος.
Αλλά όπως καταλαβαίνω αυτό που ζητούσα δεν γίνεται.
Στην ουσία να μετατρέψεις ένα String σε κώδικα.
και ιδανικά ο κώδικας θα γινόταν:
===========================================
static void acceptpc(Vector components,Vector softwares,Vector sales,computer madepc,String type,String comptype){
int count=0;
while(count<((Vector)components.get(0)).size()){
if((madepc.comptype).name==((type)((Vector)components.get(0)).get(count)).name){
((type)((Vector)components.get(0)).get(count)).quantity--;
}
count++;
}
sales.add(madepc);
}
===========================================
ή κάπως έτσι τέλος πάντων!!!
Πήρα ωραίες ιδέες όμως,ευχαριστω για την βοήθεια.
Βασικά, η πρώτη σου απάντηση με βοήθησε να το σκεφτώ!
Αυτός είναι ένας πολύ καλός τρόπος.
Αλλά όπως καταλαβαίνω αυτό που ζητούσα δεν γίνεται.
Στην ουσία να μετατρέψεις ένα String σε κώδικα.
και ιδανικά ο κώδικας θα γινόταν:
===========================================
static void acceptpc(Vector components,Vector softwares,Vector sales,computer madepc,String type,String comptype){
int count=0;
while(count<((Vector)components.get(0)).size()){
if((madepc.comptype).name==((type)((Vector)components.get(0)).get(count)).name){
((type)((Vector)components.get(0)).get(count)).quantity--;
}
count++;
}
sales.add(madepc);
}
===========================================
ή κάπως έτσι τέλος πάντων!!!
Πήρα ωραίες ιδέες όμως,ευχαριστω για την βοήθεια.
- weralacroix
- byte level
- Posts: 61
- Joined: Thu Aug 24, 2006 11:37 am