Turli xil yo’nalishga doir masalalarning agoritmini tahlil qilish va dast urini tuzish
Algoritm deganda, biror maqsadga erishishga qaratilgan ijrochi bajarishi uchun mo'ljallangan ko‘rsatma (buyruq)larning aniq, tushunarli va chekli ketma-ketligi tushuniladi.
Algoritmlarni asosan 4 xil ko’rinishda ifodalash mumkin:
So’zlar yordamida
Formulalar yordamida
Jadval yordamida
Grafiklar yordamida
Algoritmni to’liq qurish bosqichlari bilan quyida tanishib chiqamiz: Masalaning qo’yilishi
1- masala: Eni 6 metr va bo‘yi 10 metr bo’lgan maydonni to’dirish uchun sotib olinishi kerak bo’lgan 12x25 sm (eni 12 sm va bo‘yi 25 sm) plitalar soni topilsin.
Hisoblayotgan kishi quyidagi ketma-ketlikdagi amallarni bajaradi:
1) joyning yuzasi Sj santimetr o’lchov birligida topilsin;
2) bir dona plitaning yuzasi Sg santimetr o'lchov birligida topilsin;
3) plitalar soni Ss joyning yuzasini plitaning yuzasiga nisbati deb olinsin.
Bu amallar ketma-ketligini quyidagi matematik formula bilan ham ifodalash mumkin:
Ss=Sj/Sg=(6*100*10*100)/(12*25)=2000
Dastur: #include using namespace std; int main() { int Ss,ag,bg,aj,bj;//butun turga tegishli o’zgaruvchilarni e’lon qilish cin>>aj>>bj>>ag>>bg;//plitani va maydonning qiymatlarini kiritish Ss=(aj*100*bj*100)/(ag*bg);//plitalar sonini hisoblashning matematik modeli cout< return 0; }
2-Masala: Ikkita butun turga tegishli sonlar berilgan ularning eng katta umumiy bo’luvchisini topish algoritmini va dasturini tuzing.
1. Boshlash;
2. A va b butun turga tegishli sonlarni kiritamiz;
3. b ni a ga bo’lgamizda, qoldiq noldan farqli bo’lguncha operatorlar ketma-ketligi bajarilsin;
4. a va b o'zgaruvchilarning o'rinlarini almashtiramiz
5. a ning qiymatini ekranda chop etamiz
6. tamom.
Dasturi: #include #include using namespace std;
int main()
{
int a,b;
cout<<"a va b o'zgaruvchilarni kiriting: "
cin>>a>>b; //o'zgaruvchilarni kiritish
while(b%=a)
{
swap(a,b);// a va b o'zgaruvchilar o'rinlarini almashtirish
}
cout << a; //ekubni chiqarish
return 0;
} Natija:
3-masala.Quyidagi ketma-ketlikning yig’indisini hisoblash algoritmi va dasturini tuzing.
S=1+12+123+1234+…+1234…n.
Bu yerda 0
Kiruvchi:
Chiquvchi:
5
9
13715
137174205
1. O’zgaruvchilarni e’lon qilamiz va boshlang’ich qiymat ta’minlaymiz;
2. n o’zgaruvchini kiritamiz;
3. shart qo’yamiz: qachonki j<=n bo’lguncha operatorlar ketma-ketligi bajarilsin;
4. s+=i; va j++; i=i*k+j operatorlar ketma-ketligini kiritamiz;
5. s natijani ekranda chop qilamiz;
6. tamom.
Dasturi:
#include using namespace std;
int main()
{ long long s=0; //uzun butun turga tegisgli o’zgaruvchini e’lon qilamiz va 0 boshlang’ich qiymat ta’minlaymiz
unsigned n;//ishorasiz butun turga tegishli n o’zgaruvchi e’lon qilamiz;
cin>>n;//
long long i=1,j=1,k=10;
while(j<=n){//j<=n shart bajarilmay qolgungacha operatorlar ketma ketligi takrorlanaveradi;
s=(s+i);
j++;
i=(i*k+j); }
cout<return 0;
} Dastur ishlash algoritmini tahlil qilish jarayoni quyidagicha bo’ladi:
1. n o’zgaruvchiga 3 qiymatni berganimizda
2. s=0 i=1 j=1 k=10 boshlang’ich qiymatlar berilgan;
3. Shart (j<=n) tekshiriladi, shart(1<=3) qanoatlandi. s=s+i=1; j=j+1=1+1=2; i=i*k+j=1*10+2=12;
4. Shart (j<=n) tekshiriladi, shart(2<=3) qanoatlandi. s=s+i=1+12=13; j=j+1=2+1=3; i=i*k+j=12*10+3=123;
5. Shart (j<=n) tekshiriladi, shart(3<=3) qanoatlandi. s=s+i=13+123=136; j=j+1=3+1=4; i=i*k+j=123*10+4=1234;
6. Shart (j<=n) tekshiriladi, shart(4<=3) qanoatlanmadi;
7. Ekranda s o’zgaruvchining qiymati chop qilinadi: 136;
8. Tamom.