Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kurakova C++ shpor.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
136.72 Кб
Скачать

2. If және case операторларымен жұмыс.

If Тармақталу процестері бар алгоритмдерді ұйымдастыру үшін шартты операторлар пайдаланылады. Тармақталу белгілі бір шарттың орындалуы немесе орындалмауына тәуелді атқарылады. Кейде бір тармақ ешбір амал орындалмай да қала береді. If шартты операторы. If (егер) операторы программадағы іс-әрекеттердің орындалу реттілігін өзгертетін мүмкіндіктің ең кең тараған тәсілі болып табылады. If THEN ELSE немесе қысқартылған түрде IF THEN Мұндағы 1- және 2- операторлардың өздері қарапайым немесе құрама оператор болуы мүмкін. Case Тармақталу операторында белгілі бір шарттың орындалуы немесе орындалмауына байланысты алгоритмнің 1- немесе 2- операторы орындалады, көбінесе мүмкін болған жағдайда, екеуі емес одан да көп болады, яғни процесс көп тармақты болады. Таңдау операторы (case) бірнеше операторлардың ішінен таңдау жолымен көп тарамды тармақталуды ұйымдастырады. CASE таңдау операторы көп тармақты алгоритмдерді барынша қарапайым және көрнекі түрде жазуға мүмкіндік береді. Оның құрамында селектор (selector – таңдау) деп аталатын өрнек және параметрлер тізімі болуы тиіс, әрбір параметрге сәйкес таңдау тұрақтылары болуы қажет. Таңдау командасы былай орындалады: алдымен селектор-өрнек мәні есептеледі де, ол тұрақтылармен салыстырылады. Егер өрнектің мәні 1-тұрақтыға тең болса, онда 1-оператор орындалады, ал өрнектін мәні 2-тұрақтыға тең болса, онда 2-оператор, 3-тұрақтыға тең болса, онда 3-оператор т.б. тізімдегі тек бір ғана оператор орындалады да, таңдау командасы осымен аяқталады. сase of : ; : ;

еlse ; еnd.

3. у функциясының 0 < y < 3.2 шартын қанағаттандыратын барлық мәнінің қосындысын және көбейтіндісін табу керек.

#include <stdio.h> void main()

{

Int I;

Float sum1;sum2;

Sum1=0;sum2=1;

For(i=0;i<3.2;i++)

Sumkos=sum1=I;

Sumkob=sum2*I;

Pritf(“%f%f”,sumkos;sumkob);

}

Билет №30

1.Құрылым – бұл айнымалылармен жұмыс істеу ыңғайлы болу үшін бір атауға топтастырылған бір немесе бірнеше айнымалылыр (әр түрлі болуы мүмкін). Құрылымдар күрделі мәліметтерді (әсіресе үлкен программаларда) ұйымдастыруға көмектеседі және өзара байланысқан айнымалылар тобын жиынның жеке элементіндей емес, бір тұтас ретінде түсіндіреді.

Құрлымның кең таралған мысалы – төлемдік ведомостардың жолдары. Ол ведомост қызметкерлердің толық аты, адресі, социалды сақтандыру карточкаларының нөмері, еңбек ақысы және т.б. мәліметтерден тұрады. Осы мінездемелердің кейбіреуінің өзі құрылым болуы мүмкін: мысалы, толық ат, сол сияқты адресі және еңбек ақының өзі бірнеше компоненттерден тұрады. Си үшін басқа әдеттегі, мысалы график аймағынан: нүкте координаттар жұбы, тікбұрыш нүктелер жұбы және т.б. болып табылады.

Құрылымдар көшірілуі мүмкін, олармен меншіктеу операциялары орындалуы мүмкін, оларды функцияға аргументтер ретінде беруге болады және ол функцияны олардың нәтижелері ретінде қайтаруға болады. Автоматты құрылым мен массивтер үшін сол сияқты инициализация рұқсат етіледі.

«Нүкте» құрлымының декларациясы келесі түрде болады:

structpoint

{ intx; \\ декларация тізімі фигуралы жақшада

inty;

};

point – бұл құрылым тегі (аты) (tag – ярлык, этикетка).

Тег берілген түрдегі құрлымның атын береді және әрі қарай фигуралы жақшамен аяқталған декларацияның қысқаша белгіленуі ретінде қызмет атқарады.

