Δομημένος προγραμματισμός: Διαφορά μεταξύ των αναθεωρήσεων

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Zorrobot (συζήτηση | συνεισφορές)
μ Ρομπότ: Τροποποίηση: sv:Procedurell programmering
μ Ρομπότ: Τροποποίηση: fa:برنامه‌نویسی رویه‌ای; διακοσμητικές αλλαγές
Γραμμή 1: Γραμμή 1:
Στην [[επιστήμη υπολογιστών]] '''δομημένος προγραμματισμός''' (structured programming) ή '''διαδικαστικός προγραμματισμός''' (procedural programming) είναι μία [[προγραμματιστικό παράδειγμα|προσέγγιση στον προγραμματισμό]]<ref name="sams">Jesse Liberty, Bradley Jones, ''Sams Teach Yourself C++ in 21 Days'', Sams Publishing, 2004, σελ. 8, ISBN 9780672327117</ref>, η οποία βασίζεται στην έννοια της ''κλήσης διαδικασίας''. Η [[διαδικασία (υπολογιστές)|διαδικασία]], γνωστή επίσης και ως ρουτίνα, υπορουτίνα, μέθοδος ή συνάρτηση (δεν σχετίζεται άμεσα με τη [[μαθηματικά|μαθηματική]] έννοια της [[συνάρτηση|συνάρτησης]]), είναι απλά ένα αυτοτελές σύνολο εντολών προς εκτέλεση.
Στην [[επιστήμη υπολογιστών]] '''δομημένος προγραμματισμός''' (structured programming) ή '''διαδικαστικός προγραμματισμός''' (procedural programming) είναι μία [[προγραμματιστικό παράδειγμα|προσέγγιση στον προγραμματισμό]]<ref name="sams">Jesse Liberty, Bradley Jones, ''Sams Teach Yourself C++ in 21 Days'', Sams Publishing, 2004, σελ. 8, ISBN 978-0-672-32711-7</ref>, η οποία βασίζεται στην έννοια της ''κλήσης διαδικασίας''. Η [[διαδικασία (υπολογιστές)|διαδικασία]], γνωστή επίσης και ως ρουτίνα, υπορουτίνα, μέθοδος ή συνάρτηση (δεν σχετίζεται άμεσα με τη [[μαθηματικά|μαθηματική]] έννοια της [[συνάρτηση|συνάρτησης]]), είναι απλά ένα αυτοτελές σύνολο εντολών προς εκτέλεση.


Ο δομημένος προγραμματισμός βασίζεται στην αρχή του [[διαίρει και βασίλευε (υπολογιστές)|διαίρει και βασίλευε]], καθώς διασπά το βασικό πρόβλημα σε μικρότερα υποπροβλήματα (γνωστά επίσης και ως εργασίες). Κάθε εργασία με πολύπλοκη περιγραφή διαιρείται σε μικρότερες, έως ότου οι εργασίες να είναι αρκετά μικρές, περιεκτικές και εύκολες προς κατανόηση<ref name="sams"/>.
Ο δομημένος προγραμματισμός βασίζεται στην αρχή του [[διαίρει και βασίλευε (υπολογιστές)|διαίρει και βασίλευε]], καθώς διασπά το βασικό πρόβλημα σε μικρότερα υποπροβλήματα (γνωστά επίσης και ως εργασίες). Κάθε εργασία με πολύπλοκη περιγραφή διαιρείται σε μικρότερες, έως ότου οι εργασίες να είναι αρκετά μικρές, περιεκτικές και εύκολες προς κατανόηση<ref name="sams"/>.


==Ιστορική διαδρομή==
== Ιστορική διαδρομή ==


Ιστορικά ο δομημένος προγραμματισμός αναπτύχθηκε ύστερα από έρευνα κατά τη [[Δεκαετία 1960|δεκαετία του 1960]], ως βελτίωση του ήδη υπάρχοντος διαδικαστικού προγραμματισμού. Ένα από τα πιο σημαντικά αποτελέσματα αυτής της έρευνας ήταν η ανάπτυξη της γλώσσας [[Pascal (γλώσσα προγραμματισμού)]], από τον [[Νίκλαους Βιρτ]] (Niklaus Wirth) το [[1971]], η οποία σύντομα έγινε η προτιμώμενη γλώσσα διδασκαλίας σε πολλά πανεπιστήμια<ref>Harvey M. Deitel, ''C++ How to Program: how to program'', Pearson Prentice Hall 2005, σελ 10, ISBN 9780131857575</ref>. Η έννοια της διαδικασίας επομένως ήταν προϋπάρχουσα αλλά δεν έπαιζε τόσο σημαντικό ρόλο στη δομή των υπό συγγραφή εφαρμογών, καθώς τα δεδομένα ήταν αρκετά διαχωρισμένα από τις διαδικασίες και έπρεπε ο προγραμματιστής να θυμάται για κάθε διαδικασία ποια άλλη καλούσε, αλλά και ποια δεδομένα διαφοροποιούνταν<ref name="sams"/>. Καθώς όμως οι περισσότερες διαδικαστικές γλώσσες γρήγορα υιοθέτησαν στοιχεία ώστε να υποστηρίζουν δομημένο προγραμματισμό, οι δύο όροι σήμερα έχουν πρακτικώς ταυτιστεί. Με τον καιρό οι δομημένες γλώσσες έφτασαν να μην επαρκούν για τη συγγραφή προγραμμάτων, επεκτάθηκαν και ως λύση υιοθετήθηκε ο [[αντικειμενοστρεφής προγραμματισμός]].
Ιστορικά ο δομημένος προγραμματισμός αναπτύχθηκε ύστερα από έρευνα κατά τη [[Δεκαετία 1960|δεκαετία του 1960]], ως βελτίωση του ήδη υπάρχοντος διαδικαστικού προγραμματισμού. Ένα από τα πιο σημαντικά αποτελέσματα αυτής της έρευνας ήταν η ανάπτυξη της γλώσσας [[Pascal (γλώσσα προγραμματισμού)]], από τον [[Νίκλαους Βιρτ]] (Niklaus Wirth) το [[1971]], η οποία σύντομα έγινε η προτιμώμενη γλώσσα διδασκαλίας σε πολλά πανεπιστήμια<ref>Harvey M. Deitel, ''C++ How to Program: how to program'', Pearson Prentice Hall 2005, σελ 10, ISBN 978-0-13-185757-5</ref>. Η έννοια της διαδικασίας επομένως ήταν προϋπάρχουσα αλλά δεν έπαιζε τόσο σημαντικό ρόλο στη δομή των υπό συγγραφή εφαρμογών, καθώς τα δεδομένα ήταν αρκετά διαχωρισμένα από τις διαδικασίες και έπρεπε ο προγραμματιστής να θυμάται για κάθε διαδικασία ποια άλλη καλούσε, αλλά και ποια δεδομένα διαφοροποιούνταν<ref name="sams"/>. Καθώς όμως οι περισσότερες διαδικαστικές γλώσσες γρήγορα υιοθέτησαν στοιχεία ώστε να υποστηρίζουν δομημένο προγραμματισμό, οι δύο όροι σήμερα έχουν πρακτικώς ταυτιστεί. Με τον καιρό οι δομημένες γλώσσες έφτασαν να μην επαρκούν για τη συγγραφή προγραμμάτων, επεκτάθηκαν και ως λύση υιοθετήθηκε ο [[αντικειμενοστρεφής προγραμματισμός]].


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


==Παράδειγμα==
== Παράδειγμα ==
Παράδειγμα δομημένου προγραμματισμού σε γλώσσα C:
Παράδειγμα δομημένου προγραμματισμού σε γλώσσα C:


Γραμμή 30: Γραμμή 30:
}
}


==Παραπομπές==
== Παραπομπές ==
{{Παραπομπές}}
{{Παραπομπές}}


[[κατηγορία:Γλώσσες προγραμματισμού]]
[[Κατηγορία:Γλώσσες προγραμματισμού]]


[[be-x-old:Працэдурнае праграмаваньне]]
[[be-x-old:Працэдурнае праграмаваньне]]
[[de:Prozedurale Programmierung]]
[[de:Prozedurale Programmierung]]
[[en:Procedural programming]]
[[en:Procedural programming]]
[[fa:برنامه‌نویسی پروسه‌ای]]
[[fa:برنامه‌نویسی رویه‌ای]]
[[fi:Proseduraalinen ohjelmointi]]
[[fi:Proseduraalinen ohjelmointi]]
[[fr:Programmation procédurale]]
[[fr:Programmation procédurale]]

Έκδοση από την 05:50, 14 Δεκεμβρίου 2009

Στην επιστήμη υπολογιστών δομημένος προγραμματισμός (structured programming) ή διαδικαστικός προγραμματισμός (procedural programming) είναι μία προσέγγιση στον προγραμματισμό[1], η οποία βασίζεται στην έννοια της κλήσης διαδικασίας. Η διαδικασία, γνωστή επίσης και ως ρουτίνα, υπορουτίνα, μέθοδος ή συνάρτηση (δεν σχετίζεται άμεσα με τη μαθηματική έννοια της συνάρτησης), είναι απλά ένα αυτοτελές σύνολο εντολών προς εκτέλεση.

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

Ιστορική διαδρομή

Ιστορικά ο δομημένος προγραμματισμός αναπτύχθηκε ύστερα από έρευνα κατά τη δεκαετία του 1960, ως βελτίωση του ήδη υπάρχοντος διαδικαστικού προγραμματισμού. Ένα από τα πιο σημαντικά αποτελέσματα αυτής της έρευνας ήταν η ανάπτυξη της γλώσσας Pascal (γλώσσα προγραμματισμού), από τον Νίκλαους Βιρτ (Niklaus Wirth) το 1971, η οποία σύντομα έγινε η προτιμώμενη γλώσσα διδασκαλίας σε πολλά πανεπιστήμια[2]. Η έννοια της διαδικασίας επομένως ήταν προϋπάρχουσα αλλά δεν έπαιζε τόσο σημαντικό ρόλο στη δομή των υπό συγγραφή εφαρμογών, καθώς τα δεδομένα ήταν αρκετά διαχωρισμένα από τις διαδικασίες και έπρεπε ο προγραμματιστής να θυμάται για κάθε διαδικασία ποια άλλη καλούσε, αλλά και ποια δεδομένα διαφοροποιούνταν[1]. Καθώς όμως οι περισσότερες διαδικαστικές γλώσσες γρήγορα υιοθέτησαν στοιχεία ώστε να υποστηρίζουν δομημένο προγραμματισμό, οι δύο όροι σήμερα έχουν πρακτικώς ταυτιστεί. Με τον καιρό οι δομημένες γλώσσες έφτασαν να μην επαρκούν για τη συγγραφή προγραμμάτων, επεκτάθηκαν και ως λύση υιοθετήθηκε ο αντικειμενοστρεφής προγραμματισμός.

Πλεονεκτήματα

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

Παράδειγμα

Παράδειγμα δομημένου προγραμματισμού σε γλώσσα C:

#include <stdio.h>
  int sum(int,int);
   
  int main() {
      int x,y;

      puts("Δύο ακέραιοι με κενό ενδιάμεσα:");
      scanf("%d %d",&x,&y);
      printf("Sum is %d\n", sum(x,y));

      return 0;
  }

  int sum(int k, int l) {
      return k+l;
  }

Παραπομπές

  1. 1,0 1,1 1,2 Jesse Liberty, Bradley Jones, Sams Teach Yourself C++ in 21 Days, Sams Publishing, 2004, σελ. 8, ISBN 978-0-672-32711-7
  2. Harvey M. Deitel, C++ How to Program: how to program, Pearson Prentice Hall 2005, σελ 10, ISBN 978-0-13-185757-5