Προς το περιεχόμενο

Erothsh sxetika me java


Exoskeletor

Προτεινόμενες αναρτήσεις

Δημοσ.

χωρίς να το τρέξω γιατί δεν προλαβαίνω (ταξιδεύω σε λίγο) αυτό που κάνει μπαμ είναι στη for βγάλε τα δύο ==, ένα χρειάζετε. Τα δύο μπαίνουν μόνο σε συνθήκες.

 

Επίσης κάτι άλλο που βλέπω είναι οτι έχεις δύο int A, M και θες να τα χειριστείς με την charAt η οποία είναι για string. To A λοιπόν δήλωσε το String. Μετά με την toCharArray() δημιουργείς ένα πίνακα χαρακτήρων που σε κάθε θέση θα έχει κι απο ένα ψηφίο. Επειδή όμως και τα νούμερα του πίνακα είναι χαρακτήρες κάνε τη for που έχεις απο πάνω μετατρέποντας κάθε χαρακτήρα σε int με την Integer.parseInt

Δημοσ.
koitakse h klironomikotita kai o polumorfismos, grafimata ktl ta exoun oles peripou oi gloses. den eine tipot.

 

Προσωπική άποψη. Την ημέρα που κατανοήσεις στο έπακρο τι εστί κληρονομικότητα και πολυμορφισμός και πως ακριβώς μπορείς να τα χρησιμοποιήσεις για τις ανάγκες του προγράμματος σου τότε θα έχεις ανέβει και level. Είναι από τις έννοιες στον προγραμματισμό που πολλοί γνωρίζουνε αλλά ελάχιστοι τις έχουν κατανοήσει. :)

 

 

guys ayto giati den douleyei:

int A;

A=123456;

int M = 0;

for (i=0;i==A.length();i++){

M=M+A.charAt(i);}

System.out.println(M);

System.out.println(A.charAt(i));

 

}

den eprepe na ektiponh 1+2+3+4+5+6? mou ektiponei M=0

 

Πριν ξεκινήσω να σου πω το οτιδήποτε' date=' θα σε συμβούλευα να ρίξεις μια ματιά σε

Coding Standards (Code Conventions) μιας και είναι άκρως σημαντικό να γνωρίζεις πριν καν ξεκινήσεις τον προγραμματισμό.

Στο πρόβλημα σου τώρα, βάση της λογικής που έχεις ακολουθήσει για να έχεις το αποτέλεσμα που θες, το πρόγραμμα σου έχει αρκετά λάθη.

Για αρχή,

 

[1] int A;

[2] A=123456;

 

το οποίο συσχετίζεται άμεσα με το

 

[5] M=M+A.charAt(i);}

 

η μέθοδος είναι η java.lang.String#charAt(int) που σημαίνει ότι μπορείς να την καλέσεις μόνο από java.lang.String objects ενώ εσύ έχεις δηλώσει ότι το A είναι primitive type αριθμός int.

 

[4] for (i=0;i==A.length();i++){

Αφενώς όπως πολύ σωστά αναφέρθηκε το "==" χρησιμοποιείται όταν θες να τεστάρεις ότι δύο αντικείμενα είναι "ίσα" (το έβαλα σε quotes γιατί δεν είναι έτσι απλό), αφετέρου δεν έχεις δηλώσει το είδος της μεταβλητής i

 

Πέρα από αυτό όμως, απ'ότι κατάλαβα εσύ θες να επαναληφτεί το loop για κάθε ένα χαρακτήρα του A. άρα το for loop συντάσεται έτσι for (int i=0;i<A.length();i++) (initial value; condition; step)

 

Συνεχίζουμε...

[5] M=M+A.charAt(i);}

 

και εδώ υπάρχει λάθος γιατί η μέθοδος java.lang.String#charAt(int) μας επιστρέφει char άρα πρέπει και το M να είναι του ίδιου τύπου (char και όχι int) για να μπορέσει να πάρει την τιμή αυτή. Ακόμα και έτσι όμως το operation της πρόσθεσης δε μπορεί να γίνει μεταξύ δύο char άρα πρέπει το M να δηλωθεί και αυτό σαν java.lang.String και να διαφοροποιήσεις τον κώδικα σου.... Δε πρόκειται να επεκταθώ

 

Ακόμα όμως και αν αλλάξεις όλα τα παραπάνω, πάλι στην κονσόλα σου δε θα δεις το αποτέλεσμα που θες γιατί πολύ απλά το System.out.println βρίσκεται εκτός του for loop αν κοιτάξεις λίγο καλύτερα.

 

[6] System.out.println(M);

 

Άρα η τιμή που θα πάρεις θα είναι και η τελική του M.

 

Όλα τα παραπάνω λαθάκια που έχεις κάνει δεν τα έκανες επειδή δεν έχεις την απαραίτητη εμπειρία με τον προγραμματισμό (και συγκεκριμένα την Java) αλλά γιατί δεν έχεις κάτσει να διαβάσεις λίγη θεωρία.

 

Συμφωνώ μαζί σου ότι ένας προγραμματιστής για να γίνει κάτι παραπάνω από "καλός" πρέπει να ξοδέψει άπειρες ώρες προγραμματίζοντας (αν και πιστεύω πως για να γίνεις "καλός" προγραμματιστής πρέπει πρώτα να είσαι "καλός" αναλυτής και σχεδιαστής). Να ξέρεις όμως πως πάντα πριν από την πράξη έρχεται η θεωρία :D

 

Προτείνω να ρίξεις μια ματιά στο παρακάτω βιβλίο που είναι και δωρεάν και μόλις έχεις ένα better understanding της Java, εδώ είματε εμείς να σε βοηθήσουμε ;)

Thinking in Java

Δημοσ.

koitakse h alhtheia eine pos oute ego thelo na kanei 1+2+3 ktl. thelo na kanei "1","12","123" alla mou ekane entyposh pou den douleye. kai to for loop to ksero pos eprepe na htan ekso alla epeidh sigoura den tha eprepe na emfanizh 0 den to alaksa.

to i ean to diloso ekei pou mou les den to dexete. to dilosa apekso poio pano.me to M tora den ksero ti na kano gia na prosthetei xarakthres.(to "1" na to kanei "12" oxi 3).

Den mporo na katalabo giati sto lenght ithele > kai oxi = h ==..

 

Na se rotiso kati allo. exoume 3 metablhtes.

M= "AB"

A=12

B=123

to M alazei sinexeia kai to string pou exei mesa periexei 2 gramata pou antistixoun se 2 alles metablhtes mou pou thelo na xrhsimopoiiso.diladi thelo ego sto proto grama tou string "A" kai eine h metablhth A na kano ayto:

M.charAt(1)=M.charAt(0).charAt(M.charAt(0).length())

 

Diladi thelo na kano B=A.charAt(A.length()) (Diladi na balo sto B to teleyteo stoixeio tou A(kai na ginei B=1232))

giati kati mou leei pos den ginete? :)

Δημοσ.

de kserw an einai afto akrivws pou thes alla:

String A="123456";

String M = "";

for (int i=0;i<A.length();i++)

{

M=M+A.charAt(i);

// System.out.println(M);

}

System.out.println(M);

afto sou vgazei opws nomizw pws thes 123456 kai an vgaleis ta comments tha sou vgalei 1, 12, 123, etc....

to teliko apotelesma einai ena string vevaia pou simenei oti an thes meta na kaneis mathimatikes prakseis me afto prepei na to kaneis parse se integer. To programma pou evales stin arxi apokleietai na sou evgaze M = 0 giati poli apla den ginotan compile. Prosexe pws dilwneis ta types giati mporei na mperdefteis efkola kai na kaneis initialization panta.

 

Den mporo na katalabo giati sto lenght ithele > kai oxi = h ==..

to = kanei assign dld a = 3 pou simenei oti sto variable a kanoume assign to value 3.

 

Na se rotiso kati allo. exoume 3 metablhtes.

M= "AB"

A=12

B=123

to M alazei sinexeia................giati kati mou leei pos den ginete? :)

 

an to kaneis etsi akrivws katarxin de ginetai giati to '"AB" einai string kathws einai mesa se quotes enw to A' date=' B pou exeis apo katw einai integers(i mias k milame gia java otidipote allo :)) De mporeis na kaneis A.charAt(int) giati to A den einai string. mporeis na kaneis p.x. char L = M.charAt(0);

 

 

Programatisths gia mena den eine ayts pou kserei 20 entoles apekso. eine aytos pou kserei ton tropo pou leitourgei h glosa kai ton tropo sosths grafhs (kanones kanonikopoihshs ktl) kai exei ena biblio gia na briskei ti kanei kathe entolh opote xreiastei. siga mhn katso na matho apekso entoles

Oxi gia mia glwssa alla gia kathe glwssa. I kathe glwssa exei tous dikous tis grammatical rules kai to diko tis syntax. De ginetai na to ksereis apeksw alla mporeis na ksereis to geniko tropo pou leitourgoun.

Kaneis de mporei na kserei oles tis entoles apeksw....gia java exeis to Java API. Aftos einai o skopos tou. Alla kapoies vasikes entoles prepei na tis ksereis opws kai na ginei.

 

cue.....akiri erwtisi alla mipws epaizes kapote tetrinet i empaines kana kali???

Δημοσ.
cue.....akiri erwtisi alla mipws epaizes kapote tetrinet i empaines kana kali???

 

ναι και είχα και μια ομάδα που είχε χάσει στα ημιτελικά αδίκως :(

 

but...i've put that behind now and Im into Java :D

Δημοσ.
ναι και είχα και μια ομάδα που είχε χάσει στα ημιτελικά αδίκως :(

 

but...i've put that behind now and Im into Java :D

 

 

ti les twra???????.....o kicker eimai re c!!!!!

kai i dikia mou i omada eixe paei ligo xeirotera :)

kai mena me fagan ta kswterika....:)

xronia kai zamania.....

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...