Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα

Download Report

Transcript Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα

Εργαστήριο Δομημένος Προγραμματισμός

(C#)

Τμήμα Μηχανολογίας Νικόλαος Ζ

.

Ζάχαρης Καθηγητής Εφαρμογών

Σκοπός

Να αναπτύξουν ένα πρόγραμμα όπου θα επαναλάβουν τα βήματα ανάπτυξης μιας παραθυρικής εφαρμογής . Να χρησιμοποιήσουν τα βασικά ελεγκτήρια (controls) της εργαλειοθήκης , Κειμένου (TextBox), Ετικέτα (Label), Κουμπί Εντολών (Button). Κουτί Να κατανοήσουν τους βασικούς τύπους δεδομένων και την ανάγκη μετατροπή του κειμένου σε αριθμητικό τύπο . Να χρησιμοποιήσουν τους βασικούς τελεστές . Να χρησιμοποιήσουν την δομή for

Εκφώνηση

Να δημιουργήσετε ένα πρόγραμμα το οποίο θα δέχεται δύο ακεραίους αριθμούς και υπολογίζει το άθροισμα όλων των ενδιάμεσων αριθμών . Για παράδειγμα αν οι αριθμοί είναι οι 1 και 6 τότε το πρόγραμμα θα εμφανίσει σαν αποτέλεσμα το 21 επειδή είναι το άθροισμα 1+2+3+4+5+6

Επίλυση

Δημιουργείστε ένα νέο έργο (File – New Project) τύπου

Windows Application

με όνομα

SumNumbers

. Σχεδιάστε την διεπαφή της εφαρμογής όπως παρακάτω :

Επιλέξτε ένα προς ένα τα αντικείμενα της φόρμας και στο παράθυρο

Properties

αλλάξτε τις παρακάτω ιδιότητες :

Η φόρμα

Form1 Ιδιότητα Name Text MaximizeButton FormBorderStyle Τιμή frmSumNumbers Άθροισμα False FixedSingle Εξήγηση Το όνομα του αντικειμένου Η γραμμή τίτλου Για να μην αλλάζει το μέγεθος της φόρμας .

Το πρώτο κουτί κειμένου

textBox1 Ιδιότητα Name Text

Το δεύτερο κουτί κειμένου

textBox2 Ιδιότητα Name Text

Το τρίτο κουτί κειμένου

Τιμή txtStart Τιμή txtEnd Εξήγηση Το όνομα του αντικειμένου Εξήγηση Το όνομα του αντικειμένου textBox3 Ιδιότητα Name Text ReadOnly

Το κουμπί εντολών

button1 Ιδιότητα Name Text Τιμή txtResult True Τιμή btnCalculate Υπολόγισε Εξήγηση Το όνομα του αντικειμένου Για να μην μπορεί να γράψει ο χρήστης Εξήγηση Το όνομα του αντικειμένου

Η πρώτη ετικέτα

label1 label2 Ιδιότητα Name Text

Η δεύτερη ετικέτα

Ιδιότητα Name Text

Η τρίτη ετικέτα

Τιμή lblStart Αρχή Τιμή Τέλος lblEnd Εξήγηση Το όνομα του αντικειμένου Εξήγηση Το όνομα του αντικειμένου label3 Ιδιότητα Name Text Τιμή lblResult Άθροισμα Εξήγηση Το όνομα του αντικειμένου

Η δήλωση

if

επιτρέπει την εκτέλεση εντολών στην περίπτωση που αληθεύει μία συνθήκη . Η δήλωση

for

μας επιτρέπει την επανάληψη των εντολών ενώ αληθεύει μία συνθήκη . Η σύνταξη της for είναι όπως παρακάτω :

Η δήλωση for

for(

Αρχική _ Τιμή

;

Συνθήκη

;

Βήμα

) {

εντολές

; } H

for

εκτελείται σε διακριτά βήματα . Αρχικά εκτελείται η δήλωση

Αρχική _ Τιμή

. Εν συνεχεία γίνεται εκτίμηση της

Συνθήκης

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

εντολές

. Τέλος εκτελείται η δήλωση

Βήμα

και η ροή του προγράμματος συνεχίζεται με την εκτίμηση της

Συνθήκης

. Σε αρκετές περιπτώσεις για την υλοποίηση μιας επανάληψης χρησιμοποιούμε έναν μετρητή . Για παράδειγμα αν θέλουμε να κάνουμε μια επανάληψη 3 φορές τότε αρχικοποιούμε το μετρητή με μια ακέραια τιμή – έστω 1 – και εν συνεχεία

συγκρίνουμε την τιμή του μετρητή αν είναι μικρότερος ή ίσος από 3. Το βήμα είναι η τιμή του μετρητή +1. Η σύνταξη των εντολών θα είναι :

Πρώτο παράδειγμα επανάληψης

int i; for(

i = 1

;

i <= 3

;

i=i+1

) {

εντολές

; } To ίδιο αποτέλεσμα θα είχαμε αν σε περίπτωση ξεκινούσαμε το μετρητή από 50, στην συνθήκη ελέγχαμε αν η τιμή του μετρητή είναι μικρότερη ή ίση από 150 και το βήμα ήταν η τιμή του μετρητή +50. Η σύνταξη των εντολών θα είναι :

Δεύτερο παράδειγμα επανάληψης

int i; for(

i = 50

;

i <= 150

;

i=i+50

) {

εντολές

; } Τέλος τ o ίδιο αποτέλεσμα θα είχαμε αν σε περίπτωση ξεκινούσαμε το μετρητή από 150, στην συνθήκη ελέγχαμε αν η τιμή του μετρητή είναι μεγαλύτερη ή ίση από 50 και το βήμα ήταν η τιμή του μετρητή -50. Η σύνταξη των εντολών θα είναι :

Τρίτο παράδειγμα επανάληψης

int i; for(

i = 150

;

i >= 50

;

i=i-50

) {

εντολές

; } Και στις τρεις περιπτώσεις θα λάμβαναν χώρα τρεις επαναλήψεις . Όταν το βήμα αυξάνετε κατά 1 ή μειώνετε κατά 1 τότε μπορούμε να χρησιμοποιήσουμε τις εκφράσεις i++ και i— που είναι ισοδύναμες με τις εκφράσεις i = i + 1 και i = i – 1 αντίστοιχα .

Επιλέξτε το κουμπί εντολών

btnCalculate

και στο παράθυρο

Properties

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

Click

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

btnCalculate_Click

πληκτρολογείστε τις παρακάτω εντολές :

Πίνακας 1. Ο κώδικας της εφαρμογής

1 2 3 4 5 6 7 8 9 10 private void btnCalculate_Click(object sender, EventArgs e) { int Start, End; int i; long Sum; Sum = 0; Start = int.Parse(txtStart.Text); End = int.Parse(txtEnd.Text); 11 12 13 14 15 16 for (i = Start; i <= End; i = i + 1) { Sum = Sum + i; } txtResult.Text = Sum.ToString(); 17 } Στην for δεν είναι απαραίτητο να δηλώσουμε

Αρχική _ Τιμή

,

Συνθήκη

και

Βήμα

. Η παρακάτω δήλωση είναι αποδεκτή :

Μη προκαθορισμένη επανάληψη for

for(

;;

) {

εντολές

; } Πρόκειται για μια ατελείωτη επανάληψη . Αυτού του είδους οι επαναλήψεις είναι χρήσιμες όταν δεν γνωρίζουμε εξαρχής πόσες φορές θα εκτελέσουμε την επανάληψη . Σε αυτή την περίπτωση για να τερματίσει η επανάληψη θα πρέπει μέσα στις εντολές να υπάρχει η break. Θα μπορούσατε να ξαναγράψετε το κώδικα του προγράμματος όπως παρακάτω :

1 2 3 4 5 6 7 8 9

Πίνακας 2. Ο κώδικας της εφαρμογής

private void btnCalculate_Click(object sender, EventArgs e) { int Start, End; int i; long Sum; Sum = 0; 10 11 12 13 14 15 16 17 18 19 Start = int.Parse(txtStart.Text); End = int.Parse(txtEnd.Text); i = Start; for (; ; ) { Sum = Sum + i; i = i + 1; if (i > End) 20 21 break; } txtResult.Text = Sum.ToString(); 22 } Παρ ’ όλο που είναι ίδιος σχεδόν ο κώδικας με τον Πίνακα 1, θα πρέπει να σημειώσετε ότι πρόκειται για μια ατελείωτη επανάληψη όπου τερματίζεται με την εντολή break και η ροή του προγράμματος συνεχίζει στη πρώτη εντολή εκτός for.