1 00:00:00,000 --> 00:00:09,250 2 00:00:09,250 --> 00:00:11,070 >> ZAMYLA צ'אן: הקפיצה בואו למריו. 3 00:00:11,070 --> 00:00:14,850 מריו הוא תכנית שבו אנו עושים את שלנו שלו, אם כי פרימיטיבית, גרסה של 4 00:00:14,850 --> 00:00:17,760 קלאסי אחים סופר מריו רקע משחק. 5 00:00:17,760 --> 00:00:21,100 לקבוצה את הבעיה הזו, אנחנו הולכים כדי לשחזר את חצי הפירמידה עבור 6 00:00:21,100 --> 00:00:23,000 מריו לקפוץ על. 7 00:00:23,000 --> 00:00:27,330 התכנית שלנו תהיה אינטראקטיבית, ולכן ישאל את המשתמש לקלט מסוים 8 00:00:27,330 --> 00:00:28,660 גובה לפירמידה. 9 00:00:28,660 --> 00:00:32,920 והתכנית תהיה להדפיס חצי פירמידה בגובה זה, שבו 10 00:00:32,920 --> 00:00:37,390 חשיש שמאלי תחתון מתיישר עם התחתית פינה שמאלית של הטרמינל 11 00:00:37,390 --> 00:00:39,710 חלון פלט. 12 00:00:39,710 --> 00:00:44,870 >> בואו לשבור את הבעיה הזו לשני חלקים, אחד, לקבל קלט משתמש, ושתיים, 13 00:00:44,870 --> 00:00:47,040 להדפיס את הפירמידה. 14 00:00:47,040 --> 00:00:51,150 זכור כי למרות שתפקוד GetInt יהיה לאחזר מספר שלם, אתה 15 00:00:51,150 --> 00:00:56,260 יש לוודא כי קלט זה עושה הגיוני עבור התכנית שלך, ולכן ב 16 00:00:56,260 --> 00:00:59,690 מריו, זה לא יעשה רק מוצר עבור מספר שלם. 17 00:00:59,690 --> 00:01:03,440 אתה צריך לוודא שהמשתמש תשומות שלמים זה בתוך 18 00:01:03,440 --> 00:01:06,985 גבולות עליון והתחתון של פירמידה שתוכל להדפיס. 19 00:01:06,985 --> 00:01:12,300 למפרט זה, זה הוא 0 ו -23 ועד בכלל. 20 00:01:12,300 --> 00:01:16,410 אם תשומות המשתמש שלם מחוץ לתחום המקובל שלנו, אז אנחנו רוצים 21 00:01:16,410 --> 00:01:20,840 כדי להנחות אותם שוב ושוב עד הם נותנים לנו מספר שלם חוקי. 22 00:01:20,840 --> 00:01:25,990 >> דרך אחת להבטיח קלט משתמש נכון היא באמצעות Do-בעוד לולאה, שהוא 23 00:01:25,990 --> 00:01:28,100 דומה מאוד ללולאה בזמן. 24 00:01:28,100 --> 00:01:32,580 Do-בעוד לולאה מבצעת את הקוד בתוך הגוף פעם אחת, ולאחר מכן בודק 25 00:01:32,580 --> 00:01:35,270 אם התנאי מתקיים או לא. 26 00:01:35,270 --> 00:01:38,830 זה שימושי לקבלת קלט מהמשתמש כי אתה יודע שאתה צריך 27 00:01:38,830 --> 00:01:41,805 כדי להנחות אותם לפחות פעם אחת. 28 00:01:41,805 --> 00:01:45,940 אם התנאי אינו מתקיים, התכנית תבצע את הקו לאחר 29 00:01:45,940 --> 00:01:47,270 עשה ואל-בעוד הלולאה שלך. 30 00:01:47,270 --> 00:01:50,950 אם התנאי מתקיים, אם כי, הלולאה תחזור. 31 00:01:50,950 --> 00:01:55,560 >> עשה ואל-בעוד לולאה לאימות משתמש קלט נראה משהו כזה. 32 00:01:55,560 --> 00:02:02,920 אני מצהיר n משתנה, GetInt, וחזור עד n הוא חוקי. 33 00:02:02,920 --> 00:02:06,270 זכור כי כאשר אתה מצהיר משתנה, הוא צריך מתאים 34 00:02:06,270 --> 00:02:08,449 היקפו, בדיוק כמו בגרד. 35 00:02:08,449 --> 00:02:12,510 אם אני מצהיר n-Do בתוך הלולאה בזמן שלי, שאר התכנית לא יהיה 36 00:02:12,510 --> 00:02:13,750 תוכל לגשת אליו. 37 00:02:13,750 --> 00:02:16,100 זה מוגבל לגבולות מהסוגריים המסולסלים. 38 00:02:16,100 --> 00:02:19,010 39 00:02:19,010 --> 00:02:23,090 >> בסדר, אז עכשיו שאנחנו כבר תוקף הקלט של המשתמש, אנחנו באמת צריכים 40 00:02:23,090 --> 00:02:25,020 לצייר חצי הפירמידה הזאת. 41 00:02:25,020 --> 00:02:29,700 זה מורכב של תווים מודפסים, ולכן בואו נעשה חצי פירמידה באופן פשוט 42 00:02:29,700 --> 00:02:31,480 עורך טקסט. 43 00:02:31,480 --> 00:02:35,920 אם אנחנו רוצים להפוך את פירמידה בסגנון מריו גובה של שלוש שמיושרים 44 00:02:35,920 --> 00:02:41,370 בצד השמאל של החלון שלנו, ולאחר מכן היינו להקליד שני hashes, לחץ על Enter, 45 00:02:41,370 --> 00:02:47,180 לאחר מכן הקלד את שלושה hashes, לחץ להיכנס, ולאחר מכן הקלד את ארבע. 46 00:02:47,180 --> 00:02:51,090 >> אבל בסט בעיה זו, שלנו יש חצי פירמידה להיות מיושרת לימין. 47 00:02:51,090 --> 00:02:55,550 שימוש בלוח מקשים רגילים, איך ייתכן שלך לשנות קובץ זה על מנת להזיז hashes 48 00:02:55,550 --> 00:02:57,210 לצד ימין? 49 00:02:57,210 --> 00:03:03,190 אני יכול להשתמש בו כדי מדגיש, שתיים על בשורה עליונה ואחת על השנייה. 50 00:03:03,190 --> 00:03:07,690 זה לא נראה טוב כמו, אם כי, כך בואו נחליף מדגיש עם 51 00:03:07,690 --> 00:03:12,450 רווחים, ויש לנו חצי פירמידה גובה של שלוש. 52 00:03:12,450 --> 00:03:16,330 >> נסה לזכור ועורך הטקסט הזה דוגמה כמו שאתה מתחיל לחשוב חזרה ל 53 00:03:16,330 --> 00:03:20,100 ג בואו ננסה להבין קצת סוג של תבנית שאנחנו יכולים 54 00:03:20,100 --> 00:03:22,750 לשים במבנה לולאה. 55 00:03:22,750 --> 00:03:27,570 קח את גובה דוגמה, תניח שמונה, ותראה אם ​​אתה יכול להתחיל 56 00:03:27,570 --> 00:03:29,470 לבוא עם דפוס. 57 00:03:29,470 --> 00:03:34,710 השורה הראשונה תהיה שבעה מקומות אחרי שני hashes. 58 00:03:34,710 --> 00:03:40,090 השורה השנייה תהיה שישה חללים ו שלושה hashes, וכן הלאה עד 59 00:03:40,090 --> 00:03:41,440 שורה שמינית. 60 00:03:41,440 --> 00:03:45,210 >> אבל איך היית לייצג שורת המי יודע כמה? 61 00:03:45,210 --> 00:03:48,170 זכור כי אמנת תכנות אינדקס הוא אפס. 62 00:03:48,170 --> 00:03:51,870 זה אומר שאתה מתחיל לספור ב אפס, ולכן בשורה הראשונה מבחינה טכנית 63 00:03:51,870 --> 00:03:57,110 אפס מספר שורה עם שני פתחים, שורה יש מספר אחד שלושה hashes, שורה 64 00:03:57,110 --> 00:04:01,860 יש מספר שתיים ארבעה Hash, כך שלאחר תבנית זו לכל שורה 65 00:04:01,860 --> 00:04:05,800 מספר n, יש n בתוספת 2 hashes. 66 00:04:05,800 --> 00:04:09,270 אני אשאיר לך את זה, אם כי, כדי למצוא את התבנית לחללים. 67 00:04:09,270 --> 00:04:12,240 זכור כי הדפוס שלך יהיה מעט שונה, אם תבחרו 68 00:04:12,240 --> 00:04:16,649 להתחיל לספור ממך אחד ולא אפס. 69 00:04:16,649 --> 00:04:19,560 >> עכשיו, יש לך דפוס כל n שורה מופשטת. 70 00:04:19,560 --> 00:04:25,190 אתה יודע כמה חללים רבים ולהדפיס כמה hashes, ולכן לכל שורה, כי 71 00:04:25,190 --> 00:04:26,270 מספר לא ישתנה. 72 00:04:26,270 --> 00:04:30,700 אבל את אותו התהליך של הדפסה תו בודד, או חלל או 73 00:04:30,700 --> 00:04:33,200 חשיש, חוזר על עצמו. 74 00:04:33,200 --> 00:04:37,470 אז כל מה שאתה צריך לעשות זה שוב ושוב להדפיס תו לכמה שיותר פעמים 75 00:04:37,470 --> 00:04:40,120 כדפוס שלך קובע. 76 00:04:40,120 --> 00:04:42,522 >> אז איך אנחנו חוזרים על תהליכים? 77 00:04:42,522 --> 00:04:45,160 בגרד, השתמשנו בבלוק חוזר. 78 00:04:45,160 --> 00:04:48,580 ב-C, אנו נשתמש ללולאה. 79 00:04:48,580 --> 00:04:51,290 בואו נסתכל על התחביר עבור ללולאות. 80 00:04:51,290 --> 00:04:57,140 >> כל אחד ללולאה מורכבת משלושה חלקים, אתחול, מצב, 81 00:04:57,140 --> 00:04:58,592 ועדכון. 82 00:04:58,592 --> 00:05:01,550 הלולאה עבורך תהיה לאתחל משתנה כאשר הוא ראשון 83 00:05:01,550 --> 00:05:02,960 נכנס ללולאה. 84 00:05:02,960 --> 00:05:07,100 אם התנאי מתקיים, הגוף של הלולאה יבצע. 85 00:05:07,100 --> 00:05:10,070 לאחר מכן, יבצע את העדכון. 86 00:05:10,070 --> 00:05:13,630 >> אם התנאי עדיין מתקיים, הלולאה תבצע ולעדכן ו 87 00:05:13,630 --> 00:05:18,580 לחזור כל זמן שהמצב שלך ערך TRUE. 88 00:05:18,580 --> 00:05:21,450 אתה חייב להעריך מצב סופו של דבר לכוזב, אם כי, כי 89 00:05:21,450 --> 00:05:24,490 שלא כמו גרד, אנחנו לא שום לולאות לנצח. 90 00:05:24,490 --> 00:05:28,270 התכנית שלך חייבת להסתיים סופו של דבר. 91 00:05:28,270 --> 00:05:32,330 >> הנה דוגמה של ללולאה ש אולי כדאי לך להשתמש במריו. 92 00:05:32,330 --> 00:05:36,790 האתחול מצהיר אני שלם עם ערך 0. 93 00:05:36,790 --> 00:05:40,750 כל עוד אני הוא פחות מ הגובה, הגוף של הלולאה יבצע ו 94 00:05:40,750 --> 00:05:44,980 תגדיל לי על ידי אחד וחזור עד שאני גדול או 95 00:05:44,980 --> 00:05:47,220 שווה לגובה. 96 00:05:47,220 --> 00:05:49,140 >> עכשיו, ללולאה שלי היא אפס מדד. 97 00:05:49,140 --> 00:05:52,270 אני int מתחיל באפס, לא אחד. 98 00:05:52,270 --> 00:05:55,320 אם אני בחרתי אחד, ואז היית המצב שלי גם צריך להיות שונה עבור 99 00:05:55,320 --> 00:05:58,740 לולאה לביצוע מספר זהה של פעמים. 100 00:05:58,740 --> 00:06:03,490 זכור את זה בזהירות כשאתה בחירת האתחול ושלך שלך 101 00:06:03,490 --> 00:06:08,660 מצב, ולהתייעץ זה תרשים כדי להכפיל את הסימון. 102 00:06:08,660 --> 00:06:13,430 >> אחד הדברים הגדולים על מחשב המדע הוא שיש פשוט כל כך הרבה 103 00:06:13,430 --> 00:06:15,490 דרכים לביצוע דברים. 104 00:06:15,490 --> 00:06:19,450 אתה יכול לבחור אם אתה תתחיל בשעה אפס או אחד. 105 00:06:19,450 --> 00:06:22,380 אם אתה לא רוצה להשתמש עבור לולאה, אתה יכול גם להשתמש בלולאה בזמן כדי 106 00:06:22,380 --> 00:06:26,530 לחזור על הדברים כל עוד אתה לשמור על מהותו של ללולאה, 107 00:06:26,530 --> 00:06:31,430 אתחול, מצב, ועדכון. 108 00:06:31,430 --> 00:06:36,890 ברגע שנבין שללולאה אנחנו הכי נוחים עם, אז אנחנו 109 00:06:36,890 --> 00:06:38,450 יכול להשלים את מריו. 110 00:06:38,450 --> 00:06:41,540 >> בדקנו ראשון לקלט מהמשתמש ולאחר מכן זיהה 111 00:06:41,540 --> 00:06:43,580 דפוס עבור כל n רציפות. 112 00:06:43,580 --> 00:06:49,990 אז עבור כל שורה מאפס עד n מינוס 1 ידפיס את המספר המתאים של 113 00:06:49,990 --> 00:06:55,340 רווחים, ואז את המספר המתאים של hashes על פי הדפוס שלנו, ו 114 00:06:55,340 --> 00:06:57,180 אז בשורה חדשה. 115 00:06:57,180 --> 00:06:59,640 עם זה, יש לך הפירמידה שלך. 116 00:06:59,640 --> 00:07:02,630 השם שלי הוא Zamyla, וזה היה מריו. 117 00:07:02,630 --> 00:07:11,765