Hello world!!!
I'm Iranian;
so I just speak PERSIAN;
You should know this;
I'm just for IRAN
سلام بر همه؛
این وبلاگ فقط برای تبادل اطلاعات است؛
البته هنوز اولشه؛ اما بعد از شروع و پر و بال گرفتن، برای همه یک وبلاگ محبوب خواهد شد.
HMD
فرض کنید که به شما آرایه ای بدهند و از شما بخواهند که بزرگترین عنصر این آرایه را در خروجی نمایش دهید.
برای این کار برنامه ای خواهید نوشت که تنها عنصر ماکزیمم را به شما بدهد.
حال فرض کنید که از شما بپرسند عنصر 5 ام این آرایه به ترتیب بزرگ به کوچک چیست؟ آن وقت چکار خواهید کرد؟
برای حل این قبیل مسائل باید کل آرایه را مرتب کنیم!
الگوریتمهای مختلفی تا امروز برای مرتب سازی آرایه ها ارائه شده است.
اما از ساده ترین آنها می توان به سه نوع مرتب سازی زیر اشاره نمود:
1-مرتب سازی انتخابی یا selection sort
2
2- مرتب سازی درجی یا insertion sort
3
3- مرتب سازی حبابی یا bubble sort
در ادامه الگوریتم مرتب سازی هر کدام از این روشها توضیح داده خواهند شد
1- مرتب سازی انتخابی یا Selection sort
در این نوع مرتب سازی از اولین خانه آرایه شروع می کنیم و این خانه را با خانه های بعد از خودش تا آخر آرایه، یکی یکی مقایسه می کنیم و هر جا که مقدار خانه ای از خانه ی اولی بیشتر بود مقادیر این دو خانه را جا به جا می کنیم.
مثلا خانه ی سوم هستیم و خانه های صفرم تا دوم را مرتب کرده ایم. خانه ی سوم را با خانه های چهارم تا آخر آرایه یکی یکی مقایسه میکنیم. حال اگر خانه ی هفتم مقداری بیشتر از خانه ی سوم داشت مقدار این دو خانه را همان جا، جا به جا می کنیم.
بعد از آن دوباره خانه ی سوم را( که الان مقدارش عوض شده است) با خانه های هشتم و تا آخر آرایه مقایسه می کنیم و این کار را تا آخر ادامه میدهیم . در انتها خانه ی سوم با بزرگترین مقداری که در خانه های سوم تا آخر آرایه وجود داشته است، پر شده است.
این کار را برای تمام خانه های آرایه( غیر از آخرین خانه که به مقایسه ای احتیاج ندارد) انجام می دهیم.
در این روش مرتب سازی خانه ی دوم آرایه را انتخاب می کنیم و این خانه را با خانه ی قبلی خود مقایسه می کنیم و اگر بزرگتر بود پشت سر خانه ی قبلی خود، قرار میگیرد. در مقایسه های بعدی هر خانه را( key) با خانه های قبل از خودش یکی یکی مقایسه می کنیم و تا زمانی پیش می رویم که به یک خانه برسیم که از کلید یا key بزرگتر باشد. پس دیگر نباید پیش برویم و باید کلید را در محلی که به آن رسیده ایم قرار بدهیم.
روش مرتب سازی مثل بالا آمدن حبابهای سبک و بعد حبابهای سنگین تر در یک ظرف مایع می باشد. در این روش هر خانه با خانه ی بعدی خود مقایسه می شود و اگر کوچکتر بود با هم جابه جا می شوند ( می خواهیم اعداد کوچکتر یا حبابهای کمتر را به انتهای آرایه حرکت دهیم.) پس از انتهای این مقایسه ها اتفاقی که رخ داده این است که کوچکترین عدد( یا حباب) به انتهای آرایه فرستاده شده است. خب باید این کار را برای همه ی خانه های آرایه انجام دهیم تا تمام خانه ها مرتب شوند. پس کل این مقایسه ها در یک حلقه ی دیگر به طول آرایه می باشند.
فرض کنید که به شما آرایه ای بدهند و از شما بخواهند که بزرگترین عنصر این آرایه را در خروجی نمایش دهید.
برای این کار برنامه ای خواهید نوشت که تنها عنصر ماکزیمم را به شما بدهد.
حال فرض کنید که از شما بپرسند عنصر 5 ام این آرایه به ترتیب بزرگ به کوچک چیست؟ آن وقت چکار خواهید کرد؟
برای حل این قبیل مسائل باید کل آرایه را مرتب کنیم!
الگوریتمهای مختلفی تا امروز برای مرتب سازی آرایه ها ارائه شده است.
اما از ساده ترین آنها می توان به سه نوع مرتب سازی زیر اشاره نمود:
1-مرتب سازی انتخابی یا selection sort
2
2- مرتب سازی درجی یا insertion sort
3
3- مرتب سازی حبابی یا bubble sort
در ادامه الگوریتم مرتب سازی هر کدام از این روشها توضیح داده خواهند شد
1- مرتب سازی انتخابی یا Selection sort
در این نوع مرتب سازی از اولین خانه آرایه شروع می کنیم و این خانه را با خانه های بعد از خودش تا آخر آرایه، یکی یکی مقایسه می کنیم و هر جا که مقدار خانه ای از خانه ی اولی بیشتر بود مقادیر این دو خانه را جا به جا می کنیم.
مثلا خانه ی سوم هستیم و خانه های صفرم تا دوم را مرتب کرده ایم. خانه ی سوم را با خانه های چهارم تا آخر آرایه یکی یکی مقایسه میکنیم. حال اگر خانه ی هفتم مقداری بیشتر از خانه ی سوم داشت مقدار این دو خانه را همان جا، جا به جا می کنیم.
بعد از آن دوباره خانه ی سوم را( که الان مقدارش عوض شده است) با خانه های هشتم و تا آخر آرایه مقایسه می کنیم و این کار را تا آخر ادامه میدهیم . در انتها خانه ی سوم با بزرگترین مقداری که در خانه های سوم تا آخر آرایه وجود داشته است، پر شده است.
این کار را برای تمام خانه های آرایه( غیر از آخرین خانه که به مقایسه ای احتیاج ندارد) انجام می دهیم.
در این روش مرتب سازی خانه ی دوم آرایه را انتخاب می کنیم و این خانه را با خانه ی قبلی خود مقایسه می کنیم و اگر بزرگتر بود پشت سر خانه ی قبلی خود، قرار میگیرد. در مقایسه های بعدی هر خانه را( key) با خانه های قبل از خودش یکی یکی مقایسه می کنیم و تا زمانی پیش می رویم که به یک خانه برسیم که از کلید یا key بزرگتر باشد. پس دیگر نباید پیش برویم و باید کلید را در محلی که به آن رسیده ایم قرار بدهیم.
روش مرتب سازی مثل بالا آمدن حبابهای سبک و بعد حبابهای سنگین تر در یک ظرف مایع می باشد. در این روش هر خانه با خانه ی بعدی خود مقایسه می شود و اگر کوچکتر بود با هم جابه جا می شوند ( می خواهیم اعداد کوچکتر یا حبابهای کمتر را به انتهای آرایه حرکت دهیم.) پس از انتهای این مقایسه ها اتفاقی که رخ داده این است که کوچکترین عدد( یا حباب) به انتهای آرایه فرستاده شده است. خب باید این کار را برای همه ی خانه های آرایه انجام دهیم تا تمام خانه ها مرتب شوند. پس کل این مقایسه ها در یک حلقه ی دیگر به طول آرایه می باشند.
سوال:n را ورودی گرفته و n امین عدد سری فیبوناچی را با استفاده از آرایه چاپ کند.
جواب:
#include #include void main() { long int a[90000]; long int n,b,d,c; a[0]=1; a[1]=1; for (int i=2;i<90000;i++) a[i]=a[i-1]+a[i-2]; cout<<"jomle mored nazar khod ra vared konid:(barabar ya kamtar az 90000)"; cin>>n; cout<<"----------------"<<endl; cout<<"loading..."<<endl; for (c=2;c<=2000000000;c++) d=(d+1)-1; cout<<"----------------"<<endl; cout<<"adad mored nazar shoma(shomare "<<n<<") az seri adad fibonachi barabar ast ba:"<<a[n-1]<<endl; cin>>b; }
سوال:برنامه ای بنویسید که یک عدد در مبنای 10 را از ورودی گرفته و آن را به مبنای 2 ببرد.
پاسخ:
#include void main() { int a,f,x,d,c,n; cout<<"adad bar mabnaye 10 ra vared konid."<<endl; cin>>a; f=0; c=0; while (a>0) {x=a/2; d=a%2; if (a%2==0) c=c+1; else { for (n=1;n<=c;n++) d=d*10; f=f+d;} a=x;} if (f!=0) cout<<"adad bar mabnaye 2 shoma: "<<f<<endl; else cout<<"adad bar mabnay 2 shoma barabar ba "<<c<<" ta sefr ast."<<endl; }
سوال:برنامه ای بنویسید که عدد n را از کاربر بگیرد و جمله n ام سری فیبوناچی را اعلام کند.
پاسخ:
#include void main() { int n,b,c,o,e; cout<<"shomare gesmat mored nazar ra vared konid: "; cin>>n; b=1; c=1; o=0; if (n!=1) {while (b<n) {e=c; c=c+o; o=e; b=b++;} cout<<"gesmat mored nazar az adad fibonaghi barabar ast ba: "<<c<<endl;} else cout<<"gesmat mored nazar az adad fibonaghi barabar ast ba: "<<1<<endl; }
- برنامه ای بنویسید که ابتدا موجودی یک حساب را بگیرد سپس مقدار درخواست شده برای برداشت از آن را نیز بگیرد و بیان کند که آیا این برداشت ممکن است یا نه و در صورت امکان برداشت، باقی موجودی حساب را نیز چاپ کند:
#include<iostream.h>
int main()
{
cout << "mojudie hesabe shoma?" << endl;
float a; cin >> a;
cout << "mablaghe darkhasti ra vared konid: " << endl;
برنامه ای بنویسید که نمرات یک دانش آموز سال اول دبیرستان را بگیرد و معدل آن را حساب کند و بگوید که آیا مشروط شده است یا خیر . برای نوشتن این برنامه باید توجه داشته باشید که برنامه نام درس را چاپ می کند تا دانش آموز نمره ی خود را وارد کرده و همچنین واحد درس مورد نظر را نیز وارد کند.
#include<iostream.h>
int main()
{
cout << "lotfan nomre khod va vahede dars ra pas az har dars vared konid."<<endl;
float r, f, sh, zi, vr, vf, vsh, vzi;
cout << "riazi? vahed? " << endl;
cin >> r >> vr;
cout << "fizik? vahed? " << endl;
cin >> f >> vf;
cout << "shimi? vahed? " << endl;
cin >> sh >> vsh;
cout << "zist? vahed? " << endl;
cin >> zi >> vzi;
float avr = (r * vr + f * vf + zi * vzi + sh * vsh) / (vr + vf + vzi + vsh);
4-فرض کنید فرودگاهی دارای سه باند Aو Bو C باشد. اگر نوع پرواز خارجی باشد از باند A و اگر داخلی باشد و سرعت کمتر از 200 کیلومتر داشته باشد از باند B و در غیر آن صورت از باند A استفاده می شود. باند C در مواردی که پرواز دارای عیب فنی می باشد استفاده می شود. برنامه ای بنویسید که با دریافت اطلاعات مورد نیاز، باند مناسب را به برج مراقبت اعلام کند.
#include<iostream.h>
int main()
{
cout << "please enter S for safe and u for unsafe<<endl;
char c;
cin >> c;
if(c == 'u' || c == 'U')
cout << "Landing in C"<<endl;
else
if(c == 's' || c == 'S')
{
cout << "please enter N for national and I for international"<<endl;
char r;
cin >> r;
if(r == 'I' || r == 'i')
cout << "Landing in A"<<endl;
else
if(r == 'N' || r == 'n')
{
cout << "please enter landing speed"<<endl;
int v;
cin >> v;
if(v<200)
cout << "Landing in B"<<endl;
else
cout << "Landing in A"<<endl;
}
else
cout << "Error"<<endl;
}
else
cout << "Error"<<endl;
return 0;
}
:: موضوعات مرتبط:
if , ,
:: بازدید از این مطلب : 163
3- برنامه ای بنویسید که دو عدد و یک کاراکتر را از کاربر گرفته و اگر کاراکتر علامت + بود حاصلجمع دو عدد و اگر - بود تفریق دو عدد و اگر * بود حاصلضرب دو عدد و اگر / بود حاصل تقسیم غیر صفر دو عدد را اعلام کند:
#include<iostream.h>
int main()
{
cout << "please enter one number, one character [+ - * /] and one another number\n";