התחלנו ללמוד את המערך הזה ואני לא כל כך הבנתי.
אפשר לעשות מערך בלי לדעת מה הגודל שלו?, כאילו בשאלה שנתנו אומרים לי רק לבנות מערך בלי הגודל שלו אז אני לא יודע איך לעשות שהוא ירוץ עד שיסיימו להריץ מספרים בפנים.
תודה לעוזרים![]()
התחלנו ללמוד את המערך הזה ואני לא כל כך הבנתי.
אפשר לעשות מערך בלי לדעת מה הגודל שלו?, כאילו בשאלה שנתנו אומרים לי רק לבנות מערך בלי הגודל שלו אז אני לא יודע איך לעשות שהוא ירוץ עד שיסיימו להריץ מספרים בפנים.
תודה לעוזרים![]()
|
|
אתה יכול להריץ את כל הנתונים שבמערך בעזרת לולאת for:
for (int i = 0; i < array.Length; ++i)
{
Console.WriteLine(array[i]);
}
זה במידה ואתה לא יודע את הגודל אך רוצה למלא את המערך במספרים שלמים.קוד:for(int i=0;i<arr.Length;i++) { Console.Write("Enter number:"); a[i]=int.Parse(Console.ReadLine()); }
נערך לאחרונה על ידי Michael; 03-11-2012 בשעה 14:27.
מתוך: כלכליסט
ניק קאר כתב ספר המסביר איך האינטרנט פוגע לנו במוח והופך אותנו לשטחיים. איש לא שמע על הספר עד שהוא "תורגם" לסרטון ביוטיוב והפך ללהיט ויראלי והוכיח בדיוק את מה שקאר טוען![]()
הסבר קל שתבין מה הרעיון.
לכל משתנה שהוא מערך(Array באנגלית) מוגדרת תכונה בתוכו שמציינת את הגודל שלו, שם התכונה הוא Length, בjava זה length.
וכך בעצם ניתן לגשת גודלו של מערך ללא ידיעת הגודל עצמו.
לדוגמה וקיבלתי בפעולה שבניתי מערך ואני רוצה להדפיס את הגודל שלו אעשה ככה:
קוד PHP:public void PrintArraySize(int[] array) { Console.WriteLine(array.Length);}
בברכה,
חגי.
תודה רבה לכם עזרתם לי![]()
אוקיי.... התייאשתי, בסוף לא הצלחתי עם התרגיל... עם תוכלו לתקן אותי ממה שעשיתי
התרגיל הוא כזה: "נתון מערך a המכיל מספרים שלמים. פתח ויישם אלגוריתם הבונה מערך b חדש שבו כל איבר גדול פי 2 מהאיבר התואם לו במערך a"
מה שעשיתי זה:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("enter number");
int[] maarahA = new int[int.Parse(Console.ReadLine())];
for (int i =1; i < maarahA.Length; i++)
{
Console.WriteLine("enter number");
maarahA[i] = int.Parse(Console.ReadLine());
}
int[] maarahB = new int[int.Parse(Console.ReadLine())];
for (int i = 1; i < maarahA.Length; i++)
{
maarahB[i] = maarahA[i * 2];
}
Console.WriteLine("ערכי מערך ב':"+maarahB[i]+"זה");
אם תוכלו להסביר לי איפה טעיתי זה יעזור. תודה לעוזרים.
Console.WriteLine("ערכי מערך ב':"+maarahB[i]+"זה");maarahB[i] = maarahA[i * 2];
ככה לא מדפיסים מערך. מהסיבה שהמשתנה i לא מוגדר, וזה ידפיס לך רק איבר אחד, חוץ מזה שזה יזרוק לך שגיאה.
כדי להדפיס מערך תוסיף בלולאה השניה אחרי השורה:
את השורה:
Console.WriteLine(maarahB[i]);
בנוסף לכך אנחנו תמיד נתחיל לולאה כאשר i = 0 ולא מ1, כי אתה מאבד פה את האיבר הראשון, איברים במערך ממוספרים מ0 עד X כאשר X זה גודל המערך פחות אחד.
למשל הגדרתי מערך בגודל 4 האיברים יהיו:
0,1,2,3
ולא 1,2,3,4
בנוסף לכך בשורה:
maarahA[i * 2]
ניסית לגשת לאיבר במקום i * 2, ככה שאם הגענו למצב ש i = 3 והמערך הוא בגודל 4 הוא ינסה לגשת למקום 6(חריגה מגבולות המערך)
אתה צריך להכפיל את הערך, הערך הוא maarahA[i], ואת הערך להכפיל בשתיים
כלומר במקום:
maarahB[i] = maarahA[i * 2];
יש לרשום:
maarahB[i] = maarahA[i] * 2;
הקוד המוכן:
http://pastebin.com/ZKHFBDs9
בברכה,
חגי.
תודה באמת עזרת לי אתה באמת משתמש של כבודתודה רבה.