אלגוריתמים

Transcription

אלגוריתמים
‫מבוא למדעי‬
‫המחשב‬
‫שבוע מספר ‪ 1‬המשך‬
‫טליה‬
‫מה היום?‬
‫‪‬‬
‫‪‬‬
‫פתרון תרגיל מספר ‪– 1‬אלגו'‬
‫עוד קצת על אלגוריתמים‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫אלגוריתמים‬
‫ועוד תרגיל‬
‫כתוב אלגוריתם אשר יסכם את כל‬
‫המספרים בין ‪ 1‬ל – ‪.100‬‬
‫‪1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+‬‬
‫‪19+20+21+22+23+24+25+26+27+28+29+30+31+32+33+‬‬
‫‪34+35+36+37+38+39+40+41+42+43+44+45+46+47+48+‬‬
‫‪49+50+51+52+53+54+55+56+57+58+59+60+61+62+63+‬‬
‫‪64+65+66+67+68+69+70+71+72+73+74+75+76+77+78+‬‬
‫‪79+80+81+82+83+84+85+86+87+88+89+90+91+92+93+‬‬
‫‪94+95+96+97+98+99+100‬‬
‫????? = ‪101 * 50‬‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫יש‬
‫למישהוא‬
‫אגוז?‬
‫אלגוריתמים‬
‫בנה טבלת מעקב עבור האלגוריתם הבא‪:‬‬
‫‪C‬‬
‫‪3‬‬
‫‪7‬‬
‫‪ A‬‬
‫‪ B‬‬
‫‪ C‬‬
‫‪B‬‬
‫‪A‬‬
‫‪C‬‬
‫‪A‬‬
‫‪B‬‬
‫‪B‬‬
‫‪A‬‬
‫‪3‬‬
‫‪7‬‬
‫‪7‬‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫‪3‬‬
‫‪7‬‬
‫אלגוריתמים‬
‫דף תרגילים מספר ‪ 1‬שאלה ‪1‬‬
‫לקראת ז' באדר נערך חידון בבית הספר בנושא‬
‫משה רבינו‪ .‬תלמיד שצבר מעל ‪ 120‬נקודות זוכה‬
‫בפרס כספי של ‪ 72‬ש"ח‪ .‬במידה שהוא צבר מעל‬
‫‪ 170‬נקודות אזי יש להוסיף עוד ‪ 110‬ש"ח‪ .‬ובמידה‬
‫שהוא זכה במרב הנקודות ()‪ )197‬אזי יש להוסיף‬
‫לפרסים הקודמים סכום נוסף של ‪ 200‬ש"ח‪.‬‬
‫כתוב אלגוריתם אשר יקלוט את ציון תלמיד‪,‬‬
‫ומדפיסה את סכום הפרס בו זכה‪.‬‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫אלגוריתמים‬
‫פתרון שאלה מספר ‪1‬‬
‫)‪ (1‬קלוט ‪A‬‬
‫)‪ (2‬אם ‪ A < 120‬אזי ‪S  72‬‬
‫)‪ (3‬אם ‪ A < 170‬אזי ‪S  S + 110‬‬
‫)‪ (4‬אם ‪ A = 197‬אזי ‪S  S + 200‬‬
‫)‪ (5‬הדפס ‪S‬‬
‫האם האלגוריתם‬
‫תקין?‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫יעילות‬
‫נכונות‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫אלגוריתמים‬
‫דף תרגילים מספר ‪ 1‬שאלה ‪2‬‬
‫כתוב אלגוריתם אשר יקלוט שני מספרים ממשיים‪ .‬לאחר‬
‫מכן על האלגוריתם לקלוט מספר נוסף‪.‬‬
‫אם המספר = ‪ 1‬אזי יש להדפיס את סכום המספרים‪.‬‬
‫אם המספר = ‪ 2‬אזי יש להדפיס את ההפרש בין הראשון‬
‫לשני‪.‬‬
‫אם המספר = ‪ 3‬אזי יש להדפיס את מכפלתם‪.‬‬
‫אם המספר = ‪ 4‬אזי יש להדפיס את הראשון חלקי השני‪.‬‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫אלגוריתמים‬
‫פתרון שאלה מספר ‪2‬‬
‫)‪ (1‬קלוט ‪B,A‬‬
‫)‪ (2‬קלוט קוד‬
‫האם האלגוריתם‬
‫תקין?‬
‫)‪ (3‬אם קוד = ‪ 1‬אזי הדפס ‪A+B‬‬
‫)‪ (4‬אם קוד =‪ 2‬אזי הדפס ‪A-B‬‬
‫)‪ (5‬אם קוד = ‪ 3‬אזי הדפס ‪A * B‬‬
‫!‪ABoom‬‬
‫)‪ (6‬אם קוד = ‪ 4‬אזי הדפס ‪/ B‬‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫אלגוריתמים‬
‫פתרון שאלה מספר ‪2‬‬
‫)‪ (1‬קלוט ‪B,A‬‬
‫)‪ (2‬קלוט קוד‬
‫עכשיו כן!‬
‫)‪ (3‬אם קוד = ‪ 1‬אזי הדפס ‪A+B‬‬
‫)‪ (4‬אם קוד =‪ 2‬אזי הדפס ‪A-B‬‬
‫)‪ (5‬אם קוד = ‪ 3‬אזי הדפס ‪A * B‬‬
‫)‪ (6‬אם קוד = ‪ 4‬וגם ‪ B < > 0‬אזי הדפס ‪A / B‬‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫אלגוריתמים‬
‫מבני בקרה‬
‫אלגוריתמים‬
‫סדרה ‪sequence -‬‬
‫‪s2‬‬
‫‪s1‬‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫אלגוריתמים‬
‫בחירה ‪selection -‬‬
‫‪s2‬‬
‫תנאי‬
‫‪s1‬‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫אלגוריתמים‬
‫בחירה ‪selection -‬‬
‫‪s2‬‬
‫תנאי‬
‫‪ss3 3‬‬
‫‪s1‬‬
‫‪ss4 4‬‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫"ועשו לולאות"‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫אלגוריתמים‬
‫איטראציה ‪iteration -‬‬
‫בצע עד‬
‫תנאי‬
‫‪s1‬‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫אלגוריתמים‬
‫איטראציה ‪iteration -‬‬
‫בצע עד‬
‫‪s3‬‬
‫תנאי‬
‫‪s4‬‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫אלגוריתמים‬
‫איטראציה ‪iteration -‬‬
‫כל עוד‬
‫‪s1‬‬
‫תנאי‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫אלגוריתמים‬
‫סוגי לולאות‬
‫זקיף‬
‫מונה‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫אלגוריתמים‬
‫לכל לולאה יש שלשה חלקים‬
‫‪ ‬מתן ערך תחילי‬
‫‪ ‬עדכון‬
‫‪ ‬בדיקת תנאי סיום‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫אלגוריתמים‬
‫מספר‬
‫תרגילים‬
‫להבנת‬
‫הנושא‬
‫דף!‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫אלגוריתמים‬
‫פתרון שאלה מספר ‪1‬‬
‫(דף תרגילים מספר ‪)2‬‬
‫)‪ (1‬קלוט ‪A‬‬
‫)‪ (2‬כל עוד ‪ A > 10‬קלוט ‪A‬‬
‫)‪ (3‬הדפס את ‪A‬‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫נו! מה‬
‫הבעיה כאן?‬
‫אלגוריתמים‬
‫פתרון שאלה מספר ‪2‬‬
‫)‪  0 (1‬מונה‬
‫)‪ (2‬כל עוד ‪ > 35‬מונה בצע‪ :‬האם האלגוריתם‬
‫תקין?‬
‫(‪ )2.1‬קלט ‪A‬‬
‫(‪ )2.2‬אם ‪ 0 > A‬אזי הדפס ‪A‬‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫אלגוריתמים‬
‫פתרון שאלה מספר ‪4‬‬
‫)‪sum  0 (1‬‬
‫)‪ (2‬קלט ‪first‬‬
‫)‪ (3‬קלט ‪second‬‬
‫)‪ first (4‬‬
‫‪count‬‬
‫האם האלגוריתם‬
‫תקין?‬
‫)‪ (5‬כל עוד ‪ count > second‬בצע‪:‬‬
‫(‪sum  sum + count )5.1‬‬
‫(‪count  1 + count )5.2‬‬
‫(‪ )6‬הדפס ‪sum‬‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫‪C‬‬
‫‪C++‬‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬
‫סיכום‬
‫יעילות‬
‫נכונות‬
‫‪s2‬‬
‫‪s1‬‬
‫‪s2‬‬
‫תנאי‬
‫‪s1‬‬
‫זקיף‬
‫מונה‬
‫‪s1‬‬
‫תנאי‬
‫‪s1‬‬
‫לכל לולאה יש שלשה חלקים‬
‫תנאי‬
‫מבוא למדעי המחשב ‪ -‬מאיר קומר – תשע"ג ‪ -‬שבוע מספר ‪ 1‬המשך‬