11 תשובות
שואל השאלה:
6. א. כתוב/י פעולה שתקבל כפרמטרים מערך arr באורך n, ושני מספרים i,, j (i<=j<=n)
הפעולה תחזיר 1 אם המספרים במערך החל במקום ה-i ועד למקום ה-j (כולל) שווים זה לזה, ו-0 אחרת.

זה השאלה ולא הבנתי מה אני אמור לעשות בכלל
אתה מקבל מערך ושני מקומות בו,
אתה צריך לוודא שכל המספרים בין שני המקומות הללו זהים אחד לשני
אנונימי
שואל השאלה:
אז זה תמיד יצא שכאילו הם לא שווים אחד לשני
למה לא? התכוונתי לערכים של המערך בין הגבולות שהביאו לך
אנונימי
שואל השאלה:
לא הבנתי מה ניסית להסביר לי
מה מבקשים בתרגיל?
יש לך מערך שבנוי ממספרים,
למשל [1,2,3,4,5,6]=arr
ובנוסף לכך יש לך 2 מספרים i,j שאומרים לך מה הרצף שצריך לסרוק.
למשל 1=i, וj=3.

אתה צריך לבדוק שבין
arr[i] עד arr[j] כל הערכים זהים אחד לשני,

בדוגמא שהבאתי,
arr[1]=2
arr[2]=3
arr[3]=4

הערכים 2,3,4 לא זהים אחד לשני, לכן תחזיר 0.
אנונימי
שואל השאלה:
using system;

namespace consoleapp157
{
class program
{
public static int shela6(int[] arr, int n,int i,int j)
{
arr = new int[n];
for (i = 0; i < j;)
{
if (arr[i] == arr[i++])
{
i++;
return 1;
}
}
return 0;
}
static void main(string[] args)
{
console.writeline("write the size of marhe");
int n = int.parse(console.readline());
int[] arr = new int[n];
int i = int.parse(console.readline());
int j = int.parse(console.readline());
shela6(arr,n,i,j);
}
}
}
ככה עשיתי לבנתיים נראלך זה אחלה?
אהמ
1) לפי הגדרת התרגיל אתה לא מקבל n
n הוא גודל המערך פשוט ואתה אמור להשיג אותו מהמערך
2) אתה יכול לשפר את זה טיפה
במקום לבדוק שהתנאי מתקיים ולספור,
אתה יכול פשוט להחזיר 0 אם התנאי לא מתקיים בתוך לולאה, מה שנקרא חזרה מוקדמת,
אם הלולאה מסתיימת, כלומר התנאי תמיד התקיים אתה יכול פשוט להחזיר 1
3) אתה לא מוודא את תקינות הקלט, אני לא יודע מה המורה שלכם אמרה, אבל אולי צריך לוודא שהקלט שלך טוב ולא יודע, לזרוק error או להדפיס משהו בקונסול אם יש שגיאות ולהפסיק את הפעולה. למדתי מדמ"ח לפני 6 שנים אז אני לא בדיוק זוכר מה עשינו אז.
אנונימי
ונראה לי שאתה גם מאפס את i בטעות כשאתה נכנס ללולאה
אנונימי
הייתי עושה משהו כזה

using system;

public class program
{
public static void main()
{
int[] arr = new int[]{1,2,3,3,3,4};
console.writeline(sequencevaluesmatching(arr,2,4));
}

public static int sequencevaluesmatching(int[] arr, int i, int j){
for(int currentpos = i; currentpos < j; currentpos++){
if(arr[currentpos]!=arr[j]){
return 0;
}
}
return 1;
}
}


אבל צריך להוסיף לזה בדיקות קלט אולי.
אנונימי
שואל השאלה:
using system;

namespace consoleapp159
{
class program
{
public static int shela6(int[] arr, int n)
{
arr = new int[n];
for (int w = 0; w < arr.length; w++)
{
arr[w] = int.parse(console.readline());
}
int i = int.parse(console.readline());
int j = int.parse(console.readline());
for (int k = i; k < j; k++)
{
if (arr[i] == arr[i++])
{
i++;
return 1;
}
}
return 0;
}
static void main(string[] args)
{
console.writeline("what the size of the marhe");
int n = int.parse(console.readline());
int[] arr = new int[n];
shela6(arr, n);
}
}
}

לא מבין למה זה לא עובד