Stilewag Δημοσ. 6 Απριλίου 2005 Δημοσ. 6 Απριλίου 2005 Exw enan array kai thelw na topothetisw ena stoixeio (stin prokeimeni periptosi enai int array) stin teleftaia eleftheri thesi. P.x.: an exw apothikefsei stoixeia mexri tin thesi 4, thelw na mou apothikefsei sti thesi 5 dixws egw na tou pw pws einai i thesi 5 stin opoia prepei na to apothikefsei. to parakatw dinei error (stin pascal douleve omws): Table1 = 5; ...Fisika mporw na valw mia metavliti "k" kai na exw a[k] alla kanei poly periploko ton kwdika mou. Skeftika mipws iparxei pio efkolos tropos.
GrMikeD Δημοσ. 6 Απριλίου 2005 Δημοσ. 6 Απριλίου 2005 Auto den douleve oute stin pascal. Xrisimopoiise Vector anti gia pinaka gia auto pou thes. http://www.codersource.net/c++_vector_stl.html
Stilewag Δημοσ. 6 Απριλίου 2005 Μέλος Δημοσ. 6 Απριλίου 2005 to Word2:='3' den douleve? hmmm... tote kanw lathos
gerontas Δημοσ. 7 Απριλίου 2005 Δημοσ. 7 Απριλίου 2005 Φίλε Stilewag, η δήλωση ενός Πίνακα με την κλασσική μέθοδο (int a[N] για τη C/C++ ή array[1..N] για την Pascal) σημαίνει τη δέσμευση της απαραίτητης μνήμης για την καταχώρηση Ν μεταβλητών (εν προκειμένω ακεραίων). Ολα τα στοιχεία του Πίνακα έχουν τιμή (έστω κι αν η Borland συνηθίζει να τη θέτει ίση με το 0). Ποιές -και πόσες- από τις τιμές αυτές είναι "νόμιμες" για το πρόγραμμά σου δεν μπορεί να το ξέρει παρά μόνο ο κώδικας που έγραψες: Μπορεί π.χ. να κρατάς ένα μετρητή (αυτό λές ότι δεν το θες) ή να αρχικοποιείς τον πίνακα, να θέτεις δηλ. όλα τα στοιχεία του ίσα προς μια τιμή που -αψηφώντας τον Νόμο του Μέρφυ- θεωρείς ότι δεν θα πάρει ποτέ. Σ' αυτή την τελευταία περίπτωση εξετάζοντας π.χ. τον αριθμό των επισκεπτών ανά ημέρα σε μια εκθεση, θέτεις όλες τις τιμές ίσες με -99, οπότε ψάχνεις μ' ένα while το πρώτο -99 για να προσδιορίσεις την "πρώτη κενή" θέση του πίνακα. Κατά τη γνώμη μου, ή κάτι τέτοιο πρέπει να θυμάσαι από την Pascal ή αναφέρεσαι όχι σε πίνακα, αλλά σε δυναμική δομή, όπου αναζητούσες μάλλον μεταβλητή τύπου pointer ίση με NIL. (Παίζει και μια τρίτη περίπτωση: Να μην έχω καταλάβει τίποτε από αυτό που ψάχνεις και να σε ζαλίζω με άσχετα )
Stilewag Δημοσ. 7 Απριλίου 2005 Μέλος Δημοσ. 7 Απριλίου 2005 Έκανα λάθος. Αναφερόμουν σε String της Pascal. Και ακόμα και την δεύτερη φορά που το έγραψα το έκανα λάθος. Το παρακάτω πρόγραμμα εξηγεί καλύτερα από εμένα τι θέλω να κάνω (το δοκίμασα σε Borland Turbo Pascal 7.0) PROGRAM StringTest; VAR OneWord: string[4]; BEGIN; OneWord := OneWord + 'a'; OneWord := OneWord + 'b'; OneWord := OneWord + 'c'; writeln; writeln; write(OneWord[1],OneWord[2],OneWord[3]); END.
porosis Δημοσ. 7 Απριλίου 2005 Δημοσ. 7 Απριλίου 2005 C++: #include <string> #include <iostream> using namespace std; int main() { string OneWord; OneWord = OneWord + 'a'; OneWord = OneWord + 'b'; OneWord = OneWord + 'c'; cout << OneWord[0] << " " << OneWord[1] << " " << OneWord[2] << endl; return 0; }
Stilewag Δημοσ. 7 Απριλίου 2005 Μέλος Δημοσ. 7 Απριλίου 2005 ouch! C++ ε; χμμμ... τι κάνει το "cout"; Το έχω δεί πολλές φορές αλλά δεν έχω ιδέα. Τελικά έβαλα έναν counter, μου πήρε μερικές ώρες...
kickeras Δημοσ. 7 Απριλίου 2005 Δημοσ. 7 Απριλίου 2005 τι κάνει το "cout";( output stream... vasika pascal eixa kanei poli ligo prin pollllaaa xronia einai an thes array of strings i string...problem solved anyways...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.