PDA

View Full Version : مقاله: 1001 نکته سی پلاس پلاس



Salar Ashgi
شنبه 02 شهریور 1387, 17:36 عصر
سلام دوستان ، اینم برنامه محاسبه واریانس هر تعداد عدد که در سی پلاس پلاس نوشتم :

کد برنامه :


#include <iostream>
#include <conio>
#include <math>
int main()
{
int s[30];
int k;
long double j,sum1=0,z,sum2=0,m,n;
cout<<"Tedade Dadeha:\n";
cin>>k;
cout<<"--------------------------\n";
cout<<"Dadeha ra vared konid\n";
for(int i=0;i<k;i++){
cin>>s[i];
j=pow(s[i],2);
sum1+=j;
n=sum1/k;
sum2+=s[i];
z=sum2/k;
m=pow(z,2);
}
cout<<"---------------------------\n";
cout<<" Varians=";
cout<<n-m<<endl;
getch();
}


موفق و پیروز باشید !!!

Salar Ashgi
شنبه 02 شهریور 1387, 17:51 عصر
سلام ، این برنامه ای که تو سی پلاس پلاس نوشتم ، یک عدد رو میگیره و اونو به عوامل اول

تجزیه میکنه !!!!

کد برنامه خدمت شما عزیزان :


#include <iostream>
#include <conio>
int prime(int x){
int k=0;
for(int i=2;i<=x/2;i++)
if(x%i==0)
k++;
return k;
}
int amel(int y,int i){
int k=0;
while(y%i==0){
y/=i;
k++;
}
return k;
}
int main(){
long int n;
cout<<"Enter a Number to abstract it \n";
cin>>n;
cout<<"------------------------------------\n";
for(int i=2;i<=n;i++){
if(prime(i)==0 && n%i==0)
cout<<i<<"^"<<amel(n,i)<<" x ";
}
cout<<'1';
getch();
return 0;
}

موفق و پیروز باشید !!!

Salar Ashgi
شنبه 02 شهریور 1387, 22:55 عصر
سلام دوستان ، این برنامه که تو سی پلاس پلاس نوشتم ، دو آرایه نامرتب را گرفته و آنها را

بصورت مرتب در یک آرایه دیگر قرار میدهد !!!

کد برنامه تقدیم شما عزیزان :


#include <iostream>
#include <conio>
#include <algorithm>
void swap(int &a,int &b){
int temp;
temp=a; a=b; b=temp;
}
void Sort(int a[],int n){
int max=0;
for(int i=n-1;i>=0;i--){
for(int j=0;j<=i;j++){
if(a[j]>a[max])
max=j;}
swap(a[i],a[max]);
max=0;}
}
void Merg(int a[],int m,int b[],int n){
int *c=new int[n+m];
for(int i=0;i<m;i++){
c[i]=a[i];
}
for(int j=0;j<n;j++){
c[m+j]=b[j];
}
//Now Sorting Array C
Sort(c,n+m);
for(int k=0;k<n+m;k++)
cout<<c[k]<<" ";
//------------------------------------------------------------------------------
}
int main(){
int m,n;
cout<<"Enter size of Array 1:\n";
cin>>m;
cout<<"Enter size of Array 2:\n";
cin>>n;
//---- Building dynamic Arrays----
int *a=new int[m];
int *b=new int[n];
//--------------------------------
cout<<"Enter Array 1:\n";
for(int i=0;i<m;i++)
cin>>a[i];
cout<<"Enter Array 2:\n";
for(int i=0;i<n;i++)
cin>>b[i];
cout<<"---------------------------\n";
//Merging Two Arrays
cout<<"*** Sorted Merged Array ***\n\n";
Merg(a,m,b,n);
getch();
}

موفق و پیروز باشید !!!:لبخندساده:

Salar Ashgi
شنبه 02 شهریور 1387, 23:02 عصر
سلام به همه عزیزان ، این برنامه 4 تا مثلث های دوران یافته را یکجا با هر اندازه ای ایجاد

میکند که تو سی پلاس پلاس نوشتم !!!!

کد برنامه :

#include <iostream>
#include <conio>
#include <iomanip>
int main(){
int k;
int n=1;
cout<<"Enter a Number to graph 4Triangle with that size\n";
cin>>k;
int m=k;
cout<<"--------------------------\n\n";
for(int i=1;i<=k;i++){
for(int j=1;j<=i;j++)
cout<<"*";
cout<<endl;
}
cout<<endl;
cout<<"---------------------\n\n";
for(int i=k;i>=1;i--){
for(int j=1;j<=i;j++)
cout<<"*";
cout<<endl;
}
cout<<"------------------------\n\n";
cout<<endl;
for(int i=1;i<=k;i++){
cout<<setw(m);
for(int j=1;j<=i;j++)
cout<<"*";
cout<<endl;
m--;
}
cout<<"-------------------------\n\n";
cout<<endl;
for(int i=k;i>=1;i--)
cout<<"*";
cout<<endl;
for(int i=k-1;i>=1;i--){
cout<<setw(n+1);
for(int j=1;j<=i;j++)
cout<<"*";
cout<<endl;
n++;
}
getch();
}



موفق و پیروز باشید !!!:لبخندساده:

Salar Ashgi
یک شنبه 03 شهریور 1387, 23:02 عصر
سلام ، خواستم به خاطر ایجاد تنوع در این بخش یک سوال برنامه نویسی هم گذاشته

باشم ،می خواهیم دوستان هم نظر دهند ، که اگر مایل بودند سورس برنامه را هم خواهم

گذاشت !!! منتظر نظرات هستم !!!!

سوال مورد نظر (http://i33.tinypic.com/huizjl.jpg)

یا از طریق :

Salar Ashgi
دوشنبه 04 شهریور 1387, 13:57 عصر
سلام به همه عزیزان ، این برنامه که تو سی پلاس پلاس نوشتم ، درجه یک چند جمله ای ،

یک عدد دلخواه و عدد پایه و توان هر جمله چند جمله ای را دریافت کرده ، و مقدار چند جمله

ای را در آن نقطه دلخواه پیدا می کند !!!

کد برنامه تقدیم شما عزیزان :


#include <iostream>
#include <conio>
#include <math>
int ChandJomleyee_Calc(int n,int x){
int **a=new int*[n+1];
for(int i=0;i<n+1;i++)
a[i]=new int[2];
//---------------------
for(int i=0;i<n+1;i++){
cout<<" Paye va Tavan Jomle "<<i+1<<" :";
for(int j=0;j<2;j++)
cin>>a[i][j];
}
cout<<"\n";
cout<<"_____________________________________________\n";
cout<<" Chand Jomleyee Shoma :\n\n";
for(int i=0;i<n+1;i++){
cout<<" "<<a[i][0];
cout<<"X^";
cout<<a[i][1];
if(i!=n)
cout<<"+";
}
cout<<"\n\n";
cout<<" Meghdare X = "<<x<<endl;
cout<<"_____________________________________________\n";
cout<<" Natije Mohasebe : ";
int Sum=0;
for(int i=0;i<n+1;i++){
Sum+=(a[i][0]*pow(x,a[i][1]));
}
return Sum;
}
int main(){
int D,X;
cout<<" *** Mohasebe Meghdare chand jomleyee daraje n dar noghte x ***\n\n";
cout<<" Daraje Chand Jomleyee ra vared konid :\n";
cin>>D;
cout<<" X ra vared konid :\n";
cin>>X;
cout<<"-----------------------------------------------------------------------\n\n";
cout<<" "<<ChandJomleyee_Calc(D,X)<<endl;
getch();
}


موفق و پیروز باشید !!!:لبخندساده:

Salar Ashgi
دوشنبه 04 شهریور 1387, 23:58 عصر
سلام به همه عزیزان ، این برنامه که تو سی پلاس پلاس نوشتم یک عدد اعشاری را گرفته

و فرم کسری آنرا نمایش میدهد !!!

کد برنامه تقدیم شما عزیزان :


#include <iostream>
#include <conio>
#include <math>
int bmm(int a,int b){
if(b==0)
return a;
if(b==1)
return 1;
else
return bmm(b,a%b);
}//end of function
//****************************
int main()
{
long double num;
long double k,a,b,c;
cout<<"Enter your aashari Number\n";
cin>>num;
cout<<"----------------------------\n";
cout<<"Tedade Arghame Bad az Mommayez\n";
cin>>k;
cout<<"---------------------------------\n";
a=num*pow(10,k);
b=pow(10,k);
c=bmm(a,b);
cout<<a/c<<"/"<<b/c<<endl;
getch();
}


موفق و پیروز باشید !!!

bsng110
چهارشنبه 06 شهریور 1387, 16:54 عصر
هوالحکیم. سلام بر salar_cpp_cs عزیز. آقا یک چند مرتبه خواستم این نکته را به شما بگم ولی گفتم شاید خوشتون نیاد ولی دیدم چه دوستیی می شه اگه من عیب شما را به شما نگم و شما هم عیب منو به من! به هر حال اگه از پیشنهادم بدتون اومد، بگید تا دیگه در این زمینه ها چیزی نگم! اول از همه برنامه های خوبتون سپاسگزارم و خلیل برنامه هاتون جالب هستند ولی یک پیشنهاد دارم! سعی کنید کدهای خود را طوری بنویسید که قابل استفاده مجدد باشند و دیگران نیز بتوانند در کدهای خود از آنها استفاده کنند مثلاً من برنامه جمع و ضرب ماتریس های شما را دیدم ولی نمی دانم شما برنامه ماتریس های مار ا مشاهده کردید یا خیر؟ ما برنامه خود را به صورت کلاس نوشته بودیم و کاربر می توانست هر جا و به هر صورتی که دوست دارد از آنها استفاده کند نه اینکه مجبور باشد یک فایل exe را اجرا کنید و به ترتیب به آن ورودی و خروجی بدهد و سپس نتیجه بگیرد. البته با در نظر گرفتن اینکه شما #C حرفه ای هستید، نمی دانم چرا در این قسمت اینگونه کد می نویسید! شاید قصد آموزش به ما تازه کارها را دارید ولی پیشنهاد می کنم از این به بعد، کدهای خود را طوری بنویسید که رابط کاربری آن با عملکرد برنامه جدا باشد. اما در مورد کد بالا، یادم هست که یک تابعی وجود داشت که خودش تعداد ارقام اعشاری یک را بر می گردوند(یا شاید قسمت اعشاری را؟). بد نیست یه نگاهی به توابع frexp و ldexp و ceil و floor ... بیاندازید و یک روشی پیدا کنید که نیاز نباشد از کاربر، تعداد ارقام اعشار را بپرسید. یا علی. خدانگهدارتان

Salar Ashgi
چهارشنبه 06 شهریور 1387, 22:21 عصر
هوالحکیم. سلام بر salar_cpp_cs عزیز. آقا یک چند مرتبه خواستم این نکته را به شما بگم ولی گفتم شاید خوشتون نیاد ولی دیدم چه دوستیی می شه اگه من عیب شما را به شما نگم و شما هم عیب منو به من! به هر حال اگه از پیشنهادم بدتون اومد، بگید تا دیگه در این زمینه ها چیزی نگم! اول از همه برنامه های خوبتون سپاسگزارم و خلیل برنامه هاتون جالب هستند ولی یک پیشنهاد دارم! سعی کنید کدهای خود را طوری بنویسید که قابل استفاده مجدد باشند و دیگران نیز بتوانند در کدهای خود از آنها استفاده کنند مثلاً من برنامه جمع و ضرب ماتریس های شما را دیدم ولی نمی دانم شما برنامه ماتریس های مار ا مشاهده کردید یا خیر؟ ما برنامه خود را به صورت کلاس نوشته بودیم و کاربر می توانست هر جا و به هر صورتی که دوست دارد از آنها استفاده کند نه اینکه مجبور باشد یک فایل exe را اجرا کنید و به ترتیب به آن ورودی و خروجی بدهد و سپس نتیجه بگیرد. البته با در نظر گرفتن اینکه شما #C حرفه ای هستید، نمی دانم چرا در این قسمت اینگونه کد می نویسید! شاید قصد آموزش به ما تازه کارها را دارید ولی پیشنهاد می کنم از این به بعد، کدهای خود را طوری بنویسید که رابط کاربری آن با عملکرد برنامه جدا باشد. اما در مورد کد بالا، یادم هست که یک تابعی وجود داشت که خودش تعداد ارقام اعشاری یک را بر می گردوند(یا شاید قسمت اعشاری را؟). بد نیست یه نگاهی به توابع frexp و ldexp و ceil و floor ... بیاندازید و یک روشی پیدا کنید که نیاز نباشد از کاربر، تعداد ارقام اعشار را بپرسید. یا علی. خدانگهدارتان

================================================== =

سلام به شما دوست گرامی ، عرض کنم که من بدلیل علاقه زیادی که به زبانهای سی شارپ

و سی پلاس پلاس دارم ، در این دو بخش فعالیت می کنم و میتونم بگم که سی پلاس پلاس

رو خیلی کاملتر از سی شارپ بلدم ولی گفتم به هردوشون علاقه مندم ، در ضمن روش

برنامه نویسی کاملا سلیقه ای هستش و ممکنه که یک الگوریتم با 10 - 20 تا روش

قابل پیاده سازی باشه و همه اونها هم درست باشند و کسی هم نتونه ایراد بگیره ، اگه

شیوه برنامه نویسی همه مثل هم بود ، خلاقیت تو برنامه نویسی معنا نداشت !!! در ضمن

خودتون می دونید که سطح تالار سی شارپ خیلی بالاتر از سی پلاس پلاس هستش ، من

هم به همین دلیل برنامه هام رو اینجا از آسون به مشکل می گذارم ، میتونم همون اول یه

مثال از وراثت چند گانه همراه با Polymorphism بدم که 2 - 3 نفر فقط کد رو درک کنند ، پس

همه چیز حساب شده است دوست عزیز و گرامی !!!


بد نیست یه نگاهی به توابع frexp و ldexp و ceil و floor ... بیاندازید و یک روشی پیدا کنید که نیاز نباشد از کاربر، تعداد ارقام اعشار را بپرسید

این فقط برای آزمایش بود ، البته که میشد این کارو انجام داد ، من یک کد در این زمینه در تالار

الگوریتم نوشتم ، خواستید یه نگاه کنید !!!

الگوریتم برگرداندن تعداد ارقام اعشار (http://barnamenevis.org/forum/showpost.php?p=577551&postcount=18)


در ضمن ممنون و متشکر از حسن نیت شما !!!!امیدوارم موفق و پیروز باشید !!! در پناه حق

تعالی انشاالله !!! یا علی مدد !!!!

MOHSEN8000
جمعه 08 شهریور 1387, 17:58 عصر
این کار که انجام می دید ، کار جالب و آموزنده ای است یعنی تبدیل قضایا و قوانین ریاضی به برنامه های کامپیوتری که باعث ایجاد تنوع و افزایش توان برنامه نویسی افراد می شه. اما در مورد این برنامه فکر کنم راه حل ساده ی اون این باشه که از یک اشاره گر به تابع prim استفاده کنیم تا برای ما اعداد اول را به ترتیب و یکی یکی بفرستد. و یا این که می توان از رده ذخیره سازی static برای اعداد اول در تابع prim استفاده کرد. تا اعداد اول را به تابع اصلی پاس دهد.

Salar Ashgi
جمعه 08 شهریور 1387, 23:38 عصر
سلام به همه عزیزان ، این برنامه یک رشته متنی گرفته و حروف آنرا مرتب میکند که در

سی پلاس پلاس نوشتم !!!!

کد برنامه :


#include <iostream>
#include <conio>
#include <string>
void sort(int a[],int n){
int max=0;
int temp;
for(int i=n-1;i>=0;i--){
for(int j=0;j<=i;j++){
if(a[j]>a[max])
max=j;}
temp=a[max];
a[max]=a[i];
a[i]=temp;
max=0;
}
}
int main(){
char s[500];
cout<<"Enter a String\n";
cin.getline(s,500);
int k=strlen(s);
int *a=new int[k];
for(int i=0;i<k;i++)
a[i]=(int)(s[i]);
sort(a,k);
for(int i=0;i<k;i++)
cout<<(char)(a[i]);
getch();
}

موفق و پیروز باشید در پناه حق تعالی !!!

C++Lover
شنبه 09 شهریور 1387, 03:59 صبح
این کد رو ساعت 4 صبح نوشتم خیلی هم خوابم میومد. لطفا اگر اشکالی توش هست ببخشید.


#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

bool IsPrime(int num)
{
for (int j=2 ; j<=num/2 ; ++j)
{
if ( (num % j) == 0 )
return false;
}

return true;
}

int main()
{
int n;
int i, j;
int tmp;
int s = 0;
vector<int> nums;

cout << "Please enter n: ";
cin >> n;

for (i=0 ; i<n ; ++i)
{
cout << "Please enter " << i+1 << "th number: ";
cin >> tmp;
nums.push_back(tmp);
}


for (i=0, j=2 ; i<n ;)
{
if ( IsPrime(j) )
{
s += (int) pow( (float)j, (float)nums[i] );
++i;
}

++j;
}

cout << "Polynomial result = " << s << endl;

return 0;
}


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

پیروز باشید.

Salar Ashgi
یک شنبه 10 شهریور 1387, 20:51 عصر
سلام به همه عزیزان و دوستان گرامی ، این برنامه که تو سی پلاس پلاس نوشتم ، معادله

سیاله معروف در ترکیبیات در ریاضیات گسسته ، جوابهای طبیعی اش رو پیدا کرده و نشان

میدهد و همچنین تعداد کل جوابهای طبیعی را !!!!

کد برنامه تقدیم شما عزیزان :


#include <iostream>
#include <conio>
int main(){
int n,p=0;
cout<<"\n";
cout<<" *** Solving X1 + X2 + X3 = N *** (Xi is Natural)\n";
cout<<"________________________________________\n\n";
cout<<" Enter N\n";
cin>>n;
cout<<"\n";
for(int i=1;i<=n-2;i++){
for(int j=1;j<=n-2;j++){
for(int k=1;k<=n-2;k++)
if(i+j+k==n){
cout<<" "<<i<<" "<<j<<" "<<k<<endl;
p++;}
}
}
cout<<"________________________________________\n\n";
cout<<" Numbers of Solving : "<<p<<endl;
getch();
return 0;
}

موفق و پیروز باشید !!!!:لبخندساده:

Salar Ashgi
پنج شنبه 14 شهریور 1387, 10:41 صبح
#include <iostream>
#include <conio>
#include <math>
int tedad(int n){
if(n/10==0)
return 1;
else
return 1+tedad(n/10);
}
int main()
{
int x;
cin>>x;
cout<<tedad(x)<<"\n";
getch();
}


موفق و پیروز باشید !!!

Salar Ashgi
پنج شنبه 14 شهریور 1387, 10:44 صبح
#include <iostream>
#include <conio>
#include <iomanip>
void seprator(int n){
if(n<10)
cout<<n;
else
{
seprator(n/10);
cout<<setw(4)<<n%10;
}
}
int main()
{
int a;
cout<<"Enter a Number\n";
cin>>a;
cout<<endl;
cout<<"The seprated numbers:\n\n";
seprator(a);
getch();
}

موفق و پیروز باشید !!!!

Salar Ashgi
پنج شنبه 14 شهریور 1387, 22:28 عصر
دوستان ، این سوال برای تمرین برنامه نویسی ، بسیار مناسب میباشد !!!!!

موفق و پیروز باشید !!!:لبخندساده:

Salar Ashgi
پنج شنبه 14 شهریور 1387, 22:37 عصر
http://i35.tinypic.com/29dxpp2.jpg

==============================================

http://i33.tinypic.com/1zf6dxi.jpg

موفق و پیروز باشید در پناه حق تعالی !!!

Salar Ashgi
یک شنبه 17 شهریور 1387, 15:13 عصر
سلام ، به همه دوستان ، این کد که تو سی پلاس پلاس نوشتم ، پیاده سازی مرتب کردن

انتخابی است (Selection Sort ) ، اگه سوالی بود ، در خدمتم !!! موفق و پیروز باشید !!!!


#include <iostream>
#include <conio>
void change(int &a,int &b){
int temp=a;
a=b;
b=temp;
}
void selsort(int s[],int n){
int max=0;
for(int i=n-1;i>=0;i--){
for(int j=0;j<=i;j++){
if(s[j]>s[max])
max=j;}
change(s[i],s[max]);
max=0;
}
}
int main()
{
int k;
cout<<"Enter Tedad\n";
cin>>k;
int *a=new int[k];
cout<<"Enter Your Numbers\n";
for(int i=0;i<k;i++)
cin>>a[i];
cout<<"---------------------\n";
selsort(a,k);
for(int i=0;i<k;i++)
cout<<a[i]<<" ";
getch();
}

Salar Ashgi
یک شنبه 17 شهریور 1387, 15:20 عصر
#include <iostream>
#include <conio>
int main(){
int a[2][3][4]={{{1,7,3,9},{8,11,9,4},{5,17,6,3}},
{{13,4,9,1},{18,7,5,14},{23,9,12,3}}};
for(int i=0;i<2;i++){
for(int j=0;j<3;j++){
for(int k=0;k<4;k++)
cout<<a[i][j][k]<<" ";
cout<<endl;
}
cout<<endl;
}
getch();
}

موفق و پیروز باشید !!!:لبخندساده:

bandeykhoda
دوشنبه 11 فروردین 1393, 00:41 صبح
#include <iostream>
#include <conio>
int main(){
int a[2][3][4]={{{1,7,3,9},{8,11,9,4},{5,17,6,3}},
{{13,4,9,1},{18,7,5,14},{23,9,12,3}}};
for(int i=0;i<2;i++){
for(int j=0;j<3;j++){
for(int k=0;k<4;k++)
cout<<a[i][j][k]<<" ";
cout<<endl;
}
cout<<endl;
}
getch();
}

موفق و پیروز باشید !!!:لبخندساده:


میشه یه برنامه بنویسیدکه زمان اجرای selection sort رو بده؟

rahnema1
دوشنبه 11 فروردین 1393, 06:39 صبح
سلام
برنامه selection sort را داخل این باذرید تا زمانش را محاسبه کنه

#include <time.h>
#include <stdio.h>
int main()
{
clock_t t= clock();
//selection sort algorithm
//...
t=clock()-t;
printf("time: %f seconds",(float)t/CLOCKS_PER_SEC);
}

amirtork
یک شنبه 20 اردیبهشت 1394, 17:59 عصر
تابع شناسایی عدد اول، توی برنامه های دوستان در بالا(به اشکال مختلف) پیدا میشه، چرا از اون ها استفاده نمیکنید؟
الگوریتم خاصی مد نظر هست؟