Αποστολέας Θέμα: ΝΕΟΣ διαδικτυακός διερμηνευτής της Γλώσσας  (Αναγνώστηκε 2165 φορές)

George Eco

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 337
Απ: ΝΕΟΣ διαδικτυακός διερμηνευτής της Γλώσσας
« Απάντηση #45 στις: 26 Νοέ 2020, 12:56:23 μμ »
Συμπληρώνοντας... στο βιβλίο της Γ' Λυκείου αναφέρει (σελ. 37) :
Ανάλογα με το είδος της τιμής που μπορούν να λάβουν, οι μεταβλητές διακρίνονται σε αριθμητικές, αλφαριθμητικές και λογικές.

Στο κεφάλαιο 7 βέβαια χάνεται το Αριθμητικές κι αντικαθιστάται με ΑΚΕΡΑΙΕΣ - ΠΡΑΓΜΑΤΙΚΕΣ και στη σελ 132 τα κάνουν μαντάρα με το κόκκινο τριγωνάκι κάτω αριστερά.
Αλλά πέραν αυτού, ναι, πρέπει ακόμα κι από τη Β Λυκείου κατ εμέ, να διδάσκεται πως οι μεταβλητές πρέπει να έχουν τύπο ή τουλάχιστο να μην αλλάζει ad-hoc ο τύπους τους.

Θέλω να πω, στη Python και τη javascript ΜΠΟΡΕΙΣ να αλλάξεις τύπο μεταβλητής, γιατί μπορείς. Δε σημαίνει πως πρέπει να το κάνεις όμως. Όταν λοιπόν καλείσαι να διδάξεις πώς να προγραμματίζει ένα παιδί σε μία γλώσσα προγραμματισμού, with great power comes great responsibility. Άρα μάλλον θα έλεγα πως η ένσταση του κου Αδαμόπουλου είναι πολύ δόκιμη στο θέμα των τύπων. Ακόμα και να γίνονται κατά την ανάθεση τιμής, είναι καλό να διδάσκεται πως μια μεταβλητή ΠΡΕΠΕΙ να έχει σταθερό τύπο, ακόμα κι αν σημαίνει πως ΕΜΕΙΣ πρέπει ως προγραμματιστές να φροντίζουμε γι' αυτό. Αλλιώς εύκολα σπαγγετάρεται το πρόγραμμα.
Πατάει στο ίδιο concept που πιστεύω εγώ. Έμαθα αντικειμενοστραφή σε Java. Μου έβγαλε το λάδι, αλλά έμαθα να προγραμματίζω σωστά. Με "ευκολίες" javascript, δε θα μάθαινα όμως. Διότι όποτε με βόλευε, θα άλλαζα μορφή μιας class (prototype ήθελα να πω) κατά το δοκούν, δίχως μια λογική δομή κληροδότησης. Κακά τα ψέματα, η αυστηρότητα στο πως προγραμματίζεις, είναι σχεδόν πάντα καλό πράγμα,τόσο για το παρόν των μαθητών όσο και για το μέλλον τους ως φοιτητές.
 
« Τελευταία τροποποίηση: 27 Νοέ 2020, 09:27:53 μμ από George Eco »

dpa2006

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 722
Απ: ΝΕΟΣ διαδικτυακός διερμηνευτής της Γλώσσας
« Απάντηση #46 στις: 27 Νοέ 2020, 05:42:57 μμ »
Καλησπέρα σε όλους,

Δοκιμών συνέχεια,

