Добавил:
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.Тізім бойынша студенттердің номерін енгіз. Оның фамилиясын шығар.

include<stdio.h> void main() { int familia;

Puts (“\n;”Studentter tizimin engiz”); printf("->"); scanf("%i",&familia); { case 1: printf("Kurakova G");break; case 2 : printf("Amzeeva J"); break; case 3 : printf("Abilkakova A"); break; case 4 : printf("Otikeeva K"); break; case 5 : printf("KOjageldi A"); break; default: printf (“Studentter familiasin wigaru”) } getch(); }

Билет №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 шартты операторы. 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. Трамвай номерін енгіз. Оның соңғы аялдамасын шығар

#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(); }

Билет №33

1.Программалау теориясында кез келген күрделі программаны 3 түрлі құрылымнан құрастыруға болатыны дәлелденген, олар:

сызықтық, тармақты және циклдік құрылымдар. Осы 3-еуі құрылымдық программалаудың негізгі конструкциялары, яғни

құраушылары болып саналады.

Сызықтық құрылым бірінен кейін бірі орындалып тізбектеле орналасқан бірнеше операторлардан тұрады. Берілген текст (source code)-программалау тіліндегі программа тесті.

Объектілік код (object code)- машиналық тілдегі программа тесті,бір тексті компьютер орындай алмайды.

Компановшик (Linker)-объектілік модульдерден тұратын орындалатын модуль жасайтын программа. Бұл программа компиляцияланған программа тексті мен стандартты кітапхана функцияларынан тұратын программа жасайды.

Кітапхана (Lidrari)-компиляцияланған түрде сақталатын,алдын-ала анықталынған айнымалыларды мен тұрақтылары бар функциялар жиынтығы.

Компиляция уақыты(compiler time)-программаны компиляциялауға кеткен уақыт. Компиляция кезінде синтактін қателер анықталады

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. Қаланың телефонкодын енгіз. Қаланың атын шығар.

include<stdio.h> voidmain() { inttramvai; printf("Введите номер трамвая : "); scanf("%i",&tramvai); switch (tramvai %100 ) { case 34 : printf("Сейфуллина Шевченко");break; case 7 : printf("Абая Байтурсынова"); break; case 119 : printf("Жарокова"); break; case 126 : printf("Толе би"); break; case 37 : printf("Вокзал -1"); break; case 18 : printf("Атакент"); break; case 63: printf("Алмагуль-2"); break; case 30 :printf("Сейфуллина Гоголя"); break; case 73: printf("Саяхат"); break; default: printf("Введите номер трамвая"); } printf("\nВведите ENTER"); getch(); }

Билет №34

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