Algoritmlarni loyihalash” fanidan 301-guruh talabasi Nasrullayev Muxammadsodiq


Download 191.09 Kb.
bet2/3
Sana18.06.2023
Hajmi191.09 Kb.
#1599264
1   2   3
Bog'liq
NASRULLAYEV M ALGORITM

Uch asimptotik belgilar asosan algoritmlarning vaqt murakkabligini ifodalash uchun ishlatiladi :

  1. Θ-notation ( teta );

  2. O-notation ( O );

  3. Ω notasi ( Omega ).

Hisoblash mashinalar tezligi oshishiga qaramasdan, ular yordamida yechilayotgan masalalar kattaligini oshishini algoritm qiyinligini tahlil orqali aniqlaydi.




3.Algoritmni ishlab chiqish.
1.Boshlash
2.Tomonlarni kiritamiz.
3.Tomonlar saralab olinadi.
4.Birinchi qutini ikkinchi qutidan katta yoki katta emaskigi tekshiriladi.
5.Taqqoslashlar birinchi qutni o’lchami ikkinchi qutidan kattaligi malum bo’lsa “Birinchi quti ikkinchisidan katta ekanligi chiqadi.
6.Agarda o’lchamlar tengligi malum bo’lsa “Qutilar tengligi” aytiladi
7.Agarda birinchi quti o’lchamlari ikkinchisidan kichik bo’lsa “birinchi quti ikkinchisida kichik” ekanligi chiqadi.
8. Aks holda qutilar taqqoslanmaydi.
9.Tamom.
4.Algoritmni amalga oshirish.(dastur)
#include
#include
using namespace std;
int main(){
int a[5],b[5],k=3,i=0;
cin>>a[1]>>a[2]>>a[3];
cin>>b[1]>>b[2]>>b[3];
sort(a+1,a+3+1);
sort(b+1,b+3+1);
//cout<for(int j=0;j<3;j++){
if(a[1]>=b[1]&&a[2]>=b[2]&&a[3]>=b[3]){
if(a[1]+a[2]+a[3]>b[1]+b[2]+b[3]){
cout<<"Birinchi quti ikkinchisidan kattaroq";
break;
}

}
if(a[j+1]==b[j+1]){


i++;
}
if(i==3){
cout<<"Qutilar teng";
break;
}
if(a[1]<=b[1]&&a[2]<=b[2]&&a[3]<=b[3]){
if(a[1]+a[2]+a[3]cout<<"Birinchi quti ikkinchisidan kichikroq";
break;
}}
else{
cout<<"Qutilar taqqoslanmaydi";
break;
return 0;
}}}

1-MASALA
MASALANI QO’YILISHI
Quyidagi funksiyani to’rtburchaklar, Trapetsiya va Simpson formulalari yordamida taqribiy hisoblash dasturini tuzing.



integralni chap to’rtburchaklar formulasidan foydalanib taqribiy hisoblansin.
Buning uchun integrallash kesmasini ta bo’lakka bo’lamiz va hisoblashlar natijalarini keltiramiz:

Bizning misolda bo’lgani uchun, to’g’ri to’rtburchaklar formulasiga asosan, quyidagi natijani hosil qilamiz.
X=0.1; =0.9901
X=0.2; =0.9615
X=0.3; =0.9174
X=0.4; =0.8621
X=1.0 =0.5000
7.5998
.
Dastur kodi
#include
#include
using namespace std;
double funk(double x)
{
return (1.0/(1+x*x));
}
int main()
{
double a,b,S=0, xa;
int n=10;
cout<<"integral chegarasini kiriting"<
cin>>a>>b;
xa=a;
while (xa
{
S+=funk(xa);
xa+=0.1;
}
S=S*fabs(b-a)/n;
cout << S;
return 0; }

Dastur kodi


#include
#include
using namespace std;
double funk(double x)
{
return (1.0/(1+x*x));
}
int main()
{
double a,b,S=0, xa;
int n=10;
cout<<"integral chegarasini kiriting"<
cin>>a>>b;
xa=a;
while (xa
{
S+=funk(xa);
xa+=0.1;
}
S=S*fabs(b-a)/n;
cout << S;
return 0; }

Trapetsiyalar usuli
Aniq integralni taqribiy hisoblashni trapetsiyalar usulini aniqlash uchun egri chiziq funksiyasini bitta qadamdagi qismini ko’rib chiqamiz.

f(x) egri chiziqni to’g’ri chiziq bilan almashtiramiz. Egri chiziqli trapetsiyani to’g’ri burchakli trapetsiyaga aylantiramiz. Ushbu trapetsiyaning yuzasi

, va ekanligini hisobga olib, barcha nuqtalarda yuzalarni hisoblasak quyidagi formulani keltirib chiqaramiz.

Demak, aniq integralni taqribiy hisoblashning trapetsiya formulasi quyidagiga teng:

Bu formula geometrik nuqtai-nazardan integral ostidagi funksiyaning grafigini tugun nuqtalarni tutashtiruvchi siniq chiziq bilan almashtirishdan iboratdir.
2. integralni trapetsiyalar formulasi yordamida taqribiy hisoblang. Bunda ham
deb oling.
Yechish: va

bo’lgani uchun

Dastur kodi
#include
#include
using namespace std;
double funk(double x)
{
return (1.0/(1+x*x));
}
int main()
{
double a,b,S=0, xa;
int n=10;
cout<<"integral chegarasini kiriting"<
cin>>a>>b;
xa=a+0.1;
while (xa
{
S+=funk(xa);
xa+=0.1;
}
S=(funk(a)+funk(b))/2+S;
S=S*fabs(b-a)/n;
cout << S;
return 0; }


Download 191.09 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling