שיחה:אלגוריתם (תכנות)

תוכן הדף אינו נתמך בשפות אחרות.
מתוך ויקיפדיה, האנציקלופדיה החופשית

הבהרת חשיבות[עריכת קוד מקור]

שמתי תבנית חשיבות על הערך. קיים כבר ערך אלגוריתם שעוסק באלגוריתם במדעי המחשב. כותב הערך, שאינ יודע אלגוריתם מהו, פתח את הערך בעקבות הדיון בשיחה:אלגוריתם. כותב הערך מבלבל בין אלגוריתם, לבין תוכנית מחשב, שהיא יישום של אלגוריתם. כל התוכן בערך הזה הוא כפילות עם ערכים אחרים. דניאל תרמו ערך 15:42, 10 בדצמבר 2011 (IST)[תגובה]

הייתי שם עלייך תגית חשיבות. עצבנת אותי כבר. (¯`gal´¯)‎ - שיחה 17:57, 10 בדצמבר 2011 (IST)[תגובה]
גל, תהיה מודע לכך שאם לא תציג נימוקים ענייניים, הערך אכן יימחק. תומר - שיחה 18:39, 10 בדצמבר 2011 (IST)[תגובה]
אני לא יכול להצביע, וזה ערך יתום, והוא מנצל את זה, כי אף אחד לא מודע לקיום של הערך הזה. וממילא אני פורש מוויקיפדיה, נמאס לי לתרום ושמוחקים כל מה שאני עושה. (¯`gal´¯)‎ - שיחה 19:04, 10 בדצמבר 2011 (IST)[תגובה]
אין קשר להצבעה. בנימוקיך תוכל לשכנע לנסות אחרים. תבנית החשיבות שהצבתי מכניסה את הערך לקטגוריה המאגדת ערכים בסכנות מחיקה. ויקיפדים רבים עוברים על הערכים בקטגוריה זו. דניאל תרמו ערך 19:17, 10 בדצמבר 2011 (IST)[תגובה]
בכל אופן, אני מסכים עם דניאל שמדובר בערך שגוי, והפיצול מאלגוריתם מיותר. קודם כול, התקפות של המושג אלגוריתם היא קודם כול במדעי המחשב. הפרדה לאלגוריתמים שקשורים ל"תכנות" ולאחרים, אין בה דבר.
זאת בלי להזכיר את העובדה שאלגוריתם הוא מונח תאורטי טהור ממדעי המחשב, שכלל לא קשור לתכנות. יישומו בתכנות נקרא תוכנית מחשב, ורוב המידע שכאן מקומו שם. אלגוריתם הוא בעצם הרעיון מאחורי פתרון בעיה כלשהי, איך מיישמים אותו זו שאלה נפרדת. העיסוק של תוכנה ביישום אלגוריתמי אין לו דבר עם ההסבר על מהו אלגוריתם, אלא רק עם המושג של תוכנית מחשב, כאמור.
כתוצאה מהניסיון לשלב בשר וחלב, בערך שולבו עניינים רבים שכלל אינם קשורים למושג התאורטי של אלגוריתם, כמו טעויות בכתיבת תוכנה (ובפרט טעויות תחביריות, שלהן אין דבר וחצי דבר עם אלגוריתמיקה, מאחר שהטעויות התחביריות נוגעות לסינטקס של שפת תכנות מסוימת, שקשורות ליישום האלגוריתם). סוגי שפות תכנות זה בכלל תחום נפרד, ושוב - מדובר על התחום של יישום אלגוריתם. מה זה משנה שמעבדים מודרניים נעזרים בקוד בינארי לייצוג פקודות? מכונת טיורינג כללית צריכה מילון, זה כלל לא משנה אם הוא בינארי. הניסיון להשליך יישומים מעשיים על מושג תיאורטי ומתמטי מציגים את הדברים באופן שגוי לחלוטין. דוגמה נוספת לכך שהערך מבלבל עם תוכנית מחשב היא המשפט הבא: "קבוצת אלגוריתמיים בסיסיים בעלי מכנה משותף נקראת ממשק או מחלקה. לממשק ניתן שם המעיד על מכנה משותף. בתכנות מונחה-עצמים כל ממשק מהווה עצם, שלו יש מאפיינים ופונקציות" - המושגים של ממשק, מחלקה או עצם קיימים רק בשפות תכנות מודרניות, בוודאי לא בשפות תכנות נמוכות כמו אסמבלי, שגם להן יש כמובן כוח מלא בתיאור כל אלגוריתם המיוצג בשפת תכנות אחרת. כל זה שייך לתחום היישומי/תכנותי, לא התאורטי של אלגוריתמיקה. בכלל, כל בעל רקע אקדמי תאורטי במדעי המחשב, יסבור שיש בערך בלבול רבתי.
מעבר לכך, הערך משלב דוגמאות וקביעות לא נכונות. "זמן־ריצה הוא גורם היעילות העיקרי שנמדד" - זה לא נכון, הדבר תלוי משימה ותלוי מערכת. בתכנות למכשירים עם זיכרון קטן שלא דורשים זמן תגובה מהיר, יעילות צריכת זיכרון היא הגורם המשמעותי. בנוסף, אני לא מבין מה הקשר למאקרו, ובנוסף אין זה נכון ש"מאקרו הוא אמצעי לחיסכון בזמן־ריצה" - זה רק כלי שנועד להעניק נוחות תכנותית. תומר - שיחה 19:25, 10 בדצמבר 2011 (IST)[תגובה]
אוקיי, בסיבוכיות אני לא מבין הרבה, לגבי היתר, מדובר בעיקר בייצוג האלגוריתם. בעיניין הממשק, העתקתי את זה ממקום אחר. לגבי שגיאות תחביריות, זה לא בהכרח תלוי שפה, שגיאה בהתאמה של טיפוס זה לא תלוי בשפה, אבל המהדר עדיין מסוגל לזהות את השגיאה, בניגוד לשגיאה לוגית. סוגי שפות, זה עדיין במטרה של ייצוג אלגוריתם, מדובר כאן על הלקסיקון של השפה, ולאו דווקא על סוגי שפות. הפקודות שמשתמשים בהן באסמבלי ובשפות עליות שונות. "מה זה משנה שמעבדים מודרניים נעזרים בקוד בינארי לייצוג פקודות?" - זה הצורה בה עובד האלגוריתם בפועל, בשפת מכונה, יש decoder שמזהה את הפקודה והמעבד מבצע את הפקודה. בכל מקרה, זה כבר לא משנה. כמו שאמרתי, אני לא מתכוון עוד לתרום לוויקיפדיה כשהתגובה מצד המנהלים היא כזאת. (¯`gal´¯)‎ - שיחה 19:46, 10 בדצמבר 2011 (IST)[תגובה]
מיותר, מטעה ומזיק. Naorz - שיחה 20:12, 10 בדצמבר 2011 (IST)[תגובה]

על פי "כלל אצבע" (שאיננו מחייב) - מה שמספיק טוב לויקיפדיה באנגלית - מספיק טוב לויקיפדיה בעברית. ואם בויקיפדיה באנגלית אין שני ערכים נפרדים העוסקים במונח אלגוריתם - הרי שצריך סיבה משכנעת באופן מוחץ על מנת שבויקיפדיה בעברית זה יהיה אחרת. וכרגע - אין סיבה כזו. קולנואני - שיחה 23:30, 10 בדצמבר 2011 (IST)[תגובה]

מילא לא מחייב, הוא פשוט שגוי. לתורמים שם יש שיקול דעת משלהם ולתורמים פה יש שיקול דעת משלהם, וברמה העקרונית אין בכורה לאף אחד מהם. ברמה המעשית שיקול הדעת של התורמים באתר העברי הוא הקובע והוא בלבד. Neuköln - ש 23:34, 10 בדצמבר 2011 (IST)[תגובה]
ברמה המעשית, שיקול הדעת של התורמים באתר העברי איננו כפוף לשיקול הדעת של התורמים באתר האנגלי. יחד עם זאת, יש להניח שגם לתורמים באתר האנגלי יש שיקול דעת והם לא קיבלו את החלטותיהם בצורה שרירותית, ועל כן ניתן להיעזר/להשתמש/להיוועץ/להתחשב בשיקול דעתם (גם אם אין זה הכרחי). על אחת כמה וכמה כאשר מדובר בתחומים אוניברסליים כל כך, כמו מתמטיקה ומדעי המחשב. קולנואני - שיחה 23:39, 10 בדצמבר 2011 (IST)[תגובה]
זה כבר כלל אצבע אחר מזה שטענת Neuköln - ש 23:43, 10 בדצמבר 2011 (IST)[תגובה]
האחד נובע מן השני. או ששניהם נובעים מכלל שלישי בכלל. או משהו כזה... העיקר שירדת לסוף דעתי. קולנואני - שיחה 23:47, 10 בדצמבר 2011 (IST)[תגובה]
אם A נובע מ-B, ו-A נכון, זה בכלל לא אומר ש-B נכון. דניאל תרמו ערך 11:59, 11 בדצמבר 2011 (IST)[תגובה]

שבירה[עריכת קוד מקור]

לאחר שהדיון גלש לכללי אצבע וסטה מהנושא.
הערך אלגוריתם חסר מידע רב לגבי אלגוריתם תכנותי ומכיוון שאין ספק כי בעולם ממוחשב כמו שלנו, כשמליוני אנשים משתמשים במחשבים, אלגוריתם תכנותי חשוב מספיק כדי לקבל ערך משלו כערך מורחב של אלגוריתם. עכשיו כשהסברתי את החשיבות הערך הנוכחי אני חייב לציין שהוא כתוב די רע ומכיל פרטים שאינם קשורים כלל למושג אלגוריתם לכן יש להחליף את תבנית החשיבות בתבנית שכתוב. למשל כל החלק של סוגי שפות אינו קשור לאלגוריתמיקה Assafn שיחה 11:22, 11 בדצמבר 2011 (IST)[תגובה]

אין דבר כזה "אלגוריתם תכנותי". אלגוריתם הוא דבר מופשט. מה שממש אותו נקרא תוכנית מחשב. דניאל תרמו ערך 11:33, 11 בדצמבר 2011 (IST)[תגובה]
מסכים עם דניאל ותומר. כפילות מיותרת • עודד (Damzow)שיחהלימין שור!12:23, 11 בדצמבר 2011 (IST)[תגובה]
לא ברור לי איך אתה יכול לומר שאין דבר כזה אלגוריתם תכנותי כאשר יש קורסים באוניברסיטה שמלמדים את זה וספרים שעוסקים בכך. כפי שכבר אמרתי אלגוריתם תכנותי הוא ערך מורחב של אלגוריתם ולרוב נוגע בבעיות סיבוכיות וכמות זיכרון שאילו הבעיות הנפוצות בעולם המחשוב. Assafn שיחה 13:55, 11 בדצמבר 2011 (IST)[תגובה]
אין קורסים באוניברסיטה שמלמדים אלגוריתמיקה באופן ששונה מהאמור באלגוריתם. סיבוכיות וחישוביות הם תחומים העוסקים באלגוריתמים כפשוטם, ולא נוגעים בכלל בתכנות (ההגדרה של סיבוכיות בנויה כך שתעקוף כל תלות במימוש האלגוריתם). אם אתה סבור שיש הצדקה לקיומו של ערך זה, אנא ציין איזה תוכן אמור להיות כאן שאינו רלוונטי לאלגוריתם הכללי. דניאל תרמו ערך 14:03, 11 בדצמבר 2011 (IST)[תגובה]
הערך הזה מיותר לחלוטין, וחבל על הזמן שהתבזבז בדף שיחה זה. חסד יעשה אתנו כותב הערך אם יבקש את מחיקתו, ויחסוך לנו התבזות של שבוע. דוד שי - שיחה 14:19, 11 בדצמבר 2011 (IST)[תגובה]
אסף, האם יש לך רקע אקדמי בנושא? למעלה הסברתי בפרוטרוט מדוע אלגוריתם הוא מושג תאורטי טהור, והיישום שלו זה משהו אחר לגמרי. אחד היישומים של אלגוריתם הוא תוכנית מחשב. אין כזה דבר "אלגוריתם תכנותי". מי שלומד מדעי המחשב אכן לומד קורסים על אלגוריתמים ועל תכנות, אבל הוא לא לומד קורסים על "אלגוריתמים תכנותיים". ובבעיות של סיבוכיות זמן וצריכת זיכרון (או צריכת משאבים באופן כללי), ניתן לעסוק גם מחוץ למסגרת של יישום במחשב. תומר - שיחה 14:24, 11 בדצמבר 2011 (IST)[תגובה]
הבעיה עם הערך הזה שהוא נכתב ע"י אדם אחד מהראש שלו. אין מקורות. מכאן הביקורת. גיא - שיחה 14:39, 11 בדצמבר 2011 (IST)[תגובה]
אם זו היתה הבעיה אז ניחא. הבעיה היא שהערך עוסק במשהו שלא קיים. דניאל תרמו ערך 14:46, 11 בדצמבר 2011 (IST)[תגובה]
תומר, אכן יש לי רקע בנושא וגם תואר במדעי המחשב. למרות שאלגוריתם הוא נושא תיאורתי יש לו ישומים רבים לכן אם תרצה אפשר להתיחס לערך כאלגוריתמיקה בתוכניות מחשב שהיא שונה נניח מהדרישות לאלגוריתמים של פתרון הקובייה הונגרית או אפילו הכנת עוגה. Assafn שיחה 15:22, 11 בדצמבר 2011 (IST)[תגובה]
הערך אלגוריתם אמנם נותן את "הכנת עוגה" כאנלוגיה לאלגוריתם, אך מהר מאוד הוא עובר לעסוק באלגוריתם במובן של מתמטיקה ומדעי המחשב - כל חישוב של מכונת טיורינג. במובן הזה, כל אלגוריתם ניתן לממש כתוכנית מחשב וכל תוכנית מחשב מסמלצת אלגוריתם. הערך אלגוריתם (תכנות) הוא חסר מובן. אני חוזר על בקשתי שתתן דוגמה למשהו שצריך להופיע בערך הזה ולא באלגוריתם. דניאל תרמו ערך 15:29, 11 בדצמבר 2011 (IST)[תגובה]
למשל אלגוריתם תיאורתי מוגדר כיעיל רק לפי רמת הסיבוכיות בעוד שבאלגוריתם מחשבי קיימים עוד פרמטרים פיזיים כגון גודל זיכרון שהוא דורש. הבדל נוסף הוא למשל בהגדרה למשל תבנית עיצוב שאיננה מוגדרת כאגוריתם בעולם המתמטי אך בעולם המחשבים כן מתייחסים אליה כך גם בספרות המקצועית. Assafn שיחה 15:44, 11 בדצמבר 2011 (IST)[תגובה]
אסף, סיבוכיות מקום היא עניין שעוסקים בו גם באופן תיאורטי, במנותק מכל מחשב שהוא. לירן (שיחה,תרומות) 15:46, 11 בדצמבר 2011 (IST)[תגובה]
יפה, לא ידעתי שיש על זה ערך. כמעט כל מושג ניתן לתאר גם בצורה מתמטית אבל עובדה שעניין הזיכרון מופיע פה ולא בערך על אלגוריתם, אז או שירחיבו את אלגוריתם או שיכתבו כאן את הערך המורחב בעניינים הרלוונטיים לתכנות. Assafn שיחה 16:51, 11 בדצמבר 2011 (IST)[תגובה]
הערך הזה הוא כלאיים חסרי שחר בין אלגוריתם לתכנות. האופן שבו מממשים אלגוריתמים בעולם התכנות נקרא "תכנות", ולא "אלגוריתם". עוזי ו. - שיחה 15:49, 11 בדצמבר 2011 (IST)[תגובה]

אני מבינה קטנה בנושא (אף שלמדתי מעט קורסים במדעי המחשב) אבל נראה לי שיש צדק עם הרוב; מכיוון שכולם (מלבד כותב הערך) מסכימים שיש בו מידע מיותר ולא רלוונטי, אני מציעה שאם יש כאן מידע שרלוונטי לאלגוריתם ולא מופיע בערך הנ"ל ניתן להוסיפו ואז למחוק את הערך הזה. Trilliane - שיחה 17:45, 11 בדצמבר 2011 (IST)[תגובה]

יופי, אז בסופו של דבר אני מקבל את מה שאני רוצה - תוספות מעולם התכנות יתווספו לערך "אלגוריתם". אפשר להוסיף את כל עניין הסיבוכיות, מכונת טיורינג, ואת הדורות (בקצרה) - בעיקר בהתייחסות לחלק התחבירי (לקסיקון השפה) והגישה התכנותית, שזה קשור לאלגוריתם. (¯`gal´¯)‎ - שיחה 13:38, 13 בדצמבר 2011 (IST)[תגובה]
במחילה, מדובר בדעה של אחת המתדיינות, כנראה גם דעת מיעוט אם הכוונה היא למה שאמרת, אבל בכל אופן טריליאן כתבה "אם יש כאן מידע שרלוונטי לאלגוריתם". תחביר שפה ודורות של שפות תכנות זה לא קשור לאלגוריתם. תומר - שיחה 20:56, 15 בדצמבר 2011 (IST)[תגובה]
אז תסביר איך אפשר לכתוב אלגוריתם בלי להשתמש בפקודות. התחביר של השפה הוא לקסיקון הפקודות שלה, בכל דור הגישה לתכנות היא שונה, וכך גם הפקודות בשפה. (¯`gal´¯)‎ - שיחה 00:11, 16 בדצמבר 2011 (IST)[תגובה]
עד מתי תמשיך להתבזות? יצרת ערך מיותר, שלאחר ניקוי השטויות אינו מוסיף דבר על הערך אלגוריתם. הגיע הזמן שתבקש לבטל את הערך המיותר שיצרת. דוד שי - שיחה 00:14, 16 בדצמבר 2011 (IST)[תגובה]
טוב, הערך יימחק, אבל יהיו איזשהם תוספות לערך אלגוריתם בעקבות כך? בוויקיפדיה האנגלית הערך הרבה יותר מפורט ומקשר להרבה ערכים נוספים העוסקים באלגוריתם, ככה שאי אפשר להגיד שאין מה להוסיף לערך, כי תמיד יש מה להוסיף. חבל שזו הדרך שבה וויקיפדיה עובדת. אחרי זה בסקר של וויקימדיה כתוב שמספר התורמים לוויקיפדיה יורד בכל שנה - אולי בכלל שנמאס להם מהדרך שמתנהגים אליהם פה. יש דרך יותר טובה להגיד דברים מאשר להגיד למשתמש שהוא טיפש. ובכל זאת, כל הצגה של נושא פה, גם אם אינה קשורה באופן מלא לערך, יכולה להוות במידת מה תרומה, אם לא לערך הזה - לערך אחר או לערך חדש, או לעבור שינוי כך שיתאים לערך, דברים המובהרים בערך בשורה או פחות יכולים להופיע יותר בהרחבה בערך. לדוגמא, דורות של שפות תכנות - בוויקיפדיה האנגלית יש על זה 6 ערכים מאוד מפורטים (אחד לכל דור + אחד מסכם), בעוד כאן זה לא מוזכר כלל - אולי במשפט אחד בערך מחולל יישומים. אפשר להוסיף על זה ערכים מקבילים, וגם פסקה בערך שפת תכנות. (¯`gal´¯)‎ - שיחה 10:40, 17 בדצמבר 2011 (IST)[תגובה]
ואולי אחת הסיבות שחסרים לנו ערכים היא הזמן הרב שאנו מבזבזים על ויכוחי סרק (כדוגמת דף שיחה זה) עם כותבים שמתקשים מאוד להשתכנע בטעותם? דוד שי - שיחה 10:55, 17 בדצמבר 2011 (IST)[תגובה]
עם קצב התגובה שיש פה לא נראה לי, וזה לא שיש אפילו התחלה לערך. התעסקות בדף השיחה לא אמורה להגביל אותך לעסוק בעוד כמה דברים, אתה יודע... לא כמו מחשב, שמבצע פעולה אחת בזמן נתון. (¯`gal´¯)‎ - שיחה 11:16, 17 בדצמבר 2011 (IST)[תגובה]

תוסיפו עותק של דף השיחה בשיחה:אלגוריתם לפני מחיקת הדף. ―אנונימי לא חתםמש:אנונימי 00:00, 10 בינואר 2000 (IST)[תגובה]

דף השיחה לא יימחק. אפשר לקשר אליו משיחה:אלגוריתם. דניאל תרמו ערך 17:49, 16 בדצמבר 2011 (IST)[תגובה]