رفتن به مطلب

رفع اشکال در#C


دختر باران

ارسال های توصیه شده

ffkdn nv foa ,dkn,c tvl la;gd knhvi , ;n alh nvsj isja

lk j, foa ;ks,g la;g nhvl ;i l,ru

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

من تو بخش کنسول مشکل دارم که موقع ورود به شرط if ایراد میگیره.

الان هم درست هستش منتها میخوام بدون استفاده از goto انجامش بدم

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

فک کنم باید داخل شرط ایفم یه convert.tostring قبل از int بذارم

شما هم که num رو از نوع string گرفتین که و با exit مقایسه کردین :ws52:

 

این برنامه رو طبق برنامه شما نوشتم، سعی می کنم تو محیط کنسول تست کنم، نتیجه رو بهتون بگم، البته اگه بتونم چون هیچوقت کنسول کار نکردم:whistle:

لینک به دیدگاه
  • پاسخ 111
  • ایجاد شد
  • آخرین پاسخ

بهترین ارسال کنندگان این موضوع

بهترین ارسال کنندگان این موضوع

ffkdn nv foa ,dkn,c tvl la;gd knhvi , ;n alh nvsj isja

lk j, foa ;ks,g la;g nhvl ;i l,ru

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

من تو بخش کنسول مشکل دارم که موقع ورود به شرط if ایراد میگیره.

الان هم درست هستش منتها میخوام بدون استفاده از goto انجامش بدم

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

فک کنم باید داخل شرط ایفم یه convert.tostring قبل از int بذارم

آقا ناصر کد زیر رو ببینید، منظورم چنین چیزیه، این کد اجرا میشه و وقتی exit بزنیم، فاکتوریل حساب نمیکنه ولی نمی دونم باید چه کدی باشه که کلا از برنامه خارج شد(مثل کاری که this.close در فرم اپلیکیشن انجام میده)

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه
ffkdn nv foa ,dkn,c tvl la;gd knhvi , ;n alh nvsj isja

lk j, foa ;ks,g la;g nhvl ;i l,ru

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

من تو بخش کنسول مشکل دارم که موقع ورود به شرط if ایراد میگیره.

الان هم درست هستش منتها میخوام بدون استفاده از goto انجامش بدم

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

فک کنم باید داخل شرط ایفم یه convert.tostring قبل از int بذارم

 

سلام آقا ناصر

این رو از ویکی پدیا آوردم که بخونی...استفاده از goto الان منسوخه چون موجب اسپاگتی شدن کد میشه:

در دهه ۱۹۶۰ میلادی

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
دچار مشکلات عدیده‌ای شد. در آن زمان سبک خاصی برای
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
وجود نداشت و برنامه‌ها بدون هیچگونه ساختار خاصی نوشته می‌شدند. وجود
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
(goto) نیز مشکلات بسیاری را برای فهم و درک برنامه توسط افراد دیگر ایجاد می‌کرد، چرا که جریان اجرای برنامه مرتباً دچار تغییر جهت شده و دنبال کردن آن دشوار می‌گردید؛ لذا نوشتن برنامه‌ها عملی بسیار زمان بر و پرهزینه شده بود و معمولاً اشکال زدایی، اعمال تغییرات و گسترش برنامه‌ها بسیار مشکل بود. فعالیت‌های پژوهشی در این دهه باعث بوجود آمدن سبک جدیدی از برنامه نویسی بنام
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
گردید؛ روش منظمی که باعث ایجاد برنامه‌هایی کاملاً واضح و خوانا گردید که
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
و
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
آنها نیز بسیار ساده‌تر بود.

اصلی‌ترین نکته در این روش عدم استفاده از دستور پرش (goto) است. تحقیقات

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
و
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
نشان داد که می‌توان هر برنامه‌ای را بدون دستور پرش و فقط با استفاده از ۳
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
،
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
و
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
نوشت.

ساختار ترتیب، همان اجرای دستورات بصورت متوالی (یکی پس از دیگری) است که کلیه زبان‌های برنامه نویسی در حالت عادی بهمان صورت عمل می‌کنند.

ساختار انتخاب به

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
اجازه می‌دهد که براساس درستی یا نادرستی یک شرط، تصمیم بگیرد کدام مجموعه از دستورات اجرا شود.

ساختار تکرار نیز به برنامه نویسان اجازه می‌دهد مجموعه خاصی از دستورات را تا زمانیکه شرط خاصی برقرار باشد، تکرار نماید.

هر برنامه ساخت‌یافته از تعدادی

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
تشکیل می‌شود که این بلوک‌ها به ترتیب اجرا می‌شوند تا برنامه خاتمه یابد (ساختار ترتیب). هر بلوک می‌تواند یک دستور ساده مانند خواندن، نوشتن یا تخصیص مقدار به یک متغیر باشد و یا اینکه شامل دستورهایی باشد که یکی از ۳ ساختار فوق را پیاده‌سازی کنند. نکته مهم اینجاست که درمورد دستورات داخل هر بلوک نیز همین قوانین برقرار است و این دستورات می‌توانند از تعدادی بلوک به شرح فوق ایجاد شوند و تشکیل ساختارهایی مانند حلقه‌های تودرتو را دهند.

نکته مهم اینجاست که طبق قوانین فوق یک حلقه تکرار یا بطور کامل داخل حلقه تکرار دیگر است و یا بطور کامل خارج آن قرار می‌گیرد و هیچگاه حلقه‌های روی هم افتاده نخواهیم داشت.

 

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

لینک به دیدگاه
شما هم که num رو از نوع string گرفتین که و با exit مقایسه کردین :ws52:

 

این برنامه رو طبق برنامه شما نوشتم، سعی می کنم تو محیط کنسول تست کنم، نتیجه رو بهتون بگم، البته اگه بتونم چون هیچوقت کنسول کار نکردم:whistle:

خب مجبور شدم علاوه بر number یه نام هم جدا تعریف کنم

تا بتونم نام رو به استرینگ تبدیل کنم و وارد if کنم

لینک به دیدگاه
آقا ناصر کد زیر رو ببینید، منظورم چنین چیزیه، این کد اجرا میشه و وقتی exit بزنیم، فاکتوریل حساب نمیکنه ولی نمی دونم باید چه کدی باشه که کلا از برنامه خارج شد(مثل کاری که this.close در فرم اپلیکیشن انجام میده)

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

تست میکنم ببینم چجوریه

مرسی

سلام آقا ناصر

این رو از ویکی پدیا آوردم که بخونی...استفاده از goto الان منسوخه چون موجب اسپاگتی شدن کد میشه:

 

 

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

به به یاسر عزیز

آره منم به همون خاطر تو پست هام گفتم نمیخوام از گونو goto استفاده کنم چون منم خوندم که بجز در دستور case کارایی goto رد شده و منسوخ شده البته خیلیا هستن هنوزم باهاش کار میکنن ولی خب گفتم بر اساس استاندارد ها پیش برم

مرسی داداش

به نظرم میشه از break هم استفاده کرد و اگر شرط مثبت باشه از حلقه بیاد بیرون

لینک به دیدگاه
این برنامه بهتر شد :w16:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

این درسته و بدون goto هستش

به نظرم از حلقه فور بینهایت استفاده کردن نتیجه بهتری میده که تو همینکارو کردی

لینک به دیدگاه
خب مجبور شدم علاوه بر number یه نام هم جدا تعریف کنم

تا بتونم نام رو به استرینگ تبدیل کنم و وارد if کنم

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

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

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

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

ممنون استاد

خیر از جوونیت ببینی:ws3:

لینک به دیدگاه
  • 2 هفته بعد...

استاد مسئله تن:|

 

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

یعنی با موس روی button کلیک نکنم و اینتر بزنم خودش بفهمه منظورم اینه اجرا بشه:|

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه
استاد مسئله تن:|

 

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

یعنی با موس روی button کلیک نکنم و اینتر بزنم خودش بفهمه منظورم اینه اجرا بشه:|

:vahidrk: این واسه کلمه استاد :ws3:

 

راحت ترین کار اینه که tab index دکمه ایی که مدنظرتونه رو 0 بذارین، اینجوری موقع اجرا، دکمه در حالت انتخابه و راحت با زدن اینتر، دکمه کلیک میشه :w16:

لینک به دیدگاه
:vahidrk: این واسه کلمه استاد :ws3:

 

راحت ترین کار اینه که tab index دکمه ایی که مدنظرتونه رو 0 بذارین، اینجوری موقع اجرا، دکمه در حالت انتخابه و راحت با زدن اینتر، دکمه کلیک میشه :w16:

مرسی استاد

ولی نمیشهhanghead.gif

tab index روی 0 قرار داره اما وقتی میشه از اینتر استقاده کرد که دکمه button فعال باشه

ولی وقتی عدد یا نوشته ای رو در بخش textbox مینویسم دیگه با اینتر button عمل نمیکنه

میخوام یه جوری بهش بفهمونم در هر شرایطی اینتر زدم منظور button هستش:sigh:

لینک به دیدگاه
مرسی استاد

ولی نمیشهhanghead.gif

tab index روی 0 قرار داره اما وقتی میشه از اینتر استقاده کرد که دکمه button فعال باشه

ولی وقتی عدد یا نوشته ای رو در بخش textbox مینویسم دیگه با اینتر button عمل نمیکنه

میخوام یه جوری بهش بفهمونم در هر شرایطی اینتر زدم منظور button هستش:sigh:

:banel_smiley_4::banel_smiley_4::banel_smiley_4:

 

آهااا ببخشید، اصلن جوابم بدون فکر بود :icon_pf (34):

 

طی سرچ های ناقص و البته امتحان روشهای مختلف، به این نتیجه رسیدم که باید در رویداد keydown هر textbox یا هر ابزاری که استفاده می کنین، کد زیر رو بنویسید. اینجوری بهش میگین که به محض اینکه کلید enter زده شد، رویداد کلیک button فراخوانی بشه.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

البته این روش، تقریبا من درآوردی منه :ws3: و عیبش اینه که باید واسه هر ابزاری که استفاده می کنیم، باید این کد رو در رویداد keydown بنویسیم.

مطمئنا روش بهتری هم هست که تنبلی اجازه سرچ نمیده :ws3:

 

 

اینم یه پروژه با دو تا textbox و یک button

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

پ. ن: فایل اجرایی قرار میدین، اونوقت نمیگین من چطوری کد تغییر بدمw58.gif

لینک به دیدگاه
:banel_smiley_4::banel_smiley_4::banel_smiley_4:

 

آهااا ببخشید، اصلن جوابم بدون فکر بود :icon_pf (34):

 

طی سرچ های ناقص و البته امتحان روشهای مختلف، به این نتیجه رسیدم که باید در رویداد keydown هر textbox یا هر ابزاری که استفاده می کنین، کد زیر رو بنویسید. اینجوری بهش میگین که به محض اینکه کلید enter زده شد، رویداد کلیک button فراخوانی بشه.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

البته این روش، تقریبا من درآوردی منه :ws3: و عیبش اینه که باید واسه هر ابزاری که استفاده می کنیم، باید این کد رو در رویداد keydown بنویسیم.

مطمئنا روش بهتری هم هست که تنبلی اجازه سرچ نمیده :ws3:

 

 

اینم یه پروژه با دو تا textbox و یک button

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

پ. ن: فایل اجرایی قرار میدین، اونوقت نمیگین من چطوری کد تغییر بدمw58.gif

مرسی استاد

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

#37

لینک به دیدگاه

این ارور رو داد:hanghead:

برنامه باز میشه ولی با اینتر کار نمیکنه

 

Error 1 'System.EventArgs' does not contain a definition for 'KeyData' and no extension method 'KeyData' accepting a first argument of type 'System.EventArgs' could be found (are you missing a using directive or an assembly reference?) C:\Users\(...............)\PrintHood\Documents\Visual Studio 2012\Projects\WindowsFormsApplication3\WindowsFormsApplication3\Form1.cs 44 18 WindowsFormsApplication3

 

لینک به دیدگاه
:hanghead:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

مشکل اینه که شما در رویداد textBox1_textchanged کدو نوشتین در صورتی که باید در رویداد textBox1_KeyDown می نوشتین :w16:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

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

 

9swyn4vx80ok26kft14t.png

لینک به دیدگاه
مشکل اینه که شما در رویداد textBox1_textchanged کدو نوشتین در صورتی که باید در رویداد textBox1_KeyDown می نوشتین :w16:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

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

 

9swyn4vx80ok26kft14t.png

آره فهمیدم و عوض کردم اما نمیدونستم از این راه ساده میشه عوضش کرد

خدا خیرت بده استاد:ws3:

 

یه ساعت چرخیدم تا آخرش تو InitializeComponent پیداش کردم و تغییر دادم:icon_pf (34):

لینک به دیدگاه

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • اضافه کردن...