www.zkurd.org
ئه‌ندامه‌تی پرۆژه‌كان مه‌کۆ تاقیكاری IT فه‌رهه‌نگی ماڵه‌وه
  zanistperweran



پۆستی ئه‌له‌كترۆنی
(ته‌نها بۆ ئه‌ندامانه‌)
ناو
تێپه‌ڕه‌وشه‌
له‌ لایه‌ن aras ه‌وه‌، ‌ ڕێكه‌وتی ٢٠٠٤/٧/٢٥    

سووڕ Loop
مه‌به‌ست له سووڕ له‌ ناو به‌رنامه‌دا دووپاتكردنه‌وه‌ی جێببه‌جێ كردنی هه‌نگاوێك یان چه‌ند هه‌نگاوێكه، ئه‌مه‌ش له‌ ڕێگه‌ی ده‌ربڕین و فرمانی تایبه‌ته‌وه به‌ ئه‌نجام ده‌گه‌یه‌نرێت.
به‌كاربردنی سووڕ چاودێری كردنی به‌رنامه‌ ئاسان ده‌كات، سووڕ بواری پێكهێنانی به‌رنامه‌ی پوخت و ژێهات ده‌دات.
تاكوو زیاتر له واتای سووڕ تێبگه‌ین، نموونه‌ی به‌راورد كردنی دوو ژماره‌كه‌ بهێنه‌ پیش چاو (بڕوانه‌ به‌شه‌كانی پێشووتر)، گه‌ر بێتو له‌ بری دوو ژماره، سه‌د ژماره به‌راورد بكه‌ین، ئه‌وا پێویست ده‌كات سه‌د جار كاری خوێندنه‌وه‌ و به‌راوردكردنه‌ بنووسینه‌وه، ئه‌مه‌ جگه‌ له‌وه‌ی قه‌باره‌ی به‌رنامه‌كه‌ زۆر درێژ ده‌بێت، كارێكی لۆجیكیش نییه.

ئه‌و ڕستانه‌ی كه‌ ده‌بێت دووپاتبكرێنه‌وه له‌ سووڕه‌كه‌دا به‌ گیانی body سووڕه‌كه‌ ناوده‌برێت، هه‌ر جارێكی دووپات بوونه‌وه‌كه‌ش به كه‌ڕه‌تی iteration سووڕ ناوده‌برێت. بۆ به‌رنامه‌ داڕێژ گرنگه كه چاودێری ئه‌م دوو خاڵه بكات:
- ئه‌و ڕستانه‌ی گیانی سووڕه‌كه‌ پێكده‌هێنن كامانه‌ن ؟
- چه‌ند كه‌ڕه‌ت پێویست ده‌كات سووڕه‌كه‌ دووپات بێته‌وه ؟

ڕسته‌ و ده‌سته‌واژه‌كانی ناو سووڕه‌كه‌، كه‌ گیانی سووڕه‌كه‌ن، به‌رنامه‌داڕێژ به گوێره‌ی چۆنێتی كاری به‌رنامه‌كه‌ و مه‌به‌سته‌كه‌ی دایده‌نێت، ژماره‌ی دووپاتكردنه‌وه‌ی جێبه‌جێ كردنه‌كانی سووڕه‌كه‌یش به‌هۆی گۆڕدراوێكی چاودێره‌‌وه control variable ده‌ستنیشان ده‌كرێت. تاكوو له گرفت به‌دووربین له‌ سووڕه‌كه‌دا، ده‌بێت ڕه‌چاوی سێ هه‌نگاوی گرنگ بكه‌ین: 
1. ئاماده‌كردنی گۆڕاوی چاودێری سووڕه‌كه‌ (به‌ واتایه‌كی تر، له‌ چه‌نده‌وه‌ ده‌ست پێبكات).
2. پشكنینی گۆڕاوی چاودێری سووڕه‌كه له‌ پێكانی مه‌رجی به‌رده‌وامی سووڕه‌كه‌.
3. تازه‌كاریی نرخ و گۆڕانكاریی له گۆڕاوی چاودێری سووڕه‌كه.

بێگومان هه‌موو سووڕێك ده‌ست پێكردن و كۆتایی هه‌یه‌، له‌به‌رئه‌وه گرنگه ئه‌و خاڵانه‌ی سه‌ره‌وه‌ له‌به‌رچاو بگیرێن، تاكوو سووڕه‌كه‌ ناكۆتا infinite به‌رده‌وام نه‌بێت و ئاكام بدات به‌ده‌سته‌وه.

جۆره‌كانی سووڕ
جۆری سووڕ له‌ زمانه‌كانی به‌رنامه‌ داڕشتندا، به گوێره‌ی شوێنی مه‌رجی به‌رده‌وام بوونی سووڕه‌كه‌ پۆلێن كراوه:
1. له‌ سه‌ره‌وه‌ مه‌رجه‌كه‌ به‌راورد بكرێت.
2. له‌ خواره‌وه مه‌رجه‌كه‌ به‌راورد بكرێت.
له‌ زمانی C/C++ دا بۆ جۆری یه‌كه‌م «for, while» به‌كارده‌برێت، بۆ جۆری دووه‌میش «do..while»، بێگومان ڕێزمان و ئامێره‌كی كرداری هه‌رجۆرێك جیاوازه‌ له‌وه‌ی دیكه‌. بۆ ئاشنا بوونی ئه‌م جۆره‌ سووڕانه‌ش له خواره‌وه‌ ڕوونكردنه‌وه‌ ده‌ده‌ین.


سووڕی while 
وه‌ك ناوبرا له‌ جۆری ئه‌و سووڕه‌یه‌ كه له سه‌ره‌تای سووڕه‌كه‌دا به‌راوردی پێكانی مه‌رجه‌كه‌ ده‌كرێت تاكوو بڕیار بدرێت سووڕه‌كه‌ ده‌ست پێبكات یان نا.

ڕێزمانی while

while < مه‌رج >
{
گیانی سووڕه‌كه
}

ده‌شێت له‌م جۆره‌ سووڕانه‌دا هیچ جارێك ڕێنوینییه‌كانی ناو سووڕه‌كه‌ جیبه‌جی نه‌كرێن، گه‌ر مه‌رجه‌كه‌ له‌ ده‌ستپێكردندا نه‌هاته‌دی.

نموونه 1: ده‌كرێت كۆكردنه‌وه‌ی ژماره‌كانی نێوان 50 تاكوو 100 له‌ سووڕێكدا به‌م شێوه‌ بێت:

int ko, jimare;
ko = 0;
jimare=50;
while(jimare < 101) {
  ko += jimare;
  jimare++;
}

گۆڕاوی ko ئه‌نجامه‌كه‌ی تیا هه‌ڵده‌گرین له‌ سه‌ره‌تادا یه‌كسانی ده‌كه‌ین به‌ سفر، گۆڕاوی jimare چاودێری سووڕكه‌ی پێ ده‌كه‌ین، نرخی 50 تاكوو 100 ـی ده‌بێت له‌ سووڕه‌كه‌دا، هه‌موو كه‌ڕه‌تێك نرخه‌كه‌ی زیادی ده‌كه‌ین jimare++ تاكوو سووڕه‌كه‌ كۆتایی هه‌بێت و، به‌ گه‌یشتنی به ژماره‌ 101 مه‌رجی به‌رده‌وامی سووڕه‌كه‌ (jimare<101) نامێنێت و كۆتایی پێدێت.

ئێستا گه‌ر بیخه‌ینه ناو به‌رنامه‌یه‌كه‌وه:

void main(void)
{
int ko=0, jimare=50;

 
while(jimare < 101)
    ko += jimare++ ;

  cout << "koy jimarekani 50-100 dekate: " << ko << endl;
}

پاش جێبه‌جێ كردنی ئه‌م به‌رنامه‌یه‌، له‌سه‌ر كۆنسۆڵه‌كه‌ كۆی ژماره‌كانی نێوان 50 تا 100 نیشان ده‌درێت:

koy jimarekani 50-100 dekate: 3825

تێبینی ده‌كه‌ین له نموونه‌كه‌دا گیانی سووڕه‌كه‌دا له‌ نێوان دوو كه‌وانه‌ی { و } دا سنووردار كراوه، چونكوو له‌ ڕێنوێنییه‌ك زیاتر پێكهاتووه، له‌ به‌رنامه‌كه‌دا پێویستمان به كه‌وانه نه‌بووه‌ چونكه ته‌نها یه‌ك ڕێنوێنی گیانی سووڕه‌كه‌ پێكدێنێت، خۆ ئه‌گه‌ر كه‌وانه‌ش دانرابێت هیچ كاریگه‌ری نابێت. له‌ ڕاستیدا ئه‌م كرداره بۆ هه‌موو ده‌ربڕینه‌كانی ناو زمانی C/C++ ڕێسایه.
یه‌كه‌م هه‌نگاوی سووڕه‌كه‌ وه‌ك سه‌رنج درا، دانانی مه‌رجه و پشكنینی پێكانی مه‌رجه‌كه‌یه‌:
while(jimare<101)
واته له كاتێكدا كه نرخی گۆڕاوه‌كه‌ jimare بچووكتره له 101 به‌رده‌وام به. به‌و شێوه‌یه‌ گه‌ر مه‌رجه‌كه‌ی پێكا سووڕه‌كه‌ به‌رده‌وام ده‌بێت، تاكوو جارێك دێت له‌ سووڕه‌كه‌ دێته‌ ده‌ره‌وه‌.

نموونه 2: خوێندنه‌وه‌ی 10 ژماره‌ی ته‌واو، به سوود وه‌رگرتن له نه‌ خشه‌ی Xwendinewey_Jimare 

void main(void)
{
  int iNumber, iCount=1;
  while (iCount<11)
  {
    iNumber = Xwendinewey_Jimare();
    cout << "jimarey(" << iCount << ") = " << iNumber << endl;


    iCount++;
  }
}

