Κεφ 10 Flashcards

1
Q

. Τι ονομάζεται τμηματικός προγραμματισμός;
.

A

Απάντηση:

Ονομάζεται η τεχνική σχεδίασης και ανάπτυξης προγραμμάτων ως ένα σύνολο από απλά τμήματα προγραμμάτων,

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Ποια τεχνική σχεδίασης προγραμμάτων υλοποιεί ο τμηματικός προγραμματισμός;
A

Απάντηση:

Ο τμηματικός προγραμματισμός υλοποιεί την ιεραρχική σχεδίαση, γιατί σε αυτήν κάθε πρόβλημα διαιρείται σε επιμέρους προβλήματα και κάθε ένα από αυτά τα προβλήματα διαιρείται σε επιμέρους υποπροβλήματα. Στον τμηματικό προγραμματισμό, για το κάθε ένα επιμέρους υποπρόβλημα δημιουργείται και ένα επιμέρους τμήμα προγράμματος, με αποτέλεσμα το τελικό πρόγραμμα να ανάγεται σε πολλά απλούστερα τμήματα προγράμματος.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. Τι ονομάζεται υποπρόγραμμα;
A

Απάντηση:

Υποπρόγραμμα είναι ένα τμήμα προγράμματος που επιτελεί αυτόνομο έργο και είναι γραμμένο ξεχωριστά από το υπόλοιπο πρόγραμμα.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. α. Αναφέρατε τις ιδιότητες που πρέπει να διακρίνουν τα υποπρογράμματα. β. Να περιγράψετε μία από αυτές τις ιδιότητες
A

Απάντηση:

Κάθε υποπρόγραμμα πρέπει να έχει τις παρακάτω τρεις ιδιότητες:

Να έχει μία είσοδο και μία έξοδο. Η είσοδος σε ένα υποπρόγραμμα γίνεται στην αρχή του. Ένα υποπρόγραμμα ενεργοποιείται, όταν γίνεται η είσοδος σε αυτό, εκτελεί ορισμένες ενέργειες και απενεργοποιείται με την έξοδο από αυτό, που γίνεται στο τέλος του.

Να είναι ανεξάρτητο από τα άλλα. Κάθε υποπρόγραμμα πρέπει να σχεδιάζεται, να αναπτύσσεται και να συντηρείται αυτόνομα, χωρίς να επηρεάζει άλλα υποπρογράμματα, αν και η απόλυτη ανεξαρτησία είναι δύσκολο να επιτευχθεί.

Να μην είναι πολύ μεγάλο. Το μέγεθος ενός υποπρογράμματος να είναι τόσο, ώστε να είναι κατανοητό, να μπορεί να ελέγχεται και να εκτελεί μία λειτουργία. Εάν εκτελεί περισσότερες λειτουργίες, καλό είναι να διασπαστεί σε επιμέρους υποπροβλήματα.

,

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. Να αναφέρετε τέσσερα πλεονεκτήματα του τμηματικού προγραμματισμού.
A

Απάντηση:

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

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

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

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  1. Πως ενεργοποιείται ένα υποπρόγραμμα;
    )
A

Απάντηση:

Ένα υποπρόγραμμα ενεργοποιείται, όταν καλείται από το κύριο πρόγραμμα ή από ένα άλλο υποπρόγραμμα, δέχεται τιμές από το τμήμα προγράμματος που το καλεί και επιστρέφει τιμές σε αυτό. Οι τιμές που περνούν από το ένα υποπρόγραμμα στο άλλο λέγονται παράμετροι.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. Τι ονομάζεται παράμετρος ενός υποπρογράμματος;
A

Απάντηση:

Μια παράμετρος είναι μια μεταβλητή που επιτρέπει το πέρασμα τιμής από το ένα τμήμα προγράμματος σε ένα άλλο.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  1. Ποια είναι η διαφορά μεταξύ μεταβλητής και παραμέτρου;
A

Απάντηση:

Η μεταβλητή χρησιμοποιείται, για να παριστάνει ποσότητα που η τιμή της μπορεί να μεταβάλλεται. Η παράμετρος είναι σαν μία κοινή μεταβλητή, με τη διαφορά ότι χρησιμοποιείται, για να περνάει τιμή στα υποπρογράμματα.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
  1. Ποια είδη υποπρογραμμάτων υπάρχουν;
A

Απάντηση:

Υπάρχουν δύο είδη υποπρογραμμάτων, οι διαδικασίες και οι συναρτήσεις

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
  1. Σε ποιο σημείο γράφονται-δηλώνονται τα υποπρογράμματα;
A

Απάντηση:

Τα υποπρογράμματα ακολουθούν το κύριο πρόγραμμα και γράφονται (ή όπως λέμε δηλώνονται) μετά το «ΤΕΛΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ 》 η σειρά με την οποία τα παραθέτουμε μετά το κύριο προγραμμα δεν παίζει κανενα ρόλο.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
  1. Τι είναι συνάρτηση (σε προγραμματιστικό περιβάλλον); Τι είναι διαδικασία (σε προγραμματιστικό περιβάλλον
A

Απάντηση:

Η συνάρτηση είναι ένας τύπος υποπρογράμματος που υπολογίζει και επιστρέφει μία μόνο τιμή με το όνομά της.

Η διαδικασία είναι ένας τύπος υποπρογράμματος που εκτελεί όλες τις λειτουργίες ενός προγράμματος.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

. Να γράψετε τις διαφορές μεταξύ συνάρτησης και διαδικασίας.
.

A

Απάντηση:

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

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

Μία συνάρτηση επιστρέφει μία μόνο τιμή με το όνομα της στο υποπρόγραμμα που την κάλεσε ή στο κύριο πρόγραμμα. Η διαδικασία μπορεί και επιστρέφει πε ρισσότερες από μία τιμές μέσω των παραμέτρων στο τμήμα προγράμματος που την κάλεσε.

Έχουν διαφορετικό τρόπο κλήσης: μια συνάρτηση καλείται με την εμφάνιση του ονόματός της σε μια έκφραση, ενώ η διαδικασία καλείται με την εντολή ΚΑΛΕΣΕ και το όνομα της διαδικασίας.

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

Μια διαδικασία μπορεί να καλέσει μια συνάρτηση, ενώ μια συνάρτηση δεν μπορεί να καλέσει μια διαδικασία.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q
  1. Να γράψετε και να εξηγήσετε τη δομή μιας συνάρτησης
A

Η δομή μιας συνάρτησης είναι:

ΣΥΝΑΡΤΗΣΗ όνομα (λίστα παραμέτρων): τύπος συνάρτησης
Τμήμα δηλώσεων
ΑΡΧΗ
εντολές
όνομα <– έκφραση
εντολές

ΤΕΛΟΣ ΣΥΝΑΡΤΗΣΗΣ

Η δήλωση μιας συνάρτησης ξεκινάει γράφοντας τη λέξη ΣΥΝΑΡΤΗΣΗ, ακολουθούμενη από το όνομά της, τις παραμέτρους που θα δεχτεί ως είσοδο και έπειτα τον τύπο της τιμής που επιστρέφει. Όλα αυτά αποτελούν την επικεφαλίδα της συνάρτησης.

Το όνομα της συνάρτησης είναι ένα οποιοδήποτε έγκυρο όνομα της
ΓΛΩΣΣΑΣ,

Η λίστα των παραμέτρων είναι μια λίστα με μεταβλητές τις οποίες δέχεται ως είσοδο η συνάρτηση και των οποίων οι τιμες μεταβιβάζονται στη συνάρτηση τκατά την κληση της

Ο τύπος συνάρτησης δ ηλωνει τον τυπο δεδομένων τις τιμα που επιστρεφει η συνάρτηση. Μια συνάρτηση επιστρέφει μία μόνο τιμή και μπορεί να είναι ΑΚΕΡΑΙΑ, ΠΡΑΓΜΑΤΙΚΗ, ΛΟΓΙΚΗ, ΧΑΡΑΚΤΗΡΑΣ

Στο τμήμα δηλώσεων δηλώνονται οι μεταβλητές και οι σταθερές που χρησι μοποιούνται στη συνάρτηση, καθώς και οι παράμετροι της. Είναι αντίστοιχο με το τμήμα δηλώσεων ενός προγράμματος σε ΓΛΩΣΣΑ.

Το τμήμα προγράμματος μεταξύ των λέξεων ΑΡΧΗ και ΤΕΛΟΣ_ ΣΥΝΑΡΤΗΣΗΣ αποτελεί το τμήμα εντολών της συνάρτησης.

Στο τμήμα εντολών της συνάρτησης πρέπει υποχρεωτικά να υπάρχει μία εντολή εκχώρησης που θα εκχωρεί στο όνομα της συνάρτησης την επιστρεφόμενη τιμή (όνομα – έκφραση)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

. Με ποιον τρόπο ενεργοποιείται (καλείται) μία συνάρτηση;

A

Απάντηση:

Μία συνάρτηση καλείται, γράφοντας το όνομα της συνάρτησης και μέσα σε παρενθέσεις τις παραμέτρους που δέχεται σε μία έκφραση ή σε μία εντολή, Η κλήση μίας συνάρτησης μπορεί να γίνει από το κύριο πρόγραμμα ή από ένα άλλο υποπρόγραμμα.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q
  1. Να γράψετε και να εξηγήσετε τη δομή μιας διαδικασίας.
A

Απάντηση:

Η δομή μιας διαδικασίας είναι:

ΔΙΑΔΙΚΑΣΙΑ όνομα(λίστα παραμέτρων)
Τμήμα δηλώσεων
ΑΡΧΗ
εντολές
ΤΕΛΟΣ ΔΙΑΔΙΚΑΣΙΑΣ

Η δήλωση μιας διαδικασίας ξεκινάει γράφοντας την λέξη ΔΙΑΔΙΚΑΣΙΑ ακολουθούμενη από το όνομά της και τις παραμέτρους που θα δεχτεί, αλλά και αυτές που θα επιστρέψει. Όλα αυτά αποτελούν την επικεφαλίδα της διαδικασίας

Το όνομα της διαδικασίας είναι ένα οποιοδήποτε έγκυρο όνομα της ΓΛΩΣΣΑΣ. Η λίστα των παραμέτρων είναι μία λίστα με μεταβλητές των οποίων οι τιμές μεταβιβάζονται στη διαδικασία κατά την κλήση της (είσοδος) και επιστρέφονται από αυτήν στο τμήμα προγράμματος που την κάλεσε (έξοδος).

Στο τμήμα δηλώσεων δηλώνονται οι μεταβλητές και οι σταθερές που χρησιμοποιούνται στη διαδικασία, καθώς και οι παράμετροί της. Είναι αντίστοιχο με το τμήμα δηλώσεων ενός προγράμματος σε ΓΛΩΣΣΑ

Το τμήμα προγράμματος μεταξύ των λεξεων ΑΡΧΗ και ΤΕΛΟΣ - ΔΙΑΔΙΚΑΣΙΑΣ αποτελεί το τμήμα εντολών της διαδικασίας. Πολλες φορες καλείται και ας « σωμα της διαδικασίας » Στο τμήμα εντολών μπορεί να υπάρχουν οποιεσδήποτε εντολες της ΓΛΩΣΣΑΣ

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

. Με ποιον τρόπο ενεργοποιείται (καλείται) μια διαδικασία;

A

Μια διαδικασια εκτελείται όταν καλείται από το κύριο πρόγραμμα ή από ένα αλλο υποπρόγραμμα Η κλήση της διαδικασίας πραγματοποιείται με την εντολή ΚΑΛΈΣΕ ακολουθούμενη από το όνομα της διαδικασίας συν δεούμενο μέσα σε παρεν θέσεις από τη λίστα των παραμέτρων

17
Q

Πόσες παραμέτρους μπορεί να έχει μια διαδικασία;
;

A

Απάντηση:

Μια διαδικασία μπορεί να έχει καμιά, μία ή περισσότερες παραμέτρους. Όταν υπάρχουν πολλές παράμετροι, άλλες χρησιμοποιούνται για να μεταβιβάσουν τιμές στη διαδικασία και άλλες για να επιστρέψουν τιμές από αυτήν.

18
Q
  1. Ποιες είναι οι πραγματικές και ποιες οι τυπικές παράμετροι;
A

Απάντηση:

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

19
Q
  1. Πώς αλλιώς ονομάζονται οι πραγματικές και οι τυπικές παράμετροι;
A

Απάντηση:

Οι πραγματικές παράμετροι ονομάζονται απλώς παράμετροι, ενώ οι τυπικές παράμετροι ονομάζονται ορίσματα.

20
Q
  1. Τι καθορίζει η λίστα των τυπικών και τι η λίστα των πραγματικών παρα- μέτρων;
A

Απάντηση:

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

21
Q
  1. Να αναφέρετε τους κανόνες που πρέπει να ακολουθούν οι λίστες των παρα- μέτρων στη χρήση υποπρογραμμάτων
A

Απάντηση:

Η λίστα των παραμέτρων πρέπει να ακολουθεί τους εξής κανόνες:

Ο αριθμός των πραγματικών και των τυπικών παραμέτρων πρέπει να είναι ο ίδιος, Κάθε πραγματική παράμετρος αντιστοιχεί στην τυπική παράμετρο που βρίσκεται στην αντίστοιχη θέση, δηλαδή η πρώτη πραγματική στην πρώτη τυπική κ.λπ. Η πραγματική παράμετρος και η αντίστοιχη τυπική πρέπει να είναι ιδίου τύπου.

22
Q
  1. Να περιγράψετε πώς χρησιμοποιείται η δομή δεδομένων «Στοίβα» στην κλήση υποπρογραμμάτων.
A

Απάντηση:

Όταν ένα υποπρόγραμμα καλείται από το κύριο πρόγραμμα, τότε η αμέσως επόμε νη διεύθυνση του κύριου προγράμματος, η οποία ονομάζεται «διεύθυνση επιστροφής», τοποθετείται από τον μεταφραστή σε μία στοίβα, που ονομάζεται «στοίβα χρόνου εκτέ λεσης». Αυτό γίνεται, για να γνωρίζει ο μεταφραστής σε ποιο σημείο πρέπει να επιστρέψει.

23
Q
  1. α. Τι εννοούμε ότι οι μεταβλητές και οι σταθερές έχουν ισχύ τοπικά στη ΓΛΩΣΣΑ:

β. Μπορεί να υπάρχουν δύο διαφορετικές μεταβλητές με ίδιο όνομα, σε δύο διαφορετικά τμήματα προγράμματος

A

εννοούμε ότι οι μεταβλητές και οι σταθερές έχουν ισχύς δηλαδή είναι γνωστες και μπορουν να χρησιμοποιηθούν, μόνο στο τμήμα πρόγραμματος που έχουν δηλωθεί. Ισχύουν, δηλαδή, τοπικά μόνο για το συγκεκριμένο υποπρόγραμμα ή κύριο πρόγραμμα.

β. Ναι. Από τη στιγμή που οι μεταβλητές έχουν ισχύ τοπικά, μπορεί να υπάρχουν δύο διαφορετικές μεταβλητές με ίδιο όνομα, σε διαφορετικά τμήματα προγράμ ματος, π.χ. μεταβλητή Γ στο κύριο πρόγραμμα και μεταβλητή Γ σε ένα υποπρό γραμμα. Η κάθε μία μεταβλητή χρησιμοποιείται μόνο στο συγκεκριμένο τμήμα προγράμματος.

24
Q
  1. Τι ονομάζεται «εμβέλεια» μεταβλητών και σταθερών;
A

Απάντηση:

Το τμήμα προγράμματος που ισχύουν οι μεταβλητές και οι σταθερές λέγεται εμβέλεια. Η εμβέλεια είναι αυτή που καθορίζει την περιοχή που ισχύουν οι μεταβλητές και οι σταθερές σε ένα πρόγραμμα στη ΓΛΩΣΣΑ.

25
Q
  1. Ποια είδη «εμβέλειας» μεταβλητών και σταθερών υπάρχουν;
A

Απάντηση:

Υπάρχουν τριών ειδών εμβέλειας: απεριόριστη εμβέλεια, περιορισμένη εμβέλεια, μερικώς περιορισμένη εμβέλεια,

26
Q
  1. α. Πότε οι μεταβλητές και οι σταθερές έχουν «απεριόριστη εμβέλεια»; β. Τι προβλήματα δημιουργεί η «απεριόριστη εμβέλεια»;
A

Απάντηση:

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

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

27
Q
  1. Ποιες μεταβλητές ονομάζονται «καθολικές»;
A

Απάντηση:

Οι μεταβλητές που μπορούν να χρησιμοποιηθούν σε οποιοδήποτε τμήμα προ γράμματος (απεριόριστη εμβέλεια), άσχετα με το που δηλώθηκαν ονομάζονται καθολικές

28
Q
  1. α. Πότε οι μεταβλητές και οι σταθερές έχουν «περιορισμένη εμβέλεια»; β. Ποια είναι τα πλεονεκτήματα της «περιορισμένης εμβέλειας»;
A

. Όταν οι μεταβλητές και οι σταθερές μπορούν να χρησιμοποιηθούν μόνο στο τμήμα προγράμματος στο οποίο δηλώνονται, είναι δηλαδή τοπικες τότε λέμε ότι αυτές έχουν περιορισμένη εμβέλεια.

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

29
Q

. Πότε έχουμε «μερικώς περιορισμένη εμβέλεια»;

β. Τι προσφέρει η «μερικώς περιορισμένη εμβέλεια»;
.

A

Απάντηση:

α. Όταν υπάρχει μερικώς περιορισμένη εμβέλεια, άλλες μεταβλητές είναι τοπικές και άλλες είναι καθολικές. Η κάθε γλώσσα προγραμματισμού έχει τους δικούς της κανόνες και τους δικούς της μηχανισμούς, για τον τρόπο και τις προϋποθέσεις που οι μεταβλητές ορίζονται ως τοπικές ή ως καθολικές

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