1. Программалау тілдері. Си тілінің негізгі элементтері



бет1/7
Дата08.06.2018
өлшемі199,78 Kb.
#42012
  1   2   3   4   5   6   7

1.Программалау тілдері. Си тілінің негізгі элементтері.

С бағдарламалау тілі 1972 жылы Bell Laboratories фирмасының қызметкері Денис Ритчидің басшылығымен Америкада жасап шығарылды. Одан бұрын А және В бағдарламалау тілдері пайда болғанымен, бірақ олар кең қолданыс таба алмады.

С тілі- құрылымы Паскаль тіліне ұқсас жоғары деңгейлі қуатты тіл. Оның төменгі деңгейлі Ассемблер тілімен де ұқсастығы бар. Сондықтан, оны әдебиеттерде орташа деңгейлі тіл деп те атайды.

С тілі арқылы компилятор және операциялық жүйе сияқты жүйелік бағдарламалар жазылады. Бұл тілде жазылған алғашқы бағдарламалық жабдық- Unix операциялық жүйесі.

С тілінің стандарты 1983 жылы Американың ұлттық стандарттар институтында бекітілді және ANSI C деп аталды. 1980 жылдың басында сол фирма қызметкері Бьерн Строуструп С тілінің нысанды- бағдарлы кеңейтілуін жасады. Ол тіл 1983 жылы С++ деп аталды.

2.Си бағдарламалау тілінің алфавиті.

Барлық бағдарламалау тілдерінің өз алфавиті болады. Алфавит – бағдарламада пайдаланылатын түрлі символдар (әріптер, цифрлар, таңбалар, белгілер). С/C++ тілінің алфавиті төмендегідей:

Латын алфавитінің бас (A-Z) және кіші (a-z) әріптері

Араб цифрлары: 0 – 9

Арнайы символдар: { }, | [ ] ( ) + - / % \ ; ‘ : ? < = > _ ! & # ~ ^ . *

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



Мысалы: ++ -- == && || << >> <= += -= *= /= /* */ //

Түсіндірме мәтін Турбо С тілінде /* */ символдар жұбы арқылы,

С++ -те // символдары көмегімен жазылады.

Мысалы: 1) /* Герон формуласы */

2) // Үшбұрыштар теңсіздігі



Идентификаторлар

Әріптен немесе _ белгісінен басталған латын әріптерінің, цифр және _ белгісінің тізбегі идентификатор болып табылады.



Мысалы: x1, esep_1,max, _min, SUMMA

Паскаль тілінен айырмашылығы бұл тілде бас және кіші әріптер ажыратылады. Мысалы: max, Max, MAX, mAX- әртүрлі идентификаторлар.



Қызметші сөздер

Паскаль тіліндегі сияқты С++ -те қызметі бір мәнді анықталатын идентификторлар- қызметші сөздер қолданылады. Олардың толық тізімі компилятор түріне байланысты болады. Дегенмен, барлығына ортақ қызметші сөздер тізімі болады.



Мысалы: auto, break, сase, char, continue, if, goto, void, while, long, union т.б.

Деректер типтері

Сандық деректердің С++ тілінде 4 базалық типі бар. Олар int, char- бүтін, float, double- нақты.

Олардан басқа бағдарламада бұл типтердің модификациясы қолданылады. Олар төмендегі 1- кестеде көрсетілген.

Кесте 1. С++ тіліндегі деректер типтері

С++ тіліндегі бағдарламада айнымалыны сипаттау форматы төмендегіше болады:

типтің_ аты айнымалылар_ тізімі;

Айнымалыларды сипаттау мысалдары:



int x,y,z;

unsigned long max1,max2;

float a,b,c;

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

Жалпы түрі: тип айнымалының_ аты= бастапқы_ мәні;

Мысалыint Sum=0, n=0;

float p=1.55 ;

unsigned int x=100, year=2013;

Тұрақтылар

Бүтін және сандық тұрақтылар Паскаль тіліндегідей жазылады. Ерекшелігі, суффикс қолдануға болады, ол арқылы бағдарламалаушы тұрақтының типін көрсетеді. Суффикстің үш типі болады: F (f) - float, U(u)- unsigned, L(l) - long.

