
Басқару операторлары (break, contіnue, goto)
Break операторы. Цикл бітпей тұрып одан шығу үшін break операторы қолданылады. Егер оператор қандай да бір ішкі циклдың ішінде жазылса, онда ол өзі тұрған циклдан ғана шығады.
#define n 10
main ( )
{ int B[n], i, j;
int A[n][n];
- - - - - - - - - - - - - -
for (i=0; i<n; i++) {
B[i]=0
for (j=0; j<n; j++)
if (A[i][j]<0) {
B[i]=1; break; } } }
Contіnue операторы. Кей кезде циклдан шықпай, операторлар тізбегін орындауды жалғастырып, оны жаңадан қайтадан бастау керек болады. Бұл жағдайда contіnue операторын қолданса болады. Ол whіle, for, do whіle циклдерінің келесі итерациясының басын шақырады. Whіle және do whіle циклдерінде ол бірден тексеру бөлімін орындайды, ал for циклінде басқару қайта инициалдау кезеңіне беріледі.
K=0;
For(i=0; i<n; i++)
For(j=0; j<n; j++) {
Іf (A[i][j]>0)
Contіnue;
A[i][j]=A[i][j]* A[i][j];
K=K+1; }
Goto операторы. Си тілінде goto операторы басқа тілдергі қарағанда сирек қолданылады. Оның форматы: goto белгі; мұндағы белгі - кез келген идентификатор.
Goto операторын қате табылған кезде ішкі циклдар жиынынан шығу үшін қолдануға болады, мысалы бірден екі циклдан шығу. Break операторын қолдануға болмайды, өйткені ол тек ішкі циклдан шығуға мүмкіндік береді.
Whіle (funct>0)
{
for(і=1; і<100; і++)
{ Операторлар тізбегі;
іf (үлкен қате)
goto Help;
Операторлар;
} Операторлар; }
Операторлар;
Help: қатеден құтылу.
Бақылау сұрақтары:
1. Қандай жағдайларда for, while, do/while цикл операторлары қолданылады?
2. Құрамды операцияларды ұйымдастыру үшін қолданылатын операцияны ата.
3. while және do/while операторларының арасындағы қандай?
4. Қандай жағдайда goto операторын қолануға болады, ал break операторын қолдануға болмайды?
5. Циклдан шығу конструкциясына қандай процедура сәйкес келеді?
Ұсынылатын әдебиеттер: 1 нег [134-153], 2 нег [211-255], 3 нег [57-63], 5 қос [28-41], 6 қос [116-126], 7 қос [11-15]
№6 тақырып. Массивтер. Бір өлшемді массивтерді қолдану арқылы программаны өңдеу.*
Жоспары:
Массивтің сипатталуы.
Бір өлшемді массивтер
Бір өлшемді массивтерге мысалдар келтіру.
Массивтер деп бірдей типті мәліметтердің логикалық байланысқан элементтерден тұратын мәліметтер құрылымын айтамыз. Программаның орындалу барысында массивтің өлшемі тұрақты болады.
Массивтің сипатталуы. Массивтер бірдей типті және бір атты логикалық байланысқан жадының ұяшықтар тобы болып табылады. Массивтің элементіне қатынас жасау үшін массивтегі осы элементтің массивтің атын және позициясының нөмірін көрсету қажет. Кез келген массивтің бірінші элементі нөлдік реттік нөмерге ие болады. Массивті баяндағанда массивтің атын, әрбір элементінің типін және элементтерінің санын көрсету керек. Мысалы:
int b[100], x[27];
Төменде келтірілген программада 10 элементтен тұратын n бүтін типті массивтің элементтерін нөлмен инициалдау үшін for қайталау құрылымы қолданылады.
/* Массивті инициалдау */
#include <stdio.h>
main()
{ int n[10], i;
for (i=0; i<=9; i++)
n[i]=0; /* Массивті инициалдау */
for (i=0; i<=9; i++) /* Массив элементтерін шығару */
printf(“%3d%10d\n”, i, n[i]);
return 0; }
Программаның нәтижесі:
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
Массивтің элементтері массивті баяндаудың соңына теңдік белгісін және үтірмен бөлінген инициалданатын мәндер (фигурлы жақшаға алынған) тізімін қою жолымен инициалдауға болады. Төменде келтірілген программа бүтін типті массивті оң 10 мәндермен инициалдайды.
/* Баяндауда массивті инициалдау */
#include <stdio.h>
main()
{ int i, n[10]={2, 27, 64, 18, 95, 14, 90, 70, 6, 3};
for (i=0; i<=9; i++)
printf(“%3d”, n[i]);
return 0; }
Программаның нәтижесі:
2 27 64 18 95 14 90 70 6 3
Егер массивтің элементтеріне қарағанда инициалданатын мәндердің саны аз болса, онда қалған элементтер автоматты түрде нөлмен инициалданады. Мысалы, n массивтің элементтерін баяндау арқылы нөлдермен инициалдауға болады.
int n[10]={0};
мұнда бірінші элемент нөлмен инициалданады және қалған тоғыз элемент автоматты түрде нөлмен инициалданады.
Егер массивтің инициалданатын мәндердің тізімімен баяндауында массивтің өлшемі кқрсетілмесе, онда массивтің элементтерінің саны инициалдау тізіміндегі элементтердің санына тең болады.
Си тілінде массивтердің бірнеше индекстері болуы мүмкін. Көп өлшемді массивтер жиі жол және бағандар бойынша реттелген мәндерден тұратын кестелерді бейнелеу үшін қолданылады. Кесенің нақты элементін иднтификациялау үшін екі индекс көрсетіледі: бірінші-элементтің жолын көрсетеді, ал екіншісі бағанын көрсетеді. Осындай кестелер немесе массивтер екі өлшемді массивтер деп аталады.
Көп өлшемді массив бір өлшемді массив сияқты оның баяндалуында инициалдануы мүмкін. Мысалы,
int b[2][2]={{1, 2}, {3, 4}};
Келесі программа екі өлшемді массивтің баяндалу кезіндегі инициалдауын көрсетеді. Программада екі жол және үш бағанды (әрқайсысы алты элементтен тұрады) үш массив баяндалады. Әрбір массивтің элементтерін шығару үшін программада printarray функциясы шақырылады.
/* Көп өлшемді массивті инициалдау */
#include <stdio.h>
void printarray(int [][3]);
main()
{ int a1[2][3] = {{1, 2, 3}, {4, 5, 6}}, a2[2][3] = {1, 2, 3, 4, 5}, a3[2][3] = {{1, 2}, {4}},
printf(“Массив А1”);
printfarray(a1);
printf(“Массив А2”);
printfarray(a2);
printf(“Массив А3”);
printfarray(a3);
printf(“\n”);
return 0; }
void printarray(int a[][3]);
{ int i, j;
for (i=0; i<=1; i++)
{ for (j=0; j<=2; j++)
printf(“%d ”, a[i][j]);
printf(“\n”); }
}
Программаның нәтижесі:
Массив А1
1 2 3
4 5 6
Массив А2
1 2 3
4 5 0
Массив А3
1 2 0
4 0 0
Бақылау сұрақтары:
1. Бір өлшемді массив қалай енгізіледі және қалай шығарылады?
2. Қандай шартта бір массивтің барлық элементтерін басқа массивке беруге болады?
3. Екі массивті қалай салыстыруға болады?
Ұсынылатын әдебиеттер: 1осн[223-253], 2осн[244-255], 5доп[41-46], 7доп[15-23]
№7 тақырып. Массивтер. Екі өлшемді массивтерді қолдану арқылы программаны өңдеу.*
Жоспары: