Με [code=ΓΛΩΣΣΑ]Πρόγραμμα ...[/code] χρωματίζεται ο κώδικας

Ξεκίνησε από alkisg, 19 Απρ 2006, 08:27:40 ΠΜ

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

alkisg

Όταν στέλνετε κάποιον κώδικα προγράμματος, για να χρωματίζεται αυτόματα μπορείτε να τον εσωκλείετε σε
[cοde=ΓΛΩΣΣΑ]ΠΡΟΓΡΑΜΜΑ όνομα...[/cοde]

Αν στέλνετε αλγόριθμο, μπορείτε να χρησιμοποιείτε
[cοde=Ψευδογλώσσα]Αλγόριθμος όνομα...[/cοde]

Αν όμως στέλνετε ολοκληρωμένη άσκηση και όχι τμήμα κώδικα, τότε καλύτερα να το στέλνετε σαν συνημμένο, όπως αναφέρεται σε αυτό το θέμα.

Προσοχή, για να φαίνονται τα παραπάνω έβαλα ελληνικό όμικρον στο code οπότε μην κάνετε αντιγραφή-επικόλληση.

Παραδείγματα:
Κώδικας: ΓΛΩΣΣΑ
!Το παράδειγμα της σελίδας 106 του τετραδίου μαθητή.
ΠΡΟΓΡΑΜΜΑ ΠύργοιΤουΑνόι
ΣΤΑΘΕΡΕΣ
  Στύλος1 = 'Α'
  Στύλος2 = 'Β'
  Στύλος3 = 'Γ'
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Ν
ΑΡΧΗ
  ΓΡΑΨΕ 'Δώσε τον αριθμό των δίσκων:  '
  ΔΙΑΒΑΣΕ Ν
  ΚΑΛΕΣΕ Μετακίνησε(Ν, Στύλος1, Στύλος2, Στύλος3) 
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΔΙΑΔΙΚΑΣΙΑ Μετακίνησε(Ν, ΣτύλοςΑ, ΣτύλοςΒ, ΣτύλοςΓ) 
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Ν
  ΧΑΡΑΚΤΗΡΕΣ: ΣτύλοςΑ, ΣτύλοςΒ, ΣτύλοςΓ
ΑΡΧΗ
  ΑΝ Ν = 1 ΤΟΤΕ
    ΓΡΑΨΕ 'Μετακίνησε από τον ', ΣτύλοςΑ, ' στον ', ΣτύλοςΓ
  ΑΛΛΙΩΣ
    ΚΑΛΕΣΕ Μετακίνησε(Ν - 1, ΣτύλοςΑ, ΣτύλοςΓ, ΣτύλοςΒ) 
    ΓΡΑΨΕ 'Μετακίνησε από τον ', ΣτύλοςΑ, ' στον ', ΣτύλοςΓ
    ΚΑΛΕΣΕ Μετακίνησε(Ν - 1, ΣτύλοςΒ, ΣτύλοςΑ, ΣτύλοςΓ) 
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ


Κώδικας: Ψευδογλώσσα
Αλγόριθμος Sequential_Search
!Σελίδα 64 του βιβλίου μαθητή
Δεδομένα // n, table, key //
done ← ψευδής
position ← 0
i ← 1
Όσο (done = ψευδής) και (i <= n) επανάλαβε
  Αν table[i] = key τότε
    done ← αληθής
    position ← i
  αλλιώς
    i ← i + 1
  Τέλος_αν
τέλος_επανάληψης
Αποτελέσματα // done, position //
Τέλος Sequential_Search

Vangelis

Άλκη το πλαίσιο πως το φτιάχνουμε π.χ όταν θέλουμε να εμφανίζουμε ένα τμήμα απο την απάντηση ενός άλλου συναδέλφου;

alkisg

Τα γράφω με τη σειρά που τα κάνω τώρα που σου απαντάω:
1) Πατάω το κουμπί Προεπισκόπηση, για με βγάλει στον editor κανονικής απάντησης, όχι στης γρήγορης
2) Στη νέα σελίδα που έβγαλε, κάτω από το κουτί που γράφω, υπάρχουν όλα τα προηγούμενα μηνύματα, και πάνω-δεξιά τους ένα link για "Εισαγωγή παράθεσης". Πατάω αυτό από το δικό σου μήνυμα.
3) Μου έβγαλε αυτόματα τα εξής:
[quοte author=Vangelis link=topic=405.msg2635#msg2635 date=1145615302]
Άλκη το πλαίσιο πως το φτιάχνουμε π.χ όταν θέλουμε να εμφανίζουμε ένα τμήμα απο την απάντηση ενός άλλου συναδέλφου;
[/quοte]
Αυτό θα είναι το κουτί παράθεσης.
4) Αν δε θέλω όλο το κείμενό σου, απλά σβήνω και κρατάω το κομμάτι που θέλω, π.χ. σβήνω το όνομά μου από την απάντησή σου:
Παράθεση από: Vangelis στις 21 Απρ 2006, 01:28:22 ΜΜ
το πλαίσιο πως το φτιάχνουμε π.χ όταν θέλουμε να εμφανίζουμε ένα τμήμα απο την απάντηση ενός άλλου συναδέλφου;

filippos

Άλκη,

μήπως θα ήταν πιό "σωστό" να λέμε:
[cοde=ΨΕΥΔΟΓΛΩΣΣΑ] αντι του
[cοde=ΑΛΓΟΡΙΘΜΟΣ] ;;

Εξ' άλλου και στις δύο "περιπτώσεις" αλγόριθμο ΚΩΔΙΚΟποιούμε.. τη μία σε ψευδογλώσσα και την άλλη σε ΓΛΩΣΣΑ

Τι λές;

alkisg

#4
Δίκιο έχεις... θα το αλλάξω κατά πάσα πιθανότητα μέσα στο ΣΚ.

Merci!

edit: Έτοιμο!
Κάλλιο αργά παρά ποτέ! :^)

alkisg

#5
Ξαναέφτιαξα το mod και δουλεύει πάλι ο χρωματισμός των code=ΓΛΩΣΣΑ και code=Ψευδογλώσσα, αν και έχει λίγα προβληματάκια (case sensitive κλπ), θα το ξανακοιτάξω στην επόμενη έκδοση του SMF που θα έχει και διάφορες άλλες αλλαγές.

Κώδικας: ΓΛΩΣΣΑ
ΠΡΟΓΡΑΜΜΑ Χρωματισμός
ΑΡΧΗ
  ΓΡΑΨΕ "Ναι! Δουλεύει!"
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

evry

Για να το δοκιμάσω να δω  :D

Κώδικας: ΓΛΩΣΣΑ
Κ <- Σ <- 0
ΔΙΑΒΑΣΕ Ν
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ N
   ΔΙΑΒΑΣΕ Α
   ΑΝ Α=0 ΤΟΤΕ
        Ι <- 1001
   ΤΕΛΟΣ_ΑΝ
   Σ <- Σ + Α
   Κ <- Κ + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ Κ=0 ΤΟΤΕ
   ΓΡΑΨΕ 'ΔΕΝ ΕΔΩΣΕΣ ΑΡΙΘΜΟΥΣ'
ΑΛΛΙΩΣ
   ΜΟ <- Σ/Κ
  ΓΡΑΨΕ 'ΜΟ = ', ΜΟ
ΤΕΛΟΣ_ΑΝ


Μια χαρά δουλεύει  :)
Άλκη υποστηρίζει και R ?
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

alkisg

Ναι, με code=rsplus:

Κώδικας: rsplus
convert_kelvin_to_celsius <- function(temp) {
  celsius <- temp - 273.15
  return(celsius)
}

#absolute zero in Celsius
convert_kelvin_to_celsius(0)

evry

Δουλεύει...
Κώδικας: rsplus
i <- 0 ; S <- 0
repeat {
   if (i==10) 
      break
   A <- readline("A = ")
   if (A == "ΤΕΛΟΣ") 
      break
   N <- as.numeric(readline("N = "))
   S <- S + N
   if (S > 1000) 
      break
   print("keep going")
   i <- i + 1
}
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

alkisg

#9
Νέο SMF, θέλει και νέο mod για χρωματισμό κώδικα... επειδή το GeSHi highlighter δεν αναπτύσσεται πια, θα είναι μάλλον αποδοτικότερο να σταματήσω κι εγώ τη συντήρηση του αντίστοιχου smf-geshi και να αρχίσουμε να χρησιμοποιούμε το highlightjs.

Επικολλώ ένα μεγάλο πρόγραμμα για να ελέγχω την πρόοδο:

Κώδικας: ΓΛΩΣΣΑ
ΠΡΟΓΡΑΜΜΑ MasterMind
!Το πρόγραμμα επιδεικνύει την εκτενή χρήση υποπρογραμμάτων.
!Οδηγίες για το παιχνίδι δίνονται κατά την εκτέλεσή του.
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: προσπάθειαΧρήστη, αποτέλεσμαΠροσπάθειας, κατάστασηΕκτέλεσης
ΑΡΧΗ
  ΚΑΛΕΣΕ ΕμφάνισεΟδηγίες
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ 'Δώσε έναν τετραψήφιο αριθμό ή 0 (μηδέν) αν παραιτείσαι:  '
    ΔΙΑΒΑΣΕ προσπάθειαΧρήστη
    αποτέλεσμαΠροσπάθειας <- ΑξιολόγησεΠροσπάθεια(προσπάθειαΧρήστη)
    ΕΠΙΛΕΞΕ αποτέλεσμαΠροσπάθειας
      ΠΕΡΙΠΤΩΣΗ 2222
        ΓΡΑΨΕ "Το αποτέλεσμα της σύγκρισης με το μυστικό αριθμό είναι:  "
        ΚΑΛΕΣΕ ΕμφάνισεΑποτέλεσμα(αποτέλεσμαΠροσπάθειας)
        ΚΑΛΕΣΕ ΕμφάνισεΣυγχαρητήρια
      ΠΕΡΙΠΤΩΣΗ -1
        ΚΑΛΕΣΕ ΕμφάνισεΜήνυμαΠαραίτησης
      ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ
        ΓΡΑΨΕ 'Το αποτέλεσμα της σύγκρισης με το μυστικό αριθμό είναι:  '
        ΚΑΛΕΣΕ ΕμφάνισεΑποτέλεσμα(αποτέλεσμαΠροσπάθειας)
    ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ
  ΜΕΧΡΙΣ_ΟΤΟΥ αποτέλεσμαΠροσπάθειας = 2222 Η αποτέλεσμαΠροσπάθειας = -1
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΔΙΑΔΙΚΑΣΙΑ ΕμφάνισεΟδηγίες
ΑΡΧΗ
  ΓΡΑΨΕ '                ▄  ▄  ▄  ▄▄▄ ▄▄▄ ▄▄▄ ▄▄  ▄  ▄ ▄ ▄  ▄ ▄▄▄'
  ΓΡΑΨΕ '                █▀▄▀█ █▄█ ▀▄  █  █▄  █▄▀ █▀▄▀█ █ █▀▄ █ █  █'
  ΓΡΑΨΕ '                █  █ █ █ █▄▄  █  █▄▄ █ █ █  █ █ █  ▀█ █▄▄▀'
  ΓΡΑΨΕ 'Οδηγίες:'
  ΓΡΑΨΕ 'Στο παιχνίδι αυτό ο σκοπός είναι να μαντέψουμε έναν τετραψήφιο αριθμό'
  ΓΡΑΨΕ 'τον οποίο κρατάει κρυφό ο υπολογιστής. Τα ψηφία του αριθμού είναι'
  ΓΡΑΨΕ 'διαφορετικά μεταξύ τους, αλλά επιτρέπεται το πρώτο ψηφίο να είναι μηδέν,'
  ΓΡΑΨΕ 'για παράδειγμα ο μυστικός αριθμός μπορεί να είναι 0248.'
  ΓΡΑΨΕ 'Αν προσπαθώντας να το βρούμε εισάγουμε τον αριθμό 1234,'
  ΓΡΑΨΕ 'τότε ο υπολογιστής θα μας απαντήσει με το κείμενο ΟΝΟΠ.'
  ΓΡΑΨΕ 'Τα γράμματα αυτά σημαίνουν:'
  ΓΡΑΨΕ '«Ο»χι, ο μυστικός αριθμός δεν περιέχει το ψηφίο 1.'
  ΓΡΑΨΕ '«Ν»αι, ο μυστικός αριθμός περιέχει το ψηφίο 2.'
  ΓΡΑΨΕ '«Ο»χι, ο μυστικός αριθμός δεν περιέχει το ψηφίο 3.'
  ΓΡΑΨΕ '«Π»ερίπου, υπάρχει 4 στο μυστικό αριθμό αλλά όχι σ'' αυτή τη θέση.'
  ΓΡΑΨΕ ''
  ΓΡΑΨΕ 'Η εκτέλεση συνεχίζεται μέχρι να πετύχουμε τον αριθμό,'
  ΓΡΑΨΕ 'ή να δώσουμε 0000, το οποίο σημαίνει ότι παραιτούμαστε.'
  ΓΡΑΨΕ ''
!  ΓΡΑΨΕ '...............................................................................'
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΣΥΝΑΡΤΗΣΗ ΑξιολόγησεΠροσπάθεια(προσπάθειαΧρήστη): ΑΚΕΡΑΙΑ
!Η συνάρτηση αυτή υπολογίζει το αποτέλεσμα, π.χ. 'ΟΝΟΠ'. Αλλά επειδή η ΓΛΩΣΣΑ
!δεν υποστηρίζει χειρισμό αλφαριθμητικών, χρησιμοποιεί αριθμούς, π.χ. 0201.
!Το 2222 σημαίνει ότι ο χρήστης πέτυχε τον αριθμό,
!ενώ το -1 σημαίνει ότι παραιτείται, αφού έδωσε μηδέν σαν είσοδο.
ΣΤΑΘΕΡΕΣ
!Οι πράξεις είναι απλά για να μη φαίνεται ο μυστικός αριθμός
  Μυστικός = 1234*9876 MOD 10000
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: προσπάθειαΧρήστη, αποτέλεσμα, ι, κ
  ΛΟΓΙΚΕΣ: υπάρχει
ΑΡΧΗ
  ΑΝ προσπάθειαΧρήστη = 0 ΤΟΤΕ
    αποτέλεσμα <- -1
  ΑΛΛΙΩΣ
    αποτέλεσμα <- 0
    ΓΙΑ ι ΑΠΟ 4 ΜΕΧΡΙ 1 ΜΕ_ΒΗΜΑ -1
      ΑΝ Ψηφίο(Μυστικός, ι) = Ψηφίο(προσπάθειαΧρήστη, ι) ΤΟΤΕ
        αποτέλεσμα <- 10*αποτέλεσμα + 2
      ΑΛΛΙΩΣ
        υπάρχει <- ΨΕΥΔΗΣ
        ΓΙΑ κ ΑΠΟ 1 ΜΕΧΡΙ 4
          ΑΝ Ψηφίο(προσπάθειαΧρήστη, ι) = Ψηφίο(Μυστικός, κ) ΤΟΤΕ
            υπάρχει <- ΑΛΗΘΗΣ
          ΤΕΛΟΣ_ΑΝ
        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
        ΑΝ υπάρχει ΤΟΤΕ
          αποτέλεσμα <- 10*αποτέλεσμα + 1
        ΑΛΛΙΩΣ
          αποτέλεσμα <- 10*αποτέλεσμα
        ΤΕΛΟΣ_ΑΝ
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΑΝ
  ΑξιολόγησεΠροσπάθεια <- αποτέλεσμα
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

ΣΥΝΑΡΤΗΣΗ Ψηφίο(αριθμός, ποιο): ΑΚΕΡΑΙΑ
!Απομονώνει το #ποιο ψηφίο του αριθμού.
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: αριθμός, ποιο
ΑΡΧΗ
  Ψηφίο <- αριθμός DIV Α_Μ(10^(ποιο - 1)) MOD 10
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

ΔΙΑΔΙΚΑΣΙΑ ΕμφάνισεΣυγχαρητήρια
ΑΡΧΗ
  ΓΡΑΨΕ '              ▄▄▄ ▄  ▄ ▄▄▄ ▄  ▄  ▄  ▄▄  ▄ ▄ ▄▄▄ ▄ ▄ ▄▄  ▄  ▄  ▄'
  ΓΡΑΨΕ '              ▀▄  ▀▄▀  █    ▀▄▀  █▄█ █▄▀ █▄█  █  █▄█ █▄▀ █ █▄█ █'
  ΓΡΑΨΕ '              █▄▄  █  █  ▄▀ ▀▄ █ █ █  █ █  █  █ █ █  █ █ █ ▄'
  ΓΡΑΨΕ '                  Είσαι ιδιοφυία, πέτυχες το μυστικό αριθμό!'
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ ΕμφάνισεΜήνυμαΠαραίτησης
ΑΡΧΗ
  ΓΡΑΨΕ '              ▄▄▄ ▄  ▄ ▄▄▄ ▄  ▄  ▄  ▄▄  ▄ ▄ ▄▄▄ ▄ ▄ ▄▄  ▄  ▄  ▄'
  ΓΡΑΨΕ '              ▀▄  ▀▄▀  █    ▀▄▀  █▄█ █▄▀ █▄█  █  █▄█ █▄▀ █ █▄█ █'
  ΓΡΑΨΕ '              █▄▄  █  █  ▄▀ ▀▄ █ █ █  █ █  █  █ █ █  █ █ █ ▄'
  ΓΡΑΨΕ '        ...θα πάρεις την επόμενη φορά αν καταφέρεις να τον πετύχεις!'
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ ΕμφάνισεΑποτέλεσμα(αποτέλεσμαΠροσπάθειας)
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: αποτέλεσμαΠροσπάθειας, ι
ΑΡΧΗ
  ΓΙΑ ι ΑΠΟ 4 ΜΕΧΡΙ 1 ΜΕ_ΒΗΜΑ -1
    ΕΠΙΛΕΞΕ Ψηφίο(αποτέλεσμαΠροσπάθειας, ι)
      ΠΕΡΙΠΤΩΣΗ 0
        ΓΡΑΨΕ 'Ο '
      ΠΕΡΙΠΤΩΣΗ 1
        ΓΡΑΨΕ 'Π '
      ΠΕΡΙΠΤΩΣΗ 2
        ΓΡΑΨΕ 'Ν '
    ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ ''
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