תרגיל - יצירת מערכים ולולאות תמיכה
בתרגיל זה, אתה סוקר את קוד הפרוייקט של Starter ולאחר מכן מתחיל לעדכן את היישום. משימת הקידוד הראשונה שלך היא יצירת המערכים המכילים ציוני מבחנים של תלמידים. לאחר שתוני היישום יהיו זמינים במערכים, foreach
תתחיל לעבוד על לולאה שבה ניתן להשתמש כדי לסכם ציוני תלמידים. המשימות המפורטות שאתה משלים במהלך תרגיל זה הן:
סקירת קוד: סקור את תוכן Program.cs הקובץ.
מערכים: צור את המערכים המאחסנים את תוצאות המטלה של כל תלמיד.
איטרציה: צור לולאה
foreach
שניתן להשתמש בה כדי לסכם את צאורי המטלה של סופיה.חשב והצג את ציון המטלה הממוצע של סופיה.
בדיקת אימות: בצע בדיקת אימות עבור הקוד שפיתת בתרגיל זה.
חשוב
עליך להשלים את הוראות ההתקנה ביחידה הקודמת, הכנה, לפני שתתחיל בתרגיל זה.
סקירת התוכן של Program.cs שלך
בפעילות זו, תעיין בקוד שסופק כפרוייקט להפעלה עבור מודול זה. קובץ Program.cs מכיל את הגירסה ההתחלתית של יישום מתן הדרגות לתלמידים שאתה מעדכן.
ודא שהתיקיה GuidedProject פתוחה ב- Visual Studio Code.
היחידה הכן (היחידה הקודמת במודול זה) כוללת מקטע הגדרה עבור מודול פרוייקט מונחה זה. המקטע התקנה מתאר את התהליך להורדת הקוד ההתחלתי ולפתיחת תיקיית הפרוייקט Visual Studio Code. במידת הצורך, חזור ובצע את הוראות ההתקנה.
בתצוגה Visual Studio Code EXPLORER, הרחב את התיקיה Starter ולאחר מכן בחר Program.cs.
בעת בחירת Program.cs הקובץ, תוכן הקובץ נפתח באזור העורך הראשי משמאל לתצוגת EXPLORER.
אם תצוגת EXPLORER אינה פתוחה, באפשרותך לפתוח אותה באמצעות סרגל הפעילות בצד הימני הרחוק של חלון Visual Studio Code. לחצן EXPLORER הוא הסמל העליון ביותר בסרגל הפעילות.
בדוק את הקוד בקובץ ה- Program.cs שלך.
שים לב שה חלקו העליון של הקוד מתחיל ברשימת הצהרות משתנות.
// initialize variables - graded assignments int currentAssignments = 5; int sophia1 = 90; int sophia2 = 86; int sophia3 = 87; int sophia4 = 98; int sophia5 = 100; int andrew1 = 92; int andrew2 = 89; int andrew3 = 81; int andrew4 = 96; int andrew5 = 90; int emma1 = 90; int emma2 = 85; int emma3 = 87; int emma4 = 98; int emma5 = 68; int logan1 = 90; int logan2 = 95; int logan3 = 87; int logan4 = 88; int logan5 = 96;
בחלק העליון של קובץ הקוד, מופיעה שורת הערה ואחריה רשימה של משתנים המשמשים לאחסון הציונים של מטלות עם ציון עבור כל תלמיד. המשתנה הראשון
currentAssignments
שלך, משמש לאחסון מספר הבחינות שהציונים ציונים.משתני ניקוד המטלה מייצגים הזדמנות נהדרת ליצור מערכים ולהשתמש בהם!
גלול מטה ועיין בשתי הקבוצות של שורות קוד הצהרה משתנות.
int sophiaSum = 0; int andrewSum = 0; int emmaSum = 0; int loganSum = 0; decimal sophiaScore; decimal andrewScore; decimal emmaScore; decimal loganScore;
קבוצת המשתנים הראשונה היא מספרים שלמים המשמשים לחסכון הסכום של תוצאות המבחן.
קבוצת המשתנים השניה היא מקומות עשרוניים המשמשים לחישוב הציון הממוצע המחושב. הקוד משתמש במספרים עשרוניים כאן מאחר ש בחישוב מספרים שלמים מעגל את חלק השבר של הערך המחושב.
שים לב שהשתמשת במשתנה ייחודי עבור כל תלמיד. פעולה זו עשויה לספק הזדמנות נוספת לרזות מספר שורות הקוד ביישום המעודכן.
נראה שקוד ההתחלה מתחיל חישובי ניקוד בשלב הבא.
גלול מטה עוד קצת והיחלפו דקה כדי לסקור את הקוד הבא:
sophiaSum = sophia1 + sophia2 + sophia3 + sophia4 + sophia5; andrewSum = andrew1 + andrew2 + andrew3 + andrew4 + andrew5; emmaSum = emma1 + emma2 + emma3 + emma4 + emma5; loganSum = logan1 + logan2 + logan3 + logan4 + logan5; sophiaScore = (decimal)sophiaSum / currentAssignments; andrewScore = (decimal)andrewSum / currentAssignments; emmaScore = (decimal)emmaSum / currentAssignments; loganScore = (decimal)loganSum / currentAssignments;
קבוצת המשוואות הראשונה משמשת לחישוב הסכום של תוצאות המטלה עבור כל תלמיד.
קבוצת המשוואות השניה מחשבת את הציון הממוצע. שים לב שהמספר יוקם כמספר עשרוני כדי להבטיח שהחלוקה תשמור על רכיב השבר.
תידרש להימשך דקה כדי לסקור את מקטע הקוד הסופי:
Console.WriteLine("Student\t\tGrade\n"); Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA-"); Console.WriteLine("Andrew:\t\t" + andrewScore + "\tB+"); Console.WriteLine("Emma:\t\t" + emmaScore + "\tB"); Console.WriteLine("Logan:\t\t" + loganScore + "\tA-"); Console.WriteLine("Press the Enter key to continue"); Console.ReadLine();
סעיף זה מדפיס את הפלט המעוצב בהתאם לקווים המנחים של המורה. השורה הראשונה היא שורת כותרת עם כותרות עמודות, ואחריה שמות ותוצאות עבור כל תלמיד.
המשפט
Console.ReadLine()
משהה את היישום כך שמשתמש היישום יוכל לסקור את הפלט.בתצוגה Visual Studio Code EXPLORER, לחץ באמצעות לחצן העכבר הימני על Starter ולאחר מכן בחר פתח במסוף משולב.
אתה משתמש בלוח TERMINAL כדי להפעיל פקודות ממשק שורת הפקודה (CLI) של .NET, כגון
dotnet build
וdotnet run
- . הפקודהdotnet build
מבצעת קומפילציה של הקוד שלך ומציגה הודעות שגיאה ואזהרה הקשורות לתחביר הקוד שלך.חשוב
ודא ששורת הפקודה של המסוף פתוחה בבסיס סביבת העבודה של הפרוייקט. במקרה זה, הבסיס של סביבת העבודה של הפרוייקט הוא התיקיה Starter, שבה ממוקמים קבצי Starter.csproj Program.cs שלך. בעת הפעלת פקודות .NET CLI במסוף, הפקודות ינסה לבצע פעולות באמצעות מיקום התיקיה הנוכחי. אם אתה מנסה להפעיל את הפקודות
dotnet build
אוdotnet run
ממיקום תיקיה שאינו מכיל את הקבצים שלך, הפקודות יוצרות הודעות שגיאה.בשורת הפקודה TERMINAL, כדי לבנות את קוד הפרוייקט, הזן את הפקודה הבאה:
dotnet build
לאחר כמה שניות, אתה אמור לראות הודעה המציינת כי גירסת ה- Build הצליחה וש- 0 אזהרות ו- 0 שגיאות.
Determining projects to restore... All projects are up-to-date for restore. Starter -> C:\Users\someuser\Desktop\GuidedProject\Starter\bin\Debug\net7.0\Starter.dll Build succeeded. 0 Warning(s) 0 Error(s)
שימוש בפקודות .NET CLI הוא דרך קלה לבנות ולהפעיל את היישומים שלך ב- Visual Studio Code.
בשורת הפקודה של מסוף, הקלד dotnet run ולאחר מכן הקש Enter.
הפקודה
dotnet run
מורה למהדר לבנות את היישום שלך ולאחר מכן, כל עוד לא היו שגיאות גירסת Build, היא מפעילה את הקוד שהדרת.חשוב
פרוייקט Starter מתמקד ב- .NET 8 (בקובץ Starter.csproj). אם לא מותקן במחשב שלך .NET 8, הפקודה
dotnet run
תפיק שגיאה. באפשרותך להתקין את .NET 8 SDK (מומלץ), או לשנות את מסגרת היעד בקובץ Starter.csproj כדי להתאים לגירסת .NET שהתקנת בסביבה שלך.ודא שהיישום יצר את הפלט הבא:
Student Grade Sophia: 92.2 A- Andrew: 89.6 B+ Emma: 85.6 B Logan: 91.2 A- Press the Enter key to continue
בלוח TERMINAL, הקש על מקש Enter.
היישום שלך הושהה למעשה לאחר כתיבת "הקש על מקש Enter כדי להמשיך" לקונסולה. אופן פעולה זה נגרם על-ידי
Console.ReadLine()
המשפט, המשמש לאיסוף קלט משתמש ביישום מסוף. היישום יפסיק לפעול לאחר שתלחץ על Enter.סגור את לוח המסוף.
פעולה זו משלים את סקירת הקוד שלך. יישום זה נראה כמו ההזדמנות המושלמת להחיל מערכים, איתציות ו משפטי בחירה.
הגיע הזמן להתחיל בעבודה עם העדכונים שלך!
יצירת מערכים של ניקוד הקצאה
במשימה זו, תחליף את המשתנים שמכילים את הציונים הבודדים במערכים שמכילים את הציונים של המטלה המקודחת עבור כל תלמיד.
בעורך קוד Visual Studio, גלול לחלק העליון של Program.cs הקובץ.
צור שורת קוד ריקה מתחת לשורה המשמשת להצהיר על המשתנה
currentAssignments
.בשורת הקוד החדשה, כדי ליצור מערך מספר שלם שישמש עבור תוצאות המטלה של סופיה, הזן את הקוד הבא:
int[] sophiaScores = new int[5];
שים לב שקוד זה משתמש
new
באופרטור כדי לציין שאתה יוצר מופע חדש של מערך. קבוצת הסוגרייםint[]
sophiaScores
המרובעים ב- מציינת את המהדר שישמש כמערך מספר שלם,int[5]
בעוד שערכת הסוגריים המרובעים ב- משמשת לציון מספר הרכיבים במערך.ייתכן שתזכור שיש לך אפשרות להקצות ערכי מערך כחלק מההצהרה.
הערה
במצבים שבהם אתה יודע מראש את הערכים של רכיבי מערך ומתי לא סביר שהערכים ישתנו, הגיוני להקצות את ערכי המערך כאשר המערך מוצהר. דוגמה טובה תהיה מערך המשמש לאחסון ימי השבוע. ברור שאם ערכי המערך אינם ידועים, לא ניתן לציין אותם כאשר המערך מוצהר, ולהשתמש בתחביר שהזנת לעיל כדי להצהיר על המערך שלך.
כדי לציין את תוצאות המטלה של סופיה בתוך ההצהרה, עדכן את ההצהרה באופן
sophiaScores
הבא:int[] sophiaScores = new int[] { 90, 86, 87, 98, 100 };
שים לב כי
5
המספר ששימש לציון מספר הרכיבים הוסר, ובמקום זאת, כללת את הציונים של חמש המטלות המציונים.ודא שהציונים המופיעים בתוך ההתאמה של
{}
הציונים הבודדים עבור המטלות של סופיה.חמשת המשתנים המשמשים להחזקת ציונים בודדים הם כדלקמן:
int sophia1 = 90; int sophia2 = 86; int sophia3 = 87; int sophia4 = 98; int sophia5 = 100;
מחק את שורות הקוד שמכריזות על המשתנים המחזיקים בציונים האישיים של סופיה.
מאחר שתשתמש במערך כדי
sophiaScores
לגשת לציונים של סופיה מעתה והלאה, אין עוד צורך במשתנים אלה.כדי ליצור מערך מספר שלם שישמש עבור תוצאות המטלה של Andrew, הזן את הקוד הבא:
int[] andrewScores = new int[] {92, 89, 81, 96, 90};
צור את הצהרות המערך עבור התלמידים האחרים.
הקפד להוסיף שם למערכים באמצעות שם התלמיד,
{}
ולאחר מכן להעתיק את הערכים של הציונים הבודדים שלהם לתוך שורת הצהרת המערך.ודא שהעתקת את הניקוד הבודד לתוך הצהרות המערך באופן מדויק, ולאחר מכן מחק את המשתנים המשמשים ל החזקת הציונים הבודדים עבור Andrew, Emma ו- Logan.
הקוד בחלק העליון של קובץ Program.cs אמור להיות דומה כעת לקוד הבא:
// initialize variables - graded assignments int currentAssignments = 5; int[] sophiaScores = new int[] { 90, 86, 87, 98, 100 }; int[] andrewScores = new int[] { 92, 89, 81, 96, 90 }; int[] emmaScores = new int[] { 90, 85, 87, 98, 68 }; int[] loganScores = new int[] { 90, 95, 87, 88, 96 }; int sophiaSum = 0;
עבודה טובה, מערכים של ציונים מוצהרת ומוכן לשימוש.
יצירת איטראציה לצורך חישוב הציון של סופיה
במשימה זו, foreach
תחליף את הקוד הקיים המשמש לביצוע חישובים במשפט המבצע איטרטיביות באמצעות תוצאות ההקצאה של סופיה. תשתמש בבלוק הקוד של הלולאה foreach
כדי לחשב את סכום הציונים של סופיה, ולאחר מכן לחשב ולהציג את הציון של סופיה.
אתר את שורות הקוד המשמשות להצהיר על משתנים ולבצע חישובים עבור ערכי הסכום והתוצאה הממוצעת.
הקוד אמור להיראות דומה לקוד הבא:
int sophiaSum = 0; int andrewSum = 0; int emmaSum = 0; int loganSum = 0; decimal sophiaScore; decimal andrewScore; decimal emmaScore; decimal loganScore; sophiaSum = sophia1 + sophia2 + sophia3 + sophia4 + sophia5; andrewSum = andrew1 + andrew2 + andrew3 + andrew4 + andrew5; emmaSum = emma1 + emma2 + emma3 + emma4 + emma5; loganSum = logan1 + logan2 + logan3 + logan4 + logan5; sophiaScore = (decimal)sophiaSum / currentAssignments; andrewScore = (decimal)andrewSum / currentAssignments; emmaScore = (decimal)emmaSum / currentAssignments; loganScore = (decimal)loganSum / currentAssignments;
מחק את שורות הקוד המשמשות לביצוע חישובי הסכום.
לאחר שתסיים לנקות, תחבר את
foreach
הקוד לחישוב הסכום בתוך לולאה.מחק את שורות הקוד שמכריזות
int
ומשתניםdecimal
עבור אנדרו, אמה ולוגן.הערה
השאר את שורות הקוד שמכריזות על משתנים עבור סופיה.
מחק את שורות הקוד המשמשות לחישוב הציון הממוצע עבור Andrew, Emma ו- Logan.
הערה
השאר את שורת הקוד המכילה את חישוב הציון הממוצע עבור סופיה.
גלול מטה לחלק התחתון של הקוד ולאחר מכן מחק את שורות הקוד המשמשות כדי לדווח על ציונים עבור אנדרו, אמה ולוגן.
ודא שהקובץ Program.cs מכיל את הקוד הבא:
הערה
הוסף או הסר שורות קוד ריקות כך שהקוד שלך תואם לקוד המוצג להלן.
// initialize variables - graded assignments int currentAssignments = 5; int[] sophiaScores = new int[] { 90, 86, 87, 98, 100 }; int[] andrewScores = new int[] { 92, 89, 81, 96, 90 }; int[] emmaScores = new int[] { 90, 85, 87, 98, 68 }; int[] loganScores = new int[] { 90, 95, 87, 88, 96 }; int sophiaSum = 0; decimal sophiaScore; sophiaScore = (decimal)sophiaSum / currentAssignments; Console.WriteLine("Student\t\tGrade\n"); Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA-"); Console.WriteLine("Press the Enter key to continue"); Console.ReadLine();
צור שורת קוד ריקה לאחר השורה המשמשת להצהיר על
sophiaScore
.כדי ליצור משפט
foreach
שבו תשתמש כדי לאחזר באמצעות הציונים של סופיה, הזן את הקוד הבא:foreach (int score in sophiaScores) { }
שים לב שקוד זה יוצר מופעים של משתנה מספר שלם
score
בשם כחלק מההצהרהforeach
. יהיה עליך להשתמש בתוךscore
בלוק הקוד של שלך כדיforeach
לגשת לערכים של המערךsophiaScores
.כדי ליצור משוואה שסיכום הציון של סופיה, עדכן את בלוק
foreach
הקוד באופן הבא:foreach (int score in sophiaScores) { // add the exam score to the sum sophiaSum += score; }
שים לב שקוד זה משתמש באופרטור
+=
כדי להוסיף את הערך שלוscore
בתוךsophiaSum
הלולאהforeach
שלך. מפתחים משתמשים לעתים+=
קרובות כקי דרך בעת חישוב סכום. משוואה זו שוות ערך לנוסחה הבאה:sophiaSum = sophiaSum + score;
לאחר שהלולאה
foreach
שלך תכלול את כל הערכים במערךsophiaScores
,sophiaSum
תכלול את סכום הציונים שלה.בדוק את הקוד שלך כדקה.
הקוד שלך אמור להיראות כעת דומה לקוד הבא:
// initialize variables - graded assignments int currentAssignments = 5; int[] sophiaScores = new int[] { 90, 86, 87, 98, 100 }; int[] andrewScores = new int[] { 92, 89, 81, 96, 90 }; int[] emmaScores = new int[] { 90, 85, 87, 98, 68 }; int[] loganScores = new int[] { 90, 95, 87, 88, 96 }; int sophiaSum = 0; decimal sophiaScore; foreach (int score in sophiaScores) { // add the exam score to the sum sophiaSum += score; } sophiaScore = (decimal)sophiaSum / currentAssignments; Console.WriteLine("Student\t\tGrade\n"); Console.WriteLine("Sophia:\t\t" + sophiaScore + "\tA-"); Console.WriteLine("Press the Enter key to continue"); Console.ReadLine();
בשלב זה, יצרת
foreach
את מערכים הציונים עבור כל התלמידים ואתה מחשב את הסכום של הציון של סופיה בתוך לולאה שעוברת דרך הציונים שלה. עדיין יש לך דרך ארוכה להשלים את כל העדכונים המתוכננים, אך זוהי נקודה טובה לבדוק את ההתקדמות שלך.בתפריט קובץ קוד של Visual Studio, לחץ על שמור.
בדוק את העבודה שלך
במשימה זו, תפעיל את היישום כדי לוודא שלוגיקת הקוד שלך פועלת כצפוי.
ודא ששמרת את השינויים שביצעת בקובץ Program.cs שלך.
בתצוגה Visual Studio Code EXPLORER, לחץ באמצעות לחצן העכבר הימני על Starter ולאחר מכן בחר פתח במסוף משולב.
יהיה עליך להשתמש בלוח המסוף כדי להזין פקודות .NET CLI לבנות ולהפעיל את היישומים שלך.
ודא שבקשה לפקודה Terminal מפרטת את התיקיה Starter כמיקום התיקיה הנוכחי.
אתה אמור לראות שורת פקודה הדומה להנחיות הבאות:
C:\Users\someuser\Desktop\GuidedProject\Starter>
בשורת הפקודה TERMINAL, כדי לבנות את קוד הפרוייקט, הזן את הפקודה הבאה:
dotnet build
לאחר כמה שניות, אתה אמור לראות הודעה המציינת כי גירסת ה- Build הצליחה וש- 0 אזהרות ו- 0 שגיאות.
Determining projects to restore... All projects are up-to-date for restore. Starter -> C:\Users\someuser\Desktop\GuidedProject\Starter\bin\Debug\net6.0\Starter.dll Build succeeded. 0 Warning(s) 0 Error(s)
אם אתה רואה הודעות שגיאה או אזהרה, עליך לתקן אותן לפני שתמשיך.
הודעות שגיאה ואזהרה מסמן את שורת הקוד שבה ניתן למצוא את הבעיה. להלן דוגמה להודעת
Build FAILED
שגיאה:C:\Users\someuser\Desktop\GuidedProject\Starter\Program.cs(53,18): error CS1002: ; expected [C:\Users\someuser\Desktop\GuidedProject\Starter\Starter.csproj]
הודעה זו מציינת את סוג השגיאה שזוהתה והיכן למצוא אותה. במקרה זה, ההודעה מציינת שקובץ Program.cs מכיל שגיאה -
error CS1002: ; expected
. הרמז; expected
הוא שהמפתח שכח לכלול;
בסוף הצהרה. החלקProgram.cs(53,18)
של ההודעה מציין שהשגיאה ממוקמת בשורת קוד 53, במיקום של 18 תווים משמאל.שגיאת תחביר כגון זו מונעת ממשימה ה- Build להצליח (גירסת Build נכשלה). חלק מהודעות ה- Build מספקות "אזהרה" במקום "שגיאה", כלומר יש משהו שיש לדאוג לגביו, אך באפשרותך לנסות להפעיל את התוכנית בכל זאת (גירסת ה- Build הצליחה).
לאחר תיקון הבעיות ושמרת את העדכונים, תוכל להפעיל שוב את
dotnet build
הפקודה. המשך לעדכן וש לשמור את הקוד עד שיהיה לך 0 אזהרות ו- 0 שגיאות.הערה
אם אתה נתקל בבעיות בפתרון בעיה בעצמך, באפשרותך לבדוק את Program.cs ה- Program.cs בתיקיה סופית הכלולה כחלק מההורדה שהשלמת במהלך ההתקנה. הקוד Program.cs התיקיה Final מייצג את מסקנות כל התרגילים במודול זה, כך שהוא יכלול קוד שלא יצרת עדיין. היא עשויה להיראות שונה Program.cs הקוד שפיתחת בשלב זה בפרוייקט המדריך. עם זאת, באפשרותך לנסות לבדוק את Program.cs ב'סופי' כדי לעזור לך לבודד ולפתור בעיה בקוד אם יש צורך בכך. נסה לא להשתמש בקוד בתיקיה סופית כמדריך אם באפשרותך להימנע מכך. זכור שאתה לומד מהטעויות שלך, ושכל מפתח מקדיש זמן לאיתור ולתיקון שגיאות.
בשורת הפקודה של מסוף, הקלד dotnet run ולאחר מכן הקש Enter.
הפקודה
dotnet run
מורה למהדר לבנות את היישום שלך ולאחר מכן, כל עוד לא זוהו שגיאות, יפעיל את הקוד הידור.ודא שהקוד שלך יצר את הפלט הבא:
Student Grade Sophia: 92.2 A- Press the Enter key to continue
בלוח TERMINAL, כדי להפסיק את הפעלת היישום, הקש על מקש Enter.
סגור את לוח המסוף.
מזל טוב, בנית יישום foreach
המשתמש בלולאה כדי לבצע איטרציה בין הרכיבים של מערך ולבצע חישובים בהתבסס על תוכן המערך. אתה מתקדם נהדר עם עדכוני האפליקציה הנדרשים!