Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Билет №23. нұсқаулары екі а және b мәндерінің ең үлкенінің бірін z-ке жібереді.






1. Шартты ө рнектер

if(a> b) z=a;

elsez=b;

нұ сқ аулары екі а жә не b мә ндерінің ең ү лкенінің бірін z-ке жібереді.

Си-де тернарлық оператор “?: ” бар, ол осы жә не оғ ан ұ қ сас конструкцияларғ а жазбаның басқ а тә сілін кө рсетеді.

z=(a> b)? a: b; // z=max(a, b)

Шартты ө рнек шынымен де ө рнек болып табылады жә не оны ө рнек жіберілетін кез-келген жерде қ олдануғ а болады.

Шартты ө рнек кө бінесе программаны қ ысқ артуғ а мү мкіндік береді. Мысал ретінде массивтің nэлементтері ә рбір жол бойынша 10-нан, бағ андар арасынан бір бос орыннан басып шығ аруды қ амтамасыз ететін циклді келтірейік: циклдің ә рбір жолы соң ғ ы жолды қ осқ анда жаң а жол литерімен аяқ талады.

for (i=0; i< n; i+ +)

printf (“%6d%c”, ar [i], (i%10= = 9¦¦i= = n-1)? ’\n’: ’ ‘);

Жаң а жол литері ә рбір оныншыдан кейін жә не n–ші элементтен кейін жіберіледі. Қ алғ ан басқ а элементтерден кейін бос орын келеді.

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

Функциялар эффектілі жә не қ олданғ анда жең іл болу керек. Ә детте бұ л программалар бұ л тілде аздағ ан функциялар ұ лкен сандардан тә рады. Программа бір немесе бірнеше файлдардан табылады. Файлдарды бұ лек хабарлауғ а жә не бірге жү ктеуге болады. Функциялар ішкі басқ а функцияларды анық тай алмайды.

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

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

Функциялар кітапханасы:

ә ртү рлі программистерге бір жә не сол функцияларды қ олдануғ а;

программаның қ ә рылымы мен кө рнектілігін жоғ арылату;

қ олданатын программаларды ү йренуге жә не тү зетуге, оқ уын жең ілдетуге рә қ сат етеді.

Си тіліндегі кез-келген программа main операторымен бас функцияларды жә не басқ а функциялардың кез-келген санын ә стайды.

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

Кез-келген функцияны анық тау келесі тү рде болады:

функция_аты нә тижесінің _типі (формальды_параметрлер_тізімі)

{ декларация

инструкция

}

Функцияны анық таудан басқ а, форматы келесі тү рде болатын функция прототипі тү сінігі бар.

функция_аты нә тижесінің _типі (формальды_параметрлер_тізімі)

 

3. А массивэлементтерінің геометриялық ортасын табу

#include < conio.h>

#include < stdio.h>

#include < stdlib.h>

#include < math.h>

#define n 15

main ()

{

int a[n], i;

printf(" \nЭлементымассива: ");

for(i=0; i< n; i++)

{a[i] = rand() % 50;

printf(" %i", a[i]);

}

// определение произведения и кол-ва пол.эл-тов

i=0; // начальный индекс = 0

float p=1.0; // произведение положит.эл-тов

int k=0; // кол-во положит.эл-тов

do

{ if (a[i]> 0) { k++; p*=a[i]; }

i++;

}

while (i< n);

printf(" \nкол-вополэл-тов: %d\n", k);

p=pow(p, 1.0/k);

printf(" cpгеом = %f", p);

getch();

}

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.