Өмнөх нөхцөлт давталт нь дараах хэлбэртэй байна. 
while (давталтыг төгсгөх нөхцөл)
{
үйлдэл1;
үйлдэл2;
...
үйлдэлN;
}
Төгсгөх нөхцөлийг шалгаж эхэлж байгаа учир түүн доторхи хувьсагч давталт эхлэхээс өмнө ямар нэгэн утга авсан байна.
Жишээлбэл үйлдлийг n удаа давтаад зогсох бол  
int a=0
while(a<=n)
{
үйлдлүүд;
a++;
}
хэлбэртэй байна.
Үүнийг ашиглан жишээ болгож Фибоначчийн дарааллын эхний N гишүүнийг хэвлэх програм бичье.
Фибоначчийн дараалал нь 1, 1-ээр эхлэн 1, 1, 2, 3, 5, 8... гэх мэтчилэн гишүүн бүр нь өмнөх 2 гишүүний нийлбэрээр илэрхийлэгддэг натурал тоон дараалал юм. 
Эхний гишүүнийг 0, дараагийхыг 1 гэж үзээд 0, 1, 1, 2, 3, 5...-ийн эхний гишүүнийг алгасан хэвлэнэ.  int last=1 зарласан  ба   printf("%d",last) гэсэн учир бидний програм зөв ажиллаж чадна. 
#include "stdio.h"
main()
{
int n; 
int c=1;    
int next=0;  // Дараагийн гишүүнийг гаргах нэмэгдэхүүнүүдийн эхний нэмэгдэхүүнийг 0 гэж сэтгэе. 
int last=1;   // 2 дах нэмэгдэхүүнийг 1 гэж үзье.
int sum;      // 2 гишүүнийг нэмж гарсан нийлбэрийг тэмдэглэе. 
scanf ("%d",&n);   //гараас N тоог авна. 
while (c<=n)         // с тоог 1-ээс эхлэн нэмэгдүүлэх буюу дарааллын дараалсан 2 гишүүнийг нэмж дараагийн гишүүнийг гаргах үйлдэл n-1 хийгдэнэ гэсэн үг.
{
printf("%d ",last);   // Нэмэх үйлдэл хийж гаргасан гишүүдийг хэвлэх үйлдэл 
sum=next+last;     //Өмнөх 2 гишүүнийг нэмж дараагтийн гишүүнийг гаргана. 
next=last;              //Өмнөх үйлдэл хийхэд оролцсон сүүлчийн гишүүнийг дараагийн үйлдлийн эхний нэмэгдэхүүн гэж үзнэ. 
last=sum;             //Түрүүчийн үйлдлийг хийгээд гарсан үр дүнг дараагийн үйлдлийн 2 дахь нэмэгдэхүүн болгон санах ойд хадгална.  
c++;                     //Хэдэн удаа үйлдэл хийхийг заах үйлдэл. Өмнөх нөхцөл шалгахдаа c<=n гэж зааж өгсөн
}
}
Жишээ нь:
Оролт:
6
Гаралт:
1   1   2   3   5   8
Wednesday, October 22, 2008
Өмнөх нөхцөлт давталт
Posted by Gansukh Batjargal at 7:49 AM
Labels: C/C++ programming
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment