Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Билет №32
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. Трамвай номерін енгіз. Оның соң ғ ы аялдамасын шығ ар #include< stdio.h> #include< conio.h> void main() {intaialdama; // Трамвайномері puts (“\n “Трамвай нө мерін енгіз”); printf(“− > “); scanf(“%t”, & aialdama); { case 4 puts(“Tole bi-Auezova”); break; Case 1 puts (“Tashkentski-avrora”); break; case 2 put (“Abaia-Jarokova”); break; defaull(“Трамвайдың соң ғ ы аялдамасын шығ ару”); } getch(); }
|