Құрылымда тізілген айнымалылар мүшелер деп аталады. Тегтер мен мүшелердің аттары программаның кәдімгі айнымалыларының аттармен сәйкес келуі мүмкін. Мүшелердің аттары әртүрлі құрлымдарда кездесуі мүмкін. .

Құрлым декларациясы – бұл тип.

struct {…}x,y,z;

жазбасы құрлымдық типтің үш айнымалыларының сипаттамасын білдіреді.

Айнымалылар тізімінен тұрмайтын құрылым декларациясы жадыны резервке алмайды: ол тек шаблонды немесе құрылым үлгісін сипаттайды. Егер құрылымның тегі болмаса, онда осы тегтерді объектілерді анықтауда қолдануға болады. Мысалы, struct point pt; декларациясы struct point типті pt құрылымдық айнымалыны анықтайды.Автоматты құрылымдарды (auto жады класының құрлымы) сәйкес келетін типтегі құрылым түрінде нәтижені қайтаратын меншіктеумен немесе функцияға айналдырумен инициализациялауға болады.

Құрылымдарға орындалатын операциялар – бұл оларды көшіру, меншіктеу, & операторының көмегімен аталатын адрес және олардың мүшелеріне қатысудың жүзеге асырылуы. Құрылымды функцияға аргумент ретінде беру және оларды нәтиже түрінде функциялардан қайтару. Сондай-ақ көшіру және меншіктеу операцияларына жатады. Құрылымдарды салыстыруға болмайды.

Құрылымдық объектілерді функцияға берудің үш тәсілі бар:

компоненттерді (мүшелерді) жеке беру;

барлық құрылымдарды түгелдей беру;

көрсеткішті құрылымға беру.

Егер функцияға, оны түгелдей көшіретін үлкен құрылым берілсе, көрсеткішті оған беру тиімдірек.

2. Көрсеткіш - бұл айнымалы адресінен тұратын айнымалы. Көрсеткіштер Си-де кеңінен пайдаланылады, бір жағынан кейбір жағдайларда да оларсыз мүмкін емес, ал бір жағынан программалар олармен қысқа және тиімді құрылады. Белгілі тәртіпті көрсеткіштердің көмегімен сақтау кезінде түсініктілікке пен қарапайымдылыққа жетуге болады.

Келесі бірнеше жолдар * және & операторлары қалай қолданылатынын көрсетеді.

ip=&x;           // көрсеткішке х айнымалысының адресі меншіктелген ip - х-ті көрсетеді

y=*ip;             // y енді 2-ге емес, 1-ге тең

*ip=0;             // х енді 0-ге тең

ip=z;               // ip - z (бастапқы) массивінің 0 –ші элементін көрсетеді.

            ip = &z [5]; // ip - енді z массивтің 5 элементін көрсетеді.

Бұдан көрсеткіш айнымалысы декларацияның синтаксисі, бұл айнымалы кездесуі мүмкін болатын "синтаксис” өрнегіне бейімделеді. Көрсетілген принципті функцияны сипаттау қатынасында да қолданамыз. Мысалы, double *dp, atof(char*) жазбасы *dp және atof (s) өрнегі double типінен екендігін, ал atof функциясының аргументі char-дың көрсеткіші (нақты түрде, стрингті көрсету) екенін білдіреді.

Көрсеткішке берілген типтің объектісіне ғана жіберілуіне рұқсат етілген.

void-тың көрсеткіші кез-келген типті объектіге сілтенуі мүмкін, бірақ мұндай көрсеткішке сілтемені ашу операторын қолдануға болмайды.

Көрсеткіштердің өзі айнымалылар болғандықтан, мәтінде олар сілтемені ашу операторынсыз да  кездесуі мүмкін.

Си-де функциялар өзінің аргументтері ретінде параметрлер мәнін қабылдайтын болғандықтан, тікелей мүмкіншілік шақырылатын функцияда айнымалыны өзгертуге болмайды.

Қажетті нәтижені алу үшін, шақырылатын программада өзгертілуі тиісті мәнге көрсеткіштерді беру қажет. Бұл жағдайда шақырылатын функция формальды параметрлердің  көрсеткіштер ретінде сипатталуы қажет, бұдан параметрлердің мәніне қатынасу олар арқылы жанама түрде жүргізіледі. Формальды параметрлер – шақырылатын функцияда оның программасын шақыратын объектіге қатынасуды жүзеге асыратын көрсеткіштер және осы объектілерді өзгертуге мүмкіндік береді.

Программада сұрыптауды екі реттелмеген элементтердің орнын ауыстыратын swap функциясы арқылы орындалатынын қарастырайық.

Егер  swap функциясы келесі түрде анықталса:

   void swap (int x, int y)

{ int temp;

   temp=x; x=y; y=temp;

}

онда swap(a,b)-ны шақыру a мен b айнымалыларына ешқандай әсер етпейді, swap олардың мәндерінің көшірмесін ғана алады.Нәтижеге жету үшін алмастырулар, swap функциясының формальды параметрлері көрсеткіш ретінде сипатталуы керек, алфункцияны шақырудағы аргументтер , swap (&a, &b)-ның сәйкес параметрлерінің адрестерімен көрсетілуі тиіс..

void swap (int *px, int *py)

{int temp;

   temp=*px; *px=*py; *py=temp;

}

3.jok

Билет №31

1.Құрылым – бұл айнымалылармен жұмыс істеу ыңғайлы болу үшін бір атауға топтастырылған бір немесе бірнеше айнымалылыр (әр түрлі болуы мүмкін). Құрылымдар күрделі мәліметтерді (әсіресе үлкен программаларда) ұйымдастыруға көмектеседі және өзара байланысқан айнымалылар тобын жиынның жеке элементіндей емес, бір тұтас ретінде түсіндіреді.

Құрлымның кең таралған мысалы – төлемдік ведомостардың жолдары. Ол ведомост қызметкерлердің толық аты, адресі, социалды сақтандыру карточкаларының нөмері, еңбек ақысы және т.б. мәліметтерден тұрады. Осы мінездемелердің кейбіреуінің өзі құрылым болуы мүмкін: мысалы, толық ат, сол сияқты адресі және еңбек ақының өзі бірнеше компоненттерден тұрады. Си үшін басқа әдеттегі, мысалы график аймағынан: нүкте координаттар жұбы, тікбұрыш нүктелер жұбы және т.б. болып табылады.

Құрылымдар көшірілуі мүмкін, олармен меншіктеу операциялары орындалуы мүмкін, оларды функцияға аргументтер ретінде беруге болады және ол функцияны олардың нәтижелері ретінде қайтаруға болады. Автоматты құрылым мен массивтер үшін сол сияқты инициализация рұқсат етіледі.

«Нүкте» құрлымының декларациясы келесі түрде болады:

structpoint

{ intx; \\ декларация тізімі фигуралы жақшада

inty;

};

point – бұл құрылым тегі (аты) (tag – ярлык, этикетка).

Тег берілген түрдегі құрлымның атын береді және әрі қарай фигуралы жақшамен аяқталған декларацияның қысқаша белгіленуі ретінде қызмет атқарады.

Құрылымда тізілген айнымалылар мүшелер деп аталады. Тегтер мен мүшелердің аттары программаның кәдімгі айнымалыларының аттармен сәйкес келуі мүмкін. Мүшелердің аттары әртүрлі құрлымдарда кездесуі мүмкін. .

Құрлым декларациясы – бұл тип.

struct {…}x,y,z;

жазбасы құрлымдық типтің үш айнымалыларының сипаттамасын білдіреді.

Айнымалылар тізімінен тұрмайтын құрылым декларациясы жадыны резервке алмайды: ол тек шаблонды немесе құрылым үлгісін сипаттайды. Егер құрылымның тегі болмаса, онда осы тегтерді объектілерді анықтауда қолдануға болады. Мысалы, struct point pt; декларациясы struct point типті pt құрылымдық айнымалыны анықтайды.Автоматты құрылымдарды (auto жады класының құрлымы) сәйкес келетін типтегі құрылым түрінде нәтижені қайтаратын меншіктеумен немесе функцияға айналдырумен инициализациялауға болады.

Құрылымдарға орындалатын операциялар – бұл оларды көшіру, меншіктеу, & операторының көмегімен аталатын адрес және олардың мүшелеріне қатысудың жүзеге асырылуы. Құрылымды функцияға аргумент ретінде беру және оларды нәтиже түрінде функциялардан қайтару. Сондай-ақ көшіру және меншіктеу операцияларына жатады. Құрылымдарды салыстыруға болмайды.

Құрылымдық объектілерді функцияға берудің үш тәсілі бар:

компоненттерді (мүшелерді) жеке беру;

барлық құрылымдарды түгелдей беру;

көрсеткішті құрылымға беру.

Егер функцияға, оны түгелдей көшіретін үлкен құрылым берілсе, көрсеткішті оған беру тиімдірек.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]