PDA

View Full Version : چاپ در حلقه



mehdi_pink_63
جمعه 07 آبان 1389, 09:40 صبح
با سلام می خواستم بدونم چطور میشه بعد از اجرای هر بار حلقه for نتیجه یک عبارت چاپ بشه مثال :چاپ یک سری ریاضی x^2+x^3,...x^20 که x یک ورودی توسط کاربره

Salar Ashgi
جمعه 07 آبان 1389, 10:47 صبح
درخواست کد ممنوع است ، اگر خودتان کدی نوشته اید ، قرار دهید تا بررسی شود ./

mehdi_pink_63
جمعه 07 آبان 1389, 11:47 صبح
#include <iostream.h>
#include <conio.h>
int main(){
int x,w=0,i,p=1;
cout<<"Enter x:";
cin>>x;
clrscr();
for(i=2;i<=20;i++)
{
cout<<x<<"^"<<i<<"+";
for(int c=0;c<=i;C++‎)
{
p*=x;
w+=p;
}
}
cout<<endl<<"Result="<<w;
getch();
}من این رانوشتم متن را درست نمایش می ده ولی مقدار جمع کلش درست حساب نمی شه
نمی دونم مشکلش چیه منظورم جمه عدد x از توان 2 تا 20 مقدارش اشتباه میشه

Salar Ashgi
جمعه 07 آبان 1389, 12:09 عصر
کد بهینه شده :


#include <iostream.h>
#include <conio.h>
#include <math>
int main(){
int x;
cout<<"Enter x:";
cin>>x;
int sum=0;
for(int i=2;i<=5;i++)
sum+=pow(x,i);
for(int i=2;i<=5;i++)
cout<<"X^"<<i<<"+";
cout<<"="<<sum<<endl;
getch();
}

برای جمع تا توانهای 20 ، ممکن است نتیجه حاصلجمع توانها ، در خارج از ماکسیمم Range قابل قبول
متغیر مورد نظر باشد .

موفق باشید ./

mehdi_pink_63
جمعه 07 آبان 1389, 12:28 عصر
با عرض معذرت از کدهای شما ایراد گرفت من حلش کردم البته چیزی مهمی نبود من هم رنج متغییر را بالا بردم ولی بازهم مقدار اشتباه . لطفا میشه کمی دقیق تر بررسی کنید چون خیلی گیج شدم ضمناً نمی خوام از توابع ریاضی استفاده کنم قصد دارم با حلقه شبیه سازی کنم

#include <iostream.h>
#include <conio.h>
int main(){
int x,i;
long int w=0,p=1;
clrscr();
cout<<"Enter x:";
cin>>x;
for(i=2;i<=20;i++)
{
cout<<x<<"^"<<i<<"+";
for(int c=0;c<=i;C++‎‎‎)
p*=x;
w+=p;
}
cout<<endl<<"Result="<<w;
getch();
}

Mokhless
جمعه 07 آبان 1389, 13:55 عصر
کافیه قبل از هر بار اجرای حلقه ی داخلی p=1 قرار بدی که در غیر این صورت این مقدار توی محاسبات بعدی وارد میشه ! در ضمن c هم باید 1 باشه ! که میشه این :



#include <iostream.h>
#include <conio.h>
int main(){
int x,i;
long int w=0,p=1;
clrscr();
cout<<"Enter x:";
cin>>x;
for(i=2;i<=20;i++)
{
cout<<x<<"^"<<i<<"+";
p=1;
for(int c=1;c<=i;c++)
p*=x;
w+=p;
}
cout<<endl<<"Result="<<w;
getch();
}

mohsensaghafi
جمعه 07 آبان 1389, 14:06 عصر
سلام دوستان.
برای رسیدم به جواب سوالی که خواسته شده است، باید جمع p با wها خارج از حلقه اول انجام شود. مشکل برابر نبودن جوابها از همین بابت بوده است.
جواب برای x=2 چک شده و درست است.
موفق و پیروز.



#include <iostream.h>
#include <conio.h>
void main(){
unsigned long int w=0,p=1;
int i,x;
cout<<"Enter x:";
cin>>x;

for(i=2;i<=20;i++)
{
p=1;
cout<<x<<"^"<<i<<"+";
for(int c=0;c<i;c++)
{
p*=x;
}

w+=p;
}
cout<<endl<<"Result="<<w<<endl;
getch();
}

mohsensaghafi
جمعه 07 آبان 1389, 14:08 عصر
جوابها همزمان شدند.
جواب آقای Mokhless کاملا درست می باشد.

mehdi_pink_63
دوشنبه 10 آبان 1389, 16:55 عصر
حالا این برنامه با دو حلقه شد میشه با یک حلقه کسی راه حل ارائه کنه

Pouri_sb
دوشنبه 10 آبان 1389, 19:26 عصر
double sum=0,temp=x;
for(i=2;i<=20;i++){

temp*=x;
cout<<x<<"^"<<i<<"= "<<temp<<endl;
sum+=temp;
}

mehdi_pink_63
دوشنبه 10 آبان 1389, 20:31 عصر
آقا خیلی تشکر فقط نمی شد همه حاصل جمع ها را هم جدا می نوشت مثل result با تشکر

mehdi_pink_63
دوشنبه 10 آبان 1389, 20:32 عصر
چون تو این مسئله جمع کل مهم بنظر می رسه

Pouri_sb
دوشنبه 10 آبان 1389, 21:25 عصر
آقا خیلی تشکر فقط نمی شد همه حاصل جمع ها را هم جدا می نوشت مثل result با تشکر
منظورتون رو متوجه نشدم

mehdi_pink_63
دوشنبه 10 آبان 1389, 21:40 عصر
منظورم حاصل جمع کل توان هاست
مثلا 5^2=25 را با عبارتهای بعدی جمع کنه 25 را می گم و در آخر همه را بنویسه که حاصل جمع کل جوابها چقدر شده

Pouri_sb
دوشنبه 10 آبان 1389, 21:44 عصر
بعد حلقه for اگر sum رو چاپ کنی حاصل کل عبارت رو می ده :دی
double sum=0,temp=x;
for(i=2;i<=20;i++){

temp*=x;
cout<<x<<"^"<<i<<"= "<<temp<<endl;
sum+=temp;
}
cout<<"\nresult: "<<sum;

mehdi_pink_63
دوشنبه 10 آبان 1389, 21:47 عصر
فکر کنم جواب را خودم پیدا کردم البته از روی برنامه بسیار خوب شما

double sum=0,temp=x;
for(i=2;i<=20;i++)
{
temp*=x;
cout<<x<<"^"<<i<<"= "<<temp<<endl;
sum+=temp;
}
cout<<"sum="<<sum;
getch();