7 תשובות
using static system.console;
public class program
{
public static void main()
{
writeline($"5 multiplied by 3 is: {multi(5,3)}");
writeline(kod(5,2));
writeline(kod(2,5));
writeline(kod(5,5));
}
public static int multi(int a,int b)
{
if (a==1)
{
return b;
}
return multi(a-1,b)+b;
}
public static char kod(int a, int b)
{
if (a>b)
{
return 'p';
}
else if (a<b)
{
return 'n';
}
return 'z';
}
}
וזה היה הפתרון, אהבת אותו או לא? יש לך שאלות לגביו? וגם עוד שאלה אלייך: בקוד הזה אני שמתי את 2 המשימות של הגדרת הפונקציות על פי מה שכתוב בשאלות אבל גם הוספתי שערכיהם יודפסו, אז איך את מעדיפה? שאני אעשה כמו שעשיתי עכשיו, שזה אומר לשלוח את 2 הפונקציות וההרצה שלהן או שאת מעדיפה שאני אשלח כל פונקציה בנפרד?
public class program
{
public static void main()
{
writeline($"5 multiplied by 3 is: {multi(5,3)}");
writeline(kod(5,2));
writeline(kod(2,5));
writeline(kod(5,5));
}
public static int multi(int a,int b)
{
if (a==1)
{
return b;
}
return multi(a-1,b)+b;
}
public static char kod(int a, int b)
{
if (a>b)
{
return 'p';
}
else if (a<b)
{
return 'n';
}
return 'z';
}
}
וזה היה הפתרון, אהבת אותו או לא? יש לך שאלות לגביו? וגם עוד שאלה אלייך: בקוד הזה אני שמתי את 2 המשימות של הגדרת הפונקציות על פי מה שכתוב בשאלות אבל גם הוספתי שערכיהם יודפסו, אז איך את מעדיפה? שאני אעשה כמו שעשיתי עכשיו, שזה אומר לשלוח את 2 הפונקציות וההרצה שלהן או שאת מעדיפה שאני אשלח כל פונקציה בנפרד?
לא נראה לי שברמה הזאת של השאלות הם עושים רקורסיה אז הנה הפעולה הראשונה בלי רקורסיה
public static int multi(num1, num2)
{
int x=0;
for(int i=0; i<a;i++)
{
x=x+num1;
}
return x;
public static int multi(num1, num2)
{
int x=0;
for(int i=0; i<a;i++)
{
x=x+num1;
}
return x;
אנונימית
אנונימית, אהבתי את הפתרון אבל יש 2 בעיות:
1. חובה להגדיר בc# סוג משתנה של פרמטרי פונקצייה, שיטה ושגרה בכללי, אין מקרה יוצא מן הכלל כאן. הדבר הכי קרוב לזה יהיה להשתמש בסוג object ואז אפשר לשים כל אובייקט אחרי אבל זה עדיין הולך לשייך לו מחלקה שבה הוא נמצא, ואת עדיין תצטרכי לציין סוג משתנה
2. את משתמשת במשתנה a למרות שאת לא מגדירה אותו או את המחלקה אליה הוא משתייך בשום מקום בקוד
חוץ מזה, מה הבעיה בלהשתמש ברקורסיה?
1. חובה להגדיר בc# סוג משתנה של פרמטרי פונקצייה, שיטה ושגרה בכללי, אין מקרה יוצא מן הכלל כאן. הדבר הכי קרוב לזה יהיה להשתמש בסוג object ואז אפשר לשים כל אובייקט אחרי אבל זה עדיין הולך לשייך לו מחלקה שבה הוא נמצא, ואת עדיין תצטרכי לציין סוג משתנה
2. את משתמשת במשתנה a למרות שאת לא מגדירה אותו או את המחלקה אליה הוא משתייך בשום מקום בקוד
חוץ מזה, מה הבעיה בלהשתמש ברקורסיה?
אין בעיה בלהשתמש ברקורסיה פשוט מבחינת בית ספר ובגרות זאת רמה הרבה יותר גבוהה רקורסיה שזה חומר של יב לעומת זה שזה חומר של י.
וכן זה טעויות טכניות שסתם לא כתבתי פה אז פשוט להגדיר int על הnum1 וnum2 ובטעות השתמשתי בa במקום num2
וכן זה טעויות טכניות שסתם לא כתבתי פה אז פשוט להגדיר int על הnum1 וnum2 ובטעות השתמשתי בa במקום num2
אנונימית
אנונימית, את רצינית? אבל רקורסיה לא בהכרח קשה, כל מה שהיא עושה זה רק מגדירה פונקציה על ידי עצמה (בשביל שהיא תחזיר ערך מומלץ שגם יהיה ערך התחלתי שהוא עד איפה נגמר הרקורסיה), וזה הכל תלוי ברמת קושי של התרגיל
ועוד 2 דברים (עריכה: למה אמרתי 2 התכוונתי 3 בכלל):
1. היא כנראה מתחילה אז אולי היא לא למדה איך לתקן באגים או איך להשתמש בtry catch שגם עוזר בזה והיא כנראה תיהיה מבולבלת על איך לתקן את זה
2. להשתמש במשתנה שערכו או/גם המחלקה שסוגו משתייך אליה אינם מוגדרים לפני שהוא משומש, זה לא רק באג. זה גם לא עוזר כי בכל מקרה אין טעם להשתמש באובייקט שאין לו שום מחלקה, שום ערך ושום attributes וכו... עדיף שתשימי את הערך בתור null אם את לא יודעת אם להוסיף
3. c# מבוססת על הרעיון של לציין סוגי משתנה, והדרכים להתחמק מכך הן לא פשוטות (אפשר להגדיר סוג משתנה מבלי להגדיר את ערכו, אפשר להגדיר ערך משתנה מבלי להגדיר את סוגו כל עוד משתמשים בvar אבל לגבי הגדרת פרמטרים זה כבר יותר קשה כי צריך אז ליצור אותם מסוג object וגם זה לא עוזר אם יש מערכים כי אז צריך להגיד שזה מערכים של איברים מסוג object ואז אי אפשר להגדיר שפרמטר יהיה כללי כי צריך לציין אם יכול להיות בו איברים בתוכו ואז זה מגביל את כמות טיפוסי הנתונים שפרמטר מסויים יכול להיות. קיצר... זה די קשה).
יותר מזה, את יודעת למה לי היה קשה לעבור מפייתון לc#? כי הייתי צריכה לראשונה לציין טיפוס נתונים בהשמת ערך למשתנה. אל תקראי לזה הבדל קטן, ההבדל כאן הוא כל כך עצום והוא יותר מרק הבאג, זה גם האיך להתרגל לכתיבת טיפוס נתונים בהשמת ערך למשתנה
לעיתים אפילו מסווגים שפות תכנות ב2 קטגוריות של strongly typed (שפות שצריך באופן מפורש לציין טיפוס נתונים) ושל weakly typed (שפות שלא צריך לציין באופן מפורש טיפוס נתונים) בגלל שהן סוג של מהוות הפכים גמורים של אחד והשני. אז על תלמדי את ההפך (למרות שאני מעדיפה את ההפך)
חוץ מזה, דווקא אהבתי את התגובה שלך ויש מצב שאת מבינה בזה יותר ממני כי המומחיות שלי היא פייתון ואני יודעת רק את הבסיס של c#
ועוד 2 דברים (עריכה: למה אמרתי 2 התכוונתי 3 בכלל):
1. היא כנראה מתחילה אז אולי היא לא למדה איך לתקן באגים או איך להשתמש בtry catch שגם עוזר בזה והיא כנראה תיהיה מבולבלת על איך לתקן את זה
2. להשתמש במשתנה שערכו או/גם המחלקה שסוגו משתייך אליה אינם מוגדרים לפני שהוא משומש, זה לא רק באג. זה גם לא עוזר כי בכל מקרה אין טעם להשתמש באובייקט שאין לו שום מחלקה, שום ערך ושום attributes וכו... עדיף שתשימי את הערך בתור null אם את לא יודעת אם להוסיף
3. c# מבוססת על הרעיון של לציין סוגי משתנה, והדרכים להתחמק מכך הן לא פשוטות (אפשר להגדיר סוג משתנה מבלי להגדיר את ערכו, אפשר להגדיר ערך משתנה מבלי להגדיר את סוגו כל עוד משתמשים בvar אבל לגבי הגדרת פרמטרים זה כבר יותר קשה כי צריך אז ליצור אותם מסוג object וגם זה לא עוזר אם יש מערכים כי אז צריך להגיד שזה מערכים של איברים מסוג object ואז אי אפשר להגדיר שפרמטר יהיה כללי כי צריך לציין אם יכול להיות בו איברים בתוכו ואז זה מגביל את כמות טיפוסי הנתונים שפרמטר מסויים יכול להיות. קיצר... זה די קשה).
יותר מזה, את יודעת למה לי היה קשה לעבור מפייתון לc#? כי הייתי צריכה לראשונה לציין טיפוס נתונים בהשמת ערך למשתנה. אל תקראי לזה הבדל קטן, ההבדל כאן הוא כל כך עצום והוא יותר מרק הבאג, זה גם האיך להתרגל לכתיבת טיפוס נתונים בהשמת ערך למשתנה
לעיתים אפילו מסווגים שפות תכנות ב2 קטגוריות של strongly typed (שפות שצריך באופן מפורש לציין טיפוס נתונים) ושל weakly typed (שפות שלא צריך לציין באופן מפורש טיפוס נתונים) בגלל שהן סוג של מהוות הפכים גמורים של אחד והשני. אז על תלמדי את ההפך (למרות שאני מעדיפה את ההפך)
חוץ מזה, דווקא אהבתי את התגובה שלך ויש מצב שאת מבינה בזה יותר ממני כי המומחיות שלי היא פייתון ואני יודעת רק את הבסיס של c#
טוב אני רואה שאת בת 15 כלומר את כנראה לומדת המון ומבינה בזה מאוד במיוחד ביחס לגיל שלך ושאפו ענק על זה כי זה מאוד קשה ויפה שזה מעניין אותך אז את משקיעה בזה. אמי התחלתי ללמוד מדעי המחשב בבית ספר, חומר לבגרות ולבגרות של החמש יחידות שאני מניחה שהכותב של השאלה מדבר עליו. לבגרות לומדים או c# או java, אני אישית למדתי c# וזאת הייתה השפת תכנות הראשונה שלמדתי. יכול להיות שלמישהו שהתחיל מפייטון זאת טעות קריטית אבל כל אחד שהתחיל מc# יודע שצריך לכתוב את זה וגם בלי קשר אם כותבים את זה בvisual studio זה ישר מתקן כי זאת טעות מאוד בסיסית לפחות בשביל c#. כרגע אני בצבא ועברתי קורס ארוך של פייטון ועוד כמה שפות, התרגילים שהכותב של השאלה נתן פה זה תרגילים שהיינו מקבלים בדיוק אותם בכיתה י או ממש בתחילת יא, רקורסיה זה לא קשה למי שלומד עצמאית או יודע את כל השפה אבל כמו שאת רואה הם ביקשו עזרה בשאלה של כתיבת פעולות סטטיות כלומר הם עדיין בהתחלה שלהם
אנונימית
אנונימית, אני גם לומדת את החומר לבגרות במדעי המחשב, יותר נכון למדתי, כי העיפו אותי מהמגמה (למרות שידעתי את החומר די טוב) אבל אני למדתי קצת יותר ממה שלומדים לבגרות או למדתי יותר מהר ממה שלומדים לבגרות, כי פשוט עשיתי קורס בכיתה ט של פייתון בלי שום קשר לבית ספר ובכללי יש לי ידע נוסף על זה
ותודה על המחמאה שאני יודעת הרבה! אבל אני מרגישה שאני לא יודעת מספיק כי רק בפייתון אני שולטת, c# יודעת רק את הבסיס וhtml וcss רק את ההתחלה בצורה הכי לא משהו שיש (זה גם נכלל בחומר של המגמה שהייתי בה)
חוץ מזה, אני כן מניחה שהיא כנראה לומדת את זה בתור חלק מבית ספר, אבל מאיפה לך שהיא לומדת את זה בתור לחומר לבגרות? ראיתי לא מעט שאלות בסטיפס על מדעי המחשב שהם על התוכנית לימודים של זה בכיתה ט ויש כאלה שלפני זה, אז אני לא יודעת אם להניח את זה. אני מנחשת שהיא מתחילה אבל יש סיכוי שהיא יודעת שפה אחרת.
ותודה על המחמאה שאני יודעת הרבה! אבל אני מרגישה שאני לא יודעת מספיק כי רק בפייתון אני שולטת, c# יודעת רק את הבסיס וhtml וcss רק את ההתחלה בצורה הכי לא משהו שיש (זה גם נכלל בחומר של המגמה שהייתי בה)
חוץ מזה, אני כן מניחה שהיא כנראה לומדת את זה בתור חלק מבית ספר, אבל מאיפה לך שהיא לומדת את זה בתור לחומר לבגרות? ראיתי לא מעט שאלות בסטיפס על מדעי המחשב שהם על התוכנית לימודים של זה בכיתה ט ויש כאלה שלפני זה, אז אני לא יודעת אם להניח את זה. אני מנחשת שהיא מתחילה אבל יש סיכוי שהיא יודעת שפה אחרת.
באותו הנושא: