panoos3162 Δημοσ. 15 Ιανουαρίου 2007 Δημοσ. 15 Ιανουαρίου 2007 exo ena pinaka :a[1..20] char; k ton diavazo : " i:=1; while not eoln and i<=20 do begin read(a); i:=i+1; end; " k meta... " if i=1 then writeln('o pinakas einai kenos');'' an pathso 2 fores enter sto a[1] den eisagetai tipota,sosta??? pos mporo na elegxo an an sto a[1] den uparxei tipota,xoris na po "if i=1",alla kati san "if a[1]=nul" h "a[1]= 000" ta dokimasa auta alla mou vgazei synrax error o compiler euxaristo!!!
chiossif Δημοσ. 15 Ιανουαρίου 2007 Δημοσ. 15 Ιανουαρίου 2007 Οι χαρακτίρες είναι ΟΛΟΙ διαθέσιμοι για διάβασμα. Άρα ΟΠΟΙΑΔΗΠΟΤΕ τιμή στο α[1] μπορεί να είναι λογική. Αν όμως ΥΠΟΘΕΣΟΥΜΕ ότι αποκλέιεται να διαβαστεί η τιμή 0 (ή 128 ή 255 δεν έχει σημασία) τότε γεμίζουμε ΑΠΟ ΠΡΙΝ το α[1] τουλάχιστον με αυτήν α[1]:=0 και μετά το διάβασμα ελέγχουμε αν άλλαξε. Αν θέλεις να ΜΗΝ δεσμεύσεις καμία τιμή τότε ... ...έλα στην C που δουλεύει με "null terminated strings".
alkisg Δημοσ. 15 Ιανουαρίου 2007 Δημοσ. 15 Ιανουαρίου 2007 > while not eoln and i<=20 do syntax error, θέλει παρένθεση while not eoln and (i<=20) do > an pathso 2 fores enter sto a[1] den eisagetai tipota,sosta??? λάθος, συνήθως εισάγεται το enter, δηλαδή το #13#10 Μπορείς να γράψεις writeln(ord(a[1])); για να δεις τον αριθμό (σε πίνακα ascii) του χαρακτήρα που εισήχθη. Δεν υπάρχει η έννοια του "κενού χαρακτήρα" στην Pascal. Αν διάβαζες από αρχείο, θα μπορούσε κάλλιστα να είναι null, nil, #0 ή όπως αλλιώς θες να το πεις. Αυτό έχει και τα καλά του γιατί στην Pascal μπορείς να χειριστείς δυαδικά δεδομένα με τις συναρτήσεις που επεξεργάζονται strings. Επειδή όμως οι χαρακτήρες εισάγονται από το πληκτρολόγιο και όχι από αρχείο, το #0 δεν μπορεί να εισαχθεί. Οπότε μπορείς να πεις for i := 1 to 20 a := #0; και να ελέγχεις μετά για το αν είναι #0 ή όχι.
panoos3162 Δημοσ. 16 Ιανουαρίου 2007 Μέλος Δημοσ. 16 Ιανουαρίου 2007 ευχαριστω ρε παιχτη. chiossif :prepei na to grapso anagastika se pascal.thanks k sesena pados to egrapsa k einai ok.omos giati tora otan patao enter mou emfanizetai to minima 'den ginetai h sumvoloakolou8ia na einai midenikou mikous' eno prin,me ton kodika pou exo grapsei pano,pataga enter,pagone to programmak ama ksanapataga enter mou emfanize auto to minima.anoixe thn eikona gia na deis ton kodika mou. thanks
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.