اثر پروانه ای

برنامه نویسی حرفه ای کامپیوتر به زبان سی شارپ - لیست کامل کلمات کلیدی در ʚĭɞ - ßữʈʨɾflỵ ⓔⓕⓕⓔⓒⓣ

اثر پروانه ای

برنامه نویسی حرفه ای کامپیوتر به زبان سی شارپ - لیست کامل کلمات کلیدی در ʚĭɞ - ßữʈʨɾflỵ ⓔⓕⓕⓔⓒⓣ

اثر پروانه ای

اثر پروانه‌ای نام پدیده‌ای است که به دلیل حساسیت سیستم‌های آشوب‌ناک به شرایط اولیه ایجاد می‌شود. این پدیده به این اشاره می‌کند که تغییری کوچک در یک سیستم آشوب‌ناک چون جو سیارهٔ زمین (مثلاً بال‌زدن پروانه) می‌تواند باعث تغییرات شدید (وقوع توفان در کشوری دیگر) در آینده شود.

ایده‌ٔ این‌که پروانه‌ای می‌تواند باعث تغییری آشوبی شود نخستین بار در ۱۹۵۲ در داستان کوتاهی به نام آوای تندر اثر ری بردبری مطرح شد. عبارت «اثر پروانه ای» هم در ۱۹۶۱ در پی مقاله‌ای از ادوارد لورنتس به وجود آمد. وی در صد و سی و نهمین اجلاس ای‌ای‌ای‌اس در سال ۱۹۷۲ مقاله‌ای با این عنوان ارائه داد که «آیا بال‌زدن پروانه‌ای در برزیل می‌تواند باعث ایجاد تندباد در تکزاس شود؟»

آخرین نظرات
  • ۱۳ بهمن ۰۱، ۱۵:۳۱ - حسنا سادات و سما سادات
    عالی
  • ۲
  • ۰

بسم الله الرحمن الرحیم

سلام...

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

متغیر های رشته ای یا string برای ذخیره سازی (موقت) یک متن بکار می روند. متغیرهای عددی ، از جمله int ، float ، byte و... برای ذخیره سازی اعداد مورد استفاده قرار می گیرند. اما نوشتن بعضی برنامه ها نیازمند تعداد زیادی متغیر است. برای مثال فرض کنید بخواهیم برنامه ای بنویسیم که نمرات یک دانشجو را گرفته و معدل او را محاسبه کند. یکی از راه حل ها می تواند این باشد که برای هر درس یک متغیر جداگانه بسازیم. بصورت زیر: (در کد زیر سعی کرده ام که روش های مختلف تعریف و مقدار دهی اولیه متغیرها رو نشان دهم)

float riazi=18.25f;
float fizik=16.5f,shimi,farsi=20.0f;
float miyangin=(riazi+fizik+shimi+farsi)/4;

برنامه محاسبه میانگین نمرات، یک برنامه با تعداد متغیرهای کم است. هرچند ما از بعضی دروس صرف نظر کردیم. اما تصور کنید بخواهید برنامه ای برای سرشماری یک شهر بزرگ را بنویسیم! که در آن نیاز به ذخیره اسم شهروندان داشته باشیم. چون می خواهیم بعدا تعداد افرادی را که نامشان "علی" هست را بفهمیم. از آن گذشته شاید بخواهیم نام ها را بر اساس حروف الفبا مرتب کنیم.

اینجاست که اگر بخواهیم برای هر شخص یک متغیر جداگانه بسازیم، باید تمام وقتمان را صرف تعریف متغیر مناسب برای هر شخص کنیم. اما راه بهتر و بسیار سریع تری هم وجود دارد. ما می توانیم یک لیست از متغیرها رو بسازیم و با استفاده از امکاناتی که زبان برنامه نویسی #C در اختیارمان قرار داده ، به تک تک خانه های لیست دسترسی داشته باشیم. فعلا به این لیست "آرایه" می گوییم.

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

string[] names=new string[100];

حالا یک آرایه به نام names داریم که دارای 100 خانه می باشد. این آرایه توانایی ذخیره سازی 100 رشته (متن) را در خود دارد. مهمترین کاری که با متغیرها انجام می دهیم، خواندن و نوشتن اطلاعات آنها است. خواندن و نوشتن اطلاعات در آرایه ها تفاوت زیادی با متغیرها ندارد؛ فقط باید همیشه شماره خانه آرایه را در هنگام خواند و نوشتن، مشخص کنیم. کد زیر نوشتن در آرایه را نشان می‌دهد:

names[5]="Ali";
names[0]="Mohammad";
names[99]="Mahdi";
names[100]="saeed"; //خطا - این خانه از آرایه وجود ندارد

