Τεκμηρίωσης
Προγραμματιστικές δομές
Γενικά
Βασικές εντολές
Προγραμματιστικές δομές
- σχόλια
- δομές επανάληψης
- δομές ελέγχου
- διαδικασίες
- τερματισμός
Προγράμματα
Εκπαίδευση

Προγραμματιστικές δομές

Εδώ θα βρείτε τη σωστή σύνταξη της γλώσσας προγραμματισμού για να προγραμματίσετε το ρομπότ.

Σχόλια

# το κείμενο αυτό δεν λαμβάνεται υπόψη

Οποιοδήποτε κείμενο εμφανιστεί μετά το κάγκελο, '#', δεν εκλαμβάνεται σαν οδηγία. Το ρομπότ θα το αγνοήσει και θα προχωρήσει στην επόμενη γραμμή.

LΔομές επανάληψης

ΕΠΑΝΕΛΑΒΕ(n){...Εντολές...}
επαναλαμβάνει τις εντολές που βρίσκονται μέσα στις αγκύλες n φορές.

Παράδειγμα:

# ένα τετράγωνο 2x2
ΕΠΑΝΕΛΑΒΕ(4)
{
	ΜΠΡΟΣΤΑ(2)
	ΔΕΞΙΑ()
}
                  

ΕΠΑΝΕΛΑΒΕ(){...Εντολές...}
επαναλαμβάνει για πάντα τις εντολές που βρίσκονται μέσα στις αγκύλες.

Παράδειγμα:

# το ρομπότ προχωρά μπροστά
# (αλλά τελικά θα σταματήσει σε κάποιο εμπόδιο)
ΕΠΑΝΕΛΑΒΕ()
{
	ΜΠΡΟΣΤΑ(1)

}

ΕΠΑΝΕΛΑΒΕ_ΟΣΟ(συνθήκη){...Εντολές...}
επαναλαμβάνει τις εντολές που βρίσκονται μέσα στις αγκύλες όσο το επιτρέπει η συνθήκη.

Παράδειγμα:

# το ρομπότ προχωρά μπροστά
# και σταματά όταν συναντήσει εμπόδιο
ΕΠΑΝΕΛΑΒΕ_ΟΣΟ(ΚΑΘΑΡΑ_ΜΠΡΟΣΤΑ)
{
	ΜΠΡΟΣΤΑ(1)

}

ΠΑΥΣΗ
επιτρέπει τον τερματισμό μιας δομής (π.χ.. ΕΠΑΝΕΛΑΒΕ()) σταματώντας την εκτέλεση των εντολών που βρίσκονται μέσα στις αγκύλες της δομής. Το ρομπότ θα συνεχίσει με την εκτέλεση των εντολών εκτός των αγκύλων.

Παράδειγμα:

# προχώρα μπροστά μέχρι που να μην μπορείς να προχωρήσεις άλλο
ΕΠΑΝΕΛΑΒΕ()
{
	ΑΝ(ΕΜΠΟΔΙΟ_ΜΠΡΟΣΤΑ())	{	
		ΠΑΥΣΗ
	}
	ΑΛΛΙΩΣ
	{	
		ΜΠΡΟΣΤΑ(1)
	}
}
                  

Δομή ελέγχου

ΑΝ(συνθήκη){...Εντολές...}
εκτελεί τις εντολές που βρίσκονται μέσα στις αγκύλες μετά το ΑΝ μόνο αν το επιτρέπει η συνθήκη.

Παράδειγμα:

# αν δεις άσπρη μπογιά στα αριστερά σου βάψε την μαύρη
ΑΝ(ΑΣΠΡΟ_ΑΡΙΣΤΕΡΑ())
{
	ΑΡΙΣΤΕΡΑ()    
	ΜΠΡΟΣΤΑ(1)
	ΒΑΨΕ_ΜΑΥΡΟ()
	ΣΤΑΜΑΤΑ_ΒΑΨΙΜΟ()
	ΠΙΣΩ(1)
	ΔΕΞΙΑ()
}
                  

ΑΝ(συνθήκη){...Εντολές...}ΑΛΛΙΩΣ{...Εντολές...}
εκτελεί τις εντολές που βρίσκονται μέσα στις αγκύλες μετά το ΑΝ μόνο αν το επιτρέπει η συνθήκη. Αλλιώς εκτελεί τις εντολές που βρίσκονται μετά το ΑΛΛΙΩΣ.

Example:

# αν δεις άσπρη μπογιά στα αριστερά σου βάψε την μαύρη
# αλλιώς προχώρα μπροστά μερικά βήματα
ΑΝ(ΑΣΠΡΟ_ΑΡΙΣΤΕΡΑ())
{
	ΑΡΙΣΤΕΡΑ()    
	ΜΠΡΟΣΤΑ(1)
	ΒΑΨΕ_ΜΑΥΡΟ()
	ΣΤΑΜΑΤΑ_ΒΑΨΙΜΟ()
	ΠΙΣΩ(1)
	ΔΕΞΙΑ()
}
ΑΛΛΙΩΣ
{
	ΜΠΡΟΣΤΑ(3)
}
                  

λογικοί τελεστές

Οι βασικές εντολές μπορούν να συνδυαστούν με τους λογικούς τελεστές ΚΑΙ, Η, ΟΧΙ.

The condition can however also be refined to more indicate more precisely when the corresponding instructions should be executed by using (a combination of) the following operators.

Τελεστής
Εναλλακτικός
χαρακτήρας
Αριθμός συνθηκών
Επεξήγηση
ΟΧΙ ~ 1

Αλλάζει την τιμή της έκφρασης :

ΟΧΙ ΑΛΗΘΗΣ = ΨΕΥΔΗΣ
ΟΧΙ ΨΕΥΔΗΣ= ΑΛΗΘΗΣ

Παράδειγμα:
ΟΧΙ ΚΑΘΑΡΑ_ΜΠΡΟΣΤΑ()

ΚΑΙ & 2

Αληθής μόνο όταν και οι δύο συνθήκες είναι αληθής.

ΑΛΗΘΗΣ ΚΑΙ ΑΛΗΘΗΣ = ΑΛΗΘΗΣ
ΑΛΗΘΗΣ ΚΑΙ ΨΕΥΔΗΣ = ΨΕΥΔΗΣ
ΨΕΥΔΗΣ ΚΑΙ ΑΛΗΘΗΣ = ΨΕΥΔΗΣ
ΨΕΥΔΗΣ ΚΑΙ ΨΕΥΔΗΣ = ΨΕΥΔΗΣ

Παράδειγμα:
ΚΑΘΑΡΑ_ΜΠΡΟΣΤΑ() ΚΑΙ ΑΣΠΡΟ_ΔΕΞΙΑ()

Η | 2

Αληθής όταν τουλάχιστο μια συνθήκη είναι αληθής.

ΑΛΗΘΗΣ Η ΑΛΗΘΗΣ = ΑΛΗΘΗΣ
ΑΛΗΘΗΣ Η ΨΕΥΔΗΣ = ΑΛΗΘΗΣ
ΨΕΥΔΗΣ Η ΑΛΗΘΗΣ = ΑΛΗΘΗΣ
ΨΕΥΔΗΣ Η ΨΕΥΔΗΣ = ΨΕΥΔΗΣ

Παράδειγμα:
ΚΑΘΑΡΑ_ΜΠΡΟΣΤΑ() ΚΑΙ ΑΣΠΡΟ_ΔΕΞΙΑ()

Η προτεραιότητα των τελεστών είναι σημαντική (όπως με τον πολλαπλασιασμό και την πρόσθεση). Πρώτα εκτελείται ΟΧΙ μετά το ΚΑΙ και τέλος το Η. Η παρενθέσεις μπορούν να διαφοροποιήσουν την προτεραιότητα των τελεστών.

Παράδειγμα:

				
ΕΠΑΝΕΛΑΒΕ_ΟΣΟ(ΟΧΙ ΕΜΠΟΔΙΟ_ΜΠΡΟΣΤΑ() ΚΑΙ (ΑΣΠΡΟ_ΑΡΙΣΤΕΡΑ() Η ΑΣΠΡΟ_ΔΕΞΙΑ())){
    ΜΠΡΟΣΤΑ(1)
}

ΑΝ(ΕΠΙΛΟΓΗ()ΚΑΙ ΟΧΙ ΑΣΠΡΟ_ΔΕΞΙΑ())
{
    ΔΕΞΙΑ()
    ΠΙΣΩ(1)
}

ΑΝ(ΑΛΗΘΗΣ ΚΑΙ ΨΕΥΔΗΣ){
    # αυτή η εντολή δεν εκτελείται
    ΜΠΡΟΣΤΑ(1)
}
              

Διαδικασίες

ΔΙΑΔΙΚΑΣΙΑ όνομα(παρ1, παρ2, ... , παρN){...Εντολές...}
ορίζει μια διαδικασία με το όνομα που θέλετε. Η διαδικασία μπορεί να περιέχει μηδέν ή περισσότερες παραμέτρους οι οποίες φέρουν τις δικές τους ονομασίες. Αυτές οι παράμετροι μπορούν να χρησιμοποιηθούν μόνο μεταξύ των αγκύλων της διαδικασίας.

Παράδειγμα:

# διαδικασία δημιουργίας ενός ορθογωνίου
ΔΙΑΔΙΚΑΣΙΑ ΟΡΘΟΓΩΝΙΟ(ΠΛΑΤΟΣ, ΜΗΚΟΣ)
{
	ΒΑΨΕ_ΑΣΠΡΟ()
	ΕΠΑΝΕΛΑΒΕ(2)
	{
		ΜΠΡΟΣΤΑ(ΠΛΑΤΟΣ)
		ΔΕΞΙΑ()
		ΜΠΡΟΣΤΑ(ΜΗΚΟΣ)
		ΔΕΞΙΑ()
	}
	ΣΤΑΜΑΤΑ_ΒΑΨΙΜΟ()
}
                  

όνομα(παρ1, παρ2, . . . , παρN)
iΓια να εκτελεστεί η διαδικασία πρέπει να την καλέσετε με το όνομά της και με όσες παραμέτρους την έχετε ορίσει

Example:

# κάλεσε την διαδικασία ΟΡΘΟΓΩΝΙΟ
ΜΠΡΟΣΤΑ(1)
ΟΡΘΟΓΩΝΙΟ(3,2) # σχεδιασμός ορθογωνίου με διαστάσεις 3,2
ΜΠΡΟΣΤΑ(3)
ΟΡΘΟΓΩΝΙΟ(1,4) # σχεδιασμός ορθογωνίου με διαστάσεις 1,4


# εδώ είναι ο ορισμός της διαδικασίας ΟΡΘΟΓΩΝΙΟ
ΔΙΑΔΙΚΑΣΙΑ ΟΡΘΟΓΩΝΙΟ(ΠΛΑΤΟΣ, ΜΗΚΟΣ)
{
	ΒΑΨΕ_ΑΣΠΡΟ()
	ΕΠΑΝΕΛΑΒΕ(2)
	{
		ΜΠΡΟΣΤΑ(ΠΛΑΤΟΣ)
		ΔΕΞΙΑ()
		ΜΠΡΟΣΤΑ(ΜΗΚΟΣ)
		ΔΕΞΙΑ()
	}
	ΣΤΑΜΑΤΑ_ΒΑΨΙΜΟ()
}                

Τερματισμός

ΤΕΛΟΣ
τερματισμός προγράμματος.

Παράδειγμα:

# τερμάτισε το πρόγραμμα νωρίτερα αν δεις σημαδούρα δεξιά
ΕΠΑΝΕΛΑΒΕ(5)
{
	ΜΠΡΟΣΤΑ(1)
	ΑΝ(ΣΗΜΑΔΟΥΡΑ_ΔΕΞΙΑ())
	{
		ΤΕΛΟΣ # σταμάτα το πρόγραμμα
	}
}                
RoboMind - Copyright © 2005 - 2016 - Research Kitchen