PDA

View Full Version : سوال: میشه لطفا غلطهای برنامم رو بهم بگید؟



neda777
دوشنبه 29 آبان 1391, 19:35 عصر
این سوالمه:
برنامه ای بنویسید که 20 عدد از ورودی بگیرد و تعداد اعداد اول وارد شده را نمایش دهد.
static void Main(string[] args)
{
int i, a, b;
b=0;
for (i=1, i<20, i++);
a=int.Parse (Console.ReadLine());
if (a%a==0; a%1==a;
{
b=b+1;
Console.WriteLine ("b="+b);
}
Console.ReadKey();
}

ali.bahrami
دوشنبه 29 آبان 1391, 19:38 عصر
دوست عزیز حلقه for نیازی به ; نداره .... دستورات بعد از حلقه اصلا دزون حلقه قرار نمیگیرند. دوستور if هم ; نمیخواد . در ضمن انتهای شرط درون دستور if پرانتز نذاشتی

ali.bahrami
دوشنبه 29 آبان 1391, 19:40 عصر
برنامه اصلاح شده

static void Main(string[] args)
{
int i, a, b;
b=0;
for (i=1; i<20; i++)
{
a=int.Parse (Console.ReadLine());
if (a%a==0 && a%1==a)
{
b=b+1;
Console.WriteLine ("b="+b);
}
}
Console.ReadKey();
}

neda777
دوشنبه 29 آبان 1391, 19:42 عصر
دوست عزیز حلقه for نیازی به ; نداره .... دستورات بعد از حلقه اصلا دزون حلقه قرار نمیگیرند. دوستور if هم ; نمیخواد . در ضمن انتهای شرط درون دستور if پرانتز نذاشتی
بله میدونستم که ; نمیخواد ولی بدون ; 6تا error میده ولی وقتی ; میزارم 5تا میشه!!! نمیدونم چرا:|

ali.bahrami
دوشنبه 29 آبان 1391, 19:44 عصر
اهان .. درون حلقه for بین هر قسمت نیاز به ; است

ali.bahrami
دوشنبه 29 آبان 1391, 19:45 عصر
برنامه اصلاح شده را امتحان کنید

neda777
دوشنبه 29 آبان 1391, 19:46 عصر
ولی این کدی که شما دادید هم باز درست نیست:ناراحت: تازه غلطاش بیشتر هم شد!

ali.bahrami
دوشنبه 29 آبان 1391, 19:47 عصر
ولی این کدی که شما دادید هم باز درست نیست:ناراحت: تازه غلطاش بیشتر هم شد!

متوجه شدم چندتا غلط دیگه هم توش بود یکی بین شرط ها ; نمیخواد و برای AND از علامت &&‌باید استفاده کنید. و بین قسمت های for هم باید ; بزارید
الان مجدد ویرایش کردم

neda777
دوشنبه 29 آبان 1391, 19:52 عصر
درست شد مچکرم:لبخندساده: یه سوال دیگه داشتم. برنامه ای هست که بشه باهاش کد c رو به #c تبدیل کرد؟

amir11205
دوشنبه 29 آبان 1391, 20:01 عصر
سلام
خسته نباشید
به نظرتون این برنامه اعداد اول رو تشخیص میده؟
الگوریتمش درسته به نظرتون.
یه چک بکنین و چندتا عدد اول و غیر اول بهش بدین ببینین درست جواب میده یانه
احساس میکنم کدتون الگوریتمش صحیح نیس

neda777
دوشنبه 29 آبان 1391, 20:07 عصر
بله حرف شما صحیحه. مشکل داره. شما میدونید کجاش غلطه؟

ali.bahrami
دوشنبه 29 آبان 1391, 20:11 عصر
درست شد مچکرم:لبخندساده: یه سوال دیگه داشتم. برنامه ای هست که بشه باهاش کد c رو به #c تبدیل کرد؟

احتمال داره باشه ولی من ندیدم جستجو میکنم اگر پیدا کردم بهتون خبر میدم

ali.bahrami
دوشنبه 29 آبان 1391, 20:13 عصر
اینم الگوریتم عدد اول ... فقط زحمت برنامه نویسیش را خودتون بکشید

٠) شروع
1) عدد N را از ورودی بگیر.
2) K <---------- 2
3) M <---------- 2
4) ادامه بده تا زمانی که M<N
الف) باقیمانده R <--------- N/M
ب) اگر R=0 آنگاه K=K+1
ج) M <---------- M+1
5) اگر K=2 آنگاه چاپ کن "عدد اول است" در غیر اینصورت چاپ کن "عدد اول نیست"
6) پایان

harani
دوشنبه 29 آبان 1391, 20:51 عصر
اینا که تو نت پُره :
http://www.daniweb.com/software-development/csharp/threads/80255/displaying-prime-number

http://www.techfuels.com/programming/32956-display-prime-number-c.html

http://stackoverflow.com/questions/1510124/program-to-find-prime-numbers

http://www.dotnetperls.com/prime

amir11205
دوشنبه 29 آبان 1391, 20:58 عصر
عدد رو از ورودی بخون
یه حلقه از 2 تا نصف عدد مورد نظر بذار و عدد خونده شده رو بر مقدار جاری حلقه تقسم کن. اگر در مرحله ای باقمانده تقسیم صفر شد break بده و به تعداد عددهای اول یکی اضافه کن
البته این الگوریتم منطقی نیس. چون مثلا اگر عدد ورودی 134654894564548964548974515987465432564654564561 باشه و مثلا این عدد اول باشه فکرشو بکن حلقه مورد نظر تا کجا باید بره