میتوانیم در هنگام تعریف آرایه، آنرا مقداردهی هم بکنیم. به کد زیر دقت کنید که چگونه آرایه rates را مقداردهی اولیه می کند:

int rates=new int[5]{3,1,5,2,4};

خانه های 0 تا 5 آرایه rates به ترتیب مقادیر 3 ، 1 ، 5 ، 2 ، 4 به خود خواهند گرفت. حتی می توانیم آرایه را بصورت زیر هم تعریف کنیم. در این صورت تعداد خانه های آرایه بر حسب تعداد مقادیر موجود در آکولاد، تعیین خواهد شد:

byte myArray={10,36,158,220,18,110};

آرایه myArray دارای 6 خانه خواهد بود که مقادیر اولیه آن خانه ها مابین آکولاد ها بیان شده اند.

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

MessageBox.Show(names[5]+" "+names[0]);

آرایه ها رو می تونید از هر نوعی و با هر تعداد خانه ای بسازید. شماره خانه های آرایه از 0 شروع میشه. شما نمی تونید از خونه هایی که در محدوده طول آرایه نیستند استفاده کنید. در کد بالا یه توضیح فارسی می بینید. هرجا بخواهیم برای کدمون توضیح بنویسیم باید قبل توضیح دوتا اسلش (//) قرار بدیم. کامپایلر تمام متنی رو که بعد از // باشه رو نادیده می گیره. انگار نه انگار که نوشتین. اما این توضیحات فایده های زیادی داره...

خوب بریم سراغ حلقه for

حلقه for هم مثل حلقه while دستورهای داخل بلوک خودش رو تکرار میکنه. اما این حلقه یه سری امکانات رو در اختیارمون قرار میده که خیلی بدرد بخور هستن. شما در این حلقه یک متغیر شمارنده تعیین می کنید و بر اساس همین متغیر (یا حتی متغیری دیگر) تصمیم به خروج از حلقه می گیرید. ساختار کلی حلقه for بصورت زیر می باشد:

for(Initial-Expression;Conditional-Expression;Loop-Expression){
    Commands set
}

در پرانتز جلوی دستور for ، سه قسمت مجزا وجو دارد که با علامت ; از هم جدا شده اند. کار هر کدام از قسمت ها به شرح زیر است:

  • Initial-Expression : در این قسمت یک متغیر عددی ساخته و مقدار دهی می کنیم. این قسمت فقط یک بار در اولین دور حلقه اجرا می شود. بنابراین در اولین دور حلقه یک متغیر عددی ساختیم.
  • Conditional-Expression : در این قسمت یک عبارت شرطی می نویسم. در واقع این عبارت، شرط ادامه کار حلقه می باشد. اگر این عبارت برابر false شود، اجرای حلقه متوقف خواهد شد. معمولا در این بخش ، متغیری را که در قسمت قبل ساختیم با یک عدد دیگر مقایسه می کنیم. Condition-Expression اولین دستوری هست که در هر دور حلقه اجرا می شود. منظورم رو در عمل متوجه خواهید شد. نگران نباشید.
  • Loop-Expression : معمولا در این قسمت عبارتی نوشته می شود که مقدار متغیر تعریف شده در بخش Initial-Expression را تغییر دهد. در عمل ، Loop-Expression آخرین دستور اجرا شونده در هر دور حلقه است.

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

  • یک عدد TextBox . خاصیت Name آن را به txtAvg تغییر دهید.
  • یک عدد Label . خاصیت Text آن را به "میانگین" تغییر دهید.
  • یک دکمه.

شکل ظاهری برنامه:

فرمول ما برای محاسبه میانگین: مجموع نمرات، تقسیم بر تعداد نمرات. فرض کنید 10 درس بیشتر نداریم. برای دکمه (رویداد کلیک دکمه) برنامه زیر را بنویسید:

float[] marks = new float[10] { 15, 14, 18, 20, 8, 19.5f, 12.25f, 16, 16.75f, 20 };
float sum = 0;
float avg = 0;
for (int i = 0; i < 10; i++)
{
    sum = sum + marks[i];
}
avg = sum / 10;

txtAvg.Text = Convert.ToString(avg);

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

  • عبارت ++i در قسمت Loop-Expression حلقه for به معنای اضافه کردن عدد 1 به متغیر i است و با عبارت زیر تفاوت چندانی ندارد:
i=i+1;

  • هر متغیر فقط توانایی ذخیره کردن مقادیر همنوع خودش را دارد؛ مگر اینکه آن متغیر با روش هایی تبدیل نوع داده شود. شما فقط می توانید در خاصیت Text شیئ TextBox ، یک رشته ذخیره کنید. چون در واقع خاصیت Text یک متغیر رشته ای است. هر دو دستور زیر با هم برابر هستند. هر دوی آنها متغیر avg را به رشته تبدیل می کنند. این کار برای این است که بتوانیم مقدار متغیر avg را در داخل TextBox به نمایش در آوریم.
txtAvg.Text = Convert.ToString(avg);
txtAvg.Text = avg.ToString();

  • در هر دور حلقه for ، مقدار i ام آرایه marks با مقدار sum جمع می شود، سپس جواب در خود sum قرار می گیرد. همانطور که گفتم آخرین دستور در حلقه for همان Loop-Expression است، بنابراین در هر دور اجرای حلقه ، یکی به مقدار قبلی i اضافه می شود. همچنین قبل از اینکه دستورات داخل بلوک حلقه اجرا شوند، درستی عبارت شرطی بررسی می شود؛ اگر این عبارت برابر با false شود، از حلقه خارج خواهیم شد و دستور های بعد از بلوک حلقه اجرا می شوند.

خدا قوت دوستان :)

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

نظرات (۳۲)

سلام وقت بخیر من تازه سی شارپ رو شروع کردم و میخوام یه برنامه بنویسم که اسم و فامیل و رو بگیره و با کلیک انو چاپ کنه کد هم نوشتم ارور هم نمیده ولی نمیدونم چرا چاپ نمیکنه 

پاسخ:
سلام. باید برنامه تون رو ببینم
خواهش میکنم هرچه زودتر جوابما بدین پروژه درس کامپایلرمه یکم پیش هم یه پیام دیگه فرستاده بودم این برنامه ایه که نوشتم خواهشا کمک کنید 
//Program Code
        private void button1_Click(object sender, EventArgs e)
        {
            str = new Type [20];
            for (int i=0 ; i<str[20] ; i++)
            {
                if(str = a)
                {
                  MessageBox.Show("id");
                }
                else 
                if(str == "if" || str == "for" || str == "int" || str == "double" || str == "float")
                {
                     MessageBox.Show(str);
                }
                else if (str[i] = 0)
                        MessageBox.Show("num");
                  
                  }
                }   
                else if(str = +|| str = - || str = * || str = /)
               {
                MessageBox.Show(str);
               }
سلام خسته نباشید.من میخوام برنامه ای بنویسم که گفته شده "رشته ای را از ورودی دریافت کن و توکن های آن را تشخیص بده.میخوام برنامم تو محیطwindow form application3باشه من میدونم که برای  وقتی که داده  ورودی int هست به صورت زیر برنامه اش را مینویسیم میخوام بدونم در حالتی که رشته هم هست میشه اینطوری نوشت؟بی زحمت بگین چه جوری؟؟
int a;
a= int.parse(textbox1.text);
قطعه کدی بنویسید که رو دکمه اول کلیک کنیم ک دکمه بالا اوپین باز بشه محتوایاتشو تو تکس با‌کس نشون بده 
دکمه دو هر چی تغییر کرد سیو کنه 
دکمه سوم هر چی a داشتیم تعداشو تو لیبل نشون بده
با زبانه سی شارپ
لطفا کمک کنید همین الان
پاسخ:
سلام
ما اینجا برای کسی کد نمی نویسیم
اما اگر قسمتی از کدی که خودتون نوشتید، مشکل داشته باشه، کمک می کنیم تا مشکلش حل بشه

با تشکر
سلام من یک دکمه دارم که با کلیک روش یک فرم جدید باز میشه و یه عدد رو باید در این قسمت انتخاب کرد تا ست بشه 
میخوام وقتی یه عدد رو انتخاب کردم و از فرم خارج شدم اون عدد در یک label روی فرم اصلی نمایش داده بشه.میشه کمکم کنید که چیکار باید انجام بدم؟؟؟
پاسخ:
سلام
یک کلاس بسازید، و یک متغیر استاتیک در اون تعریف کنید. سپس از داخل فرم فرعی، اون متغیر رو مقدار دهی کنید. حالا می تونید از داخل فرم اصلی، به اون متغیر استاتیک دسترسی داشته باشید و از مقداری که در اون ذخیره کردین استفاده کنید.
سلام.
 میخواستم در سی شارپ با هربارکلیک کردن روی دکمه ی باتن مقدار 10تا به lable اضافه شود.چگونه باید این کار را انجام بدم؟
پاسخ:
سلام
باید یک متغیر بصورت سراسری تعریف کنید و با هر بار کلیک بر روی دکمه، مقدار اون متغیر رو افزایش دهید؛ سپس مقدار متغیر رو بعد از اینکه به رشته تبدیل کردین، در label نمایش بدین.

با سلام
میخواستم بدونم در یک textboxچه کدی بنیویسم تا فقط عدد  بگیره حروف الفبایی نگیره؟
با تشکر
پاسخ:
سلام
باید در رویداد keyup یا keyDown مربوط به textBox شرطی بگذارید که در صورتی که کلید زده شده، عدد باشد، مقدار آن عدد در textBox قرار بگیرد.
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    e.Handled = !char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar) && e.KeyChar!='-' && e.KeyChar!='.';
}

سلام .چطور می تونم در محیط ویژوال استدیو در یک تکست باکس هم صورت سوال و هم جواب رو داشته باشم مثال :22=10+11

من یک برنامه میخوام بنویسم که وقتی یک فرمول رو به عنوان ورودی بهش بدی فرمول رو چک کنه و هرجا پرانتز اضافه داخل فرمول بود حذف کنه و هرجا پرانتز ضروری بود رو به فرمول اضافه کنه به عنوان مثال 1. (A+(B + C))*D^F ((A+B+C)*D)^F 2. ( (A) –( (B)) ) A-B 3. A-(B+C) ^H*k +A-B (A-(B+C))^((H*k) +A-B)
پاسخ:
بلد نیستم
سلام.میخام ی دکمه طراحی کنم که شش عدد از تکس باکس بگیره واسه ایکس و وای های سه گوش و با کلیک رو دکمه سه گوش رسم کند و بعد دو عدد دیگه بخونه و روی یه دکمه دیگه کلیک کنیم به مقدار دو عدد خوانده مثلث رو حرکت بده .یعنی به ایکس و وای های سع گوش اضافه کنه.امیدوارم منظورم رو رسونده باشم.لطفا راهنماییم کنید.تشکر
پاسخ:
سلام
ببخشید فعلا فرصت ندارم
سلام من یک برنامه مثل یک فرهنگ لغت داخل فرم درست کردم حالا میخوام که یه باتون به اون اضافه کنم که اگر یک حرفی را اضافه وارد کردند را پاک کند حتما آخرین کلمه را پاک کند از شما میخوام که کمکم کنید ممنون
پاسخ:
سلام
if (textBox1.Text.Length>0)
{
    textBox1.Text = textBox1.Text.Remove(textBox1.Text.Length - 1);
}



سلام خسته نباشین
من اولین باره دارم بامحیط سی شارپ کار میکنم یک برنامه بازی سه دارو(بازی دوز) نوشتم برای پروژ پایان ترمم ولی وقتی اجراش میکنم اجرا نمیشه هیچ خطایم نمیده چطوری در چطوری درچه قسمت از کد دستور
returnاستفاده کنم ؟؟؟
خواهشا راهنماییم کنید

//Program Code




private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
ary[i, j] = 0;


}
int [,] ary = new int[3, 3];
int ap = 1;
void sp()
{
if (ap == 1)
{
ap = 2;

label2.Text="بازیکنz";
}

else if (ap == 2)
{
ap = 1;

label2.Text="بازیکنx";
}


}

void add (Button bt1, int a, int x, int y)
{
if (ary[x, y] == a)
{
ary[x, y] = a;
if (a == 1)
bt1.Text = "x";

else if (a == 2)
bt1.Text = "z";
sp();

}
}


پاسخ:
سلام.
پروژه کامل رو بصورت فایل zip برام ارسال کنید. تا بررسی کنم.

با تشکر

سلام.چطور چند عدد رو در یک تکست باکس ذخیره کنم.(هر دفعه یک مقدار بگیره )مثل یه ماشین حساب که یک تکست باکس داره ومیشه چند عدد را  بگیره و روی اعداد عملیات را انجام بده.

با تشکر.

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

int a = 1259;
int tul = a.ToString().Length;
سلام 
در vb میخواستم یک textbox قرار بدم و با هر کلیک روی commandbutton
یک رقم یک رقم به textbox اضافه شود 
اگه راهنمایی کنید ممنون میشم 
پاسخ:
سلام
برای دکمه مورد نظر، کد زیر را بنویسید:
Dim s as String = textbox1.Text
Dim v as Integer= Convert.ToInt32(s)
v=v+1
textbox1.Text=v.ToString
موفق باشید
یاعلی
سلام خسته نباشین میخواستم برنامه ای بنویسم که چند ورودی از نوع رشته هر بار از تکست باکس بگیره و در لیست باکس نشون بده البته در آرایه ذخیره بشه فکر کنم از حلقه استفاده میشه نمیدونم اگه لطف کنید راهنمائی کنید ممنون میشم.
پاسخ:
سلام.
من نمی دونم جواب این سوال رو چطور به دستتون برسونم؛ اما امیدوارم خودتون دوبار به سایت سر بزنید و جواب رو مطالعه بفرمائید...
نیازی به حلقه و یا حتی آرایه ندارید!
یه تکست‌باکس و یه لیست‌باکس و یه دکمه روی فرمتون قرار بدید، بعد برای رویداد کلیک دکمه (روی دکمه دابل‌کلیک کنید)، این کد رو بنویسید:
listBox1.Items.Add(textBox1.Text);
همین. دیگه هیچ کدی نیاز ندارید! الآن هر چیزی که به لیست‌باکس اضافه میشه، در یک آرایه‌ای ذخیره می‌شه. برای دسترسی به آرایه می تونید به روش زیر عمل کنید:
textBox1.Text = listBox1.Items[3].ToString();
تمام مواردی که به لیست‌باکس اضافه کرده‌اید در آرایه Items ذخیره می‌شوند. شما می‌توانید اندیس موردی را که هم‌اکنون انتخاب شده را بدست آورید. به کد زیر دقت کنید:
textBox1.Text = listBox1.Items[listBox1.SelectedIndex].ToString();

اگه بازم سوالی داشتید بپرسید. فقط ایمیلتون رو حتما بنویسید تا بتونم جواب سوال رو براتون ارسال کنم.

موفق باشید
یاعلی
mercccccccccc  babate  dokme insert ke goftidddddddd
 چطور میشه اطلاعات ازچند تا textboxتوی فرم1روبا یک دکمه به یک datagridview توی فرم 2 انتقال داد؟
پاسخ:
سلام
یک کلاس به پروژه خودتون اضافه کنید و یک متغیر public static در آن ایجاد کنید. این کلاس و متغیرهای آن در هرجای برنامه شما قابل دستیابی هست. پس با خیال راحت، در فرم اول متغیر را مقدار دهی کنید و در فرم دوم از مقدار داخل متغیر استفاده کنید.
البته راه های زیادی برای اینکار وجود داره که یکی از ساده ترین اون راه ها همین هست. اصطلاحا به این روش متغیر محیطی یا Environment Variable می‌گویند.

موفق باشید
یاعلی
سلام من میخوام دو تا عدد در یک خط از ورودی بخونم به شکل زیر 

//Program Code
int ras = Convert.ToInt16(Console.Read());
int yal = Convert.ToInt16(Console.ReadLine());

ولی عدد اول رو مثلا 4 وارد میکنم تبدیل میشه به 52
چرا ؟
من میخوام ورودیم توی یه خط باشه چکار کنم؟

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

برای این کار باید کمی از ترفند استفاده کنیم :
string[] s = Console.ReadLine().Split(new char[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries);
int a, b;
int.TryParse(s[0], out a);
int.TryParse(s[1], out b);

Console.WriteLine("A x B = " + (a * b).ToString());
خط اول: یک خط از ورودی می خواند، سپس هرجای این خط، به کاراکترهای فاصله و Tab برسد، آنرا شکسته و  به آرایه رشته ای اضافه می کند. در حالت عادی، اگر چند کاراکتر جداکننده (در اینجا فاصله و Tab) را بصورت متوالی داشته باشیم، رشته های خالی، به آرایه افزوده خواهد شد، اما آرگومان StringSplitOptions.RemoveEmptyEntries از این اتفاق جلوگیری می کند؛ یعنی دیگر مهم نیست که چه تعداد از این کاراکترها را در ورودی وارد کرده باشیم.

این تکه کد به همان روشی که خواسته بودید، اعداد (یا هر چیز دیگری) را از ورودی دریافت می‌کند، سپس آنها را به عدد واقعی تبدیل کرده (درصورت امکان) و درنهایت آنها در هم ضرب کرده و نمایش خواهد داد.

موفق باشید
یاعلی

//Program Code.

int x, s = 0,z;


for (x = 100; x < 1000; x++)
{

while (x > 0)
{
z = x % 10;
s = s * 10 + z;
x = x / 10;
}
if (x==s)
listBox1.Items.Add(x);}
میخوام تمام اعداد متقارن سه رقمی داخل لیست باکس چاپ بشه .
اما وقتی اجرا میکنم و کلیک میکنم
هنگ میکنه و هیچ عملی انجام نمیده
پاسخ:
سلام.
من این سوال شما رو به این شکل حل کردم:
int yekan, sadgan;
for (int i = 100; i < 1000; i++)
{
    yekan = i % 10;
    sadgan = i / 100;

    if (yekan==sadgan)
    {
        listBox1.Items.Add(i);
    }
}

سلام میشه بگید چطوری میتونم در محیط  Console Application یک کادر ایجاد کنم و در اون کادر چیزی بنوبسم؟؟؟
و یه سوال دیگه اینکه چطوری میتونم با استفاده از علامت * چیزی رو بنویسم؟؟؟
پاسخ:
سلام.
یکسری کاراکترها هستند که اگر آنها را در کنار هم قرار دهید، می توانید شکل کادر را بوجود بیاورید. به کادر زیر دقت کنید.
┌──────────────────┐
│ www.BFly.ir │
└───────────────┘
اگر بخواهید با استفاده از علامت ستاره یا هر علامت دیگری، چیزی رو بنویسید، می توانید از الگوریتم های مختلفی استفاده کنید. یکی از این الگوریتم ها به اینصورت هست که شما باید برای هر کدام از حروف الفبا یک آرایه 2 بعدی بسازید، سپس بصورت دستی (در هنگام کد نویسی و بصورت ثابت) آرایه‌ها را مقدار دهی کنید. مثلا اگر بخواهیم کاراکتر A را بسازیم، بصورت زیر عمل می‌کنیم. دقت داشته باشید که تعداد سطرهای آرایه‌ها برای تمام کاراکترها یکسان باشد.
string[,] A={
             {" ", " ", " ", "*", " ", " "},
             {" ", " ", "*", " ", "*", " "},
             {" ", "*", " ", " ", " ", "*"},
             {" ", "*", " ", " ", " ", "*"},
             {" ", "*", "*", "*", "*", "*"},
             {" ", "*", " ", " ", " ", "*"},
             {" ", "*", " ", " ", " ", "*"},
             {" ", "*", " ", " ", " ", "*"},
};
برای نوشتن با این حروف، باید یک کلمه را از کاربر دریافت کنید، سپس، سطر اول تک‌تک حروف را چاپ کنید، بعد سطر دوم، بعد سطر سوم تمام حروف و...

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

موفق باشید
با عرض سلام و خسته نباشید کد جستجوی ارایه در textbox رو میخواستم
پاسخ:
سلام
با عرض پوزش؛ منظورتون رو متوجه نشدم.

private void button3_Click(object sender, EventArgs e)

{

int sum = 0;

Form2 ob=new Form2();

for (int i = 0; i < ob.listBox1.Items.Count; i++)

{

 

سلام میشه خطای برنامه رو بگیرید اعداد داخل لیست باکس فرم 2 رو میخوام جمع کنم و در تکس باکس فرم 1 نشون بدم

int a = Convert.ToInt32(ob.listBox1.Items[i]);

sum += a;

}

textBox1.Text = sum.ToString();

}

پاسخ:
سلام.
متأسفانه فعلا بدلیل مشغله زیاد، نمی تونم پاسخ جامعی رو ارائه کنم. از این بابت عذرخواهی می‌کنم.

این برنامه دارای یک خطای منطقی هست. شما وقتی فرم رو نمونه سازی می‌کنید، تمای اشیاء داخل آن هم با مقادیر پیش فرض مقداردهی خواهند شد. مگر اینکه تابع سازنده فرم رو دوباره‌نویسی (Override) کنید و از طریق ورودی هایی که برای تابع سازنده تعیین می‌کنید، مقادیر مورد نظر را دریافت کرده و در اشیاء موجود در فرم قرار دهید...
اما یک راه دیگه هم هست که بنده پیشنهاد می‌کنم:
در قسمت Solution Explorer ، یک کلاس به پروژه اضافه کنید. متغیرهایی رو که می خواهید در فرم‌ها بصورت مشترک استفاده کنید را در آن کلاس، بصورت public ، تعریف کنید. حالا در هرجایی از برنامه که باشید، می تونید از اون متغیرها استفاده کنید.

موفق باشید
یاعلی

سلام :با تشکر از وبلاگ با محتوایی که دارید.

من در نوشتن آرایه دچار مشکل شدم.من برنامه زیر رو از شما می خوام:

برنامه ای بنویسید که 10 عدد از ورودی گرفته ودر آرایه ذخیره کند سپس عددی مانند X از ورودی گفته در آرایه جستجو کند؟

من نمی دونم کجا ی فرمم این برنامه رو بنویسم یا اینکه رو فرمم چه بزارم؟

خواهش می کنم کمکم کنید .این سوال امتحان منه .

ممنون

 

 

پاسخ:
سلام. متشکرم، لطف دارید.
شاید این برنامه رو در محیط Console Application راحت تر بشه نوشت. به این دلیل که شما رو درگیر فرم و کنترل ها و مدیریت رویداد ها نمی کنه.
اما اینطور که از سوالتون متوجه شدم می خواهید از ویندوز اپلیکیشن استفاده کنید.
خوب...
برنامه یک آرایه 10 خانه ای برای ذخیره سازی اعداد، داره بنابراین:
public float[] a = new float[10];
اعداد رو در آرایه a ذخیره می کنیم. دقت کنید که آرایه باید بصورتی تعریف شود که قابل دسترسی از طریق دیگر اجزای برنامه باشد (بصورت سراسری).
اما برای اینکه بتونیم از کاربر اعداد رو دریافت کنیم، نیاز به یک TextBox و یک Button داریم. کاربر، عدد را در TextBox وارد خواهد کرد، سپس روی دکمه کلیک خواهد کرد، تا عدد به آرایه اضافه شود. یعنی کد اضافه کردن عدد به آرایه رو باید توی اون دکمه بنویسیم.
برای جستجو، می تونیم از همون TextBox قبلی استفاده کنیم و کد مربوط به جستجو رو در یک دکمه دیگه بنویسیم. بنابراین به یک Button دیگه نیاز داریم. بسته به سلیقه برنامه نویس، به یک TextBox دیگه هم نیاز داریم.
سلام
من یک List Box دارم که مقداری عدد داخل اون قرار داره میخوام با زدن یک Button تمام اعدا لیست باکس رو با هم جمع کنه و در Text box بهم نشون بده ممنون می شم اگه راهنماییم کنید

اینم کدیه که استفاده کردم ولی فقط Index ها رو بهم نشون میده

double sum = 0;
for (int i = 0; i < lstPricefood.Items.Count; i++)
{
sum += lstPricefood.Items.IndexOf(i);
txtTootlaFoodPrice.Text = sum.ToString();
}

پاسخ:
سلام.
کدی که نوشتین رو بصورت زیر تغییر دهید.
double sum = 0;
for (int i = 0; i < lstPricefood.Items.Count; i++)
{
sum += double.Parse((string)lstPricefood.Items[i]);
} txtTootlaFoodPrice.Text = sum.ToString();
سلام
خیلی متشکرم از راهنماییتون ،یه مشکل کوچیک پیش اومده نمیدونم چی شد موقعی روی یک کنترل دبل کلیک می کنم تا وارد قسمت کدنویسی شوم نشانگر چشمک زن موس را ضخیم نشان می دهد!
با تشکر
پاسخ:
سلام.
یک بار دکمه Ins یا Insert صفحه کلیدتون رو بزنید.
به احتمال زیاد مشکل حل خواهد شد.
با سلام وخدا قوت
اگر بخواهیم برنامه ی محاسبه میانگین نمرات مثلا 60 نفر را بنویسیم وبخواهیم نمرات آنها را در هنگام اجرای برنامه از کاربر بگیریم بایستی به چه صورت کد نویسی کنیم؟
شاید باید به اندازه تعداد نمراتی که قرار است میانگین آنها گرفته شود تکست باکس داشته باشیم  واز اون طریق عمل کنیم یا.......نمیدونم .  
ممنون میشم اگر راهنمایی بفرمایید.
با سپاس فراوان
پاسخ:
سلام دوست عزیز...
برای نوشتن چنین برنامه ای، تنها یک عدد TextBox کافی به نظر می رسد. البته تأکید می کنم، شما به روشی که بنده در پیش گرفته ام اکتفا نکنید. شاید روش های بهتری هم وجود داشته باشد. سعی کنید خودتون این روش ها رو پیدا کنید.
بله... همونطوری که گفتم با یک TextBox می توان این برنامه رو نوشت. به اینصورت که یک دکمه در کنار TextBox قرار می دهیم و کاری می کنیم که با هر بار فشرده شدن دکمه توسط کاربر، عدد موجود در TextBox با متغیر Sum (این متغیر را خودمان می سازیم. البته باید این متغیر بصورت عمومی تعریف شده باشد) جمع شود.
همچنین به یک متغیر دیگر (مثلا متغیر Count) هم نیاز داریم تا تعداد اعداد وارد شده را شمارش کند. بعدا برای محاسبه میانگین نمرات، به این متغیر که نشان دهنده تعداد نمرات (اعداد وارد شده) هست، نیاز خواهیم داشت.
من روی فرم برنامه موارد زیر را قرار دادم:
  • یک عدد TextBox
  • یک عدد Button
  • یک عدد Label
روی دکمه (Button) دابل کلیک کنید و کدی شبیه کد زیر را بنویسید.
public double Sum = 0;
public int Count = 0;
private void button1_Click(object sender, EventArgs e)
{
    Sum = Sum + double.Parse(textBox1.Text);
    Count = Count + 1;

    label1.Text = (Sum / Count).ToString();
}
برای دانلود سورس این برنامه، و همچنین اگر سوالی در مورد این برنامه دارید، به اینجا مراجعه کنید.
موفق باشید.
سلام. میشه تکه کدی بنویسیم که با زدن دکمه باتن به شمارنده در تکس باکس 1 عدد اضافه بشه؟ ممنون میشم اگه اموزش بدید
پاسخ:
سلام.
مقدمات نوشتن این برنامه:
  1. تبدیل عدد به رشته (متن) و برعکس
  2. طرز کار TextBox و چگونگی قرار دادن متن در آن
پیشنهاد می کنم سلسله دروس برنامه نویسی مقدماتی سی شارپ رو که در همین وبلاگ موجود هست رو دنبال بفرمائید.
قبل از هرچیز باید خاصیت Text مربوط به TextBox رو تغییر دهید. البته بدون برنامه نویسی. یعنی در محیط طراحی برنامه.
سپس برای رویداد کلیک دکمه، برنامه زیر را می نویسیم:
int a = int.Parse(textBox1.Text);
a = a + 1;
textBox1.Text = a.ToString();
  1. خط اول: رشته عددی موجود در TextBox را به عدد تبدیل کرده و در متغیر نوع صحیح a ذخیره می کند.
  2. خط دوم: یک واحد به a اضافه می کند.
  3. خط سوم: مقدار موجود در متغیر a را به رشته عددی تبدیل کرده و در TextBox ذخیره می کند.
من برنامه مورد نظر شما رو نوشته ام که می تونید از لینک زیر دانلود کنید:

موفق باشید
  • سارا حسابی
  • منظورم اینه که تو سی شارپ کلاس تعریف کنیم
    پاسخ:
    آهان...
    بزودی آموزش ها رو توی بلاگ قرار میدم.
    برای ساختن Class در سی شارپ دو راه وجود داره:
    1. در قسمت Solution Explorer (اگه نمی بینیدش ، دکمه Ctrl+Alt+L رو بزنید) راست کلیک کرده و از قسمت Add ، گزینه Class رو انتخاب کنید.
    2. قبل از public partial class Form1 : Form کد زیر را بنویسید:
    public class MyTestingClass{
    
    }
    البته پیشنهاد من انتخاب راه اول هست.
  • سارا حسابی
  • سلام خیلی ممنون از آموزش هاتون .خیلی مونده برسیم به شی گرایی؟یه کلاس درست کنیم؟
    پاسخ:
    سلام...
    نه فکر نکنم بیشتر از 3 چهار جلسه دیگه باشه!
    البته به نظر من شیئ گرایی خیلی آسونه. مخصوصا برای کسانی که قبلا تجربه برنامه نویسی داشتن. حتی میشه اونو توی 2 سه جلسه آموزش داد...
    کجا یه کلاس درست کنیم؟
  • رندخرابات
  • همیشه نمیدونم چرا دفه ی اول اجرا نمیشه..دوبار باید بنویسم!
    ولی خوب بود..
    یه سوال..
    txtAvg.Text = Convert.ToString(avg);
    این کد برای چیه؟
    پاسخ:
    سلام
    همونطور که گفتم، ما اجازه نداریم یک عدد رو در متغیر رشته ای ذخیره کنیم. همچنین نمی تونیم یک رشته رو در متغیر عددی ذخیره کنیم. avg عدد هست و نمی تونه داخل txtAvg.Text که از نوع رشته ای هست ذخیره بشه. ما با این دستور avg رو تبدیل به رشته می کنیم. به مثال های زیر دقت کنید:
    این ها همه رشته هستند:
    • "Ali"
    • "123"
    • "45.71"
    • "Saeed14"
    این ها همگی عدد هستند:
    • 20
    • 12-
    • 126.34f
    اگر بخواهیم عدد 19.34f رو در یک TextBox به نمایش در بیاریم باید این عدد رو به "19.34" تبدیل کنیم. کار این دستور همینه. تبدیل عدد میانگین به رشته میانگین.
    لطفا اگه باز هم ابهامی وجود داره بپرسید. چون ممکنه سوال خیلی ها باشه.
    ممنون که پرسیدید.

    ارسال نظر

    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی