PDA

View Full Version : با حلقه مشكل دارم ميشه كمك كنيد



omidameri
چهارشنبه 06 آذر 1387, 14:35 عصر
سلام دوستان من تازه سي شروع كردم و حالاحالا ها از اين سوالاي مزحك مي پرسم ببخشد
من هر كاري كردم نتونستم خروجي برنامه ام رو مطابق زير كنم بايد چه كنم
xxxxxxxxxx
yyyyyyyy
xxxxxx
yyyy
xx
yy
xxxx
yyyyyy
xxxxxxxx
yyyyyyyyyy
سوال دومم اينه كه مي خام مجموع تعدادي عدد رو محاسبه كنم كه به اين شكله
1,1,1,3,5,9,.....حالا موندم چطور تو حلقه بگم دوعدد قبل به اضافه عدد بعد ميشه عدد بعدم اگه راهنمايي كنيد ممنون ميشم

SamaPic
چهارشنبه 06 آذر 1387, 22:04 عصر
برنامه ي اول كه خيلي ساده است و يكي از دوستان بخاطر پاسخ به اين سوالات ساده من رو مورد بازخواست قرار داد. من به احترام ايشان پاسخ اول رو نمي دم.خودتان كمي فكر كنيد اگر نتوانستيد بگوييد بطور كامل توضيح دهم.(لطفا ناراحت نشويد چون خودم از شما بيشتر ناراحتم. يكي مون ناراحت باشه كافي است.)
در مورد پاسخ دوم نيز بايد بگويم كه شما نيازي نيست تمامي دنباله را در داخل حلقه ايجاد كنيد.شما بايد دو جمله ي اول را در خارج حلقه چاپ و يا ايجاد كنيد و سپس از جمله ي دوم به بعد را در داخل حلقه ايجاد كنيد.
براي مثال مي توانم به برنامه ي كو سينوس اشاره كنم كه شما ابتدا جمله اول و صورت كسر را در خارج از حلقه توليد و در انتها به برنامه افزوده ( پس از تقسيم و جمع كردن ) مقدار نهايي را در صفحه چاپ مي كرديد.

emad_67
پنج شنبه 07 آذر 1387, 00:15 صبح
يكي از دوستان بخاطر پاسخ به اين سوالات ساده من رو مورد بازخواست قرار داد. من به احترام ايشان پاسخ اول رو نمي دم.دوست عزیز از حرف من ناراحت نشو، من فقط گفتم سورس آماده نزار. به نظر من اینکه راهنمایی کنید و طرف خودش برنامه رو بنویسه خیلی بهتره و تاثیر بیشتری داره نسبت به اینکه شما سورس آماده بزاری و اون فرد از روش بخواد بخونه و یاد بگیره( نظر شخصی هست). و همیچنین این دوستمون نوع سوالش با فرد قبلی خیلی فرق داره و درخواست راهنمایی کردن.

omidameri
پنج شنبه 07 آذر 1387, 04:56 صبح
سلام ممنون كه جواب داديد
اما ديروز هركاري كردم نتونستم خروجي سوال اولم رو در بيارم به نظر خودم بايد از حلقه فور تودر تو استفاده كنم وقتي چاپ حروف به 2 رسيد حلقه پايان شه ودوباره با يه حلقه ديگه تا 10 چاپ حروف رو بره هر چي ديروز نوشتم نمي دونم چرا برنامه بي پايان مي شد:بامزه:
اما سوال دوم وقتي ديروز روش فكر كردم نمي دونستم دقيقن با كدوم حلقه پيش برم چون اين سوال يه جاش برام قابل فهم نيست اونم اينه كه مجموع دوعدد قبل يا جمع عدد حال ميشه عدد بعد و جمع عدد بعد بايد كمتر از يه عدد ديگه باشه تو اينش مندم اگه كمكم كني ممنون ميشم تقريبا اين حالته
1,1,1,3,5,9,17,31<5000:متفکر:

kitten
پنج شنبه 07 آذر 1387, 09:39 صبح
در مورد سوال اول باید بگم که شما به دو تا حلقه با دو تا شمارنده نیاز دارید
برای مشخص کردن این که ان باید x باشه یا y
باید از یه شرط if ساده استفاده کنید
مثلا اگر شمارنده شما از 1 شروع شود وقتی که عدد فرد باشه باید x چاپ شود و وقتی که عدد زوج باشه باید y چاپ شود برای چاپ هم باید داخل همون شرط if یه حلقه دیگه بذاری
یعنی اگه بخواهی مرحله اول را در بیاری این طوری باید بنویسی
این الگوریتم مرحله اول
مقدار 5 را در t قرار بده
مادامی که t از 1 بزرگتر است
>>> اگر باقیمانده t به دو 1 بود
>>>>>>(عدد فرد است پس باید x را چاپ کنی به تعداد دو برابر t)( برای این کار از یه حلقه دیگه استفاده کن)
>>> در غیر این صورت
>>>>>> (عدد زوج است پس باید y را چاپ کنی به تعداد دو برابر t)(برای این کار از یه حلقه دیگر استفاده کن)
>>> پایان شرط
>>>t را کاهش بده
پایان حلقه
این طوری قسمت اول را می نویسی
یعنی این قسمت را
xxxxxxxxxx
yyyyyyyy
xxxxxx
yyyy
xx
yy

حالا یه بار دیگه این کار را بر عکس انجام بده
اگه بازم نفهمیدی بگو تا الگوریتم کاملش را برات بنویسم

SamaPic
پنج شنبه 07 آذر 1387, 18:43 عصر
باسلام خدمت دوست عزيز.
من براتون يك برنامه مشابه ميگذازم (جدول كد هاي اسكي) شما خودتون نگاه كنين اگر توانستين راهكار مناسب را بفهمين كه هيچي ولي اگر نشد بگوييد براتون بازش كنم تا شايد بيشتر متوجه شويد.


#include<iostream.h>
#include<conio.h>
void main()
{
int x;
int char c;
for(x=41;x<=120;x++)
{
c=x;
cout<<i<<" "<<c<<"\t";
if(i%5==0)
cout<<endl;
}
getch();
}


در مورد سوال دوم :
من نمي دونم شما ها چرا اينقدر برنامه ها را براي خودتون مي پيچونين اين يك راهكار ساده است.
اولا حتما شما منظورتون جمع سه جمله ي قبل است.
دوما مي شه يك مثال بزنيد كه عدد بوجود آمده از عدد بعدي بزرگتر باشد.
اين خيلي ساده است .
شما سه جمله اول را ، اول چاپ كن ، بعد جمله ي چهارم را در داخل حلقه ايجاد كن و به اين ترتيب تا آخر برو. (مواظب باش چون بايد متغيير حلقه از 3 شروع بشه يا مقدار اوليه آن برابر 3 باشه ) سپس متغير هاي بعدي را به ترتيب جمع كن پس از چاپ متغيير مقدار جمع شده با دو عبارت قبلي رادر اين متغير قرار بده.
اميد وارم فهميده باشي.
بازم اگر مشكل داشتي بگو بيشتر توضيح بدم.
خدانگهدار.