سه‌ره‌تای سووڕه‌كه‌ وه‌ك باسكرا له‌م جۆرانه‌دا، به‌راورد كردنی مه‌رجه‌كه‌یه، لێره‌دا نرخی گۆڕ‌اوی iCount كه له‌ سووڕه‌كه‌دا نرخه‌كه‌ی زیاد ده‌كرێت، پاش هه‌موو خوێندنه‌وه‌یه‌ك:
iCount++;
گه‌ر ئه‌م ڕسته‌یه‌ لا ببرێت، سووڕه‌كه‌ كۆتایی نایه‌ت، چونكه گۆڕاوه‌كه‌ نرخه‌كه‌ی وه‌ك خۆی ده‌مێنێته‌وه‌ و مه‌رجه‌كه‌ هه‌میشه‌ دروست ده‌بێت، تاقی بكه‌ره‌وه‌!.
ئاكامی به‌رنامه‌كه‌ش له‌سه‌ر كۆنسوڵه‌كه‌ به‌م شێوه‌یه‌ ده‌بێت:

C:cppLoop>Ex1
3
jimarey(1) = 3
67
jimarey(2) = 67
43
jimarey(3) = 43


-1
jimarey(9) = -1
28
jimarey(10) = 28

C:cppLoop>

 

ئێستا با بگه‌ڕێینه‌وه سه‌ر نموونه‌ی به‌راورد كردنی دوو ژماره‌، كه له‌ وانه‌كانی ڕابردوودا باسكراوه، سووڕێك داده‌نێین كه به‌رده‌وام دوو ژماره بخوێنێته‌وه و به‌راوردیان بكات، تاكوو خۆمان بڕیاری وه‌ستانی ده‌ده‌ین:

char cBerdewam = 'y';

while(cBerdewam == 'y')
{
  cout << "jimarey yekem: ";
  n1= Xwendinewey_Jimare();

  cout << "jimarey duhem: ";
  n2 =Xwendinewey_Jimare();

  Berawrd(n1,n2);

  cout << "Berdewam bet (y/n)? ";
  cin >> cBerdewam ;
}

له‌م سووڕه‌دا نرخی گۆڕاوی cBerdewam كه له‌ جۆری نووسه، پێناس كراوه، بڕیاری به‌رده‌وامی سووڕه‌كه‌ ده‌دات، سه‌ره‌تا یه‌كسانمان كردووه به 'y' تاكوو لانی كه‌م یه‌كجار به‌رده‌وام بێت.
char cBerdewam = 'y';
هه‌موو كه‌ڕه‌تێك پرسیار ده‌كرێت له دووپات كردنه‌وه و به‌رده‌وام بوونی سووڕه‌كه:

cout << "Berdewam bet (y/n)? ";
cin >> cBerdewam ;

خوێندنه‌وه‌ی گۆڕاوی cBerdewam له كۆتایی سووڕه‌كه‌دا، ئه‌گه‌ری به‌رده‌وامی سووڕه‌كه‌ ده‌دات، كاتێك له ته‌خته‌كلیله‌وه پیتی y بده‌ین، سووڕه‌كه‌ به‌رده‌وام ده‌بێت، هه‌ر پیت زان دووگمه‌یه‌كی تر بده‌ین كۆتایی به سووڕه‌كه‌ دێت.
سووڕه‌كه‌ له‌ ناو نه‌خشه‌ی سه‌ره‌كیدا به‌م شێوه‌یه‌ ده‌بێت:

#include <iostream.h>
#include "functions.h"


int main(void)
{
  int n1, n2 ;
  char cBerdewam = 'y';

  while(cBerdewam == 'y')
  {
    cout << "jimarey yekem: ";
    n1= Xwendinewey_Jimare();

    cout << "jimarey duhem: ";
    n2 =Xwendinewey_Jimare();

    Berawrd(n1,n2);

    cout << "Berdewam bet (y/n)? ";
    cin >> cBerdewam ;
  }
  return 0;
}

له‌ خواره‌وه‌ چۆنێتی كاركردنی له‌سه‌ر كۆنوسه‌ڵه‌كه‌ نیشاندراوه:

jimarey yekem: 3
jimarey duhem: 78
jimarey duhem (78) geure tre
Berdewam bet (y/n)? y
jimarey yekem: -23
jimarey duhem: 7
jimarey duhem (7) geure tre
Berdewam bet (y/n)? n


ئه‌م بابه‌ته‌ درێژه‌ی هه‌یه‌

هه‌موو لاپه‌ڕه‌كانی ئه‌م بابه‌ته‌:

1 - 2 - 3 - 4 - 5

chapi bike


مافی ئه‌م ماڵپه‌ڕه‌ پارێزراوه‌ بۆ گرووپی زانستپه‌روه‌رانی كورد، بۆ زانیاریی زۆرتر تكایه‌ كرته‌ی ئێره‌ ‌بكه‌
©٢٠٠٣-٢٠١٠