else if (p.getinfo().getvotes() < c1.getvotes()) { c1 = p.getinfo()

Similar documents
שאלה 1 מהו הפלט של התוכנית הבאה:

Exams questions examples

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions

מבוא למדעי המחשב תרגול 8 רשימה משורשרת כללית, Comparator

הפלט אחרי הביצוע של ההוראה :what3(root)

סכום (סדרת ערכים) אחרת - דוגמא: סכום-ספרות (num) אם < 10 num החזר 1 או אם = 0 = num החזר 0 public static int numofdigits (int num)

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions

תרגול 4 פונקציות. מבנה של פונקציה: public static <return value type> <function name> (<arg1 type> <arg1>, <arg2 type> <arg2>, ) { <function body> }

ת ונכת סרוק תורשוקמ תומישר :יעישת רועיש 1

Algorithms. Intro2CS week 5

הנכות 1 םוכיס לוגרת 14 1

משתנים שעור מס. 2 כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1

Amortized Analysis, Union-Find,

Communication Networks ( ) / Spring 2011 The Blavatnik School of Computer Science, Tel-Aviv University. Allon Wagner

מבוא לתכנות ב- JAVA תרגול 7

מצליחה. 1. int fork-bomb() 2. { 3. fork(); 4. fork() && fork() fork(); 5. fork(); printf("bla\n"); 8. return 0; 9. }

Engineering Programming A

רשימות דילוגים Skip Lists

מבוא לתכנות בשפת C. Tzachi (Isaac) Rosen

ב ה צ ל ח ה! אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ה תשרי תשע"ח 15/10/17 שמות המורים: ציון סיקסיק מיועד לתלמידי : א'

Graph Database, think different!

מבני נתונים תכנות מונחה עצמים מבני נתונים. מחלקות אבסטרקטיות חבילות packages סיכום הרשאות גישה wrappers ADT מערך דינמי מחסנית

תזכורת: עץבינארי מבוא למדעי המחשב הרצאה 24: עצי חיפוש בינאריים

מבוא למדעי המחשב תרגול 13: עצים בינאריים

Practical Session - Heap

סעיף ב )11 נקודות( public synchronized void advance(staircase staircase) throws InterruptedException staircase!

שאלה 1, סעיף ב )11 נק'(

Practical Session No. 14 Topological sort,amortized Analysis

