Жалпы Си тілінің даму жолына қарасақ


Операциялар Операциялар классификациясы



бет2/3
Дата22.10.2019
өлшемі67,08 Kb.
#50428
1   2   3
Байланысты:
Си тілі лекция


Операциялар Операциялар классификациясы
Операцияларда қатысатын операндалар саны бойынша операциялар былай бөлінеді:
унарлы операциялар, немесе бір операндты операциялар,
бинарлы операциялар, немесе екі операндты операциялар,
тернарлы операциялар, немесе үш операндты (бұл шартты операция
Меншіктеу операциясы да унарлы жөне бинарлы бола алады.
Унарлы операцияларды талдау оңнан солға карай жүргізіледі. Бинарлы операциялар солдан оңға карай талданады

Унарлы операциялар тобы

Мөлшер


Операция белгісі

Операция

Операциялар тобы

-

Арифметикалық терістеу

Терістеу және толықтауыш

~

Разрядты логикалық терістеу (толықтауыш)




!

Логикалық терістеу




*

Адрестеуді алып тастау

Адрестеуді алып тастау және адрес

&

Адрес




+

Унарлы плюс

Унарлы плюс

sizeof




Мөлшер

Бинарлы операциялар топтары

Операция белгісі

Операция

Операциялар тобы

*

Көбейту

Мультипликативті

/

Бөлу




%

Бөлуден калган қаддық




+

Қосу

Аддитивтік

«

Солға жылжу

Жылжу операциясы

»

Оңға жылжу







Аз

Қатынас опеоапиялар

>

Көп







Аз немесе тең




>=

Көп немесе тен




=

Тең




!=

Тең емес

Қатынас опеоапиялар

&

Разрядты логикалық ЖӘНЕ

Разрядты

|

Разрядты логикалық НЕМЕСЕ

Логикалык

&&

Логикалық ЖӘНЕ

Қатынас опеоапиялар

||

ЛогикалықНЕМЕСЕ

Қатынас опеоапиялар

>

Үтір (тезбектеліп есептеу)

Тізбектеп есептеу

Төменде меншіктеу операциялары келтірілген. Меншіктеу операциясы оң операнданың мәні сол операндамен берілген жад облысына меншіктелуін айтады. Сондықтан меншіктеу операциясының сол операндасы немесе меншіктеудің унарлы өрнегінін жалғыз операндасын жад облысына сілтейтін өрнек болуы керек.

Меншіктеу операциялары
Операция белгісі Операция аты
++ Көбею (унарлы инкремент)
-- Азаю (унарлы декремент)
= Қарапайым меншіктеу
*= Меншіктеумен көбейту
/= Меншіктеумен бөлу
%= Меншіктеумен бөлуден калған қаддық
+= Меншіктеумен косу
-= Меншіктеумен алу
«= Меншіктеумен солға жылжу
»= Меншіктеумен оңға жылжу
&= Меншіктеумен разрядты ЖӘНЕ
|= Меншікгеумен разрядты НЕМЕСЕ
^= Меншіктеумен разрядты шығарып тастайтын НЕМЕСЕ

Жад облысына сілтейтін өрнек атайтын өрнек деп немесе 1-мәнді деп аталады. Мынадай өрнектер атайтын өрнектер бола алады:


берілгендердің бүтін және жылжымалы типті, сілтемелер типті,|кұрылым және қоспа типті идентификаторлары;
массив немесе функция тәрізді есептелетін индекстік өрнектерден басқа индекстік өрнектер ([ ]);
элемент таңдау өрнегі (-> немесе .)> егер таңдалатын элемент жоғарыдағы өрнектердің бірі болса;
адрестеуді алып тастау операциясының унарлы өрнегі (*), бұнда массив немесе функцияға сілтейтін өрнек болмауы керек;
дөңгелек жакша ішіндегі атайтын өрнектері (1-мән).

Ескерту. const кілтті сөзімен сипатталған объект меншіктеу операциясының сол операндасы бола алмайды (мәнін өзгертуге болмайды).


Қарапайым арифметикалық түрлендірулер

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


Төменде келтірілген арифметикалық түрлендірулер қарапайым арифметикалық түрлендірулер деп аталады.

Қарапайым арифметикалық түрлендірулер мынадай ережелер бойынша жүргізіледі:



  1. 1. float типті операндалар double типті операндаға түрленеді.

  2. 2. Егер бір операнд long double типті болса, екінші операнд long double

  3. типіне түрленеді.

  4. 3. Егер бір операнд double типті болса, екінші операнд double типіне

  5. түрленеді.

  6. 4. char немесе short типті кез-келген операнда int типіне тұрленеді.

  7. 5. unsigned char немесе unsigned short типті кез келген операнда unsigned int типіне түрленеді.

  8. 6. Егер бір операнд unsigned long типті, онда екіншісі unsigned long типіне түрленеді.

  9. 7. Егер бір операнд long типті болса, онда екінші операнд long типіне түрленеді.

  10. 8. Егер бір операнд unsigned int типті, онда екінші операнд unsigned int типіне түрленеді.

Сонымен, өрнектер есептеу барысында операндалар кай операнда үлкен өлшемді болса, соған түрленеді.
Мысалы, мынадай айнымалылар сипатталған болса:
double fl;
unsigned char ch;
unsigned long m;
int i;

Онда fl*(i+ch/m) өрнекті есептеу барысында түрлендіру былай орындалады. сһ операндасы әуелі unsigned int типіне түрленеді (5 ереже). Содан соң unsigned long типіне түрленеді (6 ереже). Осы ереже бойыніи unsigned long түріне түрленіп, дөңгелек жакшаға алынған өрі корытындысы unsigned long типін алады. Сосын ол double типіне (ереже 3 түрленеді және бүкіл өрнек корытындысы double типін алады
Терістеу және толыктауыш операциялары
Арифметикалық терістеу операциясы ("-") өз операндасын терісеуінв табады. Операнд бүтін немесе жылжымалы (яғни нақты) шама болуы керек. Орындалу барысында қарапайым арифметикалық түрлендірулер орындалады.
М ы с а л:
int stat=5;
stat=-stat; /* Значение stat является отрицанием 5*/
stat=-12; /* stat присваивается отрицание к 12*/

EMEC ("!") логикалык терістеу операциясы егер операнд ақиқат болса (ноль емес), онда 0 мәнін алады, және егер операнд жалған болса (0), онда 1 мәнін алады. Қорытындысы int типті болады. Операнд бүтін немесе I ылжымалы типті немесе сілтеме типті болуы керек. Мысал: int x=0;
!x өрнегінің корытындысы 1-ге тең (акиқат).
Екілік толықтау операциясы ("~") өз операндасының екілік толықтауын алады. Операнд бүтін типті болуы керек. Қарапайым арифметикалық түрлендірулер жүргізіледі де, қорытынды түрлендіруден кейін операнда типін алады.
М ы с а л:
main ()
{
сhar c='9';
unsigned char cc;
cc=~c;
рrintf("с(символ)=%с\tс(оналтылық) =
%x\n",c,c);
рrintf("~с(символ)=%с\t~с(оналтылық) =
%x\n",cc,cc);
)
Программа орындалу қорытындысы:
с(символ)=9 с(оналтылык)=39
~с(символ)=Ц ~с(оналтылык)=с6
Көбейту операциясы ("*") операндтар көбейтуді шақырады.
М ы с а л д а р:
int a = 5;
float у = 0.2;
double x, z;
х = у * a;

Белу операциясы ("/") бірінші операндты екінші операндқа бөлуді шақырады. Егер екі бүтін сан бүтін бөлінбесе, нәтиже келесі тәртіп бойынша анықталады:


егер операндтар оң мәнді және unsigned типті болса, нәтиже ең жақын кішкентай бүтін санға теңестіріледі;
егер операндтардың біреуі теріс мәнді болса, нөтиже бағыты
(нольден немесе нольге) әр компьютерге сәйкес анықталады
(берілген қарастыруда нольге). Нольге бөлу кезінде қате деген дерек беріледі.
М ы с а л:
main ()
int с = 49;
int cc = 10;
printf (%d/%d = %d\n",c,cc,c/(cc));
printf (%d/-%d = %d\n",c,cc,c/(-cc));
}

Программа орындалу корытындысы:
49/10 = 4
49/. 10 = -4
"Бөлуден қалдық" операциясы ("%") бірінші операндты екіншісіне бөлгендегі қалдық нәтижесін береді.
Нәтиже таңбасы белгілі компьютерге тәуелді. Берілген қарастыруда нәтиже таңбасы бірінші операндтың таңбасына сәйкес келеді. Егере екінші операнд нольге тең болса, хабар беріледі.
М ы с а л:
main ( )
{
int с = 49;
int cc = 10;
printf ("остаток от деления %d на %d = %d\n",c,cc,c% (cc));
printf ("остаток от деления %d на -%d = %d\n",c,cc,c% (-cc));
printf ("остаток от деления -%d на %d = %d\n",c,cc,(-c)% (cc));
printf ("остаток от деления -%d на -%d = %d\n",c,cc,(-c)% (-cc));
}

Адрестеуді алып тастау және адрестер операциялары


Бұл операциялар сілтеме типті айнымалылармен жұмыс үшін қолданылады.
* адрестеуді алып тастау операциясы адрестелген шамаға сілтеме
ылы жанама жетуді қамтамасыз етеді. Операнд сілтеме болу керек.
перация нәтижесі операнд көрсеткен өлшем болып табылады. Нөтиже типі
теме адрестеген шаманың типі болып табылады. Егер сілтемеде кате адрес
болса, нәтиже анықталмайды.
Сілтемеде кате адрес болғандағы кейбір жалпы жағдайларға мыналар жатады:
• сілтеме нольдік болады;
нүсқау кезінде белсенді емес жергілікті объект адресін анықтайтын сілтеме;

printf және scanf функциялары

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

#include

Printf() функциясы мәліметтерді экранға шығару үшін қолданылады. Оның жалпы жазылу түрі:

printf(,);

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

Мысалы:

printf (“Пи санының мәні = %f\n”, pi);


Формат тіркесінде мыналар болады:

1) мәтін ретінде шығарылатын символдар тіркесі;


2) түрлендіру спецификациялары;
3) басқару символдары.

2. Спецификациялардың түрлері.


Әрбір аргументке өз спецификациясы сәйкес келуі тиіс, олар:

%d – бүтін ондық сан шығарылуы тиіс,


%i – бүтін ондық сан шығарылуы тиіс,
%f – жылжымалы нүктелі нақты ондық сан (-dddd.dddd ) жазылып шығады,
%e – жылжымалы нүктелі экспоненциалды сан (-d.dddde±dd) шығарылады,
%E – жоғарыдағы сияқты, тек е орнына Е (-d.ddddE±dd) шығарылады,
%c – бір символ, яғни таңба (char) шығарылуы тиіс,
%s – символдар тіркесі (қатары) шығарылуы тиіс,
%g – нақты сан, сан ұзындығына қарай %e немесе %f қолданыла алады,
%u – таңбасыз ондық бүтін сан жазылып шығады,
%o – таңбасыз бүтін сегіздік сан шығады,
%x – таңбасыз бүтін он алтылық сан шығады.
\n – келесі жаңа жолға көшуді атқаратын басқару символы.

Мысалы:
%9i – бүтін сан ені 9 цифрдан тұрады, сан ені аз болса, оның сол жағында бос орындар орналасады.


%9.3f – нақты сан ені 9 цифрдан тұрады, оның 3 таңбасы бөлшекке беріледі, сан ені аз болса, оның сол жағында бос орындар орналасады.

Әрбір спецификация % символынан басталып, түрлендіру символымен аяқталады. Ол екеуінің ортасында мыналар тұруы мүмкін:



  • минус таңбасы, аргумент мәні сол жақ шетке ығыстырылып жазылады.

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

2) Scanf() енгізу функциясы жоғарыда қарастырылған түрлендіру спецификациясының көбін пайдаланады.

scanf (,);

Аргументтер ретінде адрес нұсқауыштары пайдаланылады.

Мысалы:
scanf("%d%f", &x,&y);

Кейбір айырмашылықтарын атап өтейік.

%е және %f спецификациялары енгізу кезінде бірдей болып табылады;


short типті бүтін санды енгізу кезінде %h спецификациясы қолданылады.

ЕСКЕРТУ. Айнымалы адресін беру үшін адрестерді жазғанда, айнымалы адресін анықтау үшін & символы қолданылады. Ал тіркестік (жолдық) айнымалыны енгізгенде, & символы жазылмайды.

Жол енгізуден бір мысал келтірейік.



/* Жол енгізу мысалы */

main()
{


char name [15];
clrscr();
printf("\n‚Ввод имени \n");
scanf("%s",name);
printf("Автором программы является %s\n",name);
}[kgl]

Си тілі операторлары



  1. «Өрнек» немесе меншіктеу операторы

  2. Құрама операторлар

  3. Типтерді түрлендіру

  4. Келтіру операциясы

  5. Логикалық оператор

  6. Таңдау операторлары

«Өрнек» немесе меншіктеу операторы

Кез келген ; таңбасымен аяқталатын өрнек меншіктеу операторы болып табылады. Өрнек-тің бір түріне бос оператор жатады, ол жай ; операторы.


Мысалдар:
y=1.5e3;
i++;
a+=2;
m1: ;
x=a+b-sin(2*alfa);
;


Құрама операторлар

Құрама операторларға жай құрама операторлар және блоктар жатады. Екеуі де жүйелі жақшаға алынып жазылады. Блокта жай құрама операторларға қарағанда, айнымалыларды сипат-тау жолдары болады.


Мысалы:
{
n++; жай құрама оператор
summa+=n;
}
{
int n=0;
n++; бұл блок
summa+=n;
}


Типтерді түрлендіру

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

char ® short ® int ® long ® float ® double

Оң жақтағылары сол жақтағылардан жоғары дәрежелі болып табылады.


Егер char мен short типтері араласса, нәтижесі – chort болады, ал short пен int типтері араласса, нәтижесі – int болады, т.с.с. float пен double типтері араласса, нәтижесі double болады.

  1. Егер операция екі түрлі типтегі мәліметтер үшін орындалатын болса, онда олар осы мәлімет-тер типтерінің арасындағы “жоғарғы” типке кел-тіріледі.

  2. “Жоғары” типтен бастап, “төмен” типке дей-ін реттелген типтер аттарының тізбегі келесідей түрде көрсетіледі:



  • double

  • float

  • long

  • int

  • short

  • char

3. Меншіктеу операторында оң жақта орналасқан өрнектің есептелген нәтижесі осы оператордың сол жағына жазылған айнымалының типіне келті-ріледі. Осындай процесс типтің “жоғарысына” немесе “төменіне” келтірілуі мүмкін.

Мысалы:
main ()


{
char ch; int i; float fl;
fl=i=ch='A';
printf("ch=%c i=%d fl=%6.2f\n",ch,i,fl); // ch=A i=65 fl= 65.00
ch=ch+1; // ch=66
i=fl+2*ch; // i=65.00+2*66=197
fl=2.0*ch+1; // fl=2*66+1=133
printf("ch=%c i=%d fl=%6.2f\n",ch,i,fl);
}//ch=B i=197 fl=133.00

Келтіру операциясы

Жоғарыда көрсетілген типтердің түрлендірілуі автоматты түрде орындалады. Мәліметтердің көр-сетілген қажетті типіне келтіру үшін Си тілінде ар-найы бір тәсіл бар. Бұл тәсілде типтердің келтірілуі келесідей түрде қолданылады: айнымалының ал-дында дөңгелек жақшада қажетті типтің аты жазы-лады. Жалпы түрге келтіру операциясы мынадай болып жазылады: (тип)өрнек.

Мысалы:
int m;
float x,y;
y=pow(x,2)+sqrt((double)m);

Логикалық оператор

Қатынас операциялары екі мәнді салыстыру үшін қолданылады: ==,!=,,>=
Егер қарастырылатын қатынас нәтижесі ақи-қат болса, шарттық өрнектің мәні 1-ге тең болып саналады. Егер ол жалған болса, шарт-тық өрнек мәні 0-ге тең. Қатынас операциясы-ның приоритеті арифметикалық операциялар-ға қарағанда, төмен және меншіктеу операто-рымен салыстырғанда жоғары болады.
Екі немесе бірнеше шарттық өрнектерді біріктіру үшін логикалық оператор қажет.

Си тілінде келесі логикалық операторлар бар



  1. және (&&) операциясы f1 && f2

  2. немесе | | (or) операциясы f1 || f2

  3. терістеу (not) операциясы !f1

Терістеу (емес, қарсы) операциясының приорите-ті өте жоғары, одан тек жақша ішіндегі мәндер-дің приоритеті жоғарылау болады. && операция-сының приоритеті || (or) операциясымен салыс-тырғанда жоғары, ал осы екеуінің приоритеттері қатынас операцияларымен салыстырғанда төмен, меншіктеу операциясынан жоғары болады.

Таңдау операторлары

Таңдау операторлары – бұлар шартты оператор және ауыстырғыш (переключатель) оператор.

Шартты оператордың толық және қысқа түрі бар.



if (шарт-өрнек) оператор; //қысқа түрі

Шарт-өрнек ретінде арифметикалық өрнек, қатынас немесе логикалық өрнек жазылады. Егер шартты өрнек мәні нөлге тең (яғни ақиқат болса) болмаса, онда оператор атқарылады.

Мысалы:
if (x if (шарт-өрнек) 1-оператор; //толық түрі
else 2-оператор;

Егер шартты өрнек мәні нөлге тең (яғни ақиқат болса) болмаса, онда 1-оператор атқарылады, ал ол нөлге тең болса, онда 2-оператор орындалады.

Мысалы:
if (d>=0)


{
x1=(-b-sqrt(d))/(2*a);
x2=(-b+sqrt(d))/(2*a);
printf(“\nx1=%5.2f x2=%5.2f”,x1,x2);
}
else printf(“\nШешуі жоқ”);

Цикл операторлары



  1. Шартты операция

  2. While цикл операторы

  3. FOR цикл операторы

  4. Do while цикл операторы

Шартты операция

Шартты операция (? :) шартты өрнек жазуға мүмкіндік береді, яғни берілген шартқа байла-нысты әр түрлі мән қабылдайтын шартты өр-нектер құрады. Бұл операция үшорынды бо-лып табылады. Егер оның шарты (бірінші операнды) ақиқат болса, өрнек мәні екінші операндқа тең; егер жалған болса, онда — үшіншіге тең.

Мысалы:
max_ab = a > b? a : b;

2. While цикл операторы

Шарты алдын ала тексерілетін цикл схемасы:

Оның жазылуы:



While (шарт-өрнек)
{
1 оператор;
2 оператор;
......
N оператор;
}

Мұнда шарт-өрнекке кіретін айнымалы цикл ішінде өзгеріп отырады.

Мысалы:


/* y=f(x) функциясының мәндерін х х0-ден xk-ға дейін dx қадаммен өзгергенде анықтау керек for6.cpp*/

#include
#include


main ()
{
float x,y,x0,xk,dx;
int k; int n; clrscr();
printf(“x0,xk,dx= “);
scanf("%f%f%f",&x0,&xk,&dx);
printf("----------------------\n");
printf(" x | y\n");
printf("----------------------\n");
x=x0;
while (x { y=-2.4*x*x+5*x-3; printf("%6.2f | %6.2f\n",x,y);
x=x+dx;
}
printf("----------------------\n");
getch();
}

Мысалы:


/* 1-ден 100-ге дейінгі сандар қосындысы */

#include
#include


main ()
{
int s=0,k;
clrscr();
printf("1-ден 100-ге дейінгі сандар қосындысы\n");
k=1;
while (k { s+=k;
k++;
}
printf("s= %d",s);
getch();
}

FOR цикл операторы

Параметрлі цикл схемасы:

Арифметикалық прогрессия сияқты For операторының жазылуы:



for(x=x0;x {
;
;
. . .
;
}

Мұндағы өрнек1: x=x0; – цикл айнымалысының бастапқы мәні, өрнек2: x

Мысалы:


/* 1-ден n-ге дейінгі сандар қосындысы */

#include
#include


main ()
{ int s=0,k;
int n;
clrscr();
printf(“n санын енгізіңіз:");
scanf("%d",&n);
printf("1-ден %d-ге дейінгі сандар қосындысы:",n);
for (k=1;k s+=k;
printf(" %d",s);
getch();
}

For цикл операторында өрн3 ретінде жалпы дұрыс жазылған кез келген өрнекті пайдалануға болады.

Мысалы:
for (d=0.1; d printf(“%f”,d);

For цикл операторында бір немесе бірнеше өрнектерді жазбауға да болады, бірақ мұндайда ; символын міндетті түрде өз орындарына жазып отыру керек, мысалы:

x=2;
for(n=4; x x=x*n;

For цикл операторында құрама өрнектер-ді «,» операциясы арқылы жазуға да бола-ды,мұндайда бөлектенген өрнектер солдан оңға қарай есептеледі.

Мысалы:


int x,y;
for (x=1,y=9;x printf(“%d%d\n”, x,y);

Мұнда өрн1 орнына екі өрнек жазылған (x=1,y=9;) және олар x,y айнымалыларын өзгерту үшін қолданылады. Ал соңында өрн3 орнына да екі өрнек (x++,y--)жазылған.

Мысалы:


/*көбейту кестесі */

# include


#include
main ()
{int m;//көбейту кестесі шығарылатын сан
int n; // көбейткіш
int p; // көбейтінді
clrscr();
printf(“керекті сан енгізіңіз:");
scanf("%d",&m);
printf("%i санының көбейту кестесі\n",m);
for (n=1;n {p=m*n;
printf("%ix%i=%i\n",m,n,p);
}
getch();
}

Нәтижесі:

5 санының көбейту кестесі
5х1=5
5х2=10
5х3=15
5х4=20
5х5=25
5х6=30
5х7=35
5х8=40
5х9=45

Мысалы:


// n!есептеу, n!=1*2*3*…*n

#include
#include


main ()
{
int i,n;
long p;
clrscr();
printf("n санын енгіз:");
scanf("%d",&n);
for (i=1,p=1;i printf("%i!=%li",n,p);
// long int спецификаторы --li
getch();
}

2-нұсқа мәтіні:

//n!,1-ден n-ге дейінгі сандарды көбейту
#include
#include
main ()
{
int n;
clrscr();
printf("n= ");
scanf("%d",&n);
for (float k=1,p=1; k printf(" %2.0f!= %-13.0f\n",k,p);
puts("Enter басу керек\n");
getch();
}

Мысалы:


//бақытты билеттер (123 060, 561 750, т.с.с.)

#include
#include //аялдауға қажет препроцессор


main()
{ int a,b,c,x,y,z;
for (a=0; a for (b=0; b for (c=0; c for (x=0; x for (y=0; y for (z=0; z if (a+b+c==x+y+z)
{printf("%i%i%i%i%i%i\t",a,b,c,x,y,z);
delay(100);}
}
g> Do while цикл операторы

Шарты соңынан тексерілетін do … while циклініңсхемасы

Жалпы жазылу түрі:
do
{
1-оператор;
2-оператор;
… … …
n-оператор;
}
while (өрнек);

Do ... while циклінде шарт соңында тексерілетін болғандықтан, оның тұлғасы ең болмағанда бір рет орындалады. Цикл соңында жазылған while(өрнек) өрнек ақиқат болса (немесе 0-ге тең болмаса), цикл тұлғасы қайтадан орындалады. Ал өрнек жалған болса (немесе 0-ге тең болса), цикл аяқталады.

Мысалы:


// 15 бүтін сандар ішінен олардың максимумын табу

#include
main ()


{
int a, max, i=1;
max = -32000; //max басында ең кіші санға тең болады
do
{
printf(“сан енгізіңіз: “);
scanf("%d",&a);
if (a > max) max = a;
i++;
}
while (i printf(“\n15 санның ең үлкені=%i",max);
getch();
}

Мысалы:


Қосынды табу s =дәлдігі e=10-5

#include
#include
#define epsilon 1e-5
main ()
{
int i;
float a,s;
clrscr();
s=0; i=1;
do
{a=1.0/i/i;
s+=a;
i++;}
while (a>epsilon);
printf("s=%7.4f",s);
getch();
}

Көшу операторлары




Достарыңызбен бөлісу:
1   2   3




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет