1 / 16

String

String. string היכרות ראשונית עם המחלקה. בשפת # C מוגדרת מחלקה בשם String הצהרה על המשתנה מטיפוס נראית כך : string s1; אתחול משתנה String string s1 = "hello"; string s2 = "good morning";. סיכום הפעולות במחלקת STRING. סיכום הפעולות במחלקת STRING. בעיה במחרוזות.

Download Presentation

String

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. String

  2. string היכרות ראשונית עם המחלקה • בשפת #C מוגדרת מחלקה בשם String • הצהרה על המשתנה מטיפוס נראית כך : string s1; אתחול משתנה String string s1 = "hello"; string s2 = "good morning";

  3. סיכום הפעולות במחלקת STRING

  4. סיכום הפעולות במחלקת STRING

  5. בעיה במחרוזות בסיום הבחינות לכוכב נולד, יוצאת אחת מנשות ההפקה. ומקריאה את רשימתהמועמדים שהתקבלו על פי סדר הא"ב. מועמד אשר שומע את שמו יודע כי התקבל ללהקה. מועמד ששמו עדיין לא נקרא, אשר שומע שם אחר שמופיע אחריו בסדר הא"ב, יודע כי לא התקבל ללהקה. כתוב אלגוריתם שבודק האם המועמד התקבל, וכמה שמות הוא שמע עד לידיעה כי התקבל.

  6. פירוק הבעיה לתת-משימות • האלגוריתם צריך להשוות מחרוזות ובנוסף לבצע מנייה. • שלבי האלגוריתם: • קליטת שם המועמד • קליטת שמות המועמדים שהתקבלו והשוואתם לשם המועמד • מניית מספר השמות שנקלטו • הצגה אם המועמד התקבל והצגת מספר השמות שהיה עליו לשמוע • תת- משימה 3 תבוצע בדומה למשימות מנייה אחרות, ההבדל הוא כמובן בטיפוס הערכים הנמנים – מחרוזת במקרה זה – ובאופן ביצוע הפעולות עליהם.

  7. ?כיצד לעשות זאת

  8. בחירת משתנים • שם המועמד, עצם מהמחלקה מחרוזת – name • השם התורן מהקלט, עצם מהמחלקה מחרוזת – str • למניית מספר המחרוזות, מטיפוס שלם – counter

  9. האלגוריתם • אתחל את counter ב- 1 • קלוט מחרוזת ב –name • הגדל את ערכו counter של ב- 1 • קלוט מחרוזת ב- str • כל עוד (בסדר מילוני ) בצע : • קלוט מחרוזת ב- str • אם name=str • הצג כפלט "המועמד <name> התקבל " • אחרת • הצג כפלט "המועמד <name> לא התקבל" • הצג את ערכו של counter

  10. יישום האלגוריתם • כיצד נבדוק אם שם המועמד גדול על- פי סדר מילוני מהמחרוזת הנקלטת? • כיצד נבדוק אם המחרוזת האחרונה שנקלטה שווה לשם המועמד? שימו♥ את המונה נאתחל ב 1- כיוון שמחוץ ללולאה אנו קולטים את השם הראשון שנקרא.

  11. using System; • public class NameFinder • { • public static void Main () • { • הגדרת משתנים ואתחולם // • string name; • string str; • intcounter = 1; • קלט שם מבוקש // • Console.Write("Enter the candidate name: "); • name = Console.ReadLine(); • לולאת זקיף // • Console.Write("Enter first winner name: "); • str = Console.ReadLine(); • כל עוד לא עברנו את שם המועמד //

  12. while (name.CompareTo(str) > 0 || str.equals(“*”) { counter++; Console.Write("Enter next winner name: "); str = Console.ReadLine(); }// while if (name == str) Console.WriteLine(name + " is accepted"); Else Console.WriteLine(name +" is not accepted"); Console.WriteLine("{0} Names", counter); } } class NameFinder

  13. שאלות הרחבה • פתח ויישם פתרון לשאלה באמצעות שימוש במערכים . • כתוב פעולה שתקלוט שמות ותאחסן אותם במערך String , הפעולה תחזיר את מערך השמות , הנח שהמערך ממויין • כתוב פעולה שתקלוט שמות של הזוכים באופן לא ממוין ותאחסן אותם במערך String , הפעולה תחזיר את מערך השמות , הנח שהמערך לא ממויין

  14. using System; • public class NameFinder • { • public static void Main () • { • הגדרת משתנים ואתחולם // • string name; • String[] str = Winners(3); • intcounter = 1; • קלט שם מבוקש // • Console.Write("Enter the candidate name: "); • name = Console.ReadLine(); • לולאת זקיף //

  15. booleanfound_Flag=false; • for(inti=[str.GetLength()]; i--; i> =1;) • { • if((name.CompareTo(str[i]) <0 && (name.CompareTo(str[i-1]>0))) • //if the last winners name is bigger then mine and the one before is //lower then mine – this means that I wasn’t accepted • { Console.WriteLine(name +" is not accepted"); • break; • } • Else if (((name.CompareTo(str[i]) ==0 ) • {Console.WriteLine(name + " is accepted"); • Counter=str.GetLength()+1; • } • }// for • if (found_Flag==false) • Counter=str.GetLength(); • Console.WriteLine("{0} Names", counter); • } • class NameFinder

  16. String [] Winners(intNumberOfWinners ){ • String [] Winners= new String [NumberOfWinners]; • For ( int u =1 ; i<= Winners.getLength; i++){ • Console.Write("Enter the candidate name: "); • Winners[i] = Console.ReadLine();} • rerutn Winners; • }

More Related