Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

4-lekciya

.pdf
Скачиваний:
2
Добавлен:
27.11.2023
Размер:
359.94 Кб
Скачать

4-Lekciya. C++ te kiritiw shıǵarıw operatorları hám arifmetikalıq ámeller

Lekciya jobası:

4.1.Maǵlıwmatlardı kiritiw hám shıǵarıw

4.2.Ámeller

4.1. Maǵlıwmatlardı kiritiw hám shıǵarıw

Formatlı shıǵarıw - printf. Shıǵarıw printf funkciyası kórsetilgen parametrlerdi standart aǵımǵa shıǵarıw ushın isletiledi. Standart aǵım túsinigi keyingi baplarda keltiriledi. Házirshe standart aǵım sıpatında monitor túsiniliwi jeterli.

Funkciya stdio.h modulinde jaylasqan bolıp, ulıwma kórinisi tómendegishe: printf(control, arg1, arg2,…)

Bunda control basqarıwshı qatar dep atalıp eki túrdegi simvollardan ibarat boladı: ápiwayı shıǵarılıwshı simvollar hám náwbettegi parametrdi ózgertip shıǵarıwshı specifikaciyalar.

Hár bir specifikaciya % simvolınan baslanıp ózgertiw túrin kórsetiwshi simvol menen tawsıladı.

Ózgertiw simvolları tómendegilerden ibarat. Pútin sanlar ushın:

d - parametr belgili onlıq pútin sanǵa aylandırıladı. u - parametr belgisiz onlıq pútin sanǵa aylandırıladı.

o - parametr belgisiz hám birinshi cifri 0 bolmaǵan segizlik sanǵa aylandırıladı.

x - parametr belgisiz hám 0x belgisiz on altılıq sanǵa aylandırıladı.

X - parametr tap x kibi tek hárip penen kórsetiliwshi cifrlar úlken hárip yaǵnıy A, B, C, D, E, F sıpatında jazıladı.

Haqıyqıy sanlar ushın:

e - parametr float yamasa double tipindegi san dep qaraladı hám belgili m.nnnnnne+xx kórinisindegi onlıq sanǵa keltiriledi.

E - parametr tap e kibi isletiledi, tek ǵana mantissa belgisi úlken hárip yaǵnıy E sıpatında jazıladı.

f - parametr float yamasa double tipindegi san dep qaraladı hám belgili m.nnnnnn kórinisindegi onlıq sanǵa keltiriledi.

g - parametr berilgen san mánisi hám anıqlıǵı ushın eń qolay %e yamasa %f tańlaydı.

G - parametr tap g kibi isletiledi, tek ǵana mantissa belgisi úlken hárip yaǵnıy E sıpatında jazıladı.

Simvol hám qatar ushın:

c - parametr bir simvol dep qaraladı.

s - parametr qatar simvollar nólinshi simvol ushıraspaǵansha yamasa

kórsetilgen sandaǵı simvollar qosıladı.

 

 

 

 

Mısal:

 

 

 

 

#include <stdio.h>

 

 

 

 

int main()

 

 

 

 

{

 

 

 

 

int num = -27; int number = 27; float f = 123.456;

 

char r = 'a'; char str[4] = "abc";

 

 

 

printf("%d\n", num);

/*

-27

*/

 

printf("%u\n", number);

/*

27

*/

 

printf("%o\n", number);

/*

33

*/

 

printf("%x\n", number);

/*

lb

*/

 

printf("%f\n", f);

/*

123.456001 */

 

printf("%e\n", f);

/*

1.23456e+02

*/

printf("%E\n", f);

/*

1.23456E+02

*/

printf("%c\n", r);

/*

a

*/

 

printf("%s\n", str);

/*

abc

*/

 

return 0;

 

 

 

 

}

Procent % belgisi hám ózgertiw simvolı arasına tómendegi simvollardı qoyıw múmkin:

Shıǵarılıp atırǵan argument shepke tegislew lazımlıǵın kórsetiwshi minus

belgisi;

Maydan minimal uzınlıǵın kórsetiwshi cifrlar qatarı;

Maydan uzınlıǵın keyingi cifrlar qatarınan ajıratıwshı noqat;

Qandayda bir qatardan qansha simvol ajratıp alıw lazımlıǵın hámde float yamasa double tipindegi sanlarda noqattan keyin qansha bólshek cifrları basıp shıǵarılıwın kórsetiwshi cifrlar izbe-izligi;

Shıǵarılıp atırǵan san long tipine tiyisli ekenligin kórsetiwshi uzın onlıq markeri l;

% ten keyingi simvol ózgertiw simvolı bolmasa ol baspaǵa shıǵarıladı;

% simvolınıń ózin baspaǵa shıǵarıw ushın %% belgisin beriw lazım.

Tiplerdiń maksimal hám minimal mánisleri. Túrli tipler maksimal hám

minimal mánisleri <LIMITS.H> faylındaǵı konstantalarda saqlanadı.

Tómendegi programmada char tipindegi bitler sanı hám char tipi maksimal hám minimal mánisi ekranǵa shıǵarıladı.

#include<stdio.h>

#include<limits.h> int main()

{

printf("CHAR_BIT = %d\n",CHAR_BIT);

printf("CHAR_MIN = %d CHAR_MAX = %d\n",CHAR_MIN,CHAR_MAX); return 0;

}

Tómendegi programmada short, int, long tipleri maksimal hám minimal mánisi ekranǵa shıǵarıladı

#include<stdio.h>

#include<limits.h> int main()

{

printf("SHRT_MIN = %d SHRT_MAX = %d\n",SHRT_MIN,SHRT_MAX); printf("INT_MIN = %d INT_MAX = %d\n",INT_MIN,INT_MAX); printf("LONG_MIN=%ld LONG_MAX=%ld\n",LONG_MIN,LONG_MAX); return 0;

}

Tómendegi programmada unsigned char, unsigned short, unsigned int, unsigned long tipleri maksimal hám minimal mánisi ekranǵa shıǵarıladı

#include<stdio.h>

#include<limits.h> int main()

{

printf("UCHAR_MAX = %u\n",UCHAR_MAX); printf("USHRT_MAX = %u\n",USHRT_MAX); printf("UINT_MAX = %u\n",INT_MAX); printf("ULONG_MAX = %ul\n",ULONG_MAX); return 0;

}

Formatlı kiritiw, Scanf. Scanf funkciyası stdio.h modulinde jaylasqan bolıp, ulıwma kórinisi tómendegishe:

Scanf(control, arg1, arg2,…)

Funkciya standart aǵımnan simvollardı oqıp basqarıwshı qatar tiykarında formatlap sáykes parametrlerge jazıp qoyadı. Parametr kórsetkish bolıwı lazım.

Basqarıwshı qatar tómendegi ózgertiw specifikaciyalarınan ibarat:

Boslıq, tabulyaciya, keyingi qatarǵa ótiw simvolları;

Ápiwayı simvollar (% ten tısqarı) kiritiw aǵımındaǵı náwbettegi simvollar menen sáykes keliwi lazım;

% simvolınan baslanıwshı specifikaciya simvolları;

% simvolınan baslanıwshı mánis beriwdi toqtatıwshı * simvolı;

% simvolınan baslanıwshı maydan maksimal uzınlıǵın kórsetiwshi san; Tómendegi specifikaciya simvolların isletiw múmkin:

d – belgili ónlıq pútin san kutilip atır.

o – belgili segizlik pútin san kutilip atır. x –belgili on altılıq pútin san kutilip atır. h - belgisiz onlıq san kutilip atır.

c – bir simvol kutilip atır. s – qatar kutilip atır.

f - float túrindegi san kutilip atır. Kiritilip arırǵan sannıń pútin cifrları hám noqattan soń bólshek cifrları sanı hám E yamasa e belgisidan soń mantissa cifrları sanı kórsetiliwi múmkin.

#include <stdio.h> int main()

{

unsigned width, precision; int number = 256;

double weight = 242.5; printf("What field width?\n"); scanf("%d", &width);

printf("The number is :%*d:\n", width, number); printf("Now enter a width and a precision:\n"); scanf("%d %d", &width, &precision); printf("Weight = %*.*f\n", width, precision, weight); printf("Done!\n");

return 0;

}

Lokal hám global ózgeriwshiler. C tilinde ózgeriwshi anıqlaması álbette blok basında jaylasıwı lazım.

Ózgeriwshiniń bar aymaǵı dep usı ózgeriwshige ajıratılǵan yad bar bolǵan programma bólimine aytıladı. Ózgeriwshiniń kóriniw aymaǵı dep ózgeriwshi mánisin alıw múmkin bolǵan programma bólimine aytıladı. Qandayda bir blokda járiyalanǵan ózgeriwshi lokal ózgeriwshi delinedi. Hár qanday bloktan sırtta járiyalanǵan ózgeriwshi global ózgeriwshi delinedi.

Lokal ózgeriwshi bar hám kóriniw aymaǵı járiyalanıwdan tap sol járiyalaw jaylasqan blok aqırına shekem.

Sırtqı bloktaǵı ózgeriwshi atı usı blokta jaylasqan yamasa usı bloktaǵı ishki blokta ózgeriwshi atı menen birdey bólmawı kerek.

Global ózgeriwshi bar aymaǵı járiyalanıwdan tap programma aqırına shekem.

Eger ishki bloktaǵı ózgeriwshi atı global ózgeriwshi atı menen birdey bolsa lokal ózgeriwshi kóriniw aymaǵında global ózgeriwshi kórinbey qaladı.

Mısal:

#include<stdio.h> int i = 5;

int k = 6; int main()

{

int i = 9; printf("%d\n",i); printf("%d\n",k); return 0;

}

Nátiyje:

9

6

4.2. Ámeller

Arifmetikalıq ámeller. Ámeller ádette unar, yaǵnıy bir operandqa qollanılatuǵın ámellerge hám binar, yaǵnıy eki operandqa qollanılatuǵın ámellerge bólinedi.

Binar ámeller additiv yaǵnıy + qosıw hám – alıw ámellerine, hámde multiplikativ, yaǵnıy * kóbeytiw, / bóliw hám % modul alıw ámellerine ajıratıladı.

Pútin sandı pútin sanǵa bolǵende nátiyje pútin sanǵa shekem juwıqlanadı.

Mısal ushın, 20/3 = 6; (-20)/3 = -6; 20/(-3) = -6.

Modul ámeli pútin sandı pútin sanǵa bóliwden payda bolatuǵın qaldıqqa teń. Eger modul ámeli oń operantlarǵa qóllanılsa, nátiyje de oń boladı, kerisinshe jaǵdayda nátiyje belgisi kompilyatorǵa baylanıslı boladı.

Unar ámellerge belgini ózgertiriwshi unar minus – hám unar plyus + ámelleri kiredi. Bunnan tısqarı inkrement (++) hám dekrement (--) ámelleri de unar ámellerge kiredi.

Inkrement (++) unar ámeli mánisti 1 ge asırıwdı kórsetedi. Ámeldi prefiks, yaǵnıy ++i kóriniste isletiw aldın ózgeriwshi mánisin asırıp, soń paydalanıw lazımlıǵın, postfiks bolsa i++ kóriniste isletiw aldın ózgeriwshi mánisinen paydalanıp, soń asırıw kerekligin kórsetedi. Mısal ushın, i diń mánisi 2 ge teń bolsın, onda 3+(++i) ańlatpa mánisi 6 ǵa, 3+i++ ańlatpa mánisi 5 ke teń boladı. Eki jaǵdayda da i diń mánisi 3 ke teń boladı.

Dekrement -- unar ámeli mánisti 1 ge kemeytiredi. Bul ámel de prefiks hám postfiks kóriniste isletiliwi múmkin. Bul eki ámeldi tek ózgeriwshilerge qollaw múmkin.

Ámeller ústinligi. Quramalı ańlatpalarda qaysı ámel birinshi náwbette orınlanıwı operator prioritetine baylanıslı.

Máselen: x = 5+3*8.

Kóbeytiw qosıwǵa salıstırǵanda joqarıraq prioritetke iye. Sonıń ushın bul ańlatpa mánisi 29 ǵa teń boladı.

Egerde eki matematikalıq ańlatpanıń prioriteti teń bolsa, olar shepten ońǵa qarap izbe-iz orınlanadı.

Máselen: x = 5+3+8*9+6*4.

Bu ańlatpada birinshi kóbeytiw ámelleri shepten ońǵa qarap orınlanadı 8*9 = 72 hám 6*4 = 24. Keyin qosıw ámelleri orınlanadı. Nátiyjede x = 104 mániske iye boladı.

Biraq, barlıq ámeller de bul tartipke boysınbaydı. Máselen, ózlestiriw ámeli ońnan shepke qarap orınlanadı.

Additiv ámelleriniń ústinligi multiplikativ ámelleriniń ústinliginen páirek. Unar ámellerdiń ústinligi binar ámellerden joqarı.

Razryadlı ámeller. Razryadlı ámeller nátiyjesi pútin sanlardı ekilik kórinisleriniń hár bir razryadına sáykes logikalıq ámellerdi qollawdan payda boladı. Máselen, 5 kodı 101 ge teń hám 6 kodı 110 ǵa teń.

6&5 mánisi 4 ke, yaǵnıy 100 ge teń. 6|5 mánisi 7 ge, yaǵnıy 111 ge teń. 6^5 mánisi 3 ke, yaǵnıy 011 ge teń. ~6 mánisi 4 ke, yaǵnıy 010 ǵa teń.

Bul mısallarda ámeller ústinligi asıp barıwı tártibinde berilgen.

Bul ámellerden tısqarı M<<N shepke razryadlı jıljıtıw hám M>>N ońǵa razryadlı jıljıtıw ámelleri qollanıladı. Jıljıtıw M pútin sannıń razryadlı kórinisine qollanıladı. N neshe poziciyaǵa jıljıtıw kerekligin kórsetedi.

Shepke N pozisiyaga súriw bul operand mánisin ekiniń N shi dárejesine kóbeytiwge sáykes keledi. Mısal ushın 5<<2 = 20. Bul ámeldiń bitli kórinisi: 101<<2

= 10100.

Eger operand oń bolsa, N poziciyaǵa ónǵa súriw shep operandtı ekiniń N shi dárejesine bólıp bólshek bólimin taslap jiberilgen mániske teń boladı. Mısal ushın 5>>2 = 1. Bul ámeldiń bitli kórinisi 101>>2 = 001 = 1. Egerde operand mánisi teris bolsa eki variant bar: arifmetikalıq jıljıtıwda bosatılıp atırǵan razryadlar belgi razryadı mánisi menen toltırıladı, logikalıq jıljıtıwda bosatılıp atırǵan razryadlar NULL lar menen toltırıladı.

Razryadlı súriw ámelleriniń ústinligi ózara teń, razryadlı biykarlaw ámelinen tómen, qalǵan razryadlı ámellerden joqarı. Razryadlı biykarlaw ámeli unar ámelge qalǵan ámeller binar ámellerge kiredi.

Salıstırıw ámelleri. Eger salıstırıw orınlı bolsa salıstırıw ámelleri mánisleri 1 ge teń boladı eger orınsız bolsa 0 ga teń. Salıstırıw ámelleri arifmetikalıq túrdegi operandlarǵa yamasa kórsetkishlerge qollanıladı.

Mısallar:

1 != 0 mánisi 1 ge teń; 1 == 0 mánisi 0 ge teń; 3> = 3 mánisi 1 ge teń; 3>3 mánisi 0 ge teń; 2< = 2 mánisi 1 ge teń; 2<2 mánisi 0 ge teń;

Úlken >, kishi <, úlken yamasa teń >= , kishi yamasa teń <= ámelleriniń ústinligi birdey.

Teń = = hám teń emes ! = ámelleriniń ústinligi óz ara teń hám qalǵan ámellerden tómen.

Logikalıq ámeller. C tilinde logikalıq tip joq. Sonıń ushın logikalıq ámeller pútin sanlarǵa qóllanadı. Bul ámellerdiń nátiyjeleri tómendegishe anıqlanadı:

x||y ámeli 1 ge teń eger x>0 yamasa y>0 bolsa, kerisinshe 0 ga teń x&&y ámeli 1 ge teń eger x>0 hám y>0 bolsa, kerisinshe 0 ga teń !x ámeli 1 ge teń eger x>0 bolsa, kerisinshe 0 ga teń

Bul mısallarda ámeller ústinligi asıp barıw tártibinde berilgen. Biykarlaw ! ámeli unar qalǵanları binar ámeller.

Mánis beriw ámeli. Mánis beriw ámeli = binar ámel bolıp shep operandı ádette ózgeriwshi oń operandı bolsa ańlatpaǵa teń boladı. Mısal ushın:

z = 4.7+3.34

Bul mánisi 8.04 ke teń ańlatpa. Bul mánis z ózgeriwshisine de beriledi. Bul ańlatpa aqırına noqat útir (;) belgisi qoyılǵanda operatorǵa aylanadı. z = 4.7+3.34;

Bir ańlatpada bir neshe mánis beriw ámelleri qollanılıwı múmkin. Mısal

ushın:

c = y = f = 4.2+2.8;

Bunnan tısqarı C tilinde quramalı mánis beriw ámeli bar bolıp, ulıwma kórinisi tómendegishe:

Ózgeriwshi_atı ámel = ańlatpa;

Bul jerde ámel tómendegi ámellerden biri *,/,%,+,-, &,^,|, <<,>>.

Mısal ushın:

x+ = 4 ańlatpa x = x+4 ańlatpaǵa ekvivalent; x* = a ańlatpa x = x*a ańlatpaǵa ekvivalent;

x/ = a+b ańlatpa x = x/(a+b) ańlatpaǵa ekvivalent; x>> = 4 ańlatpa x = x>>4 ańlatpaǵa ekvivalent;

Imlá belgileri ámel sıpatında. C tilinde ayırım bir imlá belgileri de ámel sıpatında isletiliwi múmkin. Bul belgiler ápiwayı () hám kvadrat [] qawıslar. Ápiwayı qawıslar binar ámel dep qaralıp ańlatpalarǵa yamasa funkciyaǵa múráját etiwde paydalanıladı. Funkciyaǵa múráját etiw tómendegi formada ámelge asırıladı:

<funkciya atı> (<argumentler dizimi>). Mısal ushın sin(x) yamasa max(a,b). Kvadrat qawıslardan massivlerga múráját etiwde paydalanıladı. Bul múráját

tómendegishe ámelge asırıladı:

<massiv atı>[<indeks>]. Mısal ushın a[5] yamasa b[n][m].

Útir simvolın ajıratıwshı belgi sıpatında da ámel sıpatında da qaraw múmkin. Útir menen ajratılǵan ámeller izbe-izligi bir ámel dep qaralıp, shepten ońǵa esaplanadı hám aqırǵı ańlatpa mánisi nátiyje dep qaraladı. Mısal ushın:

d = 4, d = d+2 ámeli nátiyjesi 6 ga teń.

Shártli ámel. Shártli ámel ternar ámel delinedi hám úsh operandtan ibarat boladı:

<1-ańlatpa>?<2-ańlatpa>:<3-ańlatpa>

Shártli ámel orınlanǵanda aldın 1-ańlatpa esaplanadı. Eger 1-ańlatpa mánisi 0 den parqlı bolsa 2-ańlatpa esaplanadı hám mánisi nátiyje sıpatında qabıl etiledi, kerisinshe jaǵdayda 3-ańlatpa esaplanadı hám mánisi nátiyje sıpatında qabıl etiledi.

Mısal ushın moduldi esaplaw: x<0?-x:x yamasa eki san kishisin esaplaw a<b?a:b.

Ámeller ústinligi tablicası

Rang

Ámeller

Jónelis

 

 

 

1

() [] -> :: .

Shepten ońǵa

 

 

 

2

! ~ + - ++ -- & * (tip) sizeof new delete tip()

Ońnan shepke

 

 

 

3

. * ->*

Shepten ońǵa

 

 

 

4

* / % (multiplikativ binar ámeller)

Shepten ońǵa

 

 

 

5

+ - (additiv binar ámeller)

Shepten ońǵa

 

 

 

6

<<>>

Shepten ońǵa

 

 

 

7

<< = > = >

Shepten ońǵa

 

 

 

8

= ! =

Shepten ońǵa

 

 

 

9

&

Shepten ońǵa

 

 

 

10

^

Shepten ońǵa

 

 

 

11

|

Shepten ońǵa

 

 

 

12

&&

Shepten ońǵa

 

 

 

13

||

Shepten ońǵa

 

 

 

14

?:(shártli ámel)

Ońnan shepke

 

 

 

15

= * = / = % = + = - = & = ^ = | = << = >> =

Ońnan shepke

 

 

 

16

, (útir ámeli)

Shepten ońǵa

 

 

 

Baqlaw sorawları

1.Pútin hám haqıyqıy tiplerdiń qanday parqı bar?

2.Belgisiz unsigned tipiniń qásiyetlerin aytıń.

3.Belgisiz unsigned short int hám long int tipleriniń ózara parqı nede?

4.Birinshi qaysı funkciya orınlanadı?

5.Simvollı kiritiw funkciyaları?

6.Shártli ámel ulıwma kórinisi?

7.Tiplerdi keltiriw qaǵıydalari?

8.#include direktivası qanday wazıypanı arqaradı?

9.Bas main() funkciyasınıń ózine tán qásiyeti neden ibarat?

10.Túsindirmeler bir neshe qatarda jazılıwı múmkin be?

Соседние файлы в предмете Программирование на C++