>> ZAMYLA CHAN: Ας άλμα σε Mario.
Mario είναι ένα πρόγραμμα όπου θα κάνουν την δική μας δικό του, έστω και πρωτόγονη, έκδοση του
ένα κλασικό Super Mario Brothers ιστορικό παιχνίδι.
Για αυτό το σύνολο το πρόβλημα, θα πάμε να αναδημιουργήσει τη μισή πυραμίδα
Mario να πηδήσει.
Το πρόγραμμά μας θα είναι διαδραστικό, έτσι ώστε να θα ζητήσει από το χρήστη να εισάγει μια ορισμένη
ύψος για την πυραμίδα.
Και το πρόγραμμα θα εκτυπώσει ένα μισό πυραμίδα αυτό το ύψος, όπου το
κάτω αριστερά hash ευθυγραμμίζεται με τον πυθμένα αριστερή γωνία του τερματικού
παράθυρο εξόδου.
>> Ας σπάσει αυτό το πρόβλημα σε δύο μέρη, ένα, πάρτε την παρέμβαση του χρήστη, και τα δύο,
εκτυπώσετε την πυραμίδα.
Να θυμάστε ότι αν και η λειτουργία GetInt θα ανακτήσει έναν ακέραιο, θα
Πρέπει να βεβαιωθείτε ότι αυτή η είσοδος κάνει νόημα για το πρόγραμμά σας, ώστε σε
Mario, αυτό δεν θα γίνει μόνο μια προϊόντος για ένα ακέραιο.
Θα πρέπει να βεβαιωθείτε ότι ο χρήστης εισόδους ένας ακέραιος που είναι εντός της
κάτω και άνω όρια του πυραμίδα που μπορείτε να εκτυπώσετε.
Ανά spec αυτό, αυτό είναι 0 και 23 χωρίς αποκλεισμούς.
Εάν ο χρήστης είσοδοι έναν ακέραιο εκτός των αποδεκτών ορίων μας, τότε θέλουμε
να τους οδηγήσει ξανά και ξανά μέχρι να μας δίνουν έναν έγκυρο ακέραιο αριθμό.
>> Ένας τρόπος για να εξασφαλιστεί η ορθή εισάγει ο χρήστης είναι χρησιμοποιώντας ένα do-while loop, η οποία είναι
πολύ παρόμοια με ένα βρόχο while.
Το Do-while loop εκτελεί τον κώδικα στο εσωτερικό του σώματος μία φορά, και στη συνέχεια ελέγχει
αν η προϋπόθεση αυτή πληρούται ή όχι.
Αυτό είναι χρήσιμο για την απόκτηση εισόδου χρήστη επειδή ξέρετε ότι χρειάζεστε
να τους προτρέψει τουλάχιστον μία φορά.
Αν ο όρος αυτός δεν πληρούται, το πρόγραμμα θα εκτελέσει την γραμμή μετά
Do-while loop σας.
Εάν ικανοποιείται η συνθήκη, όμως, ο βρόχος θα επαναληφθεί.
>> Ένα do-while loop για την επικύρωση των χρηστών εισόδου θα δούμε κάτι σαν αυτό.
Δηλώνω μια μεταβλητή n, GetInt, και επαναλάβετε μέχρι n είναι έγκυρο.
Να θυμάστε ότι όταν δηλώνετε σας μεταβλητή, χρειάζεται την κατάλληλη
πεδίο, όπως ακριβώς και στο Scratch.
Αν δηλώνω n μέσα Do-while loop μου, το υπόλοιπο του προγράμματος δεν θα είναι
μπορούν να έχουν πρόσβαση.
Είναι περιορίζεται στα όρια από τα άγκιστρα.
>> Εντάξει, έτσι τώρα που έχουμε επικυρωθεί την είσοδο του χρήστη, πρέπει πραγματικά να
συντάξει αυτό το μισό-πυραμίδα.
Είναι κατασκευασμένα από ευανάγνωστους χαρακτήρες, ούτως ας κάνουμε μια μισή πυραμίδα σε ένα απλό
επεξεργαστή κειμένου.
Αν θέλουμε να κάνουμε μια πυραμίδα στυλ Mario ύψους τριών που είναι ευθυγραμμισμένα
στην αριστερή πλευρά του παραθύρου μας, τότε θα γράφατε δύο hashes, κάντε κλικ στο κουμπί Enter,
στη συνέχεια, πληκτρολογήστε τρεις hashes, κάντε κλικ στο κουμπί Enter, στη συνέχεια, πληκτρολογήστε τέσσερις.
>> Αλλά σε αυτό το σύνολο το πρόβλημα, μας μισή πυραμίδα θα πρέπει να έχουν δεξιά στοίχιση.
Χρησιμοποιώντας ένα τυπικό πληκτρολόγιο, πώς θα μπορούσε να μπορείτε να τροποποιήσετε αυτό το αρχείο για να μετακινήσετε hashes
πάνω στη δεξιά πλευρά;
Θα μπορούσαν να χρησιμοποιήσουν για να υπογραμμίζει, δύο για το κορυφαία σειρά και ένα για το δεύτερο.
Αυτό δεν φαίνεται τόσο ωραίο, όμως, έτσι ας αντικαταστήσει το υπογραμμίζει με
χώρους, και εκεί έχουμε μια μισή πυραμίδα ύψους τριών.
>> Προσπαθήστε να θυμηθείτε αυτό το πρόγραμμα επεξεργασίας κειμένου παράδειγμα, όπως θα αρχίσουμε να σκεφτόμαστε πίσω στην
Γ. Ας προσπαθήσουμε και να καταλάβουμε ορισμένες είδος σχεδίου που μπορούμε
θέσει σε ένα μόρφωμα βρόχο.
Πάρτε ένα ύψος παράδειγμα, ας πούμε οκτώ, και δείτε αν μπορείτε να αρχίσετε να
καταλήξουμε σε ένα μοτίβο.
Η πρώτη γραμμή θα έχει επτά θέσεις ακολουθείται από δύο hashes.
Η δεύτερη σειρά θα έχει έξι θέσεις και τρεις hashes, και ούτω καθεξής μέχρι το
όγδοη σειρά.
>> Αλλά πώς θα εκπροσωπεί η νιοστή σειρά;
Να θυμάστε ότι η σύμβαση προγραμματισμού είναι μηδέν ευρετήριο.
Αυτό σημαίνει ότι θα αρχίσουμε να μετράμε σε μηδέν, έτσι ώστε η πρώτη γραμμή είναι τεχνικά
σειρά αριθμό μηδέν με δύο καταπακτές, σειρά νούμερο ένα έχει τρεις hashes, σειρά
νούμερο δύο έχει τέσσερα hashes, έτσι ώστε μετά αυτό το πρότυπο για κάθε γραμμή
αριθμό n, υπάρχουν n συν 2 hashes.
Θα το αφήσει σε σας, όμως, να βρείτε έξω από το πρότυπο για τους χώρους.
Να θυμάστε ότι το σχέδιό σας θα είναι ελαφρώς διαφορετική αν επιλέξετε να
ξεκινήσετε σας μετράνε από ένα και όχι μηδέν.
>> Τώρα, έχετε ένα πρότυπο για οποιαδήποτε αφηρημένη n σειρά.
Ξέρετε πόσες θέσεις για την εκτύπωση και πόσες hashes, έτσι ώστε για κάθε γραμμή, δηλαδή
ο αριθμός θα αλλάξει.
Όμως, η ίδια η διαδικασία της εκτύπωσης α ενιαίο χαρακτήρα, είτε ένας χώρος ή ένα
hash, επαναλαμβάνεται.
Έτσι, το μόνο που έχετε να κάνετε είναι κατ 'επανάληψη εκτυπώστε αυτό το χαρακτήρα για όσες φορές
ως πρότυπο σας καθορίζει.
>> Επομένως, πώς θα επαναλάβουμε τις διαδικασίες;
Το Scratch, χρησιμοποιήσαμε το μπλοκ επανάληψης.
Στο C, θα χρησιμοποιήσουμε ένα for loop.
Ας δούμε τη σύνταξη για την κατηγορία βρόχους.
>> Κάθε Για βρόχος αποτελείται από τρία μέρη, μια προετοιμασία, μια κατάσταση,
και μια ενημέρωση.
Για την μέθοδο loop σας θα προετοιμαστεί μια μεταβλητή, όταν για πρώτη
Για εισέρχεται στο βρόχο.
Εάν ικανοποιείται η συνθήκη, ο οργανισμός του βρόχου θα εκτελέσει.
Στη συνέχεια, η ενημέρωση θα εκτελέσει.
>> Εάν η κατάσταση εξακολουθεί να πληρούται, η βρόχου θα εκτελέσει και να ενημερώσει και να
Επαναλαμβάνω για όσο διάστημα η κατάστασή σας αποτιμάται σε True.
Είσαι κατάσταση πρέπει τελικά valuate στην τιμή False, όμως, γιατί
σε αντίθεση με Scratch, δεν το κάνουμε έχει θηλιές για πάντα.
Το πρόγραμμά σας πρέπει να σταματήσει τελικά.
>> Εδώ είναι ένα παράδειγμα ενός βρόχου for που ίσως να θέλετε να χρησιμοποιήσετε για Mario.
Η προετοιμασία δηλώνει ένα i ακέραιος με τιμή 0.
Εφ 'όσον το i είναι μικρότερο από το ύψος, το σώμα του βρόχου θα εκτελέσει και
αύξηση i κατά ένα και επαναλάβετε έως ότου το i είναι μεγαλύτερο ή
ίσο με το ύψος.
>> Τώρα, για βρόχο μου είναι μηδενικό δείκτη.
Η Int i ξεκινά από το μηδέν, όχι ένα.
Αν επέλεξα ένα, τότε η κατάστασή μου θα πρέπει επίσης να είναι διαφορετική για
ο βρόχος να εκτελέσει την ίδιο αριθμό φορών.
Θυμηθείτε το αυτό προσεκτικά, όταν είστε επιλογή προετοιμασίας σας και σας
κατάσταση, και συμβουλευτείτε αυτό διάγραμμα για διπλό έλεγχο.
>> Ένα από τα μεγάλα πράγματα για τον υπολογιστή η επιστήμη είναι ότι υπάρχει μόνο τόσα πολλά
τρόποι για να εκτελέσει τα πράγματα.
Μπορείτε να επιλέξετε αν θα ξεκινούν από το μηδέν ή ένα.
Εάν δεν θέλετε να χρησιμοποιήσετε ένα for loop, μπορείτε επίσης να χρησιμοποιήσετε ένα βρόχο while να
επαναλάβετε δηλώσεις εφ 'όσον κρατήσει την ουσία ενός βρόχου for,
προετοιμασία, την κατάσταση και την ενημέρωση.
Μόλις καταλάβω την βρόχου for που είμαστε πιο άνετα, τότε
μπορεί να ολοκληρώσει Mario.
>> Πρέπει πρώτα ελέγχονται για την είσοδο χρήστη και προσδιόρισε τότε
πρότυπο για κάθε n σειρά.
Έτσι, για κάθε γραμμή από μηδέν έως μείον 1 n θα εκτυπώσει τον κατάλληλο αριθμό
χώρους, τότε ο κατάλληλος αριθμός hashes σύμφωνα με τον τρόπο μας, και
τότε μια νέα γραμμή.
Με αυτό, έχετε πυραμίδα σας.
Το όνομά μου είναι Zamyla, και αυτό ήταν Mario.