Лекция: 30 саѓат Лаборатория: 15 саѓат С¤Ж: 45 саѓат обс¤Ж: 45 саѓат Барлыќ саѓат саны: 135 саѓат


Лекция 11. Тақырыбы: Циклдар. For циклі



бет10/24
Дата14.06.2016
өлшемі1.16 Mb.
#135127
түріЛекция
1   ...   6   7   8   9   10   11   12   13   ...   24

Лекция 11.

Тақырыбы: Циклдар. For циклі.


(2 сағат)


  1. Циклдар

  2. For циклі


Пайдаланылатын әдебиеттер:

а) негізгі

1. К.Паппас, У.Мюррей “Программирование на С и С++”, Киев, 2000

2. А.Кетков, Ю.Кетков “Практика программирования Бейсик,

Си, Паскаль”, М.: 2001



б) қосымша

3. Шилдт Г. “Теория и практика С++”, Санкт-Петербург, 1996

4. Березин Б.И., Березин С.Б. “Начальный курс С и С++”, М.:1999

1. Циклдар

С жєне С ** тілдерінде стандартты мынадай циклдыќ инструкциялар ќолданылады. for, while жєне do/while.Б±л тілдердіњ ерекшелігі циклді тоќтату ќ±ралдарына ие екендігінде. Оны break иструкциясы арќылы орындайды. Б±дан бµлек continue иструкциясы арќылы мєжб‰рлі т‰рде циклдыњ келесі итерациясына µткізу ж‰зеге асырылу м‰мкін. For циклініњ ќалѓандарына айырмашылыѓы ќайталану саны алдын ала белгілі болуында. for циклі ќайталау санын дєл аныќтауѓа болатын жаѓдайларда ќолданылады. Ал while жєне do/while циклдері ќайталау саны мєлім емес, біраќ шартќа байланысты орындау керек жаѓдайларда ќолданылады.


2.For циклі

For циклініњ синтаксисі:

for( инициализирующие выражение ; условное выражение ; молифицирующее выражение) µрнек;

Программада for циклі кездессе алдымен инец.выр. орындалады.(Єдетте ол есептегіш болып келеді). Бұдан соњ шартты µрнек тексеріледі; оныњ мєні аќиќат (true) болып т±рса цикл тоќтатылмайды. Цикл денесіндегі ќатарлар орындалып болѓан сайын мод. выр. орындалады, яѓни есептегіштіњ мєні µзгеріп отырады. Шартты µрнектіњ мєні false болѓан жаѓдайда цикл денесіндегі ќатарлар мод. выр. Де ќолдырылып , басќару цикл денесінен кейінгі ќатарѓа бері леді. Егер цикл денесі бір емес бірнеше командадан т±рса онда фигуралы жаќшаны пайдалану керек. For(иниц. Выр; шартты µрнек ; мод.выр.)

{ µрнек 1;

µрнек 2;

:

µрнек n; } Мысал S=0; for (val=1; val<=5; val ++) S+= val; (S,Val айнымалылары б‰тін сандар)



Алдымен S-ке 0-мєні меншіктеліп , сосын for циклі іске т‰сіріледі. Val айнымалысына 1 меншіктеледі. Бадан соњ ,val<=5 шарты тексеріліп, true мєніне ие болѓан соњ, sum айнымалысына val –њ ќазіргі мєні 1-меншіктеледі. Б±дан соњ val-њ мєні1-ге артады. Б±л процесс val 6-ѓа жеткенше орындалады,6-ѓа тењ болѓан уаќытта тоќтайды. С++ тілінде б±л фрагмент былай жазылады:

Sum=0; for(int val =1; val <=5; val ++)

Sum+= val; С++ тілінде for циклініњ инициализация ќатарында айнымалыларды сипаттай беруге болады. Жалпы С++ те айнымалыларды 1-ші рет ќолданып отырѓан ќатардыњ алдына сипаттап жазып ќоюѓа болады.

For циклыныњ есептеуіші 1-ге ѓана артып отыруы міндетті емес. Мысал:

Sum =0;

For (val =16; val <=9; val+=2) ; sum +=val;



Циклдыњ есептеуіші val айнымалыныњ мєні єрќадамда 2-ге артып отырады.

Бадан бµлек, цикл есептеуіші кеміп отыруы да м‰мкін.

Sum =0 for(vai=9; val >=1; val--)

Sum+=val

Бір –бірініњ ішіне ендірілген циклдарды жазѓанда фигуралы жаќшалардыњ ќойылуына мєн беру керек.

Мысал


# include

int main ( )

{ int I, j;

for (I=1; I<=4; I++)

{ printf(‘’\ n%3d—‘’, i); for (j=1; j<=5; j++)

printf (‘’ % 3d ‘’, I*j);

} return (0);

} Программа нєтижесі мынадай белгілерді экранѓа шыѓарады:

1—1 2 3 4 5

2- - 2 4 6 8 10

3- -3 6 9 12 15

4- -4 8 12 16 20


Егер for циклінен кейінгі { }жаќшалары ќойылмаѓан болса экранѓа берілгендер м‰лде басќа т‰рде шыѓады:

-

-



-

- 5 10 15 20 25.



Лекция 12.

Тақырыбы: While, do/while циклдері.


(1 сағат)

1.While циклі

2. do/while циклі
Пайдаланылатын әдебиеттер:

а) негізгі

1. К.Паппас, У.Мюррей “Программирование на С и С++”, Киев, 2000

2. А.Кетков, Ю.Кетков “Практика программирования Бейсик,

Си, Паскаль”, М.: 2001



б) қосымша

3. Шилдт Г. “Теория и практика С++”, Санкт-Петербург, 1996

4. Березин Б.И., Березин С.Б. “Начальный курс С и С++”, М.:1999
1.While циклі

С/С++ тілдерінде while циклі ќайталау саны алдын-ала белгісіз жаѓдайларда ќолданылады. Оны дейін циклі деп те атайды, яѓни келесі итерация басталмай жатып, бірінші шарт тексеріледі.

Сондыќтан, шарт орындалмаса, цикл денесі бір де бір рет орындалмай аяќталуы м‰мкін.

While циклініњ синтаксисі мынандай:


µрнек;
Егер цикл денесі бірнеше ќатардан т±ратын болса, онда фигуралыќ жаќшаларды ќолдану керек:

While ( шарт)

{

µрнек 1

µрнек 2


..............

µрнек n

}
Келесі программада б‰тін санныњ екілік кµрінісін экранѓа шыѓаратын цикл ќ±рылады.

Цикл val айнымалысыныњ мєніне биттік жылжытуды ќолдану арќылы єрбір бит аныќталѓанша орындала береді.



# include < studio. h>

#define WORD 16

#define ONE_BYTE 8

int main( )

{

int val=256, bit_position=1



unsigned int umask=1;

printf`(“3%d\n саныныњ”,val)

printf (“ екілік эквиваленті мынадай”).

while ( bit_pasition <= word)

{

if (val>> (word-bit position)) & umask) /*єрбір битті нольдік*/



printf (“1”); /*позицияѓа жылжытып*/

/*сосын umask */

else /*константасымен*/

printf (“0”); /*салыстырамыз*/

if ( bit_ position=( ONE_BYTE)

printf(“ “)

bit_position++

}

return(0)



}
Б±л программа 2 т±раќтыны (константа) сипаттаудан басталады: WORD, ONE_BYTE .

Біріншісі екілік кµрінісін шыѓармаќшы болѓан санымыздыњ биттік ±зындыѓын кµрсетеді. Ал екіншісі пробел ќойылатын позицияны білдіреді. Б±л - экранѓа разрядтарды пробел арќылы 2 топќа бµліп шыѓару ‰шін ќолданылѓан.



While циклінде кезекпен (‰лкенінен кішісіне ќарай ) val айнымалысын мєнін 1-ші позицияѓа биттік жылжытады, алынѓан санды umask айнымалысыныњ мєнімен салыстырады. Б±дан соњ экранѓа салыстыру нєтижесіне байланысты 0 не 1- ді шыѓарады.

2. do/while циклі

do/while циклінде шарт (келесі) итерация орындалѓаннан соњ тексеріледі. Басќаша айтќанда цикл денесі ењ ќ±рыѓанда бір рет орындалады (шартќа дейін). for жєне while циклдерінде цикл денесі басында шарт орындалмаса, бір рет те орындалмайды. Сондыќтан do/while циклін ќандай жаѓдайда да ењ ќ±рыѓанда бір мєрте орындалу керек болатын кездерде ќолданады.
Синтаксис:

do do {

µрнек; немесе µрнек1;

while (шарт); µрнек2;

...........

µрнек n;

}

While (шарт);

Мысал:
# include
# define LENGTH 80

int main()

{

char cten[LENGTH];



int inumchar=0, inumword=1;
do

{

cout<<”Cөйлем ендіріңіз:”;



cin.getline(cten, LENGTH);

}

while (cten[0]==’\0’);


while(cten[inumchar]!=’\0’)

{

if (cten[inumchar]!=’ ‘ && cten[inumchar]!=’\t’&&



(cten[inumchar+1]==’ ‘| | cten[inumchar+1]==’\t’ | |

cten[inumchar+1]==’\0’))

inumword++;

inumchar++;

}

cout << “Сіз”<

cout << “Сіз”<

return(0);

}



Достарыңызбен бөлісу:
1   ...   6   7   8   9   10   11   12   13   ...   24




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет