واضح آرشیو وب فارسی:سایت ریسک: سوال آماتوری در c# - محیط و مساحت دایره و حلقه گرفتن ورودی scooter2005 29 بهمن 1387, 15:21این برنامه برای این هست که شعاع دایره رو بگیره و محیط و مساحتش رو بده ولی کار نمی کنه using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication83 { class Program { static void Main(string[] args) { int r, environ, area; r = int.Parse(Console.ReadLine()); environ = 3.14 *r * r; area = 2 * 3.14 * r; Console.WriteLine(environ, area); } } } این سوال هم یه حلقه for هست که 5 تا عدد میگیره ولی هیچ کدوم کار نمی کنه using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication77 { class Program { static void Main(string[] args) { int i; const int n = 5; Console.ReadLine(); for (i = 0; i < n; i++) ; Console.WriteLine(i); Console.ReadKey(true); } } } the_king 29 بهمن 1387, 21:35کد ویرایش شده اول : using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { double r, environ, area; r = double.Parse(Console.ReadLine()); environ = Math.PI * r * r; area = 2 * Math.PI * r; Console.WriteLine("environ = {0} area = {1}",environ, area); Console.ReadKey(true); } } } 1) نوع متغیر ها را int در نظر گرفتید، در حالی که با بکارگیری 3.14 محاسبه اعشاری انجام داده اید. زبان #C خیلی روی نوع متغیر حساس است، اگر بایستی حتما نوع یک متغیر int باشد، بایستی پیش از انجام محاسبه مقدار را به اعشاری تبدیل کنید، مثلا (environ = 3.14 * (double) (r * r پیش از بکارگیری مقدار r * r ، آنرا با double تبدیل می کند. 2) شیوه بکارگیری WriteLine نادرست است. پارامتر اول رشته ای است که موقعیت و قالب چاپ را مشخص می کند. در داخل آن هر جا {0} قرار بدهید، پارامتر دوم و هر جا {1} قرار دهید پارامتر سوم و ... چاپ می شود. 3) مقدار PI با دقت بالای اعشاری در #C موجود است. هدف تون از نوشتن کد دوم را درست متوجه نشدم. دریافت 5 عدد از کاربر؟ اعداد دریافت شده قرار است کجا قرار بگیرند و چه عملی رویشان انجام شود؟ به هر حال کدتان از نظر دستوری صحیح است ولی عملکرد اش منطقی نیست : 1) در کدتان نوشته اید ;()Console.ReadLine و مقداری که توسط ReadLine برگردانده می شود را در هیچ متغیری قرار نداده اید، در واقع مقداری را از کاربر می خوانید و بدون استفاده دور می ریزید. 2) درست در انتهای کد حلقه for از ; استفاده کرده اید که پایان کدهای حلقه را مشخص می کند. درواقع حلقه for ای که نوشته اید هیچ کد میانی ندارد و ReadLine ای که در ادامه آن نوشته اید بیرون از ساختار حلقه است، نه در داخل آن.
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 6333]