![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Билет №29
1. Кө рсеткіш - бұ л айнымалы адресінен тұ ратын айнымалы. Кө рсеткіштер Си-де кең інен пайдаланылады, бір жағ ынан кейбір жағ дайларда да оларсыз мү мкін емес, ал бір жағ ынан программалар олармен қ ысқ а жә не тиімді қ ұ рылады. Белгілі тә ртіпті кө рсеткіштердің кө мегімен сақ тау кезінде тү сініктілікке пен қ арапайымдылық қ а жетуге болады. Келесі бірнеше жолдар * жә не & операторлары қ алай қ олданылатынын кө рсетеді. 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; }
2. if жә не case операторларымен жұ мыс. If If THEN ELSE немесе қ ысқ артылғ ан тү рде IF THEN Мұ ндағ ы 1- жә не 2- операторлардың ө здері қ арапайым немесе қ ұ рама оператор болуы мү мкін. сase of еlse; 3. у функциясының 0 < y < 3.2 шартын қ анағ аттандыратын барлық мә нінің қ осындысын жә не кө бейтіндісін табу керек. #include < stdio.h> { 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); }
|