Паскаль тіліндегі негізгі элементтері тілдің алфавиті мен сөздігі


1. ПАСКАЛЬ ТІЛІНДЕГІ НЕГІЗГІ ЭЛЕМЕНТТЕРІ ТІЛДІҢ АЛФАВИТІ МЕН СӨЗДІГІ
1.2. ТҰРАҚТЫЛАР МЕН АЙНЫМАЛЫЛАР
1.3 МӘЛІМЕТТЕРДІҢ ТИПТЕРІ
1.3.1 ТИП ҰҒЫМЫ
1.3.2 Стандартты жай типтер
1.3.3 Жасанды жай типтер
1.4 СТАНДАРТТЫ ФУНКЦИЯЛАР МЕН ПРОЦЕДУРАЛАР
1.5. ӨРНЕКТЕР МЕН АМАЛДАР
1.5.1 Арифметикалық өрнектер
1.5.2 Логикалық өрнектер
2. ПРОГРАММА ҚҰРЫЛЫМЫ
2.1 ПРОГРАММА ҚҰРЫЛЫМЫ ТУРАЛЫ ЖАЛПЫ ТҮСІНІК
2.2 ТАРАУЛАР
2.2.1 ТАҢБАЛАР ТАРАУЫ
2.2.1 ТАҢБАЛАР ТАРАУЫ

2.2.3 Типтер тарауы
2.2.4 Айнымалылар атауы
2.2.5 Процедуралар мен функциялар тарауы
2.2.6 Операторлар тарауы
2.3 Түсініктеме
Паскаль тілінің алфавитіне кіретін символдарды үш топқа бөлуге болады: әріптер, цифрлар және арнайы символдар.
әріптер ретінде латын алфавитінің бас және кіші әріптері (А, а, В, b, ….Z, z) пайдаланылады. Сонымен қатар Паскаль тілінде жазылған программалар түсінікті болуы үшін арнайы программалардың (драйверлердің) көмегімен орыс, қазақ алфавиттерінің әріптерін де пайдалану мүмкіндіктері бар.
Цифрлар- өзімізге белгілі араб цифрлары (0, 1,2,3,4,5,6,7,8,9).
Арнайы символдар:

+ қосу
- алу
• көбейту
/ бөлу
= теңдік
 үлкен
< кіші
[] квадрат жақшалары
() жәй жақшалар
{} фигуралы жақшалар
. нүкте
, үтір
: қос нүкте
; нүкте мен үтір
‘ апостроф
$ долар белгісі
бос орын
тағы сол сияқты


программалау тілдерінде бөлінбейтін тұтас символдар тізбегі сөз құрайды. Сөздер стандартты идентификаторлар (sin, cos, sqr……..), қолданушының идентификаторы (x, x1, fact………..) қызметші сөздер (begin, end, if,…..) , болып саналады.
Қызметші сөздер- алдын ала мағынасы анықталған, тілдің құрамының біо бөлігі болып табылатын сөздер.
Әдетте программа белгілі бір объектілермен (тұрақтылар, айнымалылар, функциялар, өрнектер) әрекет етеді. Программада осы объектілердің әрқайсысы жеке сөздермен белгіленеді, олардың рөлін идентификатор атқарады. Бұл сөз- identifi (теңестіру) деген латын сөзінен алынған. Сонымен идентификатор дегеніміз- объектілердің аттары, кейде идентификатор деген сөздің орнына «объектінің аты», «объектінің атауы» (айнымалының аты, функцияның атауы, т.б) деген термин де пайдаланылады.

Пән: Информатика
Жұмыс түрі: Курстық жұмыс
Көлемі: 15 бет
Бұл жұмыстың бағасы: 700 теңге




ПАСКАЛЬ ТІЛІНДЕГІ НЕГІЗГІ ЭЛЕМЕНТТЕРІ
1. ТІЛДІҢ АЛФАВИТІ МЕН СӨЗДІГІ

Паскаль тілінің алфавитіне кіретін символдарды үш топқа бөлуге болады:
әріптер, цифрлар және арнайы символдар.
әріптер ретінде латын алфавитінің бас және кіші әріптері (А, а, В, b,
... Z, z) пайдаланылады. Сонымен қатар Паскаль тілінде жазылған программалар
түсінікті болуы үшін арнайы программалардың (драйверлердің) көмегімен орыс,
қазақ алфавиттерінің әріптерін де пайдалану мүмкіндіктері бар.
Цифрлар- өзімізге белгілі араб цифрлары (0, 1,2,3,4,5,6,7,8,9).
Арнайы символдар:
+ қосу
- алу
• көбейту
бөлу
= теңдік
➢ үлкен
кіші
[] квадрат жақшалары
() жәй жақшалар
{} фигуралы жақшалар
. нүкте
, үтір
: қос нүкте
; нүкте мен үтір
‘ апостроф
$ долар белгісі
бос орын
тағы сол сияқты

программалау тілдерінде бөлінбейтін тұтас символдар тізбегі сөз
құрайды. Сөздер стандартты идентификаторлар (sin, cos, sqr ... ... ),
қолданушының идентификаторы (x, x1, fact ... ... ...) қызметші сөздер (begin, end,
if, ... .) , болып саналады.
Қызметші сөздер- алдын ала мағынасы анықталған, тілдің құрамының біо
бөлігі болып табылатын сөздер.
Әдетте программа белгілі бір объектілермен (тұрақтылар, айнымалылар,
функциялар, өрнектер) әрекет етеді. Программада осы объектілердің әрқайсысы
жеке сөздермен белгіленеді, олардың рөлін идентификатор атқарады. Бұл сөз-
identifi (теңестіру) деген латын сөзінен алынған. Сонымен идентификатор
дегеніміз- объектілердің аттары, кейде идентификатор деген сөздің орнына
объектінің аты, объектінің атауы (айнымалының аты, функцияның атауы,
т.б) деген термин де пайдаланылады.
Стандартты идентификатор тілдің құрамына кіретін тұрақытылықтар мен
айнымалылардың типтерін, тұрақты және айнымалы шамаларды, процедуралар мен
функцияларды белгілеу үшін тағайындалған.
Қолданушының идентификаторы белгілі бір ережелерге сүйене отырып;
программа жазу барысында құрастырылады.
Идентификатор құрастыру ережелері:
1. Идентификатор құрастыруға үлкен, кіші латын әріптері, цифрлар
және төменгі сызықша (_) пайдаланылады (A, b, x1, y1, Az_1, ... ..) .
2. Идентификатор тек қана әріптен немесе төменгі сызықшадан
басталады. Бұл ереже таңба идентитфикаторына қолданылмайды.
3. Екі идентификатордың арасында ең болмағанда бір үзіліс қойылады
(үзіліссіз жазылған идентификаторлар бір идентификатор болып
есептеледі)
4. Жалпы идентифиткаторлардың ұзындығы 127 символдан аспауы керек.
Идентификаторлар бір- бірінен негізгі болып табылатын алғашқы
сегіз символдармен ажыратылады.

1.2. ТҰРАҚТЫЛАР МЕН АЙНЫМАЛЫЛАР
Кез келген программа мәліметтерді (сандар, символдар, графикалық
мәліметтер) өңдеп (мәліметтермен белгілі білгілі бір амалдар орындап)
нәтиже береді. Программада өңделетін мәліметтер белгілер бір
объектілердің мәндері ретінде қарастырылады, олар тұрақыт шама немесе
айнымалы шама болып келеді. Тұрақтылар мен айнымалылардың кезекті мәндері
оларға тағайындалған иднетификаторлар арқылы алынады.
Тұрақтылар дегеніміз- мәндері белгілі және программаның орындалу
барысында өзгермейтін шамалар. Кей жағдайларда тұрақтыларды, міндетті түрде
(мысалы, массивтің элементтер санын анықтауда), алдын ала анықтап алу
қажет, ол үшін Const қызметші сөзі қолданылады.
Жазылуы: Const тұрақытының аты=тұрақытының мәні
Мысал: Const m=10; n=20;
P=’мектеп’;
Кейбір тұрақытылар тілдің құрамына кіреді де, алдын ала анықтауды қажет
етпейді, мысалы, Р1 мәні 3,14 ... .. Maxint мәні 32767 т.с.с
Айнымалылар дегеніміз- программаның орындалу барысында мәндерін
өзгертуге болатын шамалар. Айнымалылардың кезекті мәндері компьютер жадында
оларға жаңа мән бергенше ғана сақталады.
Тұрақытылар мен айнымалылар Паскаль тіліндегі келісілген мәліметтердің
бір типіне жазуы тиіс. Тұрақытылардың типтері олардың берілуіне байланысты
өздігінен анықталады. Айнымалылардың типтері программаның арнайы тарауында
сипатталады.
Жазылуы: Var идентитфикатор ... ... ...:тип идентификаторы
Айнымалалыраға сипаттада көрсетілгенен басқа типті мән меншіктеу
қателік туғызады.
3. МӘЛІМЕТТЕРДІҢ ТИПТЕРІ
1. ТИП ҰҒЫМЫ
Программалау тілдеріндегі ең бір негізгі де маңызды ұғымдардың біріне
тип ұғымы жатады. Компьютерде өңделетін әр түрлі мәліметтер (бүтін сандар,
нақты сандар, символдар) 0 және 1 екілік цифрлар тізбегі түрінде
өрнектеледі. Мәліметтердің түрлеріне байланысты, оларды компьютердің
жадында орналастыру және оларға қолданылатын амалдардың түрлері менн
орыналу жолдары анықтайды.
Паскальда программа құру жолдарын жеңілдету және көрнектілігін арттыру
мақсатымекн өңделетін мәліметтерді белгілі бір жүйеде жинақтап, тұтасымен
қарастыру жолдары ойластырылған. Осындай күрделі мәліметтердің қабылайтын
мәндерінің түрін және жинақтай тәсілін көрсетеді де, жүйелі тип құрайды.
Егер мәліметтер жеке- дара қарастырылса, онла олар жиі типті мәліметтеге
жатады. Сонымен Паскальда қолданылатын типтерді екі топқа бөлуге болады:
жай (негізгі) және жүйелі (күрделі). Жай тип стандартты және жасанды болып
бөлінеді. Стандартты жай типтерге бүтін (integer), нақты (real), байттық
(byte), логикалық (boolean), символдық (char) типтер жатады. Жасанды
типтерді қолданушының өзі құрастырады, олардың екі түрі бар: аралық және
атап өту. Жүйелі типтер жай типтерге негізделіп құрастырылып, төмендегідей
бөлінеді: массивтік (аrray), жолдық (string), жиындық (set), жазба
(record), файлдық (file).
Жай типтердің real және integer- ден өзгелері реттік (шектелген) тип
деп аталады. Реттік типті шамалардың қабылдалатын мәндерінің саны шектелген
болады. Мысалы, логикалық типті шамалар екімәннің (0,1) бірін, байттық
типті шамалар 256 мәннің (0-255) бірін қабылдай алады.

2. Стандартты жай типтер

Стандартты жай типтерге бүтін, байтық, нақты, символдық және логикалық
типтер жатады.
Бүтін типтен мәндері- 32768 бен +32767 аралығындағы бүтін сандар
болатын айнымалылар сипатталады. Сипаттау үшін integer қызметші сөзі
қолданылады.
Жазылуы: Var айнымалылардың аттары: integer
Мысал: Var I,j,k,n: integer;
Indks, x_kord, y_kord: integer
Бүтін типті айнымалыны компьютер жадында орналастыру үшін екі байт
қажет. әдетте бүтін айнымаллар арифметикалық өрнектерде, массивтердің
идекстерін жазуда пайдаланылады. Қолданушы арифтметикалық өрнектер
нәтижесінің көрсетілген аралықта жатуын алдын ала ескерту қажет. Мысалы:
а=5000, b=10000 болсын. Егер a және b бүтін болса, онда a*b амалының
нәтижесі көрсетілген аралықтан асып кететіндіктен, ауытқу туады.
Байттық тип бүтін тип тәрізді, айырмашылығы мәндері О- ден 255- ке
дейінгі аралықты қамтиды және byte стандартты идентификаторымен
сипатталады.
Жaзылуы: Var айнымалылардың аттары: byte
Мысал: Var m,n: byte;
Min, max: byte
Byte типті айнымалы компьютер жадында 1 байтқа орналасады да, бүтін
типке қарағанда екі есе аз орын алады. Егер айнымалы мәнінің 255- тен
аспайтыны белгілі болса, онда integer типіне қарағанда byte типін
пайдаланған тиімді.
Нақты типпен 10-а+а- ден 10+аа- ге дейінгі аралықта оң теріс және 0
сандарын қабылдай алатын айнымалылар сипатталады. Сан мантиссасының 11
орынға дейінгі цифрлары ғана мәнді цифрлар болып табылады. Нақты типті
сипаттауға real стандартты идентификаторы алынады.
Жазылуы: Var айнымалылардың атарыreal;
Мысал. Var x,y,s: real;
Summa: real
Нақты сандардың жазылуының екі түрі бар: табиғи (тұрақты нүкте),
экспоненциалдық (жылжымалы нүкте). Табиғи түрдегі сандар математикадағы
сандар сияқты жазылады, тек үтір орнына нүкте қойылады, мысалы, 539,2
-445,876, 0.67 немесе .67. Экспоненциальдық түрдегі сандар mE+p түрінде
жазылады, мұндағы m- санның мантиссасы, Е+р 10- ның р дәрежесі, р- санның
реті.

Сандар Тұрақты нүкте түрінде Жылжымалы нүкте түрінде
0 0 0,0000000000Е+00
527 527 5,2700000000Е+02
-21,328 -21,328 -2,132800000Е+01
0,00347 0,00347 3,4700000000Е-02

Мұндағы Е+02, Е+01 10- ның дәрежелерін көрсетеді (102, 104). Нақты
типті шамаға компьютер жадында 6 байт бөлінеді.
Логикалық типті айнымалылар тек қана True (ақиқат) және False (жалған)
мәндерінің бірін ғана қабылдай алады. Бұл тип boolen стандартты
иднетификаторымен сипатталады.
Жазылуы: Var айнымалылардың аттары :boolen;
Мысалы. Var S1, S2: boolen
Ch, x: boolen
Логикалық типті айнымалының мәні бір байтқа орналасады.
Символдық тип Char стандартты идентификатормен сипатталады.
Жазылуы: Var айнымалылардың аттары :chart;
Мысалы. Var simvol, belgi; chart
Әдетте коипьютер тек қана екілік 0,1 цифрлармен жұмыс істейді. Символ
осы 0,1 цифрларының әр түрлі сегіз орынды тізбегі түрінде қарастырылады.
әр символға сәйкес 0 мен 1 цифрларының тізбегін сол символдың екілік
бейнесі (екілік коды) деп атайды. Символдардың бейнесі бір байтқа
жазылатындықтан, char типті шамалардың мәндерін бір ғана символ бола алады.
Символдық тұрақтылар екі жағынан апострофқа алынып жазылады. Мысалы: ‘a’
–a әрпі ‘*’ – үзіліс ‘-’ нүктем мен үтір.
Символдық типті шамалар өрнектерде пайдаланылмайды. Паскаль символдық
шамаларды өзара салыстыруға болады және нәтиже символдардың бейне
кестесінде орналасу ретінде байланысты анықталады. Мысалы, ‘b’a’, себебі,
кестеде ‘b’ символы ‘a’ символынан соң орналастырады.
3. Жасанды жай типтер

Жоғарыда стандартты жай типтердің түрлерін қарастырдық, сондай- ақ
Паскальда қолданушының өзі тип анықтайтын мүмкіндігі бар, ондай типтерді
жасанды типтер деп атаймыз. Жасанды типтерге атап өту және аралық типтер
жатады. Оларға компьютер жадында бір байт беріледі, сондықтан жасанды типті
шамалардың элементтер саны 256 – дан аспауы қажет. Қолданушының типтерді
өзі анықтауы программаның көрнектілігін, түсініктілігін, бекемділігін
арттырады және клмпьютер жадын тиімді пайдалануға мүмкіндік береді.
Атап өту типі айнымалылардың қабылдай алатын мәндерін теріс көрсету
арқылы анықталады. Жеке мәндер үтірлермен айырылып жақшаға алынады.
Жaзылуы: Type
типтің идентификаторы=(1-ші мән, 2- ші мән ... ..)
Мысал: Type
Gas=(G,0,N,F)
Temir=(Fe, Co, Na, Cu, Zn);
Var G1, G2, G3; Gas;
T1, t2; Temir;
KYN: (Dyisimbi, Gyma, Senbi);
Бұл мысалда Gas, Temir типтері жарияланған. Олардың мәндері Менделеев
кестесінің кейбір газ бен темір белгілерімен берілген. G1, G2, G3 және t1,
t2 айнымалылары тек қана Gas және Temir типтерінде көрсетеліген мәндердің
бірін, ал KYN айнымалысы осы айнымалының типінде көрсетілген мәндердің
бірін ғана қабылдайды. Жақшаның ішінде жазылған мәндер көрсетілген типті
тұрақтылар болып саналады, сондықтан оларды өрнектерде пайдаланғанмен,
өзгертуге болмайды. Салыстыру және логикалық амалдар тек қана бір типке
аталған мәліметтерге қолданады да, нәтижесі ақиқат, себебі типті
сипаттағанда, GYMA SEMBI салыстырудың нәтижесі ақиқат, себебі типті
сипаттағанда, GYMA SEMBI – ден бұрын аталған.
Аралық тип осы типті айнымалылардың қабылдай алатын мәндерінің аралығын
көрсететін екі тұрақты арқылы беріледі. Бұл тұрақтылықтар нақты типтен
басқа кезкелген стандартты типтердің біріне жатады. Бірінші тұрақтылықтың
мәні қашанда тұрақтының мәнінен кіші болуы қажет.
Жазылуы: Type типтің аты=1- тұрақты ... ..2- тұрақты;
Var айнымалылар: тип;
Мысал. Const m=1; m2=12;
Type Kun=1 ... 31; Sim=’a’...’a’; A1=m1 ... .m2;
Var A1kun: Kun; x: Sim; g1:A1;
Бұл мысалда Kun типті A1kun 1 мен 31 аралығындағы мәндерді, ал Sim
типті х айнымалысы ‘a’ мен ‘a’ аралығындағы символдарды ғана қабылдай
алады, кері жағдайда программада қателік туады. А1 типіндегі аралықты
анықтайтын m1, m2 тұрақтылары алдын ала анықталған, сондықтан А1 типті g1
айнымалысы 1- ден 12- ге дейінгі сандарды қабылдайды.

1.4 СТАНДАРТТЫ ФУНКЦИЯЛАР МЕН ПРОЦЕДУРАЛАР
Стандартты функциялар мен процедуралар программалау тілінің құрамына
кіреді. Паскаль тілі программа жазылу барысында жиі қолданылатын көптеген
стандартты функциялар және процедуралармен қамтамасыз етілген. Оларды
қолдану жолдары мен орынларына байланысты бірнеше топқа бөлуге болады:
арифметикалық, шамалардың типтерін өзгертеттін, экранмен жұмысқа істеуге
арналған, жолдарды өңдейтін, файлдарды ұйымдастыратын, графикалық т.б.
1. – кестеде кейбір жиі қолданылатын арифметикалық стандартты
функциялар келтірілген.
Стандартты функциялар
Математикалық Паскальда жазылуы Аргументінің типі Функцияның типі
функциялар
Sin x Sin (x) Бүтін, нақты нақты
Cos x Cos (x) Бүтін, нақты нақты
Arctg x Arctan (x) Бүтін, нақты нақты
Ln x Ln (x) Бүтін, нақты нақты
ex Exp (x) Бүтін, нақты нақты
x Abs (x) Бүтін, нақты Аргументтің типіне
сәйкес
X2 Sqr (x) Бүтін, нақты нақты
Sqrt (x) Бүтін, нақты нақты
[x} x-тің бөлшек Frac (x) Бүтін, нақты нақты
бөлігін табу
{x} x- тің бүтін Int (x) Бүтін, нақты нақты
бөлігін табу
0 мен х- тің Random (x) Бүтін, нақты нақты
арасындағы
кездейсоқ сан
Кездейсоқ сандар Random Бүтін, нақты нақты
жиынын жаңарту
Шектелген тип Ord (x) Шектелген тип Нақты
мәнінің ретін
анықтау
Реті бойынша Chr (x) байттық символдық
символды анықтау
Санның тақтығын Odd (x) бүтін логикалық
анықтау

Басқа функциялар мен процедуралар тілдің оқылу барысында арнайы
тарауларында қажетінше қарастырылады.
Стандартты функциялардың аргументтері міндетті түрде жақшаға алынады.
Cos (x), sin (x) функцияларының аргументтері радианмен беріледі. Тілдің
құрамына кірмейтін кейбір функцияларды есептеу қажет болса, олар
математикада белгілі формулалар бойынша тілдің құрамында бар функциялармен
өрнектеледі. Мысалы,

1.5. ӨРНЕКТЕР МЕН АМАЛДАР
Өрнектер тұрақтылардан, айнымалылардан, стандартты функциялардан
амалдар (арфиметикалық, логикалық, символдық) мен жай жақшалар көмегімен
құрылады. Амалдар орындалатын шамаларды операндалар деп айтады.
Паскальда өрнектер оларға қатысты амалдарға және шамалардың типтеріне
байланысты арифметикалық, логикалық, символдық болып бөлінеді.
1.5.1 Арифметикалық өрнектер
Арифметикалық өрнектерде арифметикалық амалдар қолданылады да, өрнектің
нәтижесі нақты немесе бүтін сандар болады. Арифметикалық өрнектердің
қарапайым түрлері: тұрақты, айнымалы және функция. Өрнекте қатысты
айнымалылардың мәндері алдын ала анықталуы қажет. Арифметикалық амалдар
integer, byte, real типті шамалармен орындалады да, нәтижесінің типі осы
шамалардың типіне байланысты анықталады.
Төменде Паскаль қолданылатын арифметикалық амалдар және олардың
орындалу үстемділігі кему ретімен көрсетілген: , *, div, mod, -, +.
Қосу (+), алу (-), көбейту (*) және бөлу () амалдары арифметикалық
өрнектерде әдеттегідей орындалады. Бір өрнекте integer, byte, real типті
операндаларды аралас пайдалануға болады. Бөлу адамның нәтижесінінің тип
қашанда нақты , ал қосу, көбейту, алу амалдарының нәтижелері, егер де
оепрандалардың екеуі де бүтін (байттық) типті болғанда бүтін (байттық),
қалған жағдайларда нақты болады.
Бүтіндей бөлу амалы бөліндінің тек қана бүтін бөлігін анықтайды. Амалға
қатысты шаралар бүтін типті болуы міндетті. Амалдың нәтижесі де бүтін типті
болады.
13 div 5 2
10 div 3 3
5 div 6 0

Мысал.

Қалдық табу амалы бүтін санды санға бөлгендегі қалдықты анықтайды,
амалдың нәтижесі де бүтін типті болады.
11 mod 5 1
10 mod 3 1
14 mod 5 4

Мысал.

Арифметикалық өрнектердің қатесіз жазылуы және нәтижесінің дұрыс
табылуы үшін төмендегі ережелерді ескеру қажет.
1. Екі амал қатар жазылмайды (А+-В өрнегі дұрыс жазылмаған өрнек А+
(-В) түрінде жазылуы керек.
2. Үстемділігі жоғары амалдар бірінші орындалады (мына өрнектер х*у-
d4 алдымен көбейту мен бөлу амалдары, сонан соң алу амалдары
орындалады)
3. Егер барлық амалдардың орындалу үстемділігі бірдей болса, олар
солдан оңға қарай орналасу ретімен біртіндеп орындалады.
4. Жақшаның ішіндегі амалдар алдымен орындалады (a+b)* (c*d)
өрнегінде көбейту амалы ... жалғасы
Ұқсас жұмыстар
Паскаль тілінің алфавиті
Паскаль тіліндегі програманың құрлымы
Алгоритмдік тілдің негізгі мінездемелері. Алфавиті, ережелері және мәліметтер типтері
Паскаль тіліндегі модульдер
Паскаль тіліндегі программалау
Турбо Паскаль тіліндегі программа құрылымы
Паскаль тілінің негізгі түсініктері
Паскаль тілінің негізгі операторлары
Турбо Паскаль бағдарламасының жазу ережелері, құрылымы және тілдің әліпбиі
Паскаль программалау тіліндегі шартты оператор
Пәндер

Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор №1 болып табылады.

Байланыс

Qazaqstan
Phone: 777 614 50 20
WhatsApp: 777 614 50 20
Email: info@stud.kz
Көмек / Помощь
Арайлым
Біз міндетті түрде жауап береміз!
Мы обязательно ответим!
Жіберу / Отправить

Рахмет!
Хабарлама жіберілді. / Сообщение отправлено.

Email: info@stud.kz

Phone: 777 614 50 20
Жабу / Закрыть

Көмек / Помощь