Υλοποίηση Ψευδογλώσσας

Ξεκίνησε από komni, 27 Νοε 2020, 01:27:39 ΜΜ

« προηγούμενο - επόμενο »

Βοηθάει η ύπαρξη διερμηνευτή για την Ψευδογλώσσα τον μαθητή;

Ναι
19 (95%)
Όχι
1 (5%)

Σύνολο ψηφοφόρων: 20

dski

Αφού σε συγχαρώ για την εξαιρετική δουλειά σου και σε ευχαριστήσω για τη βοήθειά που μας παρέχεις με την δημιουργία του διερμηνευτή για την Ψευδογλώσσα, θα ήθελα να προτείνω, αν δεν είναι δύσκολο, να προστεθεί σε κάποιο σημείο (π.χ. στα δεξιά της σελίδας) μια λίστα με τις εντολές της Ψευδογλώσσας ώστε να μπορούν να εισαχθούν με ένα κλικ στον αλγόριθμο. Αυτό υπάρχει στο παλιό pseudoglossa.gr αλλά και στον Διερμηνευτή της Γλώσσας/Ψευδογλώσσα και θεωρώ ότι βοηθάει τους μαθητές καθώς δεν είναι όλοι γρήγοροι με την πληκτρολόγηση στα ελληνικά, ειδικά όταν πρόκειται για εντολές προγραμματισμού, ενώ, επιπλέον, η λίστα νομίζω τους βοηθάει και να τις θυμούνται.

komni

Παράθεση από: dski στις 20 Ιαν 2021, 08:01:14 ΜΜ
Αφού σε συγχαρώ για την εξαιρετική δουλειά σου και σε ευχαριστήσω για τη βοήθειά που μας παρέχεις με την δημιουργία του διερμηνευτή για την Ψευδογλώσσα, θα ήθελα να προτείνω, αν δεν είναι δύσκολο, να προστεθεί σε κάποιο σημείο (π.χ. στα δεξιά της σελίδας) μια λίστα με τις εντολές της Ψευδογλώσσας ώστε να μπορούν να εισαχθούν με ένα κλικ στον αλγόριθμο. Αυτό υπάρχει στο παλιό pseudoglossa.gr αλλά και στον Διερμηνευτή της Γλώσσας/Ψευδογλώσσα και θεωρώ ότι βοηθάει τους μαθητές καθώς δεν είναι όλοι γρήγοροι με την πληκτρολόγηση στα ελληνικά, ειδικά όταν πρόκειται για εντολές προγραμματισμού, ενώ, επιπλέον, η λίστα νομίζω τους βοηθάει και να τις θυμούνται.

Καλησπέρα και ευχαριστώ για τα καλά σας λόγια.

Μου το έχουν προτείνει ξανά αυτό αλλά αποφάσισα να μην το υλοποιήσω πρώτον διότι θα κάνει το UI της ιστοσελίδας πολύ πιο bloated και επίσης γιατί οι μαθητές θα πρέπει να γνωρίζουν τις εντολές απ' έξω.

Παράθεση από: bugman στις 19 Ιαν 2021, 08:01:15 ΜΜ
το -obj δεν έχει καμία έννοια, επειδή το - δεν εφαρμόζεται στο αντικείμενο.
Ομοίως το Όχι 7 mod 5 > Α_Ρ(4) δεν μπορεί να είναι (Όχι 7) ούτε (Όχι 7 mod 5)... κ.ο.κ. Πρέπει η δεξιά έκφραση να είναι τύπου λογικός. Το ζήτημα είναι μέχρι που; Δηλαδή αν το Όχι 7 mod 5>Α_Ρ(4) είχε συνέχεια το Και (....) το ΚΑΙ θα ήταν μέσα ή όχι στην δεξιά έκφραση του Όχι; Κατά την γνώμη δεν είναι. Όπως πχ στο -3-4 το πρώτο - είναι unary, ενώ το δεύτερο (-) δεν είναι, οπότε έχουμε (-3)-(4) και όχι -(3-(4))

Στο δεύτερο σκέλος συμφωνείς ότι το Όχι δεν μπορεί να μην είναι unary, αλλά δεν δείχνεις αν χρειάζεται έναν όρο την ελάχιστη έκφραση που θα δίνει λογικό αποτέλεσμα) για να ολοκληρωθεί όταν απουσιάζουν οι παρενθέσεις.

Alkis, εδώ συζητάμε για ένα λάθος στο διερμηνευτή και αυτό είναι τεχνικό θέμα. Αυτό που δείχνεις με την python, είναι σωστό, όπως και αν το έβαζες και στη Μ2000, αλλά στο διερμηνευτή του komni, βγαίνει λάθος!


Η C++ μας αφήνει να κάνουμε overload unary operators:

#include <iostream>

class Obj {
    public:
        double prop;

    Obj operator-() {
        Obj* newObj = new Obj();
        newObj->prop = 1 / this->prop;
        
        return *newObj;
    }
};

int main()
{
    Obj obj = *new Obj();
    obj.prop = 10;

    std::cout << (-obj).prop << std::endl; // 0.1
    std::cout << -obj.prop << std::endl;   // -10
    
    return 0;
}

George Eco

Κομνηνέ λεβέντη μου, στο βιβλίο Β Λυκείου έχει εντολή Επανάλαβε μέχρις ότου (εκτός του Αρχή_Επανάληψης) για ψευδογλώσσα, που αναγνωρίζεται στο διερμηνευτή σου ως δεσμευμένη λέξη, αλλά δε κλείνει σωστά με Μέχρις_ότου όπως θα έπρεπε. Για τσέκαρέ το μια! ;)

Αλγόριθμος Παράδειγμα

χ <- 0
Επανάλαβε
χ <- χ+1
ΓΡΑΨΕ χ
Μέχρις_ότου χ > 10

Τέλος Παράδειγμα

bugman

@komni,
συμφωνώ ότι όταν το ορίσεις (και γίνεται να το ορίσεις στη γλώσσα που χρησιμοποιείς) το έχεις. Και η Μ2000 που έχω γράψει ορίζει τελεστές στα αντικείμενά της, αν και έχει το περιορισμό ότι οι πράξεις γίνονται με αντικείμενα δηλαδή δεν μπορείς να κάνεις Α * 10  (όπου Α αντικείμενο και 10 αριθμός), αλλά μπορείς να κάνεις το Α*Β (να είναι δηλαδή το Α και Β αντικείμενα).
Όπως σου έγραψα το -obj δεν έχει νόημα ενώ το -obj.propertyA έχει, γιατί για το δεύτερο εφόσον είναι αριθμός έχει νόημα, ενώ για το πρώτο πρέπει να το ορίσεις!

Χαίρομαι που το δούλεψες το θέμα. Το ωραίο με αυτόν που έχει το ταλέντο με το προγραμματισμό είναι να αναζητεί αυτό που πιστεύει ότι γίνεται και έτσι θα διαπιστώσει αν πράγματι γίνεται ή όχι. Εκείνος που μένει άπραγος ή στηρίζεται σε φαντασιώσεις χάνει τελικά αυτό που είναι η επιστήμη: Να ξεκινάς με την υπόθεση και να κάνεις το πείραμα, τον έλεγχο αυτής!