درخواست های ارتباط
جستجو
    لیست دوستان من
    صندوق پیام
    همه را دیدم
    • در حال دریافت لیست پیام ها
    صندوق پیام
    رویدادها
    همه را دیدم
    • در حال دریافت لیست رویدادها
    همه رویدادهای من

    تا 75 درصد تخفیف ویژه شب یلدا بر روی کلیه محصولات وب سایت توسینسو فقط تا 30 آذر

    مانده تا پایان تخفیف ها

    تخفیف های وب سایت
    همه تخفیف ها

    عضویت در

    کانال تلگرام

    توسینسو

    اطلاعات مطلب
      مدرس/نویسنده
      حسین احمدی
      امتیاز: 212242
      رتبه:3
      342
      253
      403
      2719
      حسین احمدی ، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس ، بیش از 12 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ... پروفایل کاربر
      دوره های مرتبط
      دوره های توسینسو دوره آموزشی برنامه نویسی اندروید با زبان جاوا به زبان ساده
      دوره آموزشی برنامه نویسی اندروید با زبان جاوا به زبان ساده
      مدرس: مهدی عادلی فر
      این دوره را در 27 قسط خریداری کنید
      دوره آموزشی برنامه نویسی به زبان پرل بصورت پروژه محور
      دوره آموزشی برنامه نویسی به زبان پرل بصورت پروژه محور
      مدرس: ایمان جوادی
      این دوره را در 13 قسط خریداری کنید
      دوره آموزشی مقدماتی برنامه نویسی جاوا به زبان ساده
      دوره آموزشی مقدماتی برنامه نویسی جاوا به زبان ساده
      مدرس: مهدی عادلی فر
      این دوره را در 17 قسط خریداری کنید
      دوره آموزشی برنامه نویسی پیشرفته زبان سی شارپ
      دوره آموزشی برنامه نویسی پیشرفته زبان سی شارپ
      مدرس: حسین احمدی
      این دوره را در 78 قسط خریداری کنید
      دوره آموزشی طراحی رابط کاربری با JavaFX
      دوره آموزشی طراحی رابط کاربری با JavaFX
      مدرس: حسام رسولیان
      این دوره را در 13 قسط خریداری کنید
      دوره متوسطه برنامه نویسی به زبان جاوا به زبان ساده
      دوره متوسطه برنامه نویسی به زبان جاوا به زبان ساده
      مدرس: مهدی عادلی فر
      این دوره را در 18 قسط خریداری کنید
      ساخت و مدیریت ربات تلگرام از صفر با زبان سی شارپ
      ساخت و مدیریت ربات تلگرام از صفر با زبان سی شارپ
      مدرس: مهدی عادلی فر
      این دوره را در 2 قسط خریداری کنید
      دوره آموزشی ساخت ربات تلگرام
      دوره آموزشی ساخت ربات تلگرام
      مدرس: کاظم تقندیکی
      این دوره را در 8 قسط خریداری کنید
      دوره آموزشی Exploit نویسی به زبان Perl
      دوره آموزشی Exploit نویسی به زبان Perl
      مدرس: ایمان جوادی
      این دوره را در 7 قسط خریداری کنید
      دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
      دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
      مدرس: کاظم تقندیکی
      این دوره را در 20 قسط خریداری کنید
      دوره آموزشی اسکریپت نویسی Batch یا Batch Scripting در ویندوز به زبان ساده
      دوره آموزشی اسکریپت نویسی Batch یا Batch Scripting در ویندوز به زبان ساده
      مدرس: حسین احمدی
      این دوره را در 11 قسط خریداری کنید
      دوره آموزشی مقدماتی برنامه نویسی به زبان سی شارپ
      دوره آموزشی مقدماتی برنامه نویسی به زبان سی شارپ
      مدرس: حسین احمدی
      این دوره را در 17 قسط خریداری کنید
      دوره آموزشی برنامه نویسی مقدماتی پایتون به زبان ساده
      دوره آموزشی برنامه نویسی مقدماتی پایتون به زبان ساده
      مدرس: حسین احمدی
      این دوره را در 23 قسط خریداری کنید
      دوره تخصصی آموزش متن کاوی با ابزار NLTK
      دوره تخصصی آموزش متن کاوی با ابزار NLTK
      مدرس: کاظم تقندیکی
      این دوره را در 11 قسط خریداری کنید
      دوره آموزشی برنامه نویسی WPF در ویژوال استودیو
      دوره آموزشی برنامه نویسی WPF در ویژوال استودیو
      مدرس: امیر حسین فضلیخانی
      این دوره را در 12 قسط خریداری کنید

      آموزش زبان سی شارپ - قسمت نهم :: آشنایی با آرایه ها و دستور foreach

      تاریخ 46 ماه قبل
      نظرات 11
      بازدیدها 18501
      در بخش قبلی آموزش زبان سی شارپ با دستورات کنترلی و حلقه ها آشنا شدیم. در این بخش قصد داریم با مبحث آرایه ها و دستور foreach آشنا شویم. همانطور که در قسمت آشنایی با متغیرها گفتیم، یک متغیر خانه ای از حافظه است که می توان مقداری را در داخل آن ذخیره کرد. برای مثال دستور زیر متغیری از نوع string و با نام name تعریف کرده و مقدار ITPro را داخل آن قرار می دهد:

      string name = "ITPro";
      

      اما فرض کنید که بخواهیم در یک متغیر، بیش از یک مقدار را ذخیره کنیم. برای مثال، ما می خواهیم لیستی از نمرات یک دانشجو را در برنامه داشته باشیم. برای اینکار باید متغیری تعریف کنیم که قابلیت نگهداری بیش از یک مقدار را داشته باشد. در اینجا مبحث آرایه ها مطرح می شود. آرایه ها این قابلیت را به ما می دهند که لیستی از یک نوع را نگهداری کنیم. شیوه تعریف آرایه ها در زبان سی شارپ به صورت زیر است:

      {type}[] numbers = new {type}[{length}];
      

      در قسمت type نوع داده ای که قصد داریم به عنوان آرایه ایجاد شود و در قسمت length باید تعداد خانه های آرایه را مشخص کنیم. برای مثال فرض کنید که قصد داریم یک آرایه 10 خانه ای از نوع int ایجاد کنیم:

      int[] numbers = new int[10];
      

      بوسیله کد بالا یک آرایه 10 خانه ای از نوع int برای ما ایجاد می شود. برای مثال دوم یک آرایه 20 خانه ای از نوع string ایجاد می کنیم:

      string[] names = new string[20];
      

      در مرحله بعد باید با نحوه دسترسی به خانه های آرایه آشنا شویم. در دو حالت ما نیاز به دسترسی به خانه های آرایه خواهیم داشت:

      1. قرار دادن مقدار داخل یکی از خانه های آرایه
      2. گرفتن مقدار یکی از خانه های آرایه

      ابتدا نحوه قرار دادن مقدار را با هم بررسی می کنیم:

      string[] names = new string[20];
      names[10] = "ITPro.ir";
      

      همانطور که مشاهده می کنید ابتدا نام متغیر، سپس داخل [] اندیس خانه ای از آرایه که قصد داریم مقدار داخل آن قرار بگیرد را می نویسیم. اما به یک نکته توجه کنید که اندیس آرایه ها از شماره 0 شروع می شود. یعنی در کد بالا که عدد 10 را نوشتیم، اشاره به خانه نهم آرایه می کنید. برای مثال در یک آرایه 10 خانه ای، عدد 0 به خانه اول و عدد 9 به خانه دهم اشاره می کند.

      برای خواندن مقدار یکی از خانه های آرایه به صورت زیر عمل می کنیم:

      string[] names = new string[10];
      names[0] = "Reza";
      names[1] = "Hossien";
      names[2] = "Mohammad";
      Console.WriteLine(names[1]); // output Hossein
      

      در زبان سی شارپ به صورت های مختلفی می توان آرایه را تعریف و مقدار دهی کرد، یکی از حالت ها را بررسی کردیم. نوع دیگری از تعریف آرایه به این صورت است که ما هنگام تعریف آرایه مقادیر خانه های آن را مشخص می کنیم و بر اساس مقادیر، تعداد خانه های آرایه تعیین می شود:

      int[] numbers = new[] { 2,6,3,1,7,9};
      

      در کد بالا، آرایه ای از نوع int تعریف شده و مقادیر مشخص شده داخل {} در خانه های آرایه قرار میگیرد. در مثال قبلی آرایه تعریف شده حاوی 6 خانه خواهد بود (بر اساس تعداد اعداد داخل {}).

      می توان برای راحتی کار، از نوشتن []int صرفنظر کرد:

      int[] numbers = { 2,6,3,1,7,9};
      

      کد بالا، دقیقاً کار کد قبلی را انجام می دهد.

      زمانی که ما یک آرایه تعریف می کنیم، می توانیم بوسیله دستور for به خانه های آرایه دسترسی داشته باشیم. برای مثال، فرض کنید برنامه ای می خواهیم بنوسیم که 10 عدد را از کاربر دریافت کرده، سپس حاصل جمع این 10 عدد را در خروجی چاپ کند.

      1. در ابتدا باید آرایه ای که اعداد داخل آن باید ذخیره شوند را تعریف کنیم:

      int[] nums = new int[10];
      

      2. در قدم بعدی باید 10 عدد را از کاربر دریافت کرده و در خانه های آرایه ذخیره کنیم. دقت کنید، 10 مرتبه عملیات دریافت اطلاعات از کاربر تکرار می شود، پس ما باید یک حلقه تشکیل داده و داخل آن حلقه اقدام به دریافت اعداد از کاربر نماییم:

      for (int index = 0; index <= 9; index++)
      {
          Console.Write("Enter number " + (index + 1) + " of 10: ");
          nums[index] = int.Parse(Console.ReadLine());
      }
      

      دقت کنید که شمارنده حلقه از عدد صفر شروع شده و تا زمانی که مقدار شمارنده کوچکتر یا مساوی عدد 9 باشد تکرار خواهد شد. ما می توانیم از عدد شمارنده برای دسترسی به خانه های آرایه نیز استفاده کنیم. همچنین قبل از دریافت عدد، پیغامی مناسب به کاربر جهت وارد کردن عدد نمایش می دهیم.

      3. در مرحله بعد، باید تک تک خانه های آرایه را خوانده و حاصل جمع را در یک متغیر جانبی ذخیره کنیم:

      int sum = 0;
      for (int index = 0; index <= 9; index++)
      {
          sum = sum + nums[index];
      }
      Console.WriteLine("Sum of entered numbers: " + sum);
      

      می توان دستور داخل حلقه for را به صورت خلاصه تر نوشت:

      int sum = 0;
      for (int index = 0; index <= 9; index++)
      {
          sum += nums[index];
      }
      Console.WriteLine("Sum of entered numbers: " + sum);
      


      خاصیت Length


      فرض کنید، ما طول آرایه ای که تعریف کردیم را نمی دانیم! در این مواقع می توان با خاصیت Length طول آرایه را بدست آورد. در مثال زیر نحوه بدست آوردن طول آرایه با خاصیت Length را بررسی می کنیم:

      string[] names = {"ITPro.IR","Mohammad","Hossein","Farhad","Saeed","Sadegh","Mahmoud"};
      Console.WriteLine(names.Length); // Output => 7
      

      دستور بالا، مقدار 7 که تعداد آیتم های آرایه یا طول آرایه می باشد را در خروجی چاپ می کند. این خاصیت مقداری از نوع int برای ما بر می گرداند.

      حال مثال قبلی که حاصل جمع اعداد را حساب می کرد به صورت زیر تغییر می دهیم:

      int sum = 0;
      for (int index = 0; index < nums.Length; index++)
      {
          sum += nums[index];
      }
      Console.WriteLine("Sum of entered numbers: " + sum);
      

      ما قسمت شرط دستور for را جوری تغییر دادیم که حلقه تا زمانی که شمارنده کوچتر از طول آرایه باشد تکرار شود. دقت کنید که به جای => ما از > استفاده کردیم. زیرا Length طول آرایه را برمیگرداند و به دلیل شروع شدن خانه های آرایه از اندیس 0 حلقه باید یک عدد کمتر از طول خانه های آرایه تکرار شود.


      آرایه های چند بعدی


      در مثال های قبلی، آرایه هایی که ایجاد کردیم، متغییرهایی بودند که شامل چندین خانه بودند. به این آرایه ها آرایه های خطی نیز می گویند. اما فرض کنید قصد داریم جدول ضرب 9 در 9 را در یک آرایه ذخیره کنیم. برای این کار باید از آرایه های چند بعدی استفاده کنیم. برای مثال، دستور زیر یک آرایه 2 بعدی شامل 9 سطر و 9 ستون را تعریف می کند:

      int[,] martix = new int[9,9];
      

      برای ابعاد بیشتر باید تعداد اعداد داخل [] را بیشتر کنیم:

      int[,,] martix = new int[9,9,9];
      

      در مثال زیر، یک آرایه 9 در 9 تعریف کرده و جدول ضرب 9 در 9 را داخل آن ذخیره می کنیم و در نهایت خروجی را چاپ می کنیم:

      int[,] matrix = new int[9,9];
      
      for (int col = 0; col < 9; col++)
      {
          for (int row = 0; row < 9; row++)
          {
              matrix[col, row] = (col + 1)*(row + 1);
          }
      }
      
      for (int col = 0; col < 9; col++)
      {
          for (int row = 0; row < 9; row++)
          {
              Console.Write(matrix[col, row] + "\t");
          }
          Console.WriteLine();
      }
      


      آرایه های نامنظم یا Jagged Arrays


      در قسمت قبلی با آرایه های چند بعدی آشنا شدیم، مثل آرایه های 2**2 یا 3**3 یا 2**4، اما فرض کنید قصد داریم آرایه دو بعدی با تعداد خانه های نامساوی تعریف کنیم، در قسمت آرایه های چند بعدی هر سطر از آرایه دارای تعداد خانه های مشخص بود، مثل 3 سطر و 2 ستون، اما فرض کنید می خواهیم هر سطر از آرایه تعداد خانه های متفاوتی داشته باشد. برای مثال، سطر اول 5 خانه، سطر دوم 6 خانه، سطر سوم 2 خانه و ... برای اینجور مواقع ما می توانیم از آرایه های نامنظم استفاده کنیم. شیوه تعریف آرایه های نامنظم به صورت زیر است:

      int[][] jaggedArray = new int[3][];
      

      با دستور بالا یک آرایه سه خانه ای که هر یک از خانه های آن نیز یک آرایه است تعریف کردیم. حالا باید برای تک تک خانه های آرایه نیز، آرایه ایجاد کنیم:

      jaggedArray[0] = new int[5];
      jaggedArray[1] = new int[4];
      jaggedArray[2] = new int[2];
      

      می توان هر یک از خانه های آرایه را به صورت مستقیم مانند مثال زیر مقدار دهی نیز کرد:

      jaggedArray[0] = new int[] { 1, 3, 5, 7, 9 };
      jaggedArray[1] = new int[] { 0, 2, 4, 6 };
      jaggedArray[2] = new int[] { 11, 22 };
      

      در مثال بالا، یک آرایه 3 خانه ای که خانه اول دارای 5 خانه، خانه دوم دارای سه 3 و خانه سوم دارای 2 خانه می باشد را ایجاد کردیم.

      برای دسترسی به خانه های آرایه باید از دو اندیس استفاده کرد، اندیس اول برای آرایه اول و اندیس دوم برای آرایه دوم:

      jaggedArray[0][1] = 77;
      Console.WriteLine("{0}", jaggedArray[0][1]);
      


      دستور foreach


      در زبان سی شارپ، زمانی که ما یک آرایه تعریف می کنیم، در حقیقت یک مجموعه قابل شمارش (Enumerable) تعریف کرده ایم. در دات نت مجموعه های قابل شمارش زیادی وجود دارند که در بخش های بعدی با آنها بیشتر آشنا خواهیم شد. اما منظور از قابل شمارش چست؟ نوع های قابل شمارش، نوع هایی می باشند که ما می توانیم بوسیله دستور foreach به خانه های آنها دسترسی داشته باشیم. ساختار کلی دستور foreach به صورت زیر است:

      foreach({type} {variable-name} in {collection})
      {
          // loop syntaxes
      }
      

      1. قسمت type باید نوع متغیری که مجموعه بر اساس آن تعریف شده را مشخص کنیم. برای مثال، اگر آرایه ای داریم که خانه های آن از نوع int است، باید به جای type نوع int را بنویسیم. به جای type می توان از کلمه کلیدی var که در بخش های قبلی با آن آشنا شدیم نیز استفاده کرد.
      2. قسمت variable-name باید نام متغیری که خانه های آرایه در آن قرار می گیرند را مشخص کنیم. این نام کاملاً دلخواه است.
      3. در قسمت collection نام مجموعه ای که قصد داریم به خانه های آن دسترسی داشته باشیم را می نویسیم.

      شیوه عملکرد دستور foreach به این صورت است که حلقه ای بر روی مجموعه مورد نظر ایجاد می شود، سپس هر یک از خانه های آن مجموعه خوانده شده و مقدار آن داخل متغیری که نام آن را در بخش variable-name مشخص کردیم قرار میگیرد و ما می توانیم در هر تکرار به آیتم خانه های آرایه به ترتیب قرار گیری در مجموعه دسترسی داشته باشیم. به مثال زیر توجه کنید:

      string[] names = {"ITPro.IR","Mohammad","Hossein","Farhad","Saeed","Sadegh","Mahmoud"};
      
      foreach (var name in names)
      {
          Console.WriteLine(name);
      }
      

      بوسیله دستور بالا، کلیه آیتم های آرایه names در خروجی چاپ خواهد شد. دستور foeach بالا دقیقاً معادل دستور for زیر می باشد:

      for (int index = 0; index < names.Length; index++)
      {
          Console.WriteLine(names[index]);
      }
      

      دستور foreach هنگام کار با مجموعه ها به شدت مورد استفاده قرار می گیرد. اما توجه داشته باشید اگر در برنامه ای که قصد نوشتن آن را دارید، سرعت اجرای کدها از اهمیت زیادی برخوردار است، دستور for سرعت اجرای بیشتری نسبت به دستور foreach دارد.

      با اتمام بخش آرایه ها، در بخش بعدی در مورد متدها و کاربرد متدها در برنامه نویسی توضیح خواهیم داد. امیدوارم که در طول این دوره آموزشی با بنده و وب سایت ITPRO همراه باشید. ITPRO باشید

      نویسنده : حسین احمدی
      منبع : جزیره برنامه نویسی وب سایت توسینسو
      هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است
      برچسب ها
      ردیفعنوان
      1دوره آموزشی .NET Framework و زبان برنامه نویسی سی شارپ - مقدمه
      2آموزش سی شارپ - قسمت اول :: معرفی و بررسی ابزارهای مورد نیاز دوره
      3آموزش زبان سی شارپ - قسمت دوم :: آشنایی با .NET Framework و ساختار آن (بخش اول)
      4آموزش زبان سی شارپ - قسمت دوم :: آشنایی با .NET Framework و ساختار آن (بخش دوم)
      5آموزش زبان سی شارپ - قسمت سوم :: آشنایی اولیه با محیط Visual Studio و نوشتن اولین برنامه
      6آموزش زبان سی شارپ - قسمت چهارم :: آشنایی با ساختار برنامه ها و کامپایلر زبان سی شارپ
      7آموزش زبان سی شارپ - قسمت پنجم :: آشنایی با دستورات کنسول و متغیرها
      8آموزش زبان سی شارپ - قسمت ششم :: نوع های داده اولیه
      9آموزش زبان سی شارپ - قسمت هفتم :: آشنایی با عملگرهای زبان سی شارپ
      10آموزش زبان سی شارپ - قسمت هشتم :: آشنایی با دستورات کنترلی و حلقه ها (بخش اول)
      11آموزش زبان سی شارپ - قسمت هشتم :: آشنایی با دستورات کنترلی و حلقه ها (بخش دوم)
      12آموزش زبان سی شارپ - قسمت هشتم :: آشنایی با دستورات کنترلی و حلقه ها (بخش سوم)
      13آموزش زبان سی شارپ - قسمت هشتم :: آشنایی با دستورات کنترلی و حلقه ها (بخش چهارم)
      14آموزش زبان سی شارپ - قسمت نهم :: آشنایی با آرایه ها و دستور foreach
      15آموزش زبان سی شارپ - قسمت دهم :: آشنایی با متدها در زبان سی شارپ (بخش اول)
      16آموزش زبان سی شارپ - قسمت دهم :: آشنایی با متدها در زبان سی شارپ (بخش دوم)
      17آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت یازدهم :: مقدمه ای بر برنامه نویسی شئ گرا
      18آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت دوازدهم :: آشنایی با کلاس، اشیاء و فضاهای نام
      19آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت سیزدهم :: آشنایی با فیلدها و رفتارها
      20آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت چهاردهم :: آشنایی با Property ها
      21آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت پانزدهم :: آشنایی با سازنده ها و روش های ایجاد اشیاء
      22آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت شانزدهم :: وراثت یا Inheritance
      23آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت هفدهم :: آشنایی با مفهوم Polymorphism
      24آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت هجدهم:: کلاس های abstract و sealed
      25آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت نوزدهم :: سازنده ها در وراثت، کلمه کلیدی protected و فیلدهای readonly
      26آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت بیستم :: کلاس های static و partial و Extension Method ها
      27آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت بیست و یکم :: Reference Types و Value Types
      28آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت بیست و دوم :: آشنایی با کاربرد interface ها
      29آموزش برنامه نویسی شئ گرا در زبان سی شارپ - قسمت بیست و سوم :: آشنایی با مفاهیم Inversion of Control و Dependency Injection
      30آموزش برنامه نویسی شئ گرا در زبان سی شارپ -قسمت بیست و چهارم :: آشنایی با مفهوم Type Casting و انواع Cast ها
      31آموزش برنامه نویسی شئ گرا در زبان سی شارپ -قسمت بیست و پنجم :: آشنایی با operator overloading و تعریف cast ها
      32آموزش برنامه نویسی شئ گرا در زبان سی شارپ -قسمت بیست و ششم :: مفاهیم boxing و unboxing
      33آموزش برنامه نویسی شئ گرا در زبان سی شارپ -قسمت بیست و هفتم :: قابلیت Generics
      34آموزش برنامه نویسی شئ گرا در زبان سی شارپ -قسمت بیست و هشتم :: نکات تکمیلی Generic ها، کلاس List و کلاس Dictionary
      35آموزش زبان سی شارپ -قسمت بیست و نهم (پایانی): استثناء ها (Exceptions) و مدیریت خطاها در سی شارپ
      دورهمجموعه کل دوره
      مطالب مرتبط

      در حال دریافت اطلاعات

      نظرات
      • عالی بود مهندس جان جهت درک بیشتر و تمرین نظر شما چیه که انتهای هر درس یا هر دوره یک یا دو مثال قرار دهید ، مثال هایی که تمام اون بخش یا دوره رو در بر بگیره و دوستان خودشون جواب بدن و در نهایت شما جواب رو انتخاب کنی یا خودت جواب رو بدی.
        اینجوری هم همکاری بین دوستان زیاد خواهد شد هم حس یادگیری برانگیخته خواهد شد.
      • کاربر mdg2000 مهندس حسین احمدی Developer سایت itpro هستند و این روز ها سخت مشغول به روز رسانی نرم افزار سایتمون هستند و سرشون شلوغه .
        شکیبا باشید.
      • مهندس جان چرا ادامه نمیدی؟

      • سلام

        اولین باره دارم با برنامه سی شارپ کار میکنم (خواهشا راهنماییی کنید)

        برنامه ای طول عرض مستطیلی ومربعی را خوانده محیط ومساحت مستطیل ومربع رامحاسبه می کند ؟؟؟؟؟؟

        آیا برای مستطیل ومربع برنامه جداگانه ای بنوسیم ؟؟؟


      • سلام دوست عزیز، لطفاً سوالتون رو در قالب یک سوال مطرح کنید.
      • این پست حذف شده است
        دلیل حذف: .

      • سلام .
        میشه قطعه کد مقایسه دو آرایه یک بعدی که هر کدام 5خانه دارند رو بنویسید
        یعنی تک تک خانه ها رو با هم مقایسه کنه و هر دو از نوع int هستند
        یعنی اگه مثلا خانه 1 اولی با خانه 3 دومی برابر بود یه عمل دیگه انجام بده و اگه خانه مثلا 2 اولی با 2 دومی برابر بود یه کار دیگه انجام بده.

      • چند مثال

        مثال 1. در مثال زیر ابتدا آرایه ای با استفاده از حلقه for با مقادیری پر میشود؛ سپس با استفاده از حلقه foreach مقادیر داخل آرایه در خروجی چاپ میشود.
                    int sum = 0;
                    int[] nums = new int[10]; // تعریف آرایه با 10 خانه
        
                    // پرکردن آرایه
                    for (int i = 0; i < 10; i++)
                        nums[i] = i;
        
                    Console.WriteLine("use foreach to display and sum the values");
        
                    // چاپ مقادیر داخل آرایه در خروجی
                    foreach (int x in nums)
                    {
                        Console.WriteLine("Value is: " + x);
                        sum += x; // در هر دور از حلقه مقدار هر خانه از آرایه با مقادیر قبل جمع میشود
                    }
        
                    Console.WriteLine("Summation: " + sum); // نمایش مجموع مقادیر داخل آرایه 
        

        خروجی
        use foreach to display and sum the values
        Value is: 0
        Value is: 1
        Value is: 2
        Value is: 3
        Value is: 4
        Value is: 5
        Value is: 6
        Value is: 7
        Value is: 8
        Value is: 9
        Summation: 45
        

        مثال 2. یک آرایه دوبعدی تعریف میشود سپس با استفاده از دو حلقه از مقادیر پر میشود. سپس با استفاده از حلقه foreach مقدار هر درایه از مارتیس (آرایه 3x5) در خروجی چاپ میشود. مجموع درایه ها نیز محاسبه و چاپ میشود.
            int sum = 0; 
            int[,] nums = new int[3,5]; 
         
            for(int i = 0; i < 3; i++)  
              for(int j=0; j < 5; j++) 
                nums[i,j] = (i+1)*(j+1); 
         
            foreach(int x in nums) { 
              Console.WriteLine("Value is: " + x); 
              sum += x; 
            } 
            Console.WriteLine("Summation: " + sum); 
        

        خروجی
        Value is: 1
        Value is: 2
        Value is: 3
        Value is: 4
        Value is: 5
        Value is: 2
        Value is: 4
        Value is: 6
        Value is: 8
        Value is: 10
        Value is: 3
        Value is: 6
        Value is: 9
        Value is: 12
        Value is: 15
        Summation: 90
        

        مثال 3. جستجو در آرایه با استفاده از حلقه foreach.
        در مثال زیر مقدار 5 در آرایه سرچ میشود و در صورتی که یافت شد متغیر found که با مقدار false از قبل پر شده بود با مقدار جدید true مقدار دهی میشود و با بررسی شرط و انجام دستور داخل شرط (break) از بدنه حلقه خارج میشود. سپس چون مقدار متغیر true است با شرط آخر برنامه مقدار Value found! در خروجی چاپ خواهد شد.
            int[] nums = new int[10]; 
            int val; 
            bool found = false; 
         
            for(int i = 0; i < 10; i++)  
              nums[i] = i; 
         
            val = 5; 
         
            foreach(int x in nums) { 
              if(x == val) { 
                found = true; 
                break; 
              } 
            } 
         
            if(found)  
              Console.WriteLine("Value found!"); 
        

        خروجی
        Value found!
        
      • خروجی روی تکست باکس-یا روی فرم چاپ شه




        int[,] matrix = new int[9,9];

        for (int col = 0; col < 9; col++)
        {
        for (int row = 0; row < 9; row++)
        {
        matrix[col, row] = (col + 1)*(row + 1);
        }
        }

        for (int col = 0; col < 9; col++)
        {
        for (int row = 0; row < 9; row++)
        {
        Console.Write(matrix[col, row] + "\t");
        }
        Console.WriteLine();
        }
      • سلام استاد.وقت بخیر
        در آرایه های نامنظم میشه از دو نوع داده مختلف برای هر گروه آرایه استفاده کرد؟

      • سلام، برای آرایه های نامنظم که هر خونه شامل یک نوع داده باشه شما باید آرایه رو از نوع object تعریف کنید:

        var objs = new object[10];
        objs[0] = new int[] { 4, 5, 7, 1 };
        objs[1] = new string[] { "Item1", "Item2" };
        
      • متشکرم استاد!

      برای ارسال نظر ابتدا به سایت وارد شوید