זקוק לעזרה בPASCAL...מי שמבין בקשה להכנס.. - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

זקוק לעזרה בPASCAL...מי שמבין בקשה להכנס..


tombcatz

Recommended Posts

טוב,אני אתאר את הבעיה בקצרה:

אני יודע כיצד להשתמש בפונקציה,וכיצד להשתמש בפרוצדורה [כלומר-כיצד לכתוב פרוצדורות ופונקציות משל עצמי ולהשתמש בהן]

אבל אין לי מושג מתי אני צריך להשתמש בפונקציה,ומתי בפרוצדורה... :nixweiss:

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

מתי אני משתמש בכל אחד מהם?  :-\

*לדוגמא:

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

במה להשתמש?זה נראה לי הגיוני להשתמש גם בפונקציה וגם בפרוצדורה?  :nixweiss:

תודה לעוזרים.

קישור לתוכן
שתף באתרים אחרים

ההבדל בין פרוצדורה לפונקציה הוא לא כל כך גדול.

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

פרוצדורה מסוגלת להחזיר כל דבר שהיא בעצם מקבלת. לדוגמא:

procedure one (var x,y:integer);

במקרה כזה, אתה תוכל להחזיר לתוכנית הראשית גם את x וגם את y.

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

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

קישור לתוכן
שתף באתרים אחרים

ההבדל בין פרוצדורה לפונקציה הוא לא כל כך גדול.

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

פרוצדורה מסוגלת להחזיר כל דבר שהיא בעצם מקבלת. לדוגמא:

procedure one (var x,y:integer);

במקרה כזה, אתה תוכל להחזיר לתוכנית הראשית גם את x וגם את y.

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

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

בנוגע לפרוצדורה-אני אוכל להחזיר X וY רק אם הם מוגדרים כVAR בכותרת הפונקציה [כלומר-הם משתנים שהפרוצדורה מקבלת וגם מוציאה] נכון?

אה,ועוד משהו-זה אפשרי שפונקציה תקבל יותר ממשתנה אחד,כל עוד היא תחזור תשובה אחת,כן?

קישור לתוכן
שתף באתרים אחרים

בנוגע לפרוצדורה-אני אוכל להחזיר X וY רק אם הם מוגדרים כVAR בכותרת הפונקציה [כלומר-הם משתנים שהפרוצדורה מקבלת וגם מוציאה] נכון?

אה,ועוד משהו-זה אפשרי שפונקציה תקבל יותר ממשתנה אחד,כל עוד היא תחזור תשובה אחת,כן?

כן.

וכן. :)

קישור לתוכן
שתף באתרים אחרים

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

פונקציה כן יכולה לקלוט ולהדפיס ערכים.

בנוגע לפרוצדורה-אני אוכל להחזיר X וY רק אם הם מוגדרים כVAR בכותרת הפונקציה

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

קישור לתוכן
שתף באתרים אחרים

פונקציה כן יכולה לקלוט ולהדפיס ערכים.

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

הVAR בכותרת הפונקציה מסווג את כל הנתונים אשר גם נכנסים וגם יוצאים[לאחר שינוי] מהפרוצדורה ואל הפרוצדורה

קישור לתוכן
שתף באתרים אחרים

תשתמש בפונקציה כשאתה רואה שיש פעולת חישובית או בדיקה מסוימת שתוצאתה היא ערך אחד כלשהו....(מספר, אמת/שקר, מחרוזת, תו).

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

אם אתה מעונין שחלק מהמשתנים יוחזרו, וחלק לא, אז תפריד ב ; בינהם ולפני אלה שאתה רוצה שיחזרו תשים VAR, לפני האלו שלא אל תשים.

קישור לתוכן
שתף באתרים אחרים

ההבדל [glow=red,2,300]היחיד[/glow] בין פונקציה לפרצדורה היא שפונקציה יכולה להחזיר ערך חזרה ופרצדודה לא

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

קישור לתוכן
שתף באתרים אחרים

לא בדקתי אם פונקציה בפסקל יכולה לקבל ערכים, או להוציא פלט מודפס, אבל אני יודע שבודקי הבגרויות מורידים ניקוד למי שעשה פלט מפונקציה, או קלט דרכה ערך מסויים (לכמה מכרים שלי ירד ניקוד על זה בבגרות בפסקל).

אז שים לב לזה, ואל תקלוט ערכים/תדפיס דברים דרך פונקציה.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...