לוח מבחנים מבוסס על דף עבודה ממקור לא ידוע. פעולה בונה היוצרת לוח מבחנים )ריק(. void Add (Test t)

מדעי המחשב 2 יחידות לימוד פתרון בחינת הבגרות פרק א. I x > a. פתרון 2: משפט switch

תרגילים ופתרונות בשפת - C הסתעפויות

גיליון תשובות מספר נבחן: סעיף ג (10 נקודות) הגדרת בטיחות הינה שמירה על האינווריאנטה של האובייקטים במהלך ההרצה.

<exp> ::= <define> <cexp> <define> ::= ( define <var-decl> <cexp> ) / DefExp(var:VarDecl, val:cexp)

תוכנה 1. תרגול מספר 11: Static vs. Dynamic Binding מחלקות מקוננות Nested Classes

מערכים שעור מס. 4 כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1

מבוא למדעי המחשב 2018 תרגול 7

מבוא לתכנות ב- JAVA מעבדה 4

2. (לדוגמא: יחידת הספריה (my_unit.c. #include "my_unit.c" היחידה (חלק ה-.(prototype לדוגמא:. my_unit.h הכותר. הוראת מדעי המחשב, אוניברסיטת תל-אביב

רזח יליגרתו םי יראני ב ם

הקלחמ ה תמרב ת ונ וכ ת (static members ) יליזרב דהוא Java תפשב ם דקת מ תונכת ביבא ל ת תטיסרבינוא

פתרון מוצע לבחינת מה"ט ב_שפת c מועד אביב תשע"ח, פברואר 8102 מחבר: מר שייקה בילו, מכללת אורט רחובות

הנכות 1 םוכיס לוגרת 13 1

גיליון תשובות מספר נבחן:

Java פעולות עוברות בירושה סביבת יסודות מדעי המחשב נספח הורשה

ASP.Net Web API.

רשימות דילוגים Skip Lists

תכנות מונחה עצמים משחקים תשע"ו

הוראות לנבחן סף ובהם שמונה שאלות. עליך לענות על שש שאלות, על פי ההנחיות בכל פרק. גמר לבתי ספר לטכנאים ולהנדסאים


הנכות 1 םוכיס לוגרת 13 1

אוניברסיטת בן-גוריון בהצלחה! מספר נבחן: מדור בחינות רשמו תשובותיכם בשאלון זה בלבד ובמקום המוקצה לכך בלבד! תשובות מחוץ לשאלון לא יבדקו.

Practical Session #4 - ADTs: Array, Queue, Stack, Linked List

תור שימושים בעולם התוכנה

9. טופס הזמנת מוצרים טופס ההזמנה הוא טופס מורכב. מעורבים בו 4 טבלאות נתונים. קשרי הגומלין בין הטבלאות : הטופס :

פתרון מוצע לבחינה בשפת C של מה"ט מועד אביב תשע"ז, פברואר 2017 מחבר: מר עסאקלה שאדי, מכללת אורט בראודה

הערה על הפתרון: בתנאי הקדם אין לבדוק שהמשחק לא השתנה. המתודה מוגדרת היטב ויש לה ערך החזרה למקרה זה.

תכנות מתקדם בשפת C משתנים

תוכנה 1 מבני נתונים גנריים

תרגול 3 מערכים ופונקציות

שאלות חזרה 2 האוניברסיטה החליטה לפרסם שמות הסטודנטים המצטיינים בקורס שלנו. סטודנט מצטיין הוא סטודנט שקיבל

קורס תכנות שיעור שני: שימוש במשתנים,

- במפלס התחתון (בתחתית המדרגות) ובמפלס העליון (בראש המדרגות) יש מקום לכל הולכי הרגל

Programming for Engineers in Python

Programming for Engineers in Python

תרגול 7 רשימות משורשרות, רקורסיית

תרגול מספר 3: מערכים

- מבחן. - 4 עבודות ב- JAVA. הגשה בזוגות דרך ה- System Submission

Practical Session 2 Constants Don t Matter!!!

כתבו קוד ב- 3 קבצי ה hpp (כתבו כהערה את שם הקובץ מעל) כך שהקוד יהיה תקין ובסגנון טוב. אין חובה

עבודה עם STL. )Dmitry Korolev

Tutorial 10. Introduction to C++ שימו

נתונות שתי המחלקות הבאות:

חוברת תרגילים לתרגול יסודות התכנות

מבוא לתכנות מערכות מבחן מועד א' סמסטר חורף

מבוא למדעי המחשב תרגול 5: לולאות ומערכים

עקרונות שפות תכנות 2016 תרגול 8 Type Inference System. Substitution Interpreter.

תוכנה 1 סמסטר א' תשע"א

הנכות 1 םוכיס לוגרת 13 1

בשאלה זו נמשיך לעסוק במערכת לטיהור המים בה עסקנו במועד א'. המערכת מורכבת, כזכור, מהאובייקטים הפסיביים הבאים:.Pool. .Purifier בממשק מוגדרת המתודה

Introduction to Programming in C תרגול 8

לוגיקה סינכרונית. מרצה: יפתח גילעדי, פלאפון: מיל:

היצביט ומ - ןוכית ת וי נבת

במידה ולסעיף ניתנה תשובה ובנוסף נרשם לגבי הסעיף לא יודע/ת אזי הניקוד שיינתן

Tirgul 4 Scheduling:

תרשים המחלקות ותרשים העצמים

Computer Programming Summer 2017

גיליון תשובות מספר נבחן:

תוכנה 1 טיפוסי השפה טיפוסים לא פרימיטיביים הטיפוסים הפרימיטיביים מחרוזות המרה למספרים תרגול 2: טיפוסי שפה, מחרוזות, מערכים ושגיאות

public class B { private int f = 0; public static void main(string[] args) { B b1 = new B(); B b2 = new B(); Object b3 = b1;

מבוא למדעי המחשב תירגול 2: מבוא למדעי המחשב מ' - תירגול 2

Operating Systems. Practical Session 4 Threads

תוכנה 1 תרגול מספר 13

תוכנה 1 תרגול מספר 13

עמוד 1 (תאריך ( âùéä ער äìàù בכל השאלות ניתן להניח שהקלט תקין. 100 íåëñ חורף :

תרגול 3 מערכים ופונקציות

Computer Programming A תרגול 9

תוכנה 1 בשפת Java נושאים שונים בהורשה רובי בוים ומתי שמרת בית הספר למדעי המחשב אוניברסיטת תל אביב

תוכנה 1 תרגול 2: מערכים ומבני בקרה

מבוא לתכנות ב- JAVA מעבדה 2

Transcription:

class BigBrother רשימה מועמדים לתחרות // candidates; private List<Candidate> publc void MakeVote(String name) הפעולה מקבלת שם, מוצאת את המתמודד ומוסיף לו הצבעה אחת // Node<Candidate> p = candidates.getfirst(); while (p!=null &&! p.getinfo().iscandidate(name)) if (p!= null) p.getinfo().addvote(); public String[] TwoLosers () פעולה המחזירה מערךהמכילה את שמות שני השחקנים בעלי ההצבעות הנמוך ביותר // הנחות : יש לפחות 2 שחקנים // Node<Candidate> p = candidates.getfirst(); Candidate c1 =p.getinfo(); Candidate c2; if (p.getnext().getinfo().getvotes()< c1.getvotes()) c2 = c1; c1 = p.getnext().getinfo(); else c2= p.getnext().getinfo(); p = p.getnext().getnext(); while (p!= null) if (p.getinfo().getvotes() < c2.getvotes()) c1 = c2; c2 = p.getinfo(); else if (p.getinfo().getvotes() < c1.getvotes()) c1 = p.getinfo() string [] two= c1.getname(), c2.getname(); return two; public static List <Integer> makelist (List<Integer> list) פעולה המקבלת רשימה ומחזירה רשימת מספרים ללא - 9 // List<Integer> result = new List<Integer>(); Node<Integer> p = list.getfirst(); Node<Integer> n = null; שאלה 2 שאלה 3

while (p!=null) int x = 0; while (p!= null && p.getinfo()!= -9) x = x*10 + p.getinfo(); n = result.insert (n,x); if (p!= null) return result; public static boolean IsZigZag(List<Integer> list) פעולה המקבלת רשימה לפי תבנית סעיף א ' ומחזירה אמת עם לאחר ביצוע פעולה מסעיף // א ' מתקבל רשימה לפי סדר זיגזג // List<Integer> temp = makelist (list); Node <Integer> p = temp.getfirst(); boolean up; if (p== null p.getnext() == null) return true; up = p.getinfo () > p.getnext().getinfo(); while (p.getnext()!= null) if (up == p.getinfo() > p.getnext().getinfo()) return false; up =!up; return true; public static void RemoveFromList(Queue<Integer> que, List<Integer> list) פעולה המקבלת רשימה ותור ומוציאה את כל המופעים של התור בתוך הרשימה // הנחות : גם הרשימה והתור מאותחלים // Node<Integer> p = list.getfirst(); int size = GetSize (que); while (p!= null) p = GetNextAppearance (p, que); if (p!= null) p=remove (list, p, size); שאלה 4

public static Node<Integer> GetNextAppearance(Node<Integer> p, Queue<Integer> que) פעולה המקבלת חוליה ותור ומחזירה את החוליה שהחל ממנו כל איברי התור מופיעים בו // הפעולה מתחילה לבדוק מהחוליה שהתקבל // אם התור אינו מופיע, הפעולה מחזירה // null while(p!= null) Queue <Integer> helper = Clone (que); while (p!=null && p.getinfo()!= helper.head()) p = p.getnext(); if (p == null) return null; Node<Integer> q = p; while (q!=null &&!helper.isempty() && q.getinfo()== helper.remove()) q = q.getnext(); if (helper.isempty()) return p; return null; public static int Count (Queue <Integer> que) פעולה המקבלת תור ומחזירה כמה איברים יש בתור // Queue<Integer> helper= Clone (que); int c=0; while (!helper.isempty()) c++; return c; public static Queue <Integer> Clone (Queue<Integer>que) Queue <Integer> q1 = new Queue<Integer>(); Queue<Integer> q2 = new Queue <Integer>(); while (!que.isempty()) q1.insert (que.head()); q2.insert (que.remove()); while (!q2.isempty()) que.insert (q2.remove()); return q1;

public static Node<Integer> Remove (List<Integer> list, Node<Integer> p, int count) פעולה המקבלת רשימה, חוליה ומספר ומוציאה מהרשימה החל מהחוליה מספר צמתים // הנחות : יש מספיק צמתים ברשימה // while (p!= null && count > 0) p=list.remove (p); count--; return p; class Room קומה בה נמצאת החדר // ; floor private int מס החדר // roomno; private int החדר תפוס // taken; private boolean [] האם יש נוף לים // hasseaview; private boolean public Room (int floor, int roomno, boolean hassea שאלה 5 מחלקת חדר סטנדרטי: א. מערך המייצג עבור כל יום בשנה האם פעולה המקבלת קומה מס ' חדר והאם יש נוף לים // public int HowManyBeds (). פעולה המחזירה כמה מקומות שינה יש בחדר // public boolean IsFree(int day) פעולה המקבלת יום בשנה ומחזירה האם החדר פנוי בתאריך של היום // public Suite :Room כמה חדרים יש בסוויטה // NoOfRooms; private int public Suite (int floor, int roomno, boolean hassea, int noofrooms) שיטה בונה המקבלת קומה, מס' חדרת האם יש נוף וכמה חדרים //.public int HowManyBeds( ) פעולה המחזירה כמה מיטות שי בחדר // class Hotel שם המלון hotelname;// private string שם העיר city;// private string אוסף החדרים במלון rooms;// private Room [] public Hotel (string name, string city, int howmany) this.hotelname = name; this.city = city; rooms = new Room[howMany]; ב. מלון

ג. Room Hotel Suite ד. שייך למחלקת Hotel public boolean AreThereFreeRooms (int noofpeople, int dayinyear,int noofdays) for (int i=0; i< rooms.length; i++) if (rooms[i].howmanybeds () >= noofpeople && rooms[i].isfree(dayinyear)) int j; for (j= 1; j <noofdays&& rooms[i].isfree (dayinyear+ j); j++); if (j==noofdays) return true; return false; שייך למחלקת מלון public int GetHowManyStandardRooms () int count = 0; for (int i=0; i < rooms.length; i++) if (rooms[i] instanceof Suite == false) count++; return count; שאלה 6

Foo f Goo g1 Goo g2 DoubleGoo g5 DoubleGoo g6 Hi Boy Bye Girl Hi GoodBye Hello GoodBye Goo g3 Goo g4 Gooey Hi Gooey Bye Gooey Hi Gooey Hello Goey GoodBye Goey Bye +++++++++++++++++++++++++++++++++++++++++++++ Gooey Boy Gooey Girl Gooey Hi Gooey Hello Goey GoodBye Goey Girl ב. יש שינוי באתחול שני חלקי ה- DoubleGoo הראשון יוצר אובייקט חדש ומעתיק אליו את הערך של ה-.Goo השני שומר הפניה ל- Goo קיים. ג. Foo Goo DoubleGoo

class Item implements Comparable class ShoppingList implements Comparable, Countable class Family implements Countable שאלה 7 א. ב. שורה 1 לא תגרום שגיאה. MyList הוא מסוג ShoppingList והוא מממש את הממשק Comparable שורה 2 תגרום שגיאה משום ש - item1 הוא מסוג Item ואינו יורש מ- Countable ולכן לא ניתן לבצע את ההשמה שורה 3 משום ש- count2 שבהשמה עושים המרה ל- item זה יעבור קומפילציה אבל count2 הוא מסוג Family והוא אינו תומך ב- Item יהיה שגיאת ריצה שורה 4 תקין. עושים ל- comp1 המרה כלפי מעלה ואח"כ עושים המרה כלפי מעלה ל countable שורה 5 תקין. ל- MyFamily יש פעולה Count משום שהוא מממש את Countable שורה 6 אינו תקין כי למשתמה comp1 שהוא מסוג Comparable אין לו פעולת coun() ג. class Family implements Countable private int parents; private int children; public Family (int p, int c) this.parents = p; this.children = c; public int count() return parents + children; public void updatenewresult(int result) finished = true; if (result < bestresult) bestresult = result; שאלה 8 א. ב. לא ניתן לשנות את מספר המשתתפים המקסימלי משום שהמאפיין מוגדר כ- final ג. public void AddRunner (Runner run) if (count < runners.length) runners[count ++] = run; public void RunnerFinishRace(int num, int result)

Runner r = FindRunner(num); if (r!= null) r.updatenewresult (result); if (winningresult == 0 result < winningresult) winningresult = result winningnumber = num; private MarathonRunner FindRunner (int num) for (int i=0; i < count; i++) if (runners[i].getnum()==num) return runners[i]; return null; public boolean IsOver () for (int i=0; i < count; i ++) if (!runners[i].isfinished()) return false; return true; public MarathonRunner GetWinner() return FindRunner (winningnumber); public static void Main (string[] arg) Marathon m = Marathon.GetInstance(); MarathonRunner run1 = new MarathonRunner ("Yossi",3,60); MarathonRunner run2 = new MarathonRunner ("Sara",6,50); m.addrunner (run1); m.addrunner (run2); m.runnerfinishrace (6,45); m.runnerfinishrace (3, 48); if (m.getresults() == m.getwinner().getbestresults()) System.out.println ("Improved"); else System.out.println ("Didn't Improve"); ד.

what (1234) k = what (124) = 412 num = 412 * 10 + 3= 4123 שאלה 1 k= what (14) = 41 num = 41 * 10 + 2 = 412 k= what (4) = 4 num = 4 * 10 + 1 = 41 return 4 התוצאה הסופית 4123 ב. הפעולה עושה הזזה של המספר ימינה כאשר הספרה האחרונה הולכת לראש המספר Sod ( 9231,1,1234, 999) y = 9231 S2 = Sod ( 1,1234, 999 = 1,999 IF (9231 > = 1923) S2 = 9231,1,999 S= 9231,1,1234, 999 ג. 9231,1,1234,999 y = 1 s2 = Sod ( 1234, 999) = 999 if (1 >= 1) S2= 1,999 S= 1,1234,999 y = 1234 s2 = Sod (999) = 999 if (1234 > = 4123) s= 1234, 999

y = 999 מחסנית ריקה ()// Sod s2 = if (999 >= 999) s2=999 s= 999 מחסנית ריקה return ד. הפעולה מקבלת מחסנית ומכניסה למחסנית חדשה את כל האיברים שה"סיבוב ב- 1 ימינה" קטן מהמספר במחסנית. בסוף הפעולה המחסנית המקורית נשארת שלמה.