ο παρακάτω κώδικας
τρέχει στον Διερμηνευτή του Άλκη,
Παράθεση
  ΠΡΟΓΡΑΜΜΑ Ρύποι_2
 
 ΜΕΤΑΒΛΗΤΕΣ
   ΑΚΕΡΑΙΕΣ: ΝO2, O3
 ΑΡΧΗ
 !Έλεγχος τιμής για το διοξείδιο του αζώτου,NO2
   ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
     ΓΡΑΨΕ 'Δώσε την τιμή του Διοξειδίου του αζώτου'
     ΔΙΑΒΑΣΕ ΝO2
 
     ΑΝ ΝO2 < 0 ΤΟΤΕ
       ΓΡΑΨΕ 'Δώσε θετική τιμή ή μηδέν για το Διοξειδίου του αζώτου'
     ΤΕΛΟΣ_ΑΝ
   ΜΕΧΡΙΣ_ΟΤΟΥ ΝO2 >= 0
 
 !Έλεγχος τιμής για το διοξείδιο του όζον,O3
   ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
     ΓΡΑΨΕ 'Δώσε την τιμή του Όζοντος'
     ΔΙΑΒΑΣΕ O3
 
     ΑΝ O3 < 0 ΤΟΤΕ
       ΓΡΑΨΕ 'Δώσε θετική τιμή ή μηδέν για το Όζον'
     ΤΕΛΟΣ_ΑΝ
   ΜΕΧΡΙΣ_ΟΤΟΥ O3 >= 0
 
   ΑΝ ΝO2 > 700 Η O3 > 500 ΤΟΤΕ
     ΓΡΑΨΕ 'ΠΑΡΑ ΠΟΛΥ ΥΨΗΛΟΙ ΡΥΠΟΙ ΑΠΑΓΟΡΕΥΣΗ ΚΥΚΛΟΦΟΡΙΑΣ'
   ΑΛΛΙΩΣ_ΑΝ ΝO2 > 500 Η O3 > 300 ΤΟΤΕ
     ΓΡΑΨΕ 'ΠΟΛΥ ΥΨΗΛΟΙ ΡΥΠΟΙ ΕΚΤΑΚΤΑ ΜΕΤΡΑ'
   ΑΛΛΙΩΣ_ΑΝ ΝO2 > 400 Η O3 > 250 ΤΟΤΕ
     ΓΡΑΨΕ 'ΠΡΟΣΟΧΗ ΥΨΗΛΟΙ ΡΥΠΟΙ'
   ΑΛΛΙΩΣ
     ΓΡΑΨΕ 'Ρύποι μέσα στα όρια'
   ΤΕΛΟΣ_ΑΝ
 ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ   
αλλλά στον online νέο διερμηνευτή πρέπει να γίνουν αλλαγές στον κώδικα όπως σημειώνονται παρακάτω:
Παράθεση
ΠΡΟΓΡΑΜΜΑ Ρύποι_2

ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ΝΟ2, Ο3
ΑΡΧΗ
!Έλεγχος τιμής για το διοξείδιο του αζώτου,NO2
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ 'Δώσε την τιμή του Διοξειδίου του αζώτου'
    ΔΙΑΒΑΣΕ ΝΟ2

    ΑΝ ΝΟ2 < 0 ΤΟΤΕ
      ΓΡΑΨΕ 'Δώσε θετική τιμή ή μηδέν για το Διοξειδίου του αζώτου'
    ΤΕΛΟΣ_ΑΝ
  ΜΕΧΡΙΣ_ΟΤΟΥ ΝΟ2 >= 0

!Έλεγχος τιμής για το διοξείδιο του όζοντος O3
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ 'Δώσε την τιμή του Όζοντος'
    ΔΙΑΒΑΣΕ Ο3

    ΑΝ Ο3 < 0 ΤΟΤΕ
      ΓΡΑΨΕ 'Δώσε θετική τιμή ή μηδέν για το Όζον'
    ΤΕΛΟΣ_ΑΝ
  ΜΕΧΡΙΣ_ΟΤΟΥ Ο3 >= 0

  ΑΝ (ΝΟ2 > 700) Η (Ο3 > 500) ΤΟΤΕ
    ΓΡΑΨΕ 'ΠΑΡΑ ΠΟΛΥ ΥΨΗΛΟΙ ΡΥΠΟΙ ΑΠΑΓΟΡΕΥΣΗ ΚΥΚΛΟΦΟΡΙΑΣ'
  ΑΛΛΙΩΣ_ΑΝ (ΝΟ2 > 500) Η (Ο3 > 300) ΤΟΤΕ
    ΓΡΑΨΕ 'ΠΟΛΥ ΥΨΗΛΟΙ ΡΥΠΟΙ ΕΚΤΑΚΤΑ ΜΕΤΡΑ'
  ΑΛΛΙΩΣ_ΑΝ (ΝΟ2 > 400) Η (Ο3 > 250) ΤΟΤΕ
    ΓΡΑΨΕ 'ΠΡΟΣΟΧΗ ΥΨΗΛΟΙ ΡΥΠΟΙ'
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ 'Ρύποι μέσα στα όρια'
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Αν αφαιρεθούν οι παρενθέσεις εμφανίζονται τα εξής μηνύματα σφάλματος
Παράθεση
  • Σφάλμα: Περίμενα τον αριστερό τελεστέο να είναι τύπου Λογική, αλλά έλαβα μη συμβατό τύπο Ακέραια
Κώδικας για το παραπάνω σφάλμα,
Κώδικας: [Επιλογή]
ΠΡΟΓΡΑΜΜΑ Ρύποι_2

ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ΝΟ2, Ο3
ΑΡΧΗ
!Έλεγχος τιμής για το διοξείδιο του αζώτου,NO2
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ 'Δώσε την τιμή του Διοξειδίου του αζώτου'
    ΔΙΑΒΑΣΕ ΝΟ2

    ΑΝ ΝΟ2 < 0 ΤΟΤΕ
      ΓΡΑΨΕ 'Δώσε θετική τιμή ή μηδέν για το Διοξειδίου του αζώτου'
    ΤΕΛΟΣ_ΑΝ
  ΜΕΧΡΙΣ_ΟΤΟΥ ΝΟ2 >= 0

!Έλεγχος τιμής για το διοξείδιο του όζοντος,O3
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ 'Δώσε την τιμή του Όζοντος'
    ΔΙΑΒΑΣΕ Ο3

    ΑΝ Ο3 < 0 ΤΟΤΕ
      ΓΡΑΨΕ 'Δώσε θετική τιμή ή μηδέν για το Όζον'
    ΤΕΛΟΣ_ΑΝ
  ΜΕΧΡΙΣ_ΟΤΟΥ Ο3 >= 0

  ΑΝ ΝΟ2 > 700 Η Ο3 > 500 ΤΟΤΕ
    ΓΡΑΨΕ 'ΠΑΡΑ ΠΟΛΥ ΥΨΗΛΟΙ ΡΥΠΟΙ ΑΠΑΓΟΡΕΥΣΗ ΚΥΚΛΟΦΟΡΙΑΣ'
  ΑΛΛΙΩΣ_ΑΝ ΝΟ2 > 500 Η Ο3 > 300 ΤΟΤΕ
    ΓΡΑΨΕ 'ΠΟΛΥ ΥΨΗΛΟΙ ΡΥΠΟΙ ΕΚΤΑΚΤΑ ΜΕΤΡΑ'
  ΑΛΛΙΩΣ_ΑΝ (ΝΟ2 > 400) Η (Ο3 > 250) ΤΟΤΕ
    ΓΡΑΨΕ 'ΠΡΟΣΟΧΗ ΥΨΗΛΟΙ ΡΥΠΟΙ'
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ 'Ρύποι μέσα στα όρια'
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
« Τελευταία τροποποίηση: 27 Νοέ 2020, 05:56:51 μμ από dpa2006 »
Computer science (abbreviated CS or CompSci) is the scientific and practical approach to computation and its applications. It is the systematic study of the feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information, whether such information is encoded in bits and bytes in a computer memory or transcribed engines and protein structures in a human cell.source:http://en.wikipedia.org/wiki/Computer_science

komni

  • Θαμώνας
  • ***
  • Μηνύματα: 22
Απ: ΝΕΟΣ διαδικτυακός διερμηνευτής της Γλώσσας
« Απάντηση #47 στις: 27 Νοέ 2020, 11:51:46 μμ »
Καλησπέρα σε όλους,

Δοκιμών συνέχεια,

ο παρακάτω κώδικας
τρέχει στον Διερμηνευτή του Άλκη,αλλλά στον online νέο διερμηνευτή πρέπει να γίνουν αλλαγές στον κώδικα όπως σημειώνονται παρακάτω:Αν αφαιρεθούν οι παρενθέσεις εμφανίζονται τα εξής μηνύματα σφάλματοςΚώδικας για το παραπάνω σφάλμα,
Κώδικας: [Επιλογή]
ΠΡΟΓΡΑΜΜΑ Ρύποι_2

ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ΝΟ2, Ο3
ΑΡΧΗ
!Έλεγχος τιμής για το διοξείδιο του αζώτου,NO2
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ 'Δώσε την τιμή του Διοξειδίου του αζώτου'
    ΔΙΑΒΑΣΕ ΝΟ2

    ΑΝ ΝΟ2 < 0 ΤΟΤΕ
      ΓΡΑΨΕ 'Δώσε θετική τιμή ή μηδέν για το Διοξειδίου του αζώτου'
    ΤΕΛΟΣ_ΑΝ
  ΜΕΧΡΙΣ_ΟΤΟΥ ΝΟ2 >= 0

!Έλεγχος τιμής για το διοξείδιο του όζοντος,O3
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ 'Δώσε την τιμή του Όζοντος'
    ΔΙΑΒΑΣΕ Ο3

    ΑΝ Ο3 < 0 ΤΟΤΕ
      ΓΡΑΨΕ 'Δώσε θετική τιμή ή μηδέν για το Όζον'
    ΤΕΛΟΣ_ΑΝ
  ΜΕΧΡΙΣ_ΟΤΟΥ Ο3 >= 0

  ΑΝ ΝΟ2 > 700 Η Ο3 > 500 ΤΟΤΕ
    ΓΡΑΨΕ 'ΠΑΡΑ ΠΟΛΥ ΥΨΗΛΟΙ ΡΥΠΟΙ ΑΠΑΓΟΡΕΥΣΗ ΚΥΚΛΟΦΟΡΙΑΣ'
  ΑΛΛΙΩΣ_ΑΝ ΝΟ2 > 500 Η Ο3 > 300 ΤΟΤΕ
    ΓΡΑΨΕ 'ΠΟΛΥ ΥΨΗΛΟΙ ΡΥΠΟΙ ΕΚΤΑΚΤΑ ΜΕΤΡΑ'
  ΑΛΛΙΩΣ_ΑΝ (ΝΟ2 > 400) Η (Ο3 > 250) ΤΟΤΕ
    ΓΡΑΨΕ 'ΠΡΟΣΟΧΗ ΥΨΗΛΟΙ ΡΥΠΟΙ'
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ 'Ρύποι μέσα στα όρια'
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Ευχαριστώ πολύ για την βοήθεια! Θα διορθωθεί με το αυριανό update.

evry

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 3532
  • to Iterate is human to Recurse divine
Απ: ΝΕΟΣ διαδικτυακός διερμηνευτής της Γλώσσας
« Απάντηση #48 στις: 28 Νοέ 2020, 07:50:21 μμ »
@komni
Δεν είχα τον χρόνο να παρακολουθήσω την συζήτηση.
Ήθελα να σε ρωτήσω γιατί πήγες σε TypeScript και όχι σε Javascript και τι άλλες βιβλιοθήκες χρησιμοποίησες.
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

komni

  • Θαμώνας
  • ***
  • Μηνύματα: 22
Απ: ΝΕΟΣ διαδικτυακός διερμηνευτής της Γλώσσας
« Απάντηση #49 στις: 28 Νοέ 2020, 08:30:18 μμ »
@evry

Χρησιμοποίησα Typescript διότι το θεωρώ απίθανο να διατηρηθεί μία τόσο μεγάλη εφαρμογή(~7000 γραμμές χωρίς τον κώδικα της ιστοσελίδας) όταν είναι γραμμένη σε Javascript.
Αυτό γιατί το Javascript έχει dynamic type system και σοβαρές ελλείψεις δομών που καλύπτει το Typescript π.χ. Enums, Interfaces, Class private & protected properties(Αν και το τελευταίο είναι tc39 candidate proposal).

Στον διερμηνευτή, η μόνη βιβλιοθήκη που χρησιμοποιώ είναι το clone-deep το οποίο απλά κάνει αντιγραφή Objects.
Αποφάσισα να μην χρησιμοποιήσω σχεδόν καμία βιβλιοθήκη για λόγους ταχύτητας και μεγέθους.

komni

  • Θαμώνας
  • ***
  • Μηνύματα: 22
Απ: ΝΕΟΣ διαδικτυακός διερμηνευτής της Γλώσσας
« Απάντηση #50 στις: 29 Νοέ 2020, 04:12:17 πμ »
Μόλις ανέβασα νέο update που, ανάμεσα σε άλλα, προσθέτει τη βηματική εκτέλεση και διορθώνει το bug που βρήκε ο @dpa2006. Επίσης, αλλάζει την αναπαράσταση των πραγματικών ώστε να αποθηκεύονται μόνο τα τελευταία 2 δεκαδικά ψηφία, δηλαδή:
Κώδικας: [Επιλογή]
Γραψε 1/3       ! -> 0.33
Γραψε 2/3       ! -> 0.66
Γράψε 1/3 + 2/3 ! -> 0.99

Υπάρχει ένα bug το οποίο επηρεάζει την αποτίμηση σταθερών εκφράσεων όταν γίνεται παράνομη πράξη. Τότε, ο διερμηνευτής δεν δίχνει το σωστό σφαλμα αλλά ένα internal σφαλμα της Javascript. Π.χ.:
Κώδικας: [Επιλογή]
Γράψε 'α' / 3 ! Παράνομη πράξη (δεν ορίζεται μεταξύ χαρακτήρων και ακεραίων)
Βγάζει σφάλμα:
Παράθεση
Σφάλμα Διερμηνευτή: TypeError: left.divide is not a function
Το συγκεκριμένο αφορά μόνο τις σταθερές εκφράσεις και θα διορθωθεί το επόμενο Σάββατο
« Τελευταία τροποποίηση: 29 Νοέ 2020, 07:32:02 μμ από komni »

Σταύρος Φιλιππίδης

  • Νέος
  • *
  • Μηνύματα: 4
    • Personal and academic website of Dr. Stavros K. Filippidis
Απ: ΝΕΟΣ διαδικτυακός διερμηνευτής της Γλώσσας
« Απάντηση #51 στις: Χθες στις 01:22:05 μμ »
Συγχαρητήρια για την εξαιρετική σου προσφορά στο μάθημά μας! :)

Να σου προτείνω να τρέξεις μια υλοποίηση ουράς που έχω γράψει και πρόσεξα ότι "χτυπάει" σε κάποια σημεία!

Η υλοποίηση τρέχει σωστά στη ΓλωσσοΜάθεια, όπου την έχω δοκιμάσει.

Για να την τρέξω και στο δικό σου διερμηνευτή, αντικατέστησα τα

<--

με

<-

Επίσης, είδα ότι δεν υποστηρίζεις σταθερές (εννοώ συμβολικές σταθερές, που δηλώνουμε στο ΣΤΑΘΕΡΕΣ) ως διαστάσεις κατά τη δήλωση του πίνακα, οπότε στον πίνακα έβαλα "καρφωτά" το νούμερο που έχω ως σταθερά Ν.

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

Δηλαδή με τη σειρά εισάγουμε τα εξής στις εντολές ΔΙΑΒΑΣΕ:

1
ένα
1
δύο
2
3
3
1
τρία


Θα δεις ότι ήδη από το πρώτο 3 που δίνεις, δεν εμφανίζει καθόλου την ουρά και στην εισαγωγή του στοιχείου στη συνέχεια δίνει λάθος.

Και κάτι δευτερεύον:

νομίζω ότι η εντολή

ΓΡΑΨΕ ' '

(με έναν κενό χαρακτήρα ανάμεσα στα μονά εισαγωγικά) θα έπρεπε να εμφανίζει μια κενή γραμμή, πράγμα που νομίζω δεν το κάνεις.

Μπορείς να βρεις την υλοποίηση της ουράς που αναφέρω στην αντίστοιχη ανάρτηση στο ιστολόγιό μου (το αρχείο στην περίπτωση 6Β είναι ο πηγαίος κώδικας).

Και πάλι συγχαρητήρια για την εξαιρετική σου δουλειά! Συνέχισε έτσι!

επεξεργασία 4/12/2020 7:47 μ.μ.: να διευκρινίσω ότι την αλλαγή από <-- σε <- δεν την ανέφερα ως bug. Απλά χρειάζεται στο αρχείο που παρέχω για να δουλέψει με το συγκεκριμένο νέο διερμηνευτή. Για την ακρίβεια, το σωστό (προφανώς!) είναι η χρήση του <- απλά εγώ έχω στο αρχείο το <-- γιατί είναι αρχείο κατάλληλο για χρήση με τη ΓλωσσοΜάθεια.
« Τελευταία τροποποίηση: Χθες στις 07:47:04 μμ από Σταύρος Φιλιππίδης »

komni

  • Θαμώνας
  • ***
  • Μηνύματα: 22
Απ: ΝΕΟΣ διαδικτυακός διερμηνευτής της Γλώσσας
« Απάντηση #52 στις: Χθες στις 05:19:32 μμ »
@Σταύρος Φιλιππίδης

Καλησπέρα και ευχαριστώ για τα καλά σας λόγια και για τη βοήθεια σας!

Για να την τρέξω και στο δικό σου διερμηνευτή, αντικατέστησα τα

<--

με

<-

Ναι ο διερμηνευτής μου χρησιμοποιεί <- και όχι <--.
Θέλει προσοχή αυτό διότι μια έκφραση τύπου α <-- 5 αποτιμάται σε α <- -5!

Επίσης, υπήρχε ένα άλλo bug όπου ο type checker δεν επισκεπτόταν τα ΑΛΛΙΩΣ_ΑΝ και ΑΛΛΙΩΣ και έτσι άμα τρέχαμε την original έκδοση του προγράμματός σας στην αρχή δεν έβγαζε error αλλά έβγαζε ένα internal της Javascript όταν διάβαζε χαρακτήρες. Διόρθωσα και αυτό.

Επίσης, είδα ότι δεν υποστηρίζεις σταθερές (εννοώ συμβολικές σταθερές, που δηλώνουμε στο ΣΤΑΘΕΡΕΣ) ως διαστάσεις κατά τη δήλωση του πίνακα, οπότε στον πίνακα έβαλα "καρφωτά" το νούμερο που έχω ως σταθερά Ν.

Πλέον υπάρχει υποστήριξη και γι' αυτό! Μου ξέφυγε  ;D

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

Δηλαδή με τη σειρά εισάγουμε τα εξής στις εντολές ΔΙΑΒΑΣΕ:

1
ένα
1
δύο
2
3
3
1
τρία

Θα δεις ότι ήδη από το πρώτο 3 που δίνεις, δεν εμφανίζει καθόλου την ουρά και στην εισαγωγή του στοιχείου στη συνέχεια δίνει λάθος.

Fixed! Τώρα λειτουργεί σωστά. Το πρόβλημα ήταν πως έκανα μια αλλαγή στον Parser και άρχισε να ερμηνεύει τις αριθμητικές εκφράσεις με right associativity και έτσι υπήρε πρόβλημα εδώ:
125        ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ πίσω - εμπρός + 1

νομίζω ότι η εντολή

ΓΡΑΨΕ ' '

(με έναν κενό χαρακτήρα ανάμεσα στα μονά εισαγωγικά) θα έπρεπε να εμφανίζει μια κενή γραμμή, πράγμα που νομίζω δεν το κάνεις

Εδώ υπήρχε πρόβλημα με τον κώδικα της ιστοσελίδας(αν χρησιμοποιούσατε το CLI θα το έβγαζε σωστά). Fixed και αυτό!

Σταύρος Φιλιππίδης

  • Νέος
  • *
  • Μηνύματα: 4
    • Personal and academic website of Dr. Stavros K. Filippidis
Απ: ΝΕΟΣ διαδικτυακός διερμηνευτής της Γλώσσας
« Απάντηση #53 στις: Χθες στις 07:34:29 μμ »
Απίστευτα γρήγορη απόκριση και διόρθωση όλων των bug! Και πάλι συγχαρητήρια! :)