תרגיל בית מספר 1#

מסמכים קשורים
Microsoft Word - Ass1Bgu2019b_java docx

אוניברסיטת תל אביב - בית הספר למדעי המחשב מבוא מורחב למדעי המחשב, אביב 2019 תרגיל בית מספר - 2 להגשה עד 02/04/2019 בשעה 23:55 קיראו בעיון את הנחיות הע

תרגיל בית מספר 1#

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

שאלהIgal : מערכים דו מימדיים רקורסיה:

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

Slide 1

שאלהIgal : מערכים דו מימדיים רקורסיה:

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

תרגול 1

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

אוניברסיטת בן גוריון בנגב תאריך המבחן: שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: מס' הקורס : הנדסת תעשיה וניהול מ

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

Microsoft PowerPoint - T-10.ppt [Compatibility Mode]

מבוא למדעי המחשב - חובלים

מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי

שאלהIgal : מערכים דו מימדיים רקורסיה:

מבוא למדעי המחשב

תרגיל בית מספר 1#

סדנת תכנות ב C/C++

תכנון אלגוריתמים עבודת בית 4: תכנון אלגוריתמים תאריך הגשה: 02: , בצהריים,תא מספר 66 בקומת כניסה של בניין 003 מתרגל אחראי: אורי 0

מבוא למדעי המחשב - חובלים

אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג, משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו

PowerPoint Presentation

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

PowerPoint Presentation

תשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(

Microsoft Word - c_SimA_MoedB2005.doc

Slide 1

Microsoft Word B

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

PowerPoint Presentation

Slide 1

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

ex1-bash

פתרון 2000 א. טבלת מעקב אחר ביצוע האלגוריתם הנתון עבור הערכים : פלט num = 37, sif = 7 r האם ספרת האחדות של sif שווה ל- num num 37 sif 7 שורה (1)-(2) (

תאריך פרסום: תאריך הגשה: מבנה נתונים תרגיל 5 )תיאורטי( מרצה ומתרגל אחראים: צחי רוזן, דינה סבטליצקי נהלי הגשת עבודה: -את העבודה יש לה

Slide 1

Microsoft Word - ExamA_Final_Solution.docx

תכנות בשפת פייתון ברק גונן

מספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה

תוכן העניינים

Slide 1

מבוא למדעי המחשב

PowerPoint Presentation

מדריך למרצים ומתרגלים 1

מבוא למדעי המחשב

Algorithms Tirgul 1

Tutorial 11

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

PowerPoint Presentation

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

תוכן העניינים

<4D F736F F D20F4F2E5ECE5FA20EEE5EEF6E0E5FA20312E646F63>

מכללת הדסה, הפקולטה למדעי המחשב מבוא לתכנות מונחה עצמים והנדסת תוכנה סמסטר א', תשע"ו תרגיל 2 תאריך אחרון להגשה: קמפוס הנביאים יום א', 29/11/2015 בשעה

Slide 1

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

פקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד

Slide 1

פייתון

מבוא למדעי המחשב

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

1 תבניות טקסט מהי תבנית טקסט? שימוש ב- Characters Meta שימוש ב- Expression Grouping שימוש ב- Quantifiers תת תבניות הפונקציה preg_match הפונקציה preg_m

אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו

הטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור

תיק משימטיקה מגרף הנגזרת לגרף הפונקציה להנגשה פרטנית נא לפנות: כל הזכויות שמורות

ייבוא וייצוא של קבצי אקסל וטקסט

דוגמאות שהוצגו בהרצאה 10 בקורס יסודות מערכות פתוחות דוגמה 1 דוגמאות של פונקציות ב- awk שמראות שהעברת פרמטרים של משתנים פשוטים היא by value והעברת פרמט

מצגת של PowerPoint

מבוא למדעי המחשב

עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה אפריל 5105 קשה בלימודים, קל במבחנים, קל בחיים עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה יש לפתור את כל השאלות

Slide 1

ב ה. ד. ג. ב. ב. אוניברסיטת תל אביב - בית הספר למדעי המחשב מבוא מורחב למדעי המחשב, חורף :22 תרגיל בית מספר 6 - להגשה עד 66 בינואר 3162 בשעה קיר

2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ

אוניברסיטת בן-גוריון המחלקה למדעי המחשב בוחן במבנים בדידים וקומבינטוריקה פרופ' מתיא כ"ץ, ד"ר עופר נימן, ד"ר סטוארט סמית, ד"ר נתן רובין, גב'

Python 2.7 in Hebrew

Homework Dry 3

הגשה תוך שבוע בשעת התרגול

PRESENTATION NAME

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

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

שאלה 2. תכנות ב - CShell

HTML - Hipper Text Makeup Language

הגשה תוך שבוע בשעת התרגול

Data Structure Assignment no.3 תאריך הגשה: p.m. 11/09/16, 23:59 את העבודה יש להגיש בזוגות במערכת ההגשות.submission system על העבודה להיות מוגשות כקובץ

regular_expression_examples

מבוא לאנליזה נומרית na191 Assignment 2 solution - Finding Roots of Nonlinear Equations y cos(x) שאלה 1 היכן נחתכים הגרפים של? y x 3 1 ושל ממש פתרונות

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע

דף נגזרות ואינטגרלים לשאלון 608 כללים למציאת נגזרת של פונקציה: n 1. y' n x n, y הנגזרת x.1 נכפול בחזקה )נרשום אותה משמאל ל- (. x א. נחסר אחד מהחזקה. ב

<4D F736F F D20EEF9E5E5E0E5FA20E3E9F4F8F0F6E9E0ECE9E5FA2E646F63>

PowerPoint Presentation

2019 שאלות מומלצות לתרגול מס' דיפרנציאביליות של פונקציה סקלרית )המשך(. כלל השרשרת. S = ( x, y, z) z = x + 3y על המשטח מצאו נקודה בה מישור משיק

<4D F736F F D20FAF8E2E5EC20E0ECE2E1F8E420EEF2E5F8E D F9E0ECE5FA2E646F63>

" תלמידים מלמדים תלמידים."

Slide 1

תמליל:

ב 4 תרגיל בית מספר - 1 להגשה עד 72 באוקטובר בשעה ::725 קיראו בעיון את הנחיות העבודה וההגשה המופיעות באתר הקורס, תחת התיקייה.assignments חריגה מההנחיות תגרור ירידת ציון / פסילת התרגיל. הנחיות והערות ספציפיות לתרגיל זה: אפשר וכדאי להתחיל לעבוד על התרגיל כבר בשבוע הראשון לסמסטר, לאחר ההרצאה והתרגול הראשונים. ' ו- 5 יש להגיד בקובץ docx,doc או pdf יחיד. הגשה: תשובות לשאלות,3,2,1 קוד משאלות 4 א' ו- 5 יש לממש בקובץ השלד )skeleton1.py( המצורף לתרגיל זה. אין לצרף לקובץ ה- py את הקוד ששימש לפתרון יתר השאלות. לא לשכוח לשנות את שם הקובץ למספר ת"ז שלכם לפני ההגשה, עם סיומת.py בסה"כ מגישים שני קבצים בלבד. עבור סטודנט שמספר ת"ז שלו הוא 012345678 הקבצים שיש להגיש הם 012345678.docx )או.doc או ).pdf ו-.012345678.py הקפידו לענות על כל מה שנשאלתם. תשובות מילוליות והסברים צריכים להיות תמציתיים, קולעים וברורים. להנחיה זו מטרה כפולה: 1. על מנת שנוכל לבדוק את התרגילים שלכם בזמן סביר. 2. כדי להרגיל אתכם להבעת טיעונים באופן מתומצת ויעיל, ללא פרטים חסרים מצד אחד אך ללא עודף בלתי הכרחי מצד שני. זוהי פרקטיקה חשובה במדעי המחש עמ' 1 מתוך 6

שאלה 1 להלן תוכנית קצרה בשפת :Python הסבר קצר: תפקיד הפונקציה input() הוא לקלוט ממשתמש התוכנית ערכים )קלט( הנחוצים להמשך ביצוע התוכנית. הביטוי בתוך הסוגריים " integer: "Enter a positive הוא מחרוזת שתודפס למשתמש לפני שיידרש להכניס קלט. הפונקציה input() קולטת את הערך שהכניס המשתמש כמחרוזת. ערך זה עובר המרה מטיפוס מחרוזת לטיפוס מספר שלם )ע"י הפעלת הפונקציה int() שראינו בתרגול(, ואז המשתנה num מקבל ערך זה. res = 0 num = int(input("enter a positive integer: ")) while num > 0: res = res + (num % 10) num = num // 10 print(res) ג. ד. ה. מה תדפיס התוכנית עבור הקלט 2014? באופן כללי, מה מדפיסה התוכנית בהינתן לה מספר שלם חיובי כלשהו n? כאשר רוצים לתת לתוכנית את הקלט 631**3 + 29 מתעוררת בעייה כלשהי. נסו להריץ, ציינו מהי הפקודה שנכשלה וגרמה לבעייה, והסבירו בקצרה מה הבעייה. הפונקציה eval של פייתון יכולה לסייע בקלות לפתרון הבעייה הנ"ל. נסו להבין מה עושה הפונקציה )מומלץ ע"י ניסוי וטעייה וקצת חיפוש. הפונקציה מקבלת בסוגריים פרמטר אחד מטיפוס מחרוזת(, והיעזרו בה כדי להריץ את התוכנית הנ"ל על 631**3. + 29 מה מודפס? מה קורה כאשר משנים את התנאי > 0 num while ל- =< 0 num while ה? סבירו בקצרה. עמ' 2 מתוך 6

שאלה 7 כפי שראיתם בהרצאה, ישנן בפייתון פונקציות שמשויכות למחלקת המחרוזות.)str( באינטרפרטר,IDLE אם תכתבו "str." ותלחצו על המקש,tab תיפתח חלונית עם מגוון פונקציות המשויכות למחלקת המחרוזות. כמובן, אפשר למצוא תיעוד רב על פונקציות אלו ואחרות ברשת. כמו כן אפשר להשתמש בפונקציה help של פייתון. למשל הפקודה help(str.title) תציג הסבר קצר על הפונקציה str.title שראיתם בהרצאה. בשאלה זו תתבקשו להריץ מספר פונקציות נוספות כאלו, ולחקור אותן מעט. הסבירו במילים שלכם, בצורה קולעת וברורה, מה כל פונקציה מחזירה, ומה תפקיד כל אחד מהפרמטרים שניתנים לה. צרפו לתשובה דוגמאות לכמה הרצות שביצעתם, המדגימות כיצד הגעתם לתשובה. הערה כללית: - את כל הפונקציות מהמחלקה str ניתן להפעיל בשני אופנים שקולים: ( str.func(s, כאשר func היא שם הפונקציה הרצויה, s היא המחרוזת עליה מופעלת הפונקציה, ואח"כ יתר הפרמטרים, אם ישנם. למשל: course_name = "introduction to computer science" str.title(course_name) s.func( ) כאשר s היא המחרוזת עליה מופעלת הפונקציה, ויתר הפרמטרים, אם ישנם, - בסוגריים. למשל: course_name = "introduction to computer science" course_name.title() הפונקציה.str.isalnum עליכם לתת לפונקציה פרמטר אחד מטיפוס מחרוזת. הפונקציה.str.split עליכם לתת לפונקציה 3 פרמטרים: מחרוזת, תו בודד, ומספר שלם. למשל: str.split("intro2computerscience", "c", 1) ציינו גם כיצד מתנהגת הפונקציה אם לא מעבירים לה את הפרמטר האחרון. הפונקציה.str.replace עליכם לתת לפונקציה 3 מחרוזות, ועוד מספר שלם אחד )אופציונלי(. ציינו גם כיצד מתנהגת הפונקציה אם לא מעבירים לה את הפרמטר האחרון )האופציונלי(. ג. ד. הפונקציה.str.join נסו להבין בעצמכם מה יש להעביר לפונקציה ומה היא עושה. עמ' 3 מתוך 6

שאלה 2 נדון בבעייה החישובית הבאה: בהינתן מספר שלם חיובי,num נרצה לדעת כמה פעמים מופיעה בו הספרה 0. למשל עבור הקלט 10030 הפלט המתאים הוא 3. הקלט יינתן באמצעות הפקודה :input num = int(input("please enter a positive integer: ")) מטרתנו בשאלה היא להשוות את זמני הריצה של שלושה פתרונות אפשריים לבעייה זו )הערה: אנו נדון בבעייה הנ"ל ובשלושת הפתרונות הללו גם בתרגול הראשון/שני, אבל אפשר להתחיל לפתור את השאלה כבר לאחר התרגול הראשון(: פתרון ראשון: #1st solution m = num cnt = 0 while m>0: if m%10 == 0: cnt = cnt+1 m = m//10 פתרון שני: פתרון שלישי: #2nd solution cnt =0 snum = str(num) for digit in snum: if digit == "0": cnt = cnt+1 #3rd solution cnt = str.count(str(num), "0") בשלושת הפתרונות הפלט הרצוי יימצא לבסוף במשתנה :cnt print(num, "has", cnt, "zeros") )המשך השאלה בעמוד הבא( עמ' 4 מתוך 6

כדי למדוד זמן ריצה של פקודה או סדרת פקודות, נשתמש במעין "סטופר": import time נוסיף בראש התוכנית שלנו את הפקודה t0 = נוסיף מייד לפני קטע הקוד שאת זמן הריצה שלו ברצוננו למדוד את הפקודה:() time.clock t1 = time.clock() נוסיף מייד לאחר קטע הקוד הנ"ל את הפקודה: זמן הריצה של קטע הקוד הוא ההפרש.t1-t0 נוח להציגו למשל כך: print("running time: ", t1-t0, "sec") הסבר קצר: time היא מחלקה של פייתון המאפשרת ביצוע פקודות שונות הקשורות לזמנים. הפקודה import הכרחית על מנת להשתמש במחלקה )היא "מיבאת" אותה. ניתקל במהלך הקורס בדוגמאות רבות ל"ייבוא" של מחלקות(. הפונקציה clock של המחלקה מחזירה את הזמן שחלף מאז הפעלתה בפעם הראשונה. )להעשרה: )http://docs.python.org/release/1.5.1/lib/module-time.html מדדו את זמן הריצה של 2 הפתרונות הראשונים עבור הקלטים 100**2, 1000**2, 10000**2, 100000**2. ציינו מה היו זמני הריצה )אפשר להציג זאת בגרף(, והסבירו בקצרה את התוצאות. שימו לב: כדי לנטרל השפעות של פקודות שקשורות להשגת הקלט והצגת הפלט, ואינן חלק מהפתרון עצמו, זמן הריצה לא יכלול את שורת ה- input בהתחלה והדפסת הפלט בסוף. ג. ד. פונקציות מובנות של פייתון, כמו למשל,str.count ממומשות בד"כ באופן יעיל למדיי, לעיתים אף באמצעות אלגוריתמים מסובכים יחסית. חיזרו על סעיף א' עבור הפתרון השלישי. מבלי להיכנס לפרטי המימוש של,str.count האם היא אכן יעילה יותר מבחינת זמן ריצה, בהשוואה לשני הפתרונות הראשונים? עבור קלטים בעלי מספר ספרות דומה, האם יש לפלט עצמו, כלומר למספר האפסים בקלט, השפעה כלשהי על זמן הריצה של כל אחד מהפתרונות? ביחרו קלטים מתאימים לבדיקת הסוגייה, ציינו מהם הקלטים בהם השתמשתם ומה היא מסקנתכם. להלן לולאה פשוטה: כמה זמן בערך לוקח ללולאה להסתיים? איך אתם מסבירים זאת, לאור העובדה שבסעיף א' לולאת ה- for של הפתרון השני רצה בזמן קצר באופן משמעותי? num = 2**100 cnt=0 for i in range(num): cnt = cnt+1 עמ' 5 מתוך 6

שאלה 4 השלימו את התוכנית הבאה, כך שתקלוט מהמשתמש )באמצעות הפקודה )input מספרים שלמים אי- שליליים בזה אחר זה, ולבסוף מספר שלילי אחד )המציין את סוף הקלט(, ואח"כ תדפיס את המקסימום שלהם, והממוצע שלהם. הבהרה: המקסימום והממוצע יחושבו ללא המספר השלילי האחרון )כל מטרתו היא לציין עבור התוכנית שקליטת המספרים הסתיימה(. מותר להניח כי הקלט תקין ואין צורך לבדוק זאת. maxx = cnt = summ = num = int(input("please enter the first number: ")) while : if : summ = cnt = num = int(input("please enter the next number: ")) print("max=",maxx, "average = ", summ/cnt) מדוע מימוש באמצעות לולאת for במקום לולאת while איננו מתאים כאן? הסבירו במשפט קצר. שאלה : בשאלה זו נרצה לחשב מהו אורך הרצף המקסימלי של ספרות זוגיות במספר 100000**2. כמו כן נרצה לדעת באיזה אינדקס מתחיל רצף זה ומהו הרצף עצמו. למשל עבור המספר 2300245 האורך המקסימלי הוא 4, עבור רצף שמתחיל באינדקס 2, והרצף הוא 0024. כדי לענות על השאלה כיתבו קוד פייתון מתאים בקובץ השלד.skeleton1.py הנחיות: המספר ייקלט מהמשתמש באמצעות פקודת input )פקודה זו כבר מופיעה בקובץ(. את יתר הקוד הוסיפו לאחר מכן. בסיום יודפסו התוצאות )פקודות ההדפסה כבר מופיעות בקובץ השלד ואין לשנות אותן. מותר להניח שהקלט תקין, ואין צורך לבדוק זאת, או לטפל במקרים אחרים. דוגמת הרצה: Please enter a positive integer: 2300245 The maximal length is 4 Sequence starts at 2 Sequence is 0024 המלצה: התחילו בחישוב האורך המקסימלי בלבד, ורק אח"כ הוסיפו מה שצריך לחישוב האינדקס והרצף. הנחיות הגשה: את התשובות עבור המספר 100000**2 צרפו לקובץ ה-.doc/docx/pdf הקוד שכתבתם יופיע בקובץ ה-,py וייבדק על קלט אחר כלשהו. סוף. עמ' 6 מתוך 6