Студопедия

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

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

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






Рнектер. Арифметикалық және логикалық өрнектер






Бү тін шамаларғ а (integer типі) қ олданылатын келесі арифметикалық операциялар анық талғ ан: * (кө бейту), div (бү тін бө лу), mod (бө лудің қ алдығ ын есептеу), +, - (қ осу жә не алу); бұ л операциялар басымдылық реті бойынша келтірілген. Мысалы: 25 div 4 = 6; 25 mod 4=1. кейбір стандартты функциялар бү тін нә тиже қ айтарады (функцияның аргументі жай жақ шаларғ а алынады): abs(x) – бү тін х шаманың абсолют мә ні; sqr(x) - х мә ннің квадраты; trunc(x) – нақ ты х шаманың бү тін бө лігі; round(x) – дө ң гелектендіру ережесі бойынша нақ ты х шамасынан алынғ ан бү тін сан; random(x) – 0-ден х -ке дейінгі аралық тан алынғ ан кездейсоқ сан. Мысалы: trunc(4, 7)=4; round(4.7)=5; sqr(3)=9. byte типті деректер ү шін анық талғ ан операциялар мен функциялар integer типті деректер ү шін анық талғ ан операциялар мен функцияларбірдей.

Нақ ты шамаларғ а қ олданылатын келесі операциялар анық талғ ан: *, +, -, /, жә не сонымен қ атар аргументі нақ ты немесе бү тін болатын стандартты функциялар: abs(x), sqr(x), sin(x), cos(x), arctan(x), ln(x), exp(x), sqrt(x) – х-тің тү бір асты, int(x) - х-тің бү тін бө лігі, random - 0-мен 1 аралығ ындағ ы кездейсоқ сан. Кө рсетілген операциялар жә не функциялар нақ ты нә тижені қ айтарады.

Логикалық шамаларғ а қ олданылатын келесі операциялар: not - терістеу, and -конъюнкция, оr - дизъюнкция. Логикалық odd(x) функция егер бү тін х сан тақ болса true мә нін қ абылдайды, ал жұ п болса false мә нін қ абылдайды.

Барлық символдардың жиыны символдық шамаларды (char типі) қ ұ райды, олар реттелген болып табылады, сонымен қ атар: 'А' < 'В'< 'С <..< 'Z', 'а' < 'b' <...< 'z’, '0' < ‘1’ <..< '9'.

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

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

Оның тү рі: Идентификатор: = ө рнек;

Айнымалының типі жә не ө рнектің типі ү йлесімді болуы тиіс (шамалар бір типке жататын болуы керек). Ерекшелік бар: айнымалының аталуы real типіне, ал ө рнектің мә ні integer типіне жатуы мү мкін.

Мысалдар. a: =2*pi*r; p: =(a+b+c)/2; z: =sqrt(sqr(x)+sqr(y))

Ө рнектерді жазғ анда Паскальда қ абылданғ ан есептеу ретін ескеру керек. Ө рнектер операциялар мен операндтардан тұ рады. Операциялардың кө бісі бинарлы болып табылады, яғ ни екі операндты қ амтиды. Қ алғ ан операциялар унарлы жә не жалғ ыз операндты қ амтиды. Бинарлы операцияларда кә дімгі алгебралық бейнелеу пайдаланылады, мысалы: a+b. Унарлық операцияларда операция ә рдайым операндтың алдында болады, мысалы: -b. Кү рделілеу ө рнектерде орындалу реті операциялардың басымдылық тарына сә йкес:

Операция Басымдылық Операция тү рі
@, not *, /, div, mod, and, shl, shr +, -, or, xor =, < >, <, >, < =, > =, in- бірінші (ең жоғ ары) екінші   ү шінші тө ртінші (ең тө менгі) унарлы операция кө бейту операциясы   қ осу операциясы қ атынас операциясы

Операциялардың ү лкенділігін (басымдылығ ын) анық тау ү шін негізгі ү ш ереже бар:

· басымдылық тары ә ртү рлі болатын екі операциялардың арасындағ ы операнд басымдылығ ы жоғ арылау болатын операциямен байланысады.

· басымдылық тары бірдей болатын екі операциялардың арасындағ ы операнд сол жақ та орналасқ ан операциямен байланысады.

· жақ шаларғ а алынғ ан ө рнек, орындалудың алдында жеке операнд сияқ ты есептелінеді.

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

Егер not операцияның операнды бү тін типті операнд болып табылса, онда нә тижеде бү тін типті болады. Егер or, and немесе xor операцияларындағ ы операндтардың екеуі де бү тін типті болса, онда нә тиженің типі де осы екі операндтардың типіндей болады. not операциясы унарлы операция болып табылады. Бұ л операциялардың нә тижелері кә дімгі бульдік логикағ а сә йкес. Мысалы, a and b ө рнек ақ ихат (Тruе) болады тек егер екі a жә не b операндтар ақ ихат (Тruе) мә ндерге ие болғ анда ғ ана. i shl j жә не i shr j операциялары i мә нін сол жақ қ а немесе оң жақ қ а j битке жылжытады. Нә тиженің типі i –дің типімен бірдей.

6.3 Стандартты ішкі программалар (кірістірілген функциялар мен процедуралар)

Паскаль тілінде типтік операциялардың орындалуын қ амтамасыз ететін қ ұ рамына кірістірілген кө птеген функциялар бар.

Pascal ABC жү йесінің стандартты System модуліне шолу.

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

· жалпы стандартты процедуралар мен функциялар;

· жолдармен жұ мыс жасауғ а арналғ ан стандартты процедуралар мен функциялар;

· файлдармен жұ мыс жасауғ а арналғ ан стандартты процедуралар мен функциялар;

· жадымен жұ мыс жасауғ а арналғ ан стандартты процедуралар мен функциялар;

· жү йелік стандартты процедуралар мен функциялар;

· стандартты тұ рақ тылар;

· ерекшелеулердің стандартты класстары.

Бұ л функциялармен Pascal ABC анық тамалық жү йесінен толығ ырақ танысуғ а болады. Мысалы, жалпы стандартты процедуралар мен функциялардың қ ұ рамы келесі кестеде келтірілген.

Кесте 6.1 Жалпы стандартты процедуралар мен функциялар

Аталуы жә не параметрлер Процедура н/е функция Параметрлердің типтері Қ айтарылатын мә ннің типі Амал
Read(a, b,...) процедура a, b, c – жай н/е string типті айнымалылар   клавиатурадан мә ндерді a, b... айнымалыларына енгізеді
Write(a, b,...) процедура a, b, c – жай, string немесе нұ сқ ағ ыш типті ө рнектер   a, b... мә ндерін шығ ару терезесіне шығ арады
Readln(a, b,...) процедура a, b, c – жай немесе string типті айнымалылар   клавиатурадан мә ндерді a, b... айнымалыларына енгізеді, одан кейін ағ ымдағ ы енгізу жолындағ ы қ алғ ан барлық символдарды ө ткізіп жібереді. Егер процедураның параметрлері кө рсетілмесе, онда Enter клавишасы басылғ анша программа орындалуында паузаны жү зеге асырады.
Writeln(a, b,...) процедура a, b, c – жай, string немесе нұ сқ ағ ыш типті ө рнектер   a, b... мә ндерін шығ ару терезесіне шығ арады да келесі жолғ а ө туді жү зеге асырады. Егер процедураның параметрлері кө рсетілмесе, онда келесі жолғ а ө туді ғ ана жү зеге асырады.
Abs(x) функция x - integer, real, complex параметрдің типімен сә йкес х-тің абсолютті мә нін (модулін) қ айтарады
Sqr(x) функция x - integer, real, complex - // - х-тің квадратын қ айтарады
Sqrt(x) функция x - real, complex - // - х-тің тү бір астын қ айтарады
Sin(x) функция x - real, complex - // - х-тің синусын қ айтарады
Cos(x) функция x - real, complex - // - х-тің косинусын қ айтарады
Ln(x) функция x - real, complex - // - х-тің натурал логарифмін
Exp(x) функция x - real, complex - // - e –нің x дә режесін қ айтарады (e=2.718281...)
Arctan(x) функция x - real, complex - // - х-тің арктангенсін қ айтарады
Power(x, y) функция x, y - real real х –тің у дә режесін қ айтарады
Conj(z) функция z - complex complex z-ке кешенді тү рде ілесетін санды қ айтарады
Carg(z) функция z - complex real кешенді z санның ((-Pi, Pi] аралығ ындағ ы) аргументін қ айтарады
Round(x) функция x - real integer х-ті ең жақ ын бү тінге дейін дө нгелектеу нә тижесін қ айтарады
Trunc(x) функция x - real integer х-тің бү тін бө лігін қ айтарады
Int(x) функция x - real real х-тің бү тін бө лігін қ айтарады
Frac(x) функция x - real real х-тің бө лшек бө лігін қ айтарады
Ord(x) функция x - реттік тип integer реттік типтегі мә ннің нө мірін қ айтарады
Chr(x) функция x - integer char коды х болатын символды қ айтарады
Odd(x) функция x - integer boolean х – тақ болса True жә не керісінше жағ дайда False қ айтарады
Inc(x) процедура x - реттік тип   х – ті 1-ге арттырады
Dec(x) процедура x - реттік тип   х – ті 1-ге кемітеді
Inc(x, n) процедура x - реттік тип, n - бү тін тип   х – ті n-ге арттырады
Dec(x, n) процедура x - реттік тип, n - бү тін тип   х – ті n ге кемітеді
Pred(x) функция x - реттік тип параметрдің типімен сә йкес реттік типтегі алдың ғ ы мә нді қ айтарады
Succ(x) функция x - реттік тип параметрдің типімен сә йкес реттік типтегі келесі мә нді қ айтарады
Random(x) функция x - integer integer 0 ден x-1 аралық тағ ы кездейсоқ санды қ айтарады
Random функция   real [0..1) аралық тағ ы кездейсоқ нақ ты санды қ айтарады
Include(s, x) процедура s - жиын, x – типі жиынның базалық типімен ү йлесімді болатын элемент   x элементті s жиынның қ ұ рамына кірістіреді
Exclude(s, x) процедура s - жиын, x – типі жиынның базалық типімен ү йлесімді болатын элемент   x элементті s жиынның қ ұ рамынан жояды

 

Кесте 6.2 Файлдармен жұ мыс жасауғ а арналғ ан стандартты процедуралар мен функциялар

Аталуы жә не параметрлер Процедура н/е функция Параметрлердің типтері Қ айтарылатын мә ннің типі Амал
Assign(f, name) процедура f – файлдық типтегі айнымалы, name - string   файлдық f айнымалыны аталуы name болатын файлмен байланыстырады
Reset(f) процедура f - файлдық типтегі айнымалы   Assign процедурасы арқ ылы алдын-ала файлдық f айнымалымен байланысқ ан файлды ашады. Файл дискіде болуы тиіс, кері жағ дайда орындау уақ ытының қ атесі орын алады. Мә тіндік файлдар тек оқ у ү шін ғ ана, типтелген файлдар – оқ у жә не жазу ү шін ашылады.
Rewrite(f) процедура f - файлдық типтегі айнымалы   Assign процедурасы арқ ылы алдын-ала файлдық f айнымалымен байланысқ ан жаң а файлды қ ұ рады жә не ашады. Егер кө рсетілген атаулы файл бар болса, онда ол жойылады да оның орнына жаң а файл қ ұ рылады. Мә тіндік файлдар тек оқ у ү шін ғ ана, типтелген файлдар – оқ у жә не жазу ү шін ашылады.
Append(f) процедура f - Text типті айнымалы   Бірнә сені қ осу ү шін мә тіндік файлды жазу ү шін ашады. Файлдық нұ сқ ағ ыш файлдың соң ына орнатылады
Close(f) процедура f - файлдық типтегі айнымалы   Файлды жабалы
FileExists(name) функция name - string boolean дискіде name атаулы файл бар болса True, кері жағ дайда False қ айтарады
CanCreateFile(name) функция name - string boolean name атаулы файлды қ ұ ру мү мкін болса True, кері жағ дайда False қ айтарады
Read(f, a, b,...) процедура f - файлдық типтегі айнымалы, a, b – жай, string немесе нұ сқ ағ ыш типтегі айнымалылар   мә ндерді f файлдан a, b... айнымалы-ларғ а оқ иды. Егер файл типтелген болса, онда a, b... айнымалылардың типтері файлдың базалық типімен сә йкес болуы тиіс, ал олардың мә ндері файлдан екілік тү рде оқ ылады. Егер файл мә тіндік болса, онда a, b... айнымалылардың типтері ә ртү рлі болуы мү мкін, ал олардың мә ндері файлда мә тіндік тү рде сақ талынуы тиіс
Write(f, a, b,...) процедура f - файлдық типтегі айнымалы, a, b – жай, string немесе нұ сқ ағ ыш типтегі айнымалылар   a, b... мә ндерін f файлғ а жазады. Егер файл типтелген болса, онда a, b... мә ндерінің типтері файлдың базалық типімен сә йкес болуы тиіс. Егер файл мә тіндік болса, онда a, b... мә ндері оғ ан мә тіндік тү рде шығ арылады, бұ л кезде шығ ару форматтарын пайдалануғ а болады
Readln(f, a, b,...) процедура f - Text типтегі айнымалы, a, b - жай, string немесе нұ сқ ағ ыш типтегі айнымалылар   мә тіндік f файлдан мә ндерді a, b... айнымалыларғ а оқ иды, одан кейін жолдың соң ына дейінгі символдарды ө ткізіп жібереді. readln(f)-ты шақ ыру жолдың соң ына дейінгі символдарды жай ө ткізіп жібереді
Writeln(f, a, b,...) процедура f - Text типтегі айнымалы, a, b - жай, string немесе нұ сқ ағ ыш типтегі ө рнектер   мә тіндік f файлғ а a, b... мә ндерін жазады, одан кейін оғ ан жол соң ын белгілейтін символды жазады. a, b... мә ндері файлғ а мә тіндік тү рде жазылады, бұ л кезде шығ ару формат-тарын пайдалануғ а болады. writeln(f)-ты шақ ыру файлғ а жол соң ын белгілейтін символды ғ ана жазады
Eof(f) функция f - файлдық типтегі айнымалы boolean егер файлдық нұ сқ ағ ыш файлдың соң ында тұ рғ ан болса True, жә не кері жағ дайда False қ айтарады
Eoln(f) функция f - Text типтегі айнымалы boolean егер файлдық нұ сқ ағ ыш жолдың соң ында тұ рғ ан болса True, жә не кері жағ дайда False қ айтарады
SeekEof(f) функция f - Text типтегі айнымалы boolean бос орын, табуляциялау жә не жаң а жолғ а ө ту символдарын ө ткізіп жіберіп, одан кейін егер файлдық нұ сқ ағ ыш файлдың соң ында тұ рғ ан болса True, жә не кері жағ дайда False қ айтарады
SeekEoln(f) функция f - Text типтегі айнымалы boolean бос орын, табуляциялау символдарын ө ткізіп жіберіп, одан кейін егер файлдық нұ сқ ағ ыш жоллдың соң ында тұ рғ ан болса True, жә не кері жағ дайда False қ айтарады
FileSize(f) функция f - file типтегі айнымалы integer типтелген файлдағ ы элементтердің санын қ айтарады
FilePos(f) функция f - file типтегі айнымалы integer типтелген файлдағ ы файлдық нұ сқ ағ ыштың позициясын қ айтарады (типтелген файлдағ ы элементтер нө льден бастап нө мірленеді)
Seek(f, n) процедура f - file типтегі айнымалы   типтелген файлдағ ы файлдық нұ сқ ағ ышты n-ші элементке жылжытады (нө мірлеу нө льден басталады)
Truncate(f) процедура f - file типтегі айнымалы   файлдық нұ сқ ағ ыштың ағ ымдағ ы позициясынан бастап файлдың соң ына дейінгі типтелген файлдың барлық элементтерін жояды
Rename(f, name) процедура f - файлдық типтегі айнымалы, name - string   файлдық f айнымалымен байланысқ ан файл аталуын ө згертеді. Файл жабық болуы тиіс.
Erase(f) процедура f - файлдық типтегі айнымалы   файлдық f айнымалымен байланысқ ан файлды жояды. Файл жабық болуы тиіс.

 

Кесте 6.3 Жү йелік процедуралар жә не функциялар

Аталуы жә не параметрлер Процедура н/е функция Параметрлердің типтері Қ айтарылатын мә ннің типі Амал
Sleep(ms) процедура ms - integer   программаның орындалу барысында ms миллисекундке паузаны жү зеге асырады
Cls процедура     Шығ ару терезесін тазартады
Halt(n) процедура n - integer   Программаны аяқ тайды. Шығ ару терезесіне " Программа Halt(n) шақ ыру арқ ылы аяқ талды" деген ескертуді шығ арады
Halt процедура     ескертуді шығ армай программаны аяқ тайды
Assert(b) процедура b - boolean   Егер b=False болса, онда арнайы EAssertionFailed болдырмауды генерациялайды. Программадағ ы тұ жырымдардың орындалуын тексеру ү шін пайдаланылады.
Assert(b, mess) процедура b - boolean, mess - string   Егер b=False болса, онда mess хабарламасы бар арнайы EAssertionFailed болдырмауды генерациялайды. Программадағ ы тұ жырымдардың орындалуын тексеру ү шін пайдаланылады.

 


7 лекция Қ ұ рылымды деректер (типтер)

Қ ұ рылымды тип қ ұ рылымдау ә дісі жә не ө з компоненттерінің типтері арқ ылы сипатталады, біреуден кө п мә ндерге ие. Егер компонентінің типі қ ұ рылымды болса, онда нә тижеде пайда болатын тип қ ұ рылымдаудың біреуден кө п дең гейіне ие. Қ ұ рылымды типті сипаттаудағ ы packed сө зі компилятордан сақ талатын деректерді тығ ыздауды талап етеді. Паскальда қ ұ рылымды типтің максималды рұ қ сат етілген ө лшемі 65520 байт.

Паскальда қ ұ рамына ендірілген реттік жеті типтер бар: integer (бү тін), shortint (қ ысқ а бү тін), longint (ұ зын бү тін), byte (ұ зындығ ы байт), word (ұ зындығ ы сө з), boolean (бульдік) жә не char (символдық). Сонымен қ атар, тұ тынушы анық тайтын реттік типтердің басқ а екі класы бар: санақ тап шығ атын типтер жә не типтердің кесінділері. Реттік типтердің рұ қ сат етілген мә ндері элементтердің шектеулі санынан тұ ратын жиын болып табылады. Бұ л жиында бірінші жә не соң ғ ы элементтер бар. Сонымен қ атар, реттік типтегі ә р элемент оның алдындағ ы жә не одан кейінгі элементтерге ие. Реттік типтегі элементтерді белгілі бір ретпен, мысалы ө суі бойынша орналастырып, нө мірлеп қ оюғ а болады. Ord (...) процедурасы реттік типке ие болатын аргументтің реттік нө мірін есептейді. Реттік типтерге қ арағ анда нақ ты типтер нақ ты сандар (бү тін бө лігімен қ атар бө лшек бө лігі де бар сандар) болып табылады, ал нақ ты сандар жиының нө мірлеу мү мкін емес. Реттік типтер жай типтердің ішкі жиыны болып табылады. Нақ ты типтерден ө згеше барлық жай типтер реттік болып табылады жә не келесі тө рт қ асиеттері бойынша ерекшеленеді:

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

2. реттік типтің кез келген мә ніне сол мә ннің реттік нө мірін қ айтаратын стандартты Ord функциясын қ олдануғ а болады.

3. реттік типтің кез келген мә ніне сол мә ннің алдындағ ы мә нді қ айтаратын стандартты Pred функциясын қ олдануғ а болады. Егер бұ л функция осы реттік типтегі бірінші мә нге қ олданылатын болса онда қ ателік туралы хабарлама беріледі.

4. реттік типтің кез келген мә ніне сол мә ннен кейінгі мә нді қ айтаратын стандартты Succ функциясын қ олдануғ а болады. Егер бұ л функция осы реттік типтегі соң ғ ы мә нге қ олданылатын болса онда қ ателік туралы хабарлама беріледі.

Бү тінсанды типтегі операндтарғ а қ олданылатын арифметикалық амалдар келесі ережелерге сә йкес 8-биттік, 16-биттік жә не 32-биттік дә лділікті кө здейді:

· бү тін тұ рақ тының типі осы бү тін тұ рақ тының мә нін қ амтитын қ ұ рамына кірістірілген ең кіші диапазонды бү тінсанды тип болып табылады.

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

· меншіктеу операторының оң жағ ындағ ы ө рнек сол жақ тағ ы айнымалының ө лшеміне тә уелсіз есептеледі.

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

Кез келген екі жолдық мә ндер арасындағ ы қ атынас сә йкесінше позициялардағ ы символдардың мә ндері арасындағ ы реттік қ атынасқ а сә йкес орнатылады. Мысалы, 'Xs' > 'X'. Нө льдік жолдар басқ а нө льдік жолдарғ а ғ ана тең, жә не олар ең кіші жолдық мә ндер болып табылады.

Жолдағ ы символдарғ а массивтің компоненттеріне сияқ ты қ ол жеткізуге болады. Жолдық типтің мә ні ұ зындық атрибуты динамикалық болатын (программаның орындалу барысындағ ы символдардың нақ ты мө лшер санына тә уелді) жә не ө лшем атрибуты 1 ден 255 дейін аралық та тұ рақ ты болатын символдар тізбегі болып табылады. Ұ зындық атрибутының ағ ымдағ ы мә нін стандартты Length функция арқ ылы алуғ а болады.






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