Сонымен қатар, U және L суффикстерінің қосарлы UL немесе LU нұсқалары да қолданылады.

Мысалы: 3.14F, 100U, 512345UL

Cимволдық тұрақтылар апострофқа алынады. Мысалы: ‘V’, ’a’, ’1’, ’%’, ’)’

Ал символдар тізбегінен құралған жолдық тұрақтылар тырнақшаға алынады.

Мысалы: “Қосынды=”, “х, у мәндерін енгіз”.

3.Си бағдарламалау тіліндегі басқару символдары.

Символдық тұрақтылар ішінен басқару символдары деп аталатын символдар тізбегі ерекше қызмет атқарады. Олар экранға шығаруды басқаруды жүзеге асырады. Басқару символдары ‘\’ символынан басталады. Басқару символдары төменде көрсетілген:

\n’- жаңа жолға өту

\t’- көлденең табуляция

\r’- меңзерді жол басына қайтару

\\’- кері сызық

\’’- апостроф

\0’- нөлдік символ

\a’- дыбыстық сигнал беру

\b’- бір символға кері қайтару

\f’- келесі бетке өту

\v’- тігінен табуляция

\?’- сұрақ белгісі



Мысалы: “\n Мәтін \n үш жолға \n шығады”

Тұрақты айнымалылар

Тұрақты айнымалыларды жазу үшін const қызметші сөзі қолданылады. Жалпы түрі: const тұрақтының_типі тұрақтының_ аты =мәні;



Мысалыconst float x=2.55, y=1.22;

const int min=1, max=100;

Тұрақты айнымалыларды #define директивасы арқылы да жазуға болады. Жалпы түрі: #define тұрақтының_ аты тұрақтының_ мәні;

Бұл жағдайда жоғарыдағы мысал былайша жазылады:

#define x 2.55

#define y 1.22

Ескерту! Бұл жағдайда тұрақтының аты мен мәнінің арасына теңдік белгісі және соңында нүктелі үтір белгілері қойылмайды.

Саналатын тип тұрақтылары

Атаулы бүтін санды тұрақтыларды саналатын тип арқылы енгізуге болады. Оның жазылуының жалпы түрі:



enum саналатын_ мәндердің _типі {атаулы_тұрақтылар_тізімі};

мұндағы enum- саналатын мәндерді енгізудің қызметші сөзі;

Атаулы тұрақтылар тізімі тұрақтының_аты= тұрақтының_ мәні түрінде болуы да мүмкін.

Мысалы: enum {one=1,two,three,fout};

enum Day {Sunday, Monday,Tuesday};

enum Boolean {Yes,No};

Саналатын типтегі мәндер 0-ден бастап, солдан оңға қарай өсу ретімен нөмірленеді.

4.Си бағдарламалау тілінде қолданылатын операциялар.

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

Бір операндқа қолданылатын операция унарлық, екі операндқа қолданылатын операция бинарлық деп аталды.



Арифметикалық операциялар

Бинарлық арифметикалық операцияларға келесілер жатады:

+ қосу

- азайту


* көбейту

/ бөлу


% модуль бойынша бөлу (Паскальдағы mod- тың ұқсасы, яғни бір операндты екіншіге бөлгендегі қалдық).

Ал, унарлық арифметикалық операциялар:

++ бірге арттыру (инкремент)

- - бірге кеміту (декремент)

% операциясынан (ол тек қана бүтін санға қолданылады) басқасы деректердің кез келген типіне қолданылады.

Мысалы: x=x+1, x++, ++x үш операцияның нәтижесі бірдей.

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



Мысалы:1) x=5; y=x++; алдымен х- тің мәні у-ке меншіктеледі, сонан соң ғана х- тің мәні 1- ге өседі. х- тің бастапқы мәні 5-ке тең болса, жоғарыдағы операция нәтижесінде y=5, x=6 болады.

2) x=5; y=++x; операциясының нәтижесінде x=6, y=6 болады.

3) a=3; c=2; x=a++ * c++; Нәтижеде a=4, c=3, x=6 болады.

4) a=3; c=2; x=++a * ++c; Нәтижеде a=4, c=3, x=12 болады.



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

С++ тілінде басқа бағдарламалау тіліндегі сияқты қатынас операциялары қолданылады. Олар:

> үлкен


>= үлкен немесе тең

< кіші

<= кіші немесе тең

= = тең


!= тең емес

Паскаль тілінен ерекшелігі “тең” және “тең емес” қатынастарының белгіленуінде ғана.

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

Мысал: 5>1, ‘x’==’x’ қатынастарының мәні 1-ге, ал 5!=5, ‘x’==’X’ қатынастарының мәні 0-ге тең.

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

Негізгі логикалық операциялар С++ тілінде төмендегіше белгіленеді:

&& - конъюнкция (логикалық «және»)

|| - дизъюнкция (логикалық «немесе»)

! - инверсия немесе терістеу (логикалық «емес»)

Төмендегі 2- кестеде өрнектердің логикалық және қатынас операцияларын қолданып, С++ тілінде жазылу мысалдары көрсетілген.

Кесте 2. Логикалық және қатынас операциялары

математикалық өрнектің жазылуы

С++ тілінде жазылуы

0

x>0 && x<10

y≤-1 немесе y≥1

y<=-1 || y>=1

x≠y

!(x= =y)

a=b

a= =b

‘a’≠’A’

‘a’!=’A’

Логикалық және қатынас операцияларының орындалу реті төмендегіше болады:

1)​ !


1)​ >, <, >=, <=

1)​ ==, !=

1)​ &&

1)​ ||


Меншіктеу операциясы

Меншіктеу операциясының жалпы түрі төмендегіше болады:



айнымалының атауы=өрнек;

Мысалы: x=5; D=b*b-4*a*c; a=b=0;

Cонымен қатар, С++ тілінде меншіктеу операциясының құрама түрі қолданылады: +=, -=, /=, *=, %=



Мысалы: Төмендегі өрнектер баламалы болып табылады.

i+=2 және i=i+2

p/=5 және p=p/5

a*=b+c және a=a*(b+c)

x-=y және x=x-y

n%2 және n=n%2

х=х+2 өрнегінің орнына х+=2 деп жазған ыңғайлы болып табылады, себебі екінші өрнек тезірек орындалады.

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

Шартты операция үш операндқа арналған операция. Оның форматы:



логикалық өрнек ? 1- өрнек: 2- өрнек;

немесе


айнымалы=логикалық өрнек ? 1- өрнек: 2- өрнек;

Бұл операция тармақталу алгоритмдік құрылымын жүзеге асырады. Алдымен, логикалық өрнектің мәні есептеледі. Егер оның мәні ақиқат болса, онда 1- өрнек, керісінше жағдайда 2- өрнек орындалып, нәтиже экранға шығады.



Мысалы:

1)​  х айнымалысының модулін анықтау

x<0 ? –x: x;

1)​  екі санның үлкенін табу

max=(a<=b) ? b : a;

1)​ екі санның үлкенін екі еселеу

a>b ? 2*a: 2*b;

5.Си бағдарламалау тілінің құрылымы.

С/C++ тіліндегі бағдарлама құрылымы келесі бөліктерден тұрады:

1.Бағдарлама тақырыбы

2.Айнымалыларды сипаттау

3.Бағдарлама денесі

Бағдарлама тақырыбы #include <тақырыптық файл аты> препроцессорлық директивасынан басталады. Бір бағдарламаға бірнеше тақырыптық файл қосылуы мүмкін. Тақырыптық файлда бағдарламада қолданылатын стандарт кітапханалық функциялар сақталады. Ол функцияны қолданар алдында include операторы арқылы сәйкес тақырыптық файл қосылуы қажет.



Мысалы: 3- кестеде көрсетілген стандарт математикалық функцияларды қолдану үшін бағдарлама тақырыбында #include > командасы жазылуы қажет.

Тақырыптық файлдардың типі болады (h- header- тақырып).

Паскаль тіліндегі сияқты C++ тілінде де бағдарламада қолданылатын айнымалылар алдымен сипатталуы (хабарлануы) қажет. Оның жалпы түрі:

типтің_ аты айнымалылар_ тізімі;

Мысалы: int a,b;

char k1,k2,k3;

unsigned char c;

float x1,y1;

double e,f,g;

Бағдарлама денесі main() функциясынан кейін орналасады. Жалпы түрі:



main()

{

операторлар;

}

Бағдарлама денесі {} фигуралық жақшаға алынады.



Экранға форматтап шығару операторы

Экранға форматтап шығару операторының жалпы түрі төмендегіше болады:



printf(“формат жолы”, аргументтер тізімі);

printf() операторында экранға шығатын айнымалының форматын көрсететін түрлендіру спецификаторы қолданылады. Ол % белгісінен басталады. Төмендегідей түрлендіру спецификаторы қолданылады:

%d- таңбалы бүтін сан

%f- тұрақты үтірлі нақты сан (float)

%u- таңбасыз бүтін сан (unsigned)

%e- жылжымалы үтірлі нақты сан (double)

%c- символ

%s- жол


%ld- ұзын бүтін (long int)

%hu- таңбасыз қысқа бүтін (short unsigned)

%Lf- ұзын нақты(long double)

printf() операторын қолдану мысалдары:

printf(“\n Қосынды=%d”, S);

printf(“\n S =%d”, S);

printf(“ Есептің нәтижесі”);

printf(“ \n Шеңбер ауданы=%f”, 3.14*R*R);

Мұндағы, %d, %f экранға шығатын бүтін және нақты айнымалының спецификаторы.

Нақты санды экранға форматтап шығаруға болады. Ол үшін екі параметр көрсетіледі:



өріс ені- айнымалыға экраннан бөлінетін орын саны

дәлдік- бөлшек бөлікке бөлінетін орын саны

Олар % және формат символының арасында бір- бірінен нүктемен бөлініп жазылады.



Мысалы: x=5.234532;

printf(“\n x=%4.2f”,x);

Нәтижеде экранға x=5.23 саны шығады.

Форматтап енгізу операторы

Пернетақтадан форматтап енгізу операторының жалпы түрі төмендегіше болады:



scanf(“формат жолы”, аргументтер тізімі);

Аргумент алдында & айнымалы адресінің операциясы жазылады.



Мысалы: scanf(“%d”, &x);

scanf(‘%d%d%f”,&a,&b,&y);

Деректерді енгізу- шығаруды жүзеге асыратын printf(), scanf()операторлары stdio.h тақырыптық файлында орналасқан. Сондықтан, бағдарламада осы екі оператор қолданылатын болса, онда бағдарлама тақырыбында #include <stdio.h> командасы жазылуы қажет. (stdio- standart input output- стандартты енгізу шығару)

Мысал 1. Радиусы берілген дөңгелектің ұзындығын және шеңбердің ауданын табу бағдарламасын құрыңдар.

#include

#include

main()


{ const float pi=3.14;

int r; float L,S;

printf(“ радиусты енгіз”);

scanf(“%d”,&r);

S=pi*r*r;

L=2*pi*r;

printf(“\n S=%4.2f L=%4.2f”, S,L);

getch();


}

Бағдарламаны орындатып, радиусқа 5 мәні енгізілсе, нәтижеде S=78.50 L=31.40 мәндері шығады.

Бағдарламаның нәтижесі кез келген пернені басқанға дейін экранда көрініп тұру үшін conio.h тақырыптық файлында анықталған getch() операторы қолданылады.

Мысал 2. Берілген үш таңбалы бүтін санның цифрларының қосындысын табатын бағдарлама құрыңдар.

#include

#include

main()


{ int x,y,a,b,c;

printf(“ үш таңбалы санды енгіз”);

scanf(“%d”,&x);

a=x/100;


y=x%100;

b=y/10;


c=y%10;;

printf(“\n S=%d”,a+b+c);

getch();

}

Бағдарламадағы “%” операциясы бүтін санды бүтін санға бөлгендегі қалдықты, ал “/” операциясы санды санға бөлгендег



бүтін бөлікті анықтайды.

6 сурак 

Windows 7 операциялық жүйесінде С/С++ бағдарламалау тілінде жұмыс жасау үшін Dev- C++ бағдарламасы қолданылады. 1- cуретте бағдарламаның жүктелу терезесінің интерфейсі көрсетілген. 
Dev- C++ ( Windows операциялық жүйесінің басшылығымен жұмыс жасайтын, С және С++ тілінде бағдарламалау үшін арналған интеграцияланған орта. 
Dev- C++ қабықшасының артықшылықтары:
графиктік интерфейсі
орыс тілді мәзірдің болуы
GDB қондырылған жөндегіші
консольдық және графиктік бағдарламалар құру мүмкіндігі.
Dev- C++( те бағдарлама мәтінін тергеннен кейін, Execute\Compile (немесе CTRL+9) командасы арқылы бағдарламаны компиляциялап, сонан соң Execute\Run (немесе CTRL+10) командасы арқылы бағдарламаны орындату керек. 
С++ бағдарламалау тілінде деректерді енгізу және шығарудың өз спецификалық құралы бар. Ол iostream.h тақырыптық файлы көмегімен бағдарламаға қосылатын кластар кітапханасы болып табылады. Бұл кітапханада екі оператор анықталған:
cin- пернетақтадан енгізу
cout- экранға шығару
х айнымалысын енгізу былайша жазылады: cin»x;
Шығару операторында тырнақшаға алынған мәтін және өрнек мәнін жазуға болады. Бұл операторда “«” белгісі қолданылады.
Мысалы: cout«x*y;
cout«”\n Қосынды=”«S;
cout«”a=”«a«”b=”«b«endl;
endl элементі меңзерді жаңа жолға орналастырады.
(\n басқару символына сәйкес)

7сурак

С++ тілінің стандарт функциялары



Математикалық

функцияның жазылуы



С++ тілінде жазылуы

Аргумент типі

Нәтиженің типі

Ескерту

| x |

abs (x)

int

int

бүтін санның абсолют шамасы

| x |

fabs (x)

double

double

нақты санның абсолют шамасы

sinx

sin(x)

double

double

х- радиан

cosx

cos(x)

double

double

х- радиан

tgx

tan(x)

double

double

х- радиан

e x

exp(x)

double

double

e = 2,718 …

lnx

log(x)

double

double

натурал логарифм, x>0

lg(x)

log10(x)

double

double

ондық логарифм



sqrt(x)

double

double

квадрат түбір, x>=0

xy

pow(x,y)

double, double

double

x-тің y дәрежесі

10p

pow10(p)

int

double

10-ның p дәрежесін қайтарады

arcsinx

asin(x)

double

double

х- радиан

arccosx

acos(x)

double

double

х- радиан

arctgx

atan(x)

double

double

х- радиан

y/x мәнінің арктангенсін табу функциясы

atan2(x,y)

double, double

double

х- радиан

sinhx

sinh(x)

double

double

гиперболалық синус, х- радиан

coshx

cosh(x)

double

double

гиперболалық косинус, х- радиан

tanhx

tanh(x)

double

double

гиперболалық тангенс, х- радиан

х-тен кем емес, оған жақын бүтін

ceil(x)

double

double

нәтижені double формасында қайтарады

х-тен артпайтын, ең үлкен бүтін

floor(x)

double

double

нәтижені double формасында қайтарады

x- ті y-ке бөлгендегі қалдық

fmod(x,y)

double, double

double

нәтижені double формасында қайтарады

z2=x2+y2

hypot(x,y)

double, double

double

x,y катеттері бойынша тікбұрышты үшбұрыш гипотенузасын табу

Барлық басқа функциялар түрлендіріліп, стандарт функцияларға келтіріледі.



Типтің аты

Мәндер аралығы

Өлшемі (байт)

1. Бүтін типтер

Char

- 128 .. +127

1

enum

- 32768 .. 32767

1

int

- 32768 .. 32767

2

unsigned char

0 .. 255

1

unsigned int

0 .. 65535

2

short int

- 32768 .. 32767

2

unsigned short

0 .. 65535

2

long int

- 2147483648 .. 2147483647

4

unsigned long int

0..4294967295

4

2.Нақты тип тер

float

±(3.4 e-38.. 3.4 e+38)

4

double

±(1.7 e-308.. 1.7 e+308)

8

long double

±( 3.4 e – 4932.. 1.1 e+4932)

10
8 сурак 
Деректерді енгізу- шығаруды жүзеге асыратын printf(), scanf() операторлары stdio.h тақырыптық файлында орналасқан. Сондықтан, бағдарламада осы екі оператор қолданылатын болса, онда бағдарлама тақырыбында #include  командасы жазылуы қажет. (stdio- standart input output- стандартты енгізу шығару)
Мысал 1. Радиусы берілген дөңгелектің ұзындығын және шеңбердің ауданын табу бағдарламасын құрыңдар.
#include 
#include 
main()
{ const float pi=3.14;
int r; float L,S;
printf(“ радиусты енгіз”);
scanf(“%d”,&r);
S=pi*r*r;
L=2*pi*r;
printf(“\n S=%4.2f L=%4.2f”, S,L);
getch();
}
Бағдарламаны орындатып, радиусқа 5 мәні енгізілсе, нәтижеде S=78.50 L=31.40 мәндері шығады.
Бағдарламаның нәтижесі кез келген пернені басқанға дейін экранда көрініп тұру үшін conio.h тақырыптық файлында анықталған getch() операторы қолданылады. 
Dev- C++( те бағдарлама мәтінін тергеннен кейін, Execute\Compile (немесе CTRL+9) командасы арқылы бағдарламаны компиляциялап, сонан соң Execute\Run (немесе CTRL+10) командасы арқылы бағдарламаны орындату керек. 
С++ бағдарламалау тілінде деректерді енгізу және шығарудың өз спецификалық құралы бар. Ол iostream.h тақырыптық файлы көмегімен бағдарламаға қосылатын кластар кітапханасы болып табылады. Бұл кітапханада екі оператор анықталған:
cin- пернетақтадан енгізу
cout- экранға шығару
х айнымалысын енгізу былайша жазылады: cin»x;
Шығару операторында тырнақшаға алынған мәтін және өрнек мәнін жазуға болады. Бұл операторда “«” белгісі қолданылады.
Мысалы: cout«x*y;
cout«”\n Қосынды=”«S;
cout«”a=”«a«”b=”«b«endl;
endl элементі меңзерді жаңа жолға орналастырады. (\n басқару символына сәйкес)
Мысал 3. Төбелерінің координаттары берілген үшбұрыштың қабырғаларын табыңдар.
#include 
#include 
#include 
main()
{ int x1,y1,x2,y2,x3,y3; float a,b,c;
cout«"1-төбені енгіз"; cin»x1»y1;
cout«"2- төбені енгіз "; cin»x2»y2;
cout«"3- төбені енгіз "; cin»x3»y3;
a=sqrt(pow((x2-x1),2)+pow((y2-y1),2));
b=sqrt(pow((x3-x1),2)+pow((y3-y1),2));
c=sqrt(pow((x2-x3),2)+pow((y2-y3),2));
cout«"а = "«a«"\n b= "«b«"\n c== "«c;
getch();
}
Бағдарламаны орындату нәтижесінде 
a=1.4142 
b= 1 
c= 2.2360 мәндері экранға шығады.
Меншіктеу операциясы
Меншіктеу операциясының жалпы түрі төмендегіше болады:
айнымалының атауы=өрнек;
Мысалы: x=5; D=b*b-4*a*c; a=b=0;
Cонымен қатар, С++ тілінде меншіктеу операциясының құрама түрі қолданылады: +=, -=, /=, *=, %=
Мысалы: Төмендегі өрнектер баламалы болып табылады.
i+=2 және i=i+2
p/=5 және p=p/5
a*=b+c және a=a*(b+c)
x-=y және x=x-y
n%2 және n=n%2 
х=х+2 өрнегінің орнына х+=2 деп жазған ыңғайлы болып табылады, себебі екінші өрнек тезірек орындалады.


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




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

    Басты бет