Ψηφοφορία

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

Ναι
14 (93.3%)
Όχι
1 (6.7%)

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

Αποστολέας Θέμα: Υλοποίηση Ψευδογλώσσας  (Αναγνώστηκε 6393 φορές)

dski

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

komni

  • Θαμώνας
  • ***
  • Μηνύματα: 48
Απ: Υλοποίηση Ψευδογλώσσας
« Απάντηση #46 στις: 30 Ιαν 2021, 07:56:57 μμ »
Αφού σε συγχαρώ για την εξαιρετική δουλειά σου και σε ευχαριστήσω για τη βοήθειά που μας παρέχεις με την δημιουργία του διερμηνευτή για την Ψευδογλώσσα, θα ήθελα να προτείνω, αν δεν είναι δύσκολο, να προστεθεί σε κάποιο σημείο (π.χ. στα δεξιά της σελίδας) μια λίστα με τις εντολές της Ψευδογλώσσας ώστε να μπορούν να εισαχθούν με ένα κλικ στον αλγόριθμο. Αυτό υπάρχει στο παλιό pseudoglossa.gr αλλά και στον Διερμηνευτή της Γλώσσας/Ψευδογλώσσα και θεωρώ ότι βοηθάει τους μαθητές καθώς δεν είναι όλοι γρήγοροι με την πληκτρολόγηση στα ελληνικά, ειδικά όταν πρόκειται για εντολές προγραμματισμού, ενώ, επιπλέον, η λίστα νομίζω τους βοηθάει και να τις θυμούνται.

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

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

το -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

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 456
Απ: Υλοποίηση Ψευδογλώσσας
« Απάντηση #47 στις: 30 Ιαν 2021, 10:51:59 μμ »
Κομνηνέ λεβέντη μου, στο βιβλίο Β Λυκείου έχει εντολή Επανάλαβε μέχρις ότου (εκτός του Αρχή_Επανάληψης) για ψευδογλώσσα, που αναγνωρίζεται στο διερμηνευτή σου ως δεσμευμένη λέξη, αλλά δε κλείνει σωστά με Μέχρις_ότου όπως θα έπρεπε. Για τσέκαρέ το μια! ;)

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

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

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

bugman

  • Επισκέπτης
Απ: Υλοποίηση Ψευδογλώσσας
« Απάντηση #48 στις: 30 Ιαν 2021, 11:05:30 μμ »
@komni,
συμφωνώ ότι όταν το ορίσεις (και γίνεται να το ορίσεις στη γλώσσα που χρησιμοποιείς) το έχεις. Και η Μ2000 που έχω γράψει ορίζει τελεστές στα αντικείμενά της, αν και έχει το περιορισμό ότι οι πράξεις γίνονται με αντικείμενα δηλαδή δεν μπορείς να κάνεις Α * 10  (όπου Α αντικείμενο και 10 αριθμός), αλλά μπορείς να κάνεις το Α*Β (να είναι δηλαδή το Α και Β αντικείμενα).
Όπως σου έγραψα το -obj δεν έχει νόημα ενώ το -obj.propertyA έχει, γιατί για το δεύτερο εφόσον είναι αριθμός έχει νόημα, ενώ για το πρώτο πρέπει να το ορίσεις!

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