sa1378

New Member
ارسال ها
1,403
لایک ها
1,077
امتیاز
0
پاسخ : هر سوال برنامه نویسی دارید بپرسید(C++,C#,java)

سوال:
میخواهیم 10 رقم اول حاصل عبارت زیر را بیابیم:
1^2+1^2+...+x^x
برنامه من:دانلود txt
 

a.safari

New Member
ارسال ها
5
لایک ها
0
امتیاز
0
پاسخ : هر سوال برنامه نویسی دارید بپرسید(C++,C#,java)

سلام آقا محمد.
دنبال یک برنامه سی ++ میگردم که دوتا رشته رو بتونه تفریق کنه.
مثلا: کاربر وارد کنه alireza و reza . نتیجه نشون بده ali.
لطف میکنید اگه راهنمایی بفرمایید.:87:
 

HoseinG

New Member
ارسال ها
46
لایک ها
31
امتیاز
0
پاسخ : هر سوال برنامه نویسی دارید بپرسید(C++,C#,java)

سلام آقا محمد. دنبال یک برنامه سی ++ میگردم که دوتا رشته رو بتونه تفریق کنه. مثلا: کاربر وارد کنه alireza و reza . نتیجه نشون بده ali. لطف میکنید اگه راهنمایی بفرمایید.:87:
کامل تر توضیح بده چند تا مثال دیگه هم بزن بعد هم خروجی مورد نظرت برای دو تا رشته که هیچ عملیاتی براشون ممکن نیست مشخص کن براش مثال بزن
 

reza1372

New Member
ارسال ها
14
لایک ها
1
امتیاز
0
پاسخ : هر سوال برنامه نویسی دارید بپرسید(C++,C#,java)

سلام
من دوتا برنامه نوشتم که خروجی اشتباه میده:
نکته:کامپایلر borland 5.02
1-اولی میگه باید 10 عدد بگیری دو عدد بزرگتر رو چاپ کنی ولی جواب نمیده:

کد
#include<iostream.h>

#include<conio.h>
int main()
{ int a,b,n,max1,max2;
cin>>a>>b;
max1=a;
max2=b;
for(int i=1;i<=8;i++) {
cin>>n;
if(n>max1)
max1=n;
else if(max2<n<max1)
max2=n;
}
cout<<max1<<endl;
cout<<max2<<endl;
getch();
return 0;
}
توضیح:میگه که اول دو عدد میگیره a,b و به a یک عدد بزرگتر از b میدیم.بعد هم که برنامه!
2-یه برنامه دیگه که پیدا کردن تعداد اعداد اول هست که بازم فک میکنم درسته ولی جواب نمیده:
کد
int main()

{
int i,c=0,d=0,n;
for(int j=1,j<=5;j++)
cin>>n;
if(n%i==0)
C++‎;
if(c==2)
d++;
cout<<d<<endl;
getch();
return 0;
}
اینم خروجی نمیده.میخوام تعداد اعداد اول از بین اعدادی که گرفتم رو بگه.معمولا هم در برنامه عدد اول توی خط زیر بعد کامپایل کردن برنامه و دادن همه اعداد ارور میده و خط آبی میشه:

کد
 if(n%i==0)

من توی سوال عدد اول فقط میگفتم که اگه عدد اول بود چاپ کنه عدد اوله اگه نیس چاپ کنه اول نیس ولی ننوشته بودم که تعداد اعداد رو بگه
لطفا کمکم کنید.
سپاس
 

sa1378

New Member
ارسال ها
1,403
لایک ها
1,077
امتیاز
0
پاسخ : هر سوال برنامه نویسی دارید بپرسید(C++,C#,java)

دومی شما متغیر I تعریف کردین ولی اونجا j هست
 
آخرین ویرایش توسط مدیر

HoseinG

New Member
ارسال ها
46
لایک ها
31
امتیاز
0
پاسخ : هر سوال برنامه نویسی دارید بپرسید(C++,C#,java)

تو اولی ممکن دومین عدد بزرگ هنگام مقایسه از max1 بزرگتر باشه کد رو باید این جوری بنویسی
#include<iostream.h>

#include<conio.h>
int main()
{ int a,b,n,max1,max2;
cin>>a>>b;
max1=a;
max2=b;
for(int i=1;i<=8;i++) {
cin>>n;
if(n>max1)
{
max2=max1;
max1=n;
}
else if(max2<n)
max2=n;
}
cout<<max1<<endl;
cout<<max2<<endl;
getch();
return 0;
}

---- دو نوشته به هم متصل شده است ----

کد دوم کلا مشکل داره
int main()
{
int i,c=0,d=0,n;
for(int j=1;j<=5;j++)
{
cin>>n;
for (i=1;i<=n;i++)
if(n%i==0)
c++‎;
if(c==2)
d++;
}
cout<<d<<endl;
getch();
return 0;
}

---- دو نوشته به هم متصل شده است ----

البته این روش حدود دو برابر کمترین زمان لازم وقت میگیره
 
آخرین ویرایش توسط مدیر

reza1372

New Member
ارسال ها
14
لایک ها
1
امتیاز
0
پاسخ : هر سوال برنامه نویسی دارید بپرسید(C++,C#,java)

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

HoseinG

New Member
ارسال ها
46
لایک ها
31
امتیاز
0
پاسخ : هر سوال برنامه نویسی دارید بپرسید(C++,C#,java)

اره کد باید بشه
int main()
{
int i,c,d=0,n;
for(int j=1;j<=5;j++)
{
c=0;
cin>>n;
for (i=1;i<=n;i++)
if(n%i==0)
c++‎;
if(c==2)
d++;
}
cout<<d<<endl;
getch();
return 0;
}
 

reza1372

New Member
ارسال ها
14
لایک ها
1
امتیاز
0
پاسخ : هر سوال برنامه نویسی دارید بپرسید(C++,C#,java)

آقا دستت درد نکنه درست شد

---- دو نوشته به هم متصل شده است ----

ببخشید دوباره میپرسم ولی بارای آرایه دو بعدی یا همون ماتریس اعداد اول چطوری نوشته میشه؟ توی تابع مینویسم...
 

HoseinG

New Member
ارسال ها
46
لایک ها
31
امتیاز
0
پاسخ : هر سوال برنامه نویسی دارید بپرسید(C++,C#,java)

اعداد اول برای ماتریس?چی?
 

reza1372

New Member
ارسال ها
14
لایک ها
1
امتیاز
0
پاسخ : هر سوال برنامه نویسی دارید بپرسید(C++,C#,java)

میگه آرایه های یک ماتریس رو بگیری )آرایه دو بعدی( تعداد اعداد اولی که توی آرایا ها هست رو چاپ بکنه
 

HoseinG

New Member
ارسال ها
46
لایک ها
31
امتیاز
0
پاسخ : هر سوال برنامه نویسی دارید بپرسید(C++,C#,java)

#include <math.h>
bool avval (unsigned long int n)
{
if (n<=1)
return 0;
for (unsigned long int i=2;i<=int(sqrt(n));i++)
if (n%i==0)
return 0;
return 1;
}​
این تابع عدد اول بودن یا نبودن اگر اول باشه 1 وگرنه 0 بر میگردونه
اعضای ماتریس رو دونه دونه برسی کن اعداد اول رو بشمار
 

a.safari

New Member
ارسال ها
5
لایک ها
0
امتیاز
0
پاسخ : هر سوال برنامه نویسی دارید بپرسید(C++,C#,java)

کامل تر توضیح بده چند تا مثال دیگه هم بزن بعد هم خروجی مورد نظرت برای دو تا رشته که هیچ عملیاتی براشون ممکن نیست مشخص کن براش مثال بزن

مثلا، کاربر رشته اولی رو وارد کنه abbas , و رشته دوم رو وارد کنه a باید خروجی نشون بده bbs.. یا مثلا وارد کنه mohammad و mo, خروجی چاپ haad.
با strcpy , delstr نوشتم ولی جواب نداد. ممنون میشم اگه جواب بدید.:126:
 

sa1378

New Member
ارسال ها
1,403
لایک ها
1,077
امتیاز
0
پاسخ : هر سوال برنامه نویسی دارید بپرسید(C++,C#,java)

مثلا، کاربر رشته اولی رو وارد کنه abbas , و رشته دوم رو وارد کنه a باید خروجی نشون بده bbs.. یا مثلا وارد کنه mohammad و mo, خروجی چاپ haad.
با strcpy , delstr نوشتم ولی جواب نداد. ممنون میشم اگه جواب بدید.:126:
من با visual basic میتونم
بنویسم ؟
 

HoseinG

New Member
ارسال ها
46
لایک ها
31
امتیاز
0
پاسخ : هر سوال برنامه نویسی دارید بپرسید(C++,C#,java)

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

#include <iostream>
#include <conio.h>
using namespace sdt;
class string
{
public:
char string[1001];
operator = (char *a)
{
string[(strlen(a)>1000?1000:strlen(a))]=0;
for (unsigned int i=0;i<(strlen(a)>1000?1000:strlen(a));i++)
string=a;
}
};
unsigned int strlen (string a)
{
return strlen(a.string);
}
long int instring(string a,string b)
{
unsigned int similarity_rate=0,a_len=strlen(a),b_len=strlen(b);
for (unsigned int i=0;i<a_len;i++)
{
for (unsigned int j=0;j<b_len;j++)
{
if (i+j>a_len)
break;
if (a.string[i+j]==b.string[j])
similarity_rate++;
else
break;
}
if (similarity_rate==b_len)
return i;
similarity_rate=0;
}
return -1;
}
L_shift(string *a,unsigned int start,unsigned int len)
{
unsigned int a_len=strlen(a[0]);
for (unsigned int i=start;i<a_len;i++)
{
if (i+len>a_len)
break;
a[0].string=a[0].string[i+len];
}
a[0].string[a_len-len]=0;
}
void main()
{
char a[1000],b[1000];
string str_a,str_b;
cin>>a>>b;
str_a=a;
str_b=b;
long int location_in_str=instring(str_a,str_b);
while (location_in_str>-1)
{
L_shift(&str_a,location_in_str,strlen(b));
location_in_str=instring(str_a,str_b);
}
cout<<str_a.string;
getch();
}
 

reza1372

New Member
ارسال ها
14
لایک ها
1
امتیاز
0
پاسخ : هر سوال برنامه نویسی دارید بپرسید(C++,C#,java)

#include <math.h>
bool avval (unsigned long int n)
{
if (n<=1)
return 0;
for (unsigned long int i=2;i<=int(sqrt(n));i++)
if (n%i==0)
return 0;
return 1;
}​
این تابع عدد اول بودن یا نبودن اگر اول باشه 1 وگرنه 0 بر میگردونه
اعضای ماتریس رو دونه دونه برسی کن اعداد اول رو بشمار
منظورم اینه که باید چحوری بنویسم.مثلا:
کد
void aval(int a[],int n) {
int d=0,c;
for(int i=0;i<n;i++)
c=0;
for(i=0;i<n;i++) {
for (int j=0;j<=a[i];j++)
if(a[i]%i==0)
c++;
if(c==2)
d++;
cout<<d;
بخوام بگم توی آرایه ها عدد اول بخوام چجوریه.مثلا تو حلقه for حلقم باید تا کجا بره(یعنی تا a یا n) یا این که کدوم مقدارمون باید به تقسیم بشه.یعنی a تقسیم بشه یا n.

لطفا کمک کنید چون خیلی گیرم.

به روش اعداد اول معمولی نتونستم بنویسم.
راستی تابع دریافت رو قبل این تابع نوشتم و انارو با فراخوانی و... اینجا ننوشتم.میخوام این یه تیکه رو بفهمم.سپاس

---- دو نوشته به هم متصل شده است ----

راستی این کد چه ایرادی داره؟
ضرب دو ماتریس 2*3و3*2 هست که یک ماتریس 2*2 میده:

کد
#include<iostream.h>
#include<conio.h>
void inmat(int a[][3],int b[][2],int m ,int n){
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
cin>>a[i][j]>>b[i][j];
}
void zarb(int m1[][3],int m2[][2],int m3[][2],int m,int n){
int i,j,k;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
for(k=0;k<2;k++)
m3[i][j]=m1[i][k]*m2[k][j]+m3[i][j];
for(i=0;i<2;i++){
cout<<endl;
for(j=0;j<2;j++){
cout<<m3[i][j]<<"\t";
}
}
}
int main()
{ int a[2][3],b[3][2],c[2][2];
inmat(a,2,3);
inmat(b,3,2);
zarb(a,b,c,2,2);
getch();
return 0;
}
 

HoseinG

New Member
ارسال ها
46
لایک ها
31
امتیاز
0
پاسخ : هر سوال برنامه نویسی دارید بپرسید(C++,C#,java)

در مورد عدد اول خروجی تابع N_O_avval تتعداد اعداد اول میشه. اون روشی که برا پیدا کردن اعداد اول استفاده میکنی خیلی کنده از این تابع استفاده کن
#include <math.h>
bool avval (unsigned long int n)
{
if (n<=1)
return 0;
for (unsigned long int i=2;i<=int(sqrt(n));i++)
if (n%i==0)
return 0;
return 1;
}
unsigned long int N_O_avval (unsigned long int *nums,unsigned long int n)
{
unsigned long int Nums_O_avval=0;
for (unsigned long int i=0;i<n;i++)
if (avval(nums))
Nums_O_avval++;
return Nums_O_avval;
}



 
آخرین ویرایش توسط مدیر

reza1372

New Member
ارسال ها
14
لایک ها
1
امتیاز
0
پاسخ : هر سوال برنامه نویسی دارید بپرسید(C++,C#,java)

در مورد عدد اول خروجی تابع N_O_avval تتعداد اعداد اول میشه. اون روشی که برا پیدا کردن اعداد اول استفاده میکنی خیلی کنده از این تابع استفاده کن
#include <math.h>
bool avval (unsigned long int n)
{
if (n<=1)
return 0;
for (unsigned long int i=2;i<=int(sqrt(n));i++)
if (n%i==0)
return 0;
return 1;
}
unsigned long int N_O_avval (unsigned long int *nums,unsigned long int n)
{
unsigned long int Nums_O_avval=0;
for (unsigned long int i=0;i<n;i++)
if (avval(nums))
Nums_O_avval++;
return Nums_O_avval;
}





---- دو نوشته به هم متصل شده است ----

در مورد عدد اول خروجی تابع N_O_avval تتعداد اعداد اول میشه. اون روشی که برا پیدا کردن اعداد اول استفاده میکنی خیلی کنده از این تابع استفاده کن
#include <math.h>
bool avval (unsigned long int n)
{
if (n<=1)
return 0;
for (unsigned long int i=2;i<=int(sqrt(n));i++)
if (n%i==0)
return 0;
return 1;
}
unsigned long int N_O_avval (unsigned long int *nums,unsigned long int n)
{
unsigned long int Nums_O_avval=0;
for (unsigned long int i=0;i<n;i++)
if (avval(nums))
Nums_O_avval++;
return Nums_O_avval;
}






آخه من اینو واسه کلاس دانشگاه میخوام و تو کلاس هنوز به این تابعی که شما گفتید نریسیدیم.
در ضمن من با خود نوشتن عدد اول مشکل ندارم من میخوام عدد اول تو آرایه پیدا بشه(دو بعدی و یه بعدی) ولی اینی که شما گفتی برای پیدا کردن معمولی اعداد اول هست نه تو آرایه.
چون همونطور که گفتم از a[] و... استفاده کردم تو سوال و من نمیتونم خودم الگوریتم عدد اول رو تو آرایه پیاده کنم
 

HoseinG

New Member
ارسال ها
46
لایک ها
31
امتیاز
0
پاسخ : هر سوال برنامه نویسی دارید بپرسید(C++,C#,java)

وعض تابع ورودی افتضاح بود ورودی ها رو یکی در میان میداد به ماتریس ها, ماتریس b رو به شکل دو در سه پر میکرد با این که سه در دو هست
تابع zarb هم که بدون این که مقدار اولیه ماتریس خروجی رو صفر کنه از مقدار اولیش استفاده میکرد ضرب هم غلط انجام می شد
یه دونه هم این که وقتی تعداد سطر و ستون معلومه چرا تو توابع براش ورودی تعریف کردین?

#include<iostream.h>
#include<conio.h>
void inmat(int a[2][3],int b[3][2]){
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
cin>>a[j];
for(int i=0;i<3;i++)
for(int j=0;j<2;j++)
cin>>b[j];
}
void zarb(int m1[2][3],int m2[3][2],int m3[2][2])
{
int i,j,k;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{
m3[j]=0;
for(k=0;k<3;k++)
m3[j]=m1[k]*m2[k][j]+m3[j];
}
for(i=0;i<2;i++){
cout<<endl;
for(j=0;j<2;j++){
cout<<m3[j]<<"\t";
}
}
}
int main()
{
int a[2][3],b[3][2],c[2][2];
inmat(a,b);
zarb(a,b,c);
getch();
getch();
return 0;
}


---- دو نوشته به هم متصل شده است ----

پس اون وقت این تابع جواب میده
void aval(int a[],int n) {
int d=0,c;
for(int i=0;i<n;i++)
{
c=0;
for (int j=1;j<=a;j++)
if(a%j==0)
c++;
if(c==2)
d++;
}
cout<<d;
}

برا دو بعدی

void aval(int a[][],int n,int m)
{
int d=0,c;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
c=0;
for (int k=1;k<=a[j];k++)
if(a[j]%k==0)
c++;
if(c==2)
d++;
}
cout<<d;
}
 
آخرین ویرایش توسط مدیر
بالا