Алгоритм және оның қасиеттері. Программалау және программа туралы түсінік
Алгоритм және оның қасиеттері. Программалау және программа ту
1-ші дәріс
Алгоритм туралы ұғым
- Алгоритм атауы атақты шығыс ма
тематигі абу Жафар Мұхаммед иб н Мұса әл-Хорезми (763-850 ж. ) есімінің латынша Algorіthmі (Алгоритми) болып жазылуынан шыққан. Ол санаудың ондық жүйесінде көпорынды сандармен арифметикалық амалдардың орындалу ережесін ұсынған. Бұл ережелер қосынды мен көбейтіндіні табуға арналған амалдарды орындауға қажетті тізбектен құрылған. Сол ереже осы күнге дейін қолданылып келеді.
- Алгоритм – берілген есептің шы
ғару жолын - реттелген амалдар тізбегі түріне келтіру.
- Алгоритмді орындаушының рөлін негізінен адам
- немесе компьютер, робот т. б. атқарады. Мысалы, y =
- (ax+b)(cx-d) функциясын есептеу төмендегі қарапайым іс-әрекеттерден тұрады:
- • 1) а-ны х-ке көбейту, оны R1 деп белгілеу;
- • 2) оған b-ны қосу, нәтижесін R2 деп белгілеу;
- • 3) с-ны х-ке көбейту, оны R3 деп белгілеу;
- • 4) одан d-ны алу, оны R4 деп белгілеу;
- • 5) R2-ні R4-ке көбейту, оны y деп белгілеу.
- Техникалық құрылғыларды дұрыс
пайдалану үшін есептің шешу жо лы, яғни орындалатын әрекеттердің тізбегі әрі түсінікті, әрі дәл болуы қажет. Берілген мәселенің шешу жолдар ының түсініктілігін оның алгор итмінің түсініктілігі деп қара стырады. Алгоритмде алдыңғы әрекеттің н әтижесі келесі әрекетте пайдал анылады. - Алға қойған мақсатқа жету немесе берілген есепті шешу бағытында атқарушыға біртіндеп қандай әрекеттер жасау қажеттігін әрі түсінікті, әрі дәл етіп көрсететін нұсқаулар тобын агоритм деп атайды.
Программа туралы түсінік
- Алгоритмді компьютерде орындау
үшін оны программа түрінде жа зып шығу керек. Программа – алгоритмді машинағ а түсінікті нұсқаулар тізімі р етінде жазу. Программа машинаға түсінікті к омандалардан тұрады. Осы командалар тізбегі орындал у барысында есептің нәтижесі ш ығады. Әрбір компьютер алдын ала жазы лған программамен істейді. - Программа дегеніміз – белгілі бір нәтиже алу үшін орындалатын командалдардың айқындалған тізбегі. Процессор программаның құрамындағы командаларды кезекпен орындап отырады. Командалар тізбегін программа деп қарастыруға болады.
- Команда бір ғана қарапайым ама
лды орындау үшін берілген бұйр ық ретінде беріледі.Командалар : арифметикалық немесе логикалық амал; ақпаратты тасымалдау командасы; берілген сандарды салыстыру командасы; нәтижені экранға, қағазға басып шығару командасы; келесі командаларға көшу тәртібін орындау т.с.с. - Компьютердің жұмысы программалық принципке негізделген, яғни ол өзінің жадында сақталатын командалар тізбегін автоматты түрде орындау арқылы есеп шығарады.
- Компьютер берілген тапсырманы
орындауға дайын тұрған техника лық аспап болғандықтан, әрбір тапсырманы түсінікті түр де қысқаша жаза білу қажет. Тапсырма жоғарыда айтылған жекеленген командалардан тұрады. Машинаға түсінікті түрде жазылған тапсырмаларды немесе командалар жиынын да программа деп атауға болады. - Программа – арнайы мәтін арқылы компьютерге тапсырманың ретті кезегін хабарлайтын ережелер мен нұсқаулар тізбегі.
Алгоритм қасиеттері
- Алгоритмнің мәнін ашатын негіз
гі қасиеттерінен немесе оған қ ойылатын талаптардан қысқаша м ағлұматтар келтірейік. Компьютерде орындалуға тиіс алгоритмдерге мынадай талаптар қойылады: - 1) алгоритм анық, әрі дәл өрнектелуі тиіс – детерминділік қасиеті;
- 2) оның модульдік (бөлікке бөліну) қасиеті, яғни алгоритмді шағын бөліктерге бөлу мүмкіндігі болуы қажет;
- 3) алгоритм шектелген уақыттан соң нәтиже беруі тиіс, яғни алгоритм қадамдарының саны шексіз болмауы керек – нәтижелілік (шектеулілік) қасиеті;
- 4) бір типтегі (біртектес) есептерге жалпы бір ғана алгоритм қолданылуы тиіс – жалпылық қасиеті.
Алгоритмнің өрнектелу
жолдары
- Алгоритмдерді компьютерде орын
дау үшін оларды алдын ала жазы п алу керек, яғни ол белгілі бір заңдылықпе н өрнектелуі тиіс. Жалпы алгоритмді өрнектеу түрлеріне: - •1) табиғи тіл арқылы жазу;
- •2) белгілі бір түйінді сөздер – терминдер (псевдокодтар - жалған кодтар) арқылы қысқаша тізбекті түрде жазу, мұны қарапайым алгоритмдік тіл деп те айтады;
- •3) график жолымен (блок-схема арқылы) жазу;
- •4) программалау тілдерінде жазу жолдарын жатқызуға болады.
- Кез келген алгоритмді (программаны) блоктардың өзара байланысуына
қарай төмендегідей үш түрлі ба сқару құрылымын пайдалану арқы лы жазып шығуға болатындығы дә лелденген: - • сызықтық құрылым немесе әрекеттер тізбегі;
- • тармақты құрылым немесе шартты тексеру;
- • қайталау немесе циклдік құрылым.
- Осындай негізгі (канондық) құрылымдардан тұратын алгоритм
ді регулярлық алгоритм (программа) деп атайды, олардың бір ғана кіру нүктесі мен бір ғана шығу нүктесі бола ды. Осы үшеуі құрылым- дық программалаудың негізгі конструкциялары, яғни құраушылары болып саналады. - Программадағы кез келген әрекетті (операторды) оның кіру нүктесі арқылы тауып орындауға болады (осы тәсілмен табылмайтын операторлар және шексіз циклдер болмауы тиіс). Мұндай алгоритмді – программаны басқару ісі жоғарыдан төмен қарай жүргізіледі. Түсініктеме мәтін (комментарий) қосылған осындай программалар оқуға және түсінуге жеңіл болып есептеледі.
- Оператор – тілдің қарапайым сөйлемі, ол белгілі бір әрекет немесе амал орындап, ; таңбасымен аяқталады.
- Сызықтық құрылым бірінен кейін бірі орындалып тізбектеле орналасқан бірнеше операторлардан тұрады.
- Тармақты – шартқа байланысты екі оператордың бірінің орындалуы
- Цикл – операторлар бөлігінің бірнеше рет қайталана орындалуы.
Си және Си++ тілдері
- Бұл тілдерде жазылған программ
аны компьютерде орындау кезінд е ол алдымен трансляция сатысынан өтіп (машина тіліне аударылып), объектілік программа түріне ауысады да, сонан кейін барып орындалады. Осы сəтте компьютерде программаның екі нұсқасы болады, оның біріншісі – Cи++ тіліндегі алғашқы нұсқасы, ал екіншісі – объектілік кодтағы машина тілінде жазылған программа. Есептің нəтижесін тек машиналық кодта жазылған программа арқылы аламыз, ал программаны түзету қажет болғанда оның алғашқы нұсқасы өңделіп, оны қайта түрлендіру сатысы жүзеге асырылады.
- Кез келген Си (Си++)-программа бір немесе бі
рнеше функциялардан тұрады. Олар программа құруға керекті негізгі модульдер болып табыла ды. Си программасы бірнеше функция лардан құралады, олардың ішінде міндетті түрде main() болуы қажет. Функция мəтіні оның тақырыбы м ен тұлғасынан (денесінен) тұрады.
- Си++ тіліндегі программа жеке-жеке
жолдардан тұрады. Оларды теру, түзету арнайы мəтіндік редакто рлар арқылы атқарылады. Программа қатарларының алдында ғы азат жол немесе бос орындар саны өз қалауымызша алынады. - Бір қатарға бірнеше командалар немесе операторлар орналаса алады, олар бір бірінен нүктелі үтір (;) арқылы ажыратылып жазылады, бірақ бір жолда бір ғана оператор тұрғаны дұрыс, əрі түзетуге жеңіл, əрі ыңғайлы болып саналады.
Си++ тілінің алфавиті
- Тілдің алфавиті программаның э
лементтерін құруда қолдануға б олатын символдар жиынынан тұра ды. Оған əріптер, цифрлар жəне арнайы белгілер к іреді. Тіл ерекшеліктеріне қарай симв олдар тобын шартты түрде төмен дегі топтарға жіктеуге болады, олар
- атау (идентификатор) ретінде
-символдар ( a,b,c,…,z жəне цифрлар );
-цифрлар ( 0,1,2,…,9 ) ;
-айыру белгілері ( : ; “ );
-арнайы символдар ( @, $, #, &
- Əріп ретінде латын алфавитінің
бас жəне кіші əріптері қолдан ылады, олар: - A B C D E F G H І J K L M N O P Q R S T U V W XYZ
- a b c d e f g h і j k l m n o p q r s t u v w x y z
- жəне астын сызу таңбасы (_) əріпке саналады;
- Бас əріптер мен кіші əріптер бірдей болып саналмайды, мысалы, Х пен х екі айнымалы атауы, дəл сол сияқты ALFA1, aLfA1 жəне alfa1 де əр түрлі атаулар түрлері болып саналады. Атауларда əріптер цифрлармен араласып жазыла береді, бірақ атаудың алғашқы символы міндетті түрде əріп болуы тиіс, мысалы, VES1, SALMAK2, Baga5, cena7, T7S25, ART25var8,т.с.с.
- Ұлттық əріптер (қазақ, орыс, араб т.с.с.) атау ретінде қолданылмайды, олар тек тырнақшаға (“) алынған тұрақты сөз тіркестері
немесе /* жəне */ таңбаларымен қоршалған түсінік теме ретінде ғана кездеседі /* бұл түсініктеме */.
Ондық цифрлар: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 тəрізді сан таңбалары. Он алтылық цифрлар ондық цифрлардан жəне A-дан F-қа (немесе a-дан f-қа) дейінгі латын əріптерінен тұрады.
- Арнайы символдарға пунктуациял
ау жəне операциялар (амалдар) белгілері жатады.
Арифметикалық амалдардың белгі
+ - қосу; * - көбейту;
– - алу; / - бөлу; % - қалдық табу;
10 % 3 - нəтижесі 1;
Логикалық амалдардың белгілері
- жəне - && (екі шарт қатар орындалады);
- немесе - ( екі шарттың бірі
- емес - ! (шартқа кері - терістеу амалы);
- Айыру белгілеріне бос орын, ЕNTER (келесі жолға көшіру) пернесін басу белгісі жəне үтір, нүктелі үтір таңбалары жатады. Айыру белгілері атауларды, сандарды, түйінді сөздерді бір-бірінен бөліп тұрады. Түсініктеме // таңбасынан кейін жол соңына немесе /* жəне */ белгілерімен қоршалып, солардың ішіне жазылады, соңғысы – бір немесе бірнеше жолдардан тұруы мүмкін. Сонымен, айыру белгілері: _ (бос орын), , (үтір), . (нүкте), : (қос нүкте), ; (нүктелі үтір), ' апостроф), “ қостырнақша, (,),[,],{,} таңбалары жатады.
- Қатынас таңбалары немесе салыс
тыру белгілері:
= (тең), != (тең емес), < (кіш
- Əрбір символдың өзінің реттік нөміріне сəйкес белгіленген коды болады, ол стандарт түрінде бекітілген. Əр елдің стандарттары негізінде америкалық кодтар стандарты жатады (Amerіcan Standart Code for Іnformatіon Іnterchange - ASCІІ), компьютерде жұмыс істеу кезеңінде оларды да білген абзал.
- Си+ тілінің түйінді сөздері – программада алдын ала анықталған белгілі бір мағынасы бар сөз тіркестері.
- Си+ тілінің түйінді сөздері (служебные или ключевые слова) мəліметтер типтері, операторлар мен стандартты функциялар атаулары, жады кластары, модификаторлар (толықтырғыштар), т.с.с., олардың тілдің əр түрлі нұсқаларында аздап айырмашылықтары болуы мүмкін.
- Қордағы (резервтегі) сөздер:
- auto double int struct break else long switch register tupedef char extern return void case float unsigned default for signed union do if sizeof volatile continue enum short while, т.б.
- Бұл келтірілген түйінді сөздерді айнымалы аттары немесе тұтынушы қойған бейстандарт атаулар ретінде қолдануға болмайды.
Тілдің қарапайым объектілері
- Тілдің қарапайым объектілеріне
тип, сан, идентификатор, константа, айнымалы жəне функция, өрнек ұғымдары кіреді. Тілдің ары қарай бөлінбейтін е ң қарапайым бірлігі лексем (token деп те айтады) деп аталады. Лексемнің 5 типі бар: операциялар (operator), айыру таңбалары (separator), идентификаторлар (identifier), түйінді сөздер (keyword) жəне константалар (constant). Біз лексемдерді дұрыс жазуға м үмкіндік беретін объектілерді қарастырып, программаның жалпы құрылымынан мəліметтер берейік. Константалар жəне кез келген а йнымалылар бүтін саннан саннан сөз тіркесте саннан, нақты саннан, символдан немесе тіркестерінен құралады.
- Мəліметтер типтері. Мұнда мəліметтердің бірнеше негізгі типтері қолданылады. Олар:
- char – символдық, яғни таңбалық тип,
- short – қысқа бүтін сан,
- int – бүтін сан типі,
- long – екі еселенген бүтін сан,
- float – нақты (жылжымалы нүктелі) сан типі,
- double – екі еселенген нақты сан типі.
- unsigned – таңбасыз бүтін сан,
- Алғашқы төрт тип бүтін сандарды сипаттау үшін
- қолданылады Төмендегі кестеде əр түрлі типтердің
- IBM PC-ге арналған ұзындықтары көрсетілген.
- Мəлімет типі Ұзындығы (байт) Сандар диапазоны
- char 8 бит – 1 байт -128 ... +127
- unsigned char 8 бит – 1 байт 0 ... 255
- short int 16 бит – 2 байт -32768 ... 32767
- unsigned short 16 бит – 2 байт 0 ... 65 535
- int 16 бит – 4 байт -32768 ... 32767
- unsigned [int] 32 бит – 4 байт 0 ... 4294967295
- long 32 бит – 4 байт -2 147 483 648 ... 2 147 483 647
- unsigned long 32 бит – 4 байт 0 ... 4 294 967 295
- float 32 бит – 4 байт 3.4*10-38 ... 3.4*1038
- double 64 бит – 8 байт 1.7*10-308 ... 1.7*10308
- long double 80 бит – 10 байт 3.4*10-4932 ... 3.4*104932
- Көрсетілген типтердің ең үлкен
ұзындықтары əр түрлі компиляторларда бірдей б олуы қажет емес. Олар компьютерлердің аппаратты қ мүмкіндіктеріне қарай тағайы ндалады. Бірақ оларға мынадай талаптар қойылады: - int > =short >= 16 бит;
- Int типін стандарт бекітпеген, ол компьютерге немесе компиляторға байланысты өзгеріп отырады. 16-разрядты процессорде ол 2 байт (32768), ал 32-разрядтысында – 4 байт (2 147 483 647 ). Си++-те int = short (32768)
- long > = int; long типінің ұзындығы >= 32 бит;
- (Си++-дегі long 2 147 483 647 )
- Signed жəне unsigned модификат
орлары да сандар шамасына əсер етеді, олар: - unsigned short int – 2 байт, оның диапазоны 0 ..65536;
- unsigned long int – 4 байт, диапазоны 0..+4 294 967 295.
- Unsigned типі int, long, short түйінді сөздерімен сипатталатын типтердің модификаторы ретінде қолданылады.
- Char типін 0–255 аралығындағы таңбасыз бүтін сандарды сипаттауға қолдануға болады, ДК жадында бұларға бір байт орын бөлінген. Мысалы:
- char c1;
- char ck=’k’; // бірден осылай мəн беруге де болады
- Нақты сандар компьютерде 2 бөліктен – дəреже мен мантисса
дан тұрады. IBM-РС компьютерлерінде float типінің ені – 4 байт, оның бір разряды – сан таңбасы , 7 разряды – дəреже, 24 бит – мантисса. Егер double типі аты алдында long сөзі тұрса, онда оған 10 байт орын беріледі. Программалау практикасында көб інесе жылжымалы нүктелі (нақты немесе аралас) сандар пайдаланылады. Double типті сандар екі еселенген дəл дікпен 64 бит арқылы өрнектеледі. Double типінің ені – 8 байт, 1 бит – таңба, 11 бит –дəреже жəне 52 разряд – мантисса. Мантисса ені – санның дəлдігін , ал дəреже ені – оның диапазоны н анықтайды. - Си тілінде объектілердің мəндерін байт арқылы анықтау үшін sizeof стандартты операторы қолданылады. Мысалы:
- Cout<<“Данныетипа double занимают”<<sizeof(double)<<“
байт\n";
- Сандар. Сандар мен айнымалылар бүтін жəне нақты болып екіге бөлінеді. Бүтін сандар: +4, -100, 15743, 0 , т.с.с.
- Дербес ЭЕМ-дер үшін қолданылатын бүтін сандар (іnt) бұрын -32768 бен +32767 аралығында ғана жазылған еді, қазір компьютер типіне байланысты ол басқаша да бола береді. Мұнда ондық, сегіздік жəне он алтылық бүтін сандар да пайдаланылады. Он алтылық сандардың алдына 0х белгісі қойылады. Мысалы, 0хA12 немесе 0х8B2. Сегіздік сандар алдына 0 қойылады: 0556, 07012, т.с.с.
- Нақты сандар (float) кəдімгі табиғи аралас сандар тəрізді санның бүтіні мен бөлшегін нүкте арқылы бөлген күйде жазылады. Мысалы:
- 2.65, 0.5, -0.862, -6.0. Ал өте үлкен немесе өте кіші нақты сандар көрсеткіші бар экспоненциал сандар ретінде mЕ±р түрінде жазылады да, олардың диапазоны əлде қайда кең болады, мұндағы m-санның мантиссасы деп аталады, Е-онның дəрежесі дегенді білдіреді, ал р-дəреженің өз мəні. Мысалы:
- 1,25•106 1.25Е+6 0,0005 0.5Е-3
- -5,2 • 10-12 - 5.2Е-12 -180000 -1.8Е+5
- Атау – идентификатор (іdentіfі
еr – объектіге қойылған ат) программаны жəне программадағы тұрақтыларды, айнымалыларды, функцияларды, файлдарды жəне тағы басқаларды белгілеп жазу үшін қажет. - Идентификатор – міндетті түрде əріптен басталатын сандар мен əріптердің тізбегі. Оның ұзындығын өте үлкен етудің қажеті жоқ, өйткені атауларды теру жəне кейіннен сақтау біраз уақыт керек етеді. Бірақ оларды өте қысқартпай, мағынасына сəкес атау беру қалыптасқан. Мысалы: X, x1, cymka, bec, p23ps6, dt54as, ALFA, baga2, salmak Omega2, т.с.с.
- Бас əріп пен кіші əріп бірдей болып саналмайды
- Тұрақты немесе константа деп программаның орындалу барысында мəндері өзгеріссіз қалатын шамаларды айтады. Тұрақтыға программа басындағы директива арқылы мəн берсек те немесе оны программаның сипаттау бөлімінде идентификатор түрінде белгілеп алып мəн берсек те болады. Олар сандық, символдық жəне тіркестік (іnt, float, char, strіng) мəндерді қабылдай алады. Символдық жəне тіркестік (строковый – strіng) мəндер үшін орыс, қазақ əріптерін жəне кез келген символдарды пайдалануға болады. Олар тырнақша ішіндегі таңбалармен жазылады, мысалы: “S=“ ,“сумма” , “функцияның мəні”, “y=“ жəне т.б.
- Тұрақтыларды анықтау мысалдары
:
a) Директива арқылы
#define костанта мəні
#define PI 3.14159 // pi=3.
#define EULER 2.718282 //
Атау арқылы
b) const типi костанта = мəні
const float m=99999999;
const F=765; // типі int болады
const char s=‘B’; // символдық
const Menіng_atjm = ‘Нұрбек Қа
const C=‘С++‘;
- Айнымалылар деп программаның орындалу барысында əр түрлі мəндерді қабылдай алатын шамаларды айтады. Айнымалы – компьютер жадының ат қойылған аймағы. Оған мəн берілгенде, сол аймаққа мəннің екілік коды жазылады. Айнымалы мəнін қолдану үшін оның атын – идентификаторын жəне мəн орналасқан аймақтың адресін білу керек. Олар идентификаторлармен белгіленіп, əр уақытта əр түрлі мəнге ие бола алады. Айнымалылардың белгіленулері: alfa, y, x3, summa, baga, a1b8, т.с.с. Айнымалы атауы оның орындайтын міндетіне сəйкес, түсінікті жəне қарапайым болғаны жөн. Айнымалыларды сипаттау оларды пайдалану алдында кез-келген жерде орналасады да, алдында олардың типі көрсетіледі.
- Оның жазылу форматы:
<тип> <идентификатор1>, ...,<и
Мысалы:
іnt a, b=5, d, D;
float c, alfa=2.15, b4=1.
char symbol, cc;
string coz, coilem;
Сипаттау кезінде бірден бастап
- Арифметикалық немесе логикалық
амалдар таңбасымен біріктіріл ген айнымалылар, атаулар, функциялар, жиындар (массивтер) тізбегі өрнек деп аталады.Математикадағы формулалар, арифметикалық өрнектер, алгебрадағы көпмүшеліктер программалау тілінде тек осы өрнек ұғымы арқылы беріледі.Программалау тілінің белгілі бір іс-əрекетті орындай алатын тиянақты мағынасы бар ең қарапайым сөйлемі оператор деп аталады.
Стандартты функциялар
- Си++ тілінде математикадағы тəрізді
стандартты функциялар бар. Олар жиі кездесетін математика лық жəне басқа да функцияларды есептеу үшін қолданылады. Стандартты функцияны жазу үшін міндетті түрде функцияның аты жəне жақшаның ішінде аргумент і көрсетілуі қажет. Стандартты функциялар: abs(x), tg(x), sqr(x), sіn(x), cos(x), exp(x), ln(x), sqrt(x), arctan(x), frac(x) – санның бөлшегі, іnt(x) – санның бүтіні, pі (3.14159) т.с.с. Функцияны есептеу барысында аргумент пен - функция типтерінің əр уақытта сəйкес келе бермейтінін есте сақтаған жөн. Енді программаларда жиі пайдаланылатын өрнектерді мысал ретінде қарастырайық.
- |x| fabs(x) Аргументтің абсолюттік шамасы
- tgx tan(x) Аргументтің тангенсы нақты
- arctgx atan(g (x) Аргументтің арктангенсы нақты
- cosx cos(x) Аргументтің косинусы нақты
- sіnx sіn(x) Аргументтің синусы нақты
- ex exp(x) е-нің (2,71828) х дəрежесі нақты
- frac(x) х-санының бөлшек бөлігі нақты
- [x] іnt(x) х санының бүтін бөлігі нақты
- lnx ln(x) х-санының натурал логарифмі нақты
- π pі (π-дің мəні pі=3.14159265)
- xn pow(x,n) х-тің n дəрежесі х-тің типіндей
- Түбірдегі x sqrt(x) х-тің квадрат түбірі нақты
Енгізу мен шығару
- Си++ тілінде сыртқы ортамен мəлімет
тер алмасу <iostream.h> енгізу-шығару функциялары кітапханасын пайдалану арқылы орындалады. Ол тақырып файлы ретінде былай жазылады:
#include <iostream.h>
cout<< функциясы мəліметтерді экранға шығару үшін қолданылады. Оның жалпы жазылу түрі: cout<<аргументтер тізімі; <Аргументтер тізімі> ретінде айнымалылар, константалар, өрнектер қолданылуы мүмкін.
cin>> енгізу функциясы жоғарыда қарастырылған cout<< функциясына ұқсас.
cin>> аргументтер тізімі;
Мысалы:
int a,b,c;
cin>>a>>b;
c=a+b;
cout<<“c=”<<c;

- Алгоритм және оның түрлері
- Алгоритм және программалау
- Алгоритм запуска двигателя
- Алгоритм здоровья и его содержание
- Алгоритм и его структура
- Алгоритмизация
- Алгоритмизация вычислительных процессов
- Алгоритм және оның қасиеттері
- Алгоритм және оның қасиеттері
- Алгоритм және оның қасиеттері
- Алгоритм және оның қасиеттері
- Алгоритм және оның қасиеттері
- Алгоритм және оның қасиеттері
- Алгоритм және оның қасиеттері