Το Στέκι των Πληροφορικών

Επαγγελματικό Λύκειο => Γενικά => Προγραμματισμός Υπολογιστών => Μήνυμα ξεκίνησε από: theoni στις 25 Φεβ 2016, 04:29:01 ΜΜ

Τίτλος: Ερώτηση για pascal
Αποστολή από: theoni στις 25 Φεβ 2016, 04:29:01 ΜΜ
Έχω μπερδευτεί με την repeat-until παίρνει ερωτιματικό στο τέλος της συνθήκης η όχι;;;
Τίτλος: Απ: Ερώτηση για pascal
Αποστολή από: Λαμπράκης Μανώλης στις 25 Φεβ 2016, 04:37:06 ΜΜ
Καλησπέρα

έχω την εντύπωση πως χρειάζεται ... η γνώμη μου πάντως είναι πως γενικά τα ερωτηματικά δεν χάλασε ο κόσμος αν δεν μπει και κάποιο .. η λύση σαν βήματα να είναι σωστή και από κει και πέρα δεν πειράζει να χαθεί και κανένα ερωτηματικό  ;) :P

Τίτλος: Απ: Ερώτηση για pascal
Αποστολή από: bugman στις 25 Φεβ 2016, 05:21:50 ΜΜ
Παίρνει, αλλά δείτε στο παράδειγμα: Αν έχουμε δυο εντολές ανάμεσα, τότε η τελευταία (η δεύτερη εδώ) δεν παίρνει.
http://wiki.lazarus.freepascal.org/REPEAT..UNTIL
Τίτλος: Απ: Ερώτηση για pascal
Αποστολή από: linap στις 28 Φεβ 2016, 08:33:40 ΜΜ
Καλησπερα,

απο οτι καταλαβα η ερωτηση ηταν αν παιρνει ερωτηματικο ΜΕΤΑ τη συνθηκη (BooleanExpression)

repeat
  statement1;
  statement2
until BooleanExpression;


Η απαντηση ειναι οτι παιρνει, εκτος ειναι η τελευταια εντολη του block (αν ακολουθει end), π.χ.

       .....
       begin
              ...
              ...
              repeat
                   statement1;
                   statement2
              until BooleanExpression
       end;

Τίτλος: Απ: Ερώτηση για pascal
Αποστολή από: linap στις 28 Φεβ 2016, 08:34:38 ΜΜ
(και σε καθε περιπτωση, μια δοκιμη στον compiler θα σας πεισει..)
Τίτλος: Απ: Ερώτηση για pascal
Αποστολή από: theoni στις 28 Φεβ 2016, 09:54:36 ΜΜ
ΚΑΛΗΣΠΕΡΑ ΕΓΏ  ΠΑΝΤΩΣ ΠΟΥ ΛΥΝΩ ΜΕΡΙΚΑ ΠΡΟΒΛΗΜΑΤΑ  ΓΙΑ ΕΠΙΒΕΒΑΙΩΣΗ ΣΤΟ ΠΡΟΓΡΑΜΜΑ ΤΗΣ PASCAL ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΟΥΝ ΚΑΙ ΣΤΟ ΣΧΟΛΕΙΟ ΤΟ ΕΡΩΤΗΜΑΤΙΚΌ ΤΟ ΠΑΙΡΝΕΙ ΣΕ ΟΛΕΣ ΤΙΣ ΠΕΡΙΠΤΩΣΕΙΣ ΑΝΕΞΑΡΤΗΤΑ ΑΝ ΕΙΝΑΙ Η ΤΕΛΕΥΤΑΙΑ ΕΝΤΟΛΗ ΠΡΙΝ ΤΟ END
Τίτλος: Απ: Ερώτηση για pascal
Αποστολή από: theoni στις 28 Φεβ 2016, 09:57:56 ΜΜ
ΤΟ ΣΧΟΛΙΚΟ ΒΙΒΛΙΟ ΔΕΝ ΒΟΗΘΑΕΙ ΚΑΙ ΠΟΛΥ ΕΧΩ ΤΗΝ ΕΝΤΥΠΩΣΗ.....ΟΠΩΣ ΚΑΙ ΝΑ ΕΧΕΙ ΤΕΤΟΙΟΥ ΕΙΔΟΥΣ ΛΑΘΗ ΕΧΟΥΝ ΕΠΙΠΤΩΣΗ ΣΤΗΝ ΒΑΘΜΟΛΟΓΙΑ;
Τίτλος: Απ: Ερώτηση για pascal
Αποστολή από: theoni στις 29 Φεβ 2016, 08:36:12 ΠΜ
ΚΑΛΗΜΕΡΑ ΑΛΛΗ ΜΙΑ ΕΡΩΤΗΣΗ ΓΙΑ ΤΗΝ PASCAL ΕΧΩ ....ΣΤΙΣ ΕΜΦΩΛΕΥΜΕΝΕΣ  IF ΠΡΕΠΕΙ ΝΑ ΒΑΖΩ  BEGIN??? ΔΗΛΑΔΗ
    IF ΣΥΝΘΗΚΗ
    THEN
      BEGIN
         IF ΣΥΝΘΗΚΗ
          ΤΗΕΝ.......
        END;
Τίτλος: Απ: Ερώτηση για pascal
Αποστολή από: dski στις 29 Φεβ 2016, 08:53:30 ΠΜ
  Καλημέρα,

  Για το ερωτηματικό: Η τελευταία εντολής ενός block (μιας ομάδας εντολών) ανάμεσα σε begin...end ή repeat...until δεν είναι απαραίτητο να πάρει ερωτηματικό αλλά δεν είναι και λάθος να μπει.

  Για το begin...end στις εμφωλευμένες if: Η χρήση του begin...end είναι απαραίτητη όταν υπάρχει ένα block (μια ομάδα) δύο ή περισσότερων ακολουθιακών εντολών (δηλ. εντολές που θα εκτελεστεί η μία μετά την άλλη. Όταν το block περιέχει μόνο μία εντολή η χρήση του begin....end δεν είναι απαραίτητη και συνήθως αποφεύγεται για λόγους χώρου και αναγνωσιμότητας αλλά δεν είναι λάθος να χρησιμοποιηθεί ακόμη και σε αυτή την περίπτωση.

  Για το παράδειγμα που ρωτάς: Αν στον κλάδο του then (ή αντίστοιχα του else) οι εντολές που θα εκτελεστούν είναι πάνω από μία:

IF <ΣΥΝΘΗΚΗ> THEN
  BEGIN
     ΕΝΤΟΛΗ-1
     ΕΝΤΟΛΗ-2
     ΕΝΤΟΛΗ-3
     ...
     ΕΝΤΟΛΗ-Ν
   END
ELSE
    BEGIN
     ΕΝΤΟΛΗ-1
     ΕΝΤΟΛΗ-2
     ΕΝΤΟΛΗ-3
     ...
     ΕΝΤΟΛΗ-Ν
   END;

τότε η χρήση του begin...end είναι απαραίτητη (αφού έχουμε block εντολών με πάνω από 2 εντολές) όμως αν η εντολή είναι μόνο μία (δηλ. η 2η IF) όπως στο παράδειγμά σου τότε δε χρειάζεται. Για το block εντολών της 1ης IF (της εξωτερικής) η 2η IF είναι μία εντολή άσχετα αν στο εσωτερικό της 2ης IF εκτελούνται πολλές εντολές. Αν η κατάσταση είναι αυτή (και μετά την 2η IF δεν ακολουθεί και άλλη εντολή που να ανήκει στο block της THEN της 1ης IF) τότε δεν είναι απαραίτητο το begin...end (αλλά, όπως έγραψα, δεν είναι και λάθος να μπει):

IF <ΣΥΝΘΗΚΗ>
  THEN
      IF <ΣΥΝΘΗΚΗ>
         ΤΗΕΝ.......

Ελπίζω να σε βοήθησα και να μη σε μπέρδεψα περισσότερο.
Τίτλος: Απ: Ερώτηση για pascal
Αποστολή από: theoni στις 29 Φεβ 2016, 09:46:43 ΠΜ
Σ'ΕΥΧΑΡΙΣΤΩ ΠΟΛΥ ....ΤΩΡΑ ΤΟ ΚΑΤΑΛΑΒΑ...