Скачиваний:
0
Добавлен:
26.01.2026
Размер:
154.62 Кб
Скачать

5-lekciya. Programmalıq támiynattı konstrukciyalawdıń tiykarǵı elementleri.

Jobası:

1.Konstrukciyalawdıń tiykarǵı blokları: Logika, Maǵlıwmatlar, Interfeys.

2.Basqarıw strukturaları hám olardı qollanıw ámeliyatı.

3.Maǵlıwmatlar strukturası hám tiplestiriw.

4.Qátelerdi basqarıw hám kútilmegen jaǵdaylar (Exceptions).

Programmalıq támiynattıń atomları: Logika hám Maǵlıwmatlar

Programmalıq támiynattı konstrukciyalawdıń tiykarǵı elementleri (Key Construction Elements) degende, biz qálegen bir programmanı quraytuǵın fundamentallıq "qurılıs blokların" túsinemiz. Qanday til (Java, Python, C++) yamasa qanday paradigma (Imperativ, OBP) tańlanıwına qaramastan, hár qanday programma eki tiykarǵı substanciyadan turadı: "Algoritmler" (Logika) hám "Maǵlıwmatlar" (Data). Niklaus Virt aytqanınday: "Algoritmler + Maǵlıwmatlar Strukturaları = Programmalar". Konstrukciyalaw procesi – bul usı eki elementti durıs tańlaw hám olardı bir-biri menen effektiv baylanıstırıw óneri.

Logika – bul programmanıń "miy"i. Ol programmanıń ne isleytuǵınını, qanday sheshimler qabıllaytuǵının hám maǵlıwmatlardı qalay ózgertetuǵının belgileydi. Logikanı konstrukciyalawda biz basqarıw strukturaların (if, loop), funkciyalardı hám proceduralardı qollanamız. Logikanıń sapası onıń durıslıǵı (correctness), effektivligi (efficiency) hám túsiniwge ańsatlıǵı (clarity) menen ólshenedi. Quramalı logikanı kishi, basqarılıwshı bóleklerge (modullerge) bóliw – konstrukciyalawdıń eń baslı wazıypası.

Maǵlıwmatlar – bul programmanıń "dene"si. Programma maǵlıwmatlarsız paydasız. Maǵlıwmatlar ápiwayı ózgeriwshilerden (sanlar, qatarlar) baslap, quramalı strukturalarǵa (massivler, dizimler, terekler, graflar) hám maǵlıwmatlar bazasına shekemgi kóriniste bolıwı múmkin. Maǵlıwmatlardı konstrukciyalawda biz olardıń tiplerin, saqlanıw formatın hám ómir súriw waqtın (scope/lifetime) jobalastıramız. Maǵlıwmatlardı durıs shólkemlestiriw (mısalı, durıs strukturanı tańlaw) logikanı ádewir ápiwayılastırıwǵa hám programmanı tezletiwge alıp keledi.

Úshinshi áhmiyetli element – bul "Interfeys". Interfeys degende tek grafikalıq paydalanıwshı interfeysi (GUI) emes, al programmanıń ishki

komponentleriniń bir-biri menen baylanısıw quralı (API) túsiniledi. Klasslar, funkciyalar hám moduller bir-birine "júzi" (interfeysi) arqalı baylanısadı. Interfeys qanshelli jaqsı oylanǵan bolsa, modullerdiń ishki dúzilisin ózgertiw sonshelli ańsat boladı. Interfeys – bul abstrakciyanıń ámeliy kórinisi.

Basqarıw strukturaları hám kodlaw ámeliyatı

Konstrukciyalawdıń eń kóp ushırasatuǵın elementi – bul "Basqarıw strukturaları" (Control Structures). Bular programmanıń orınlanıw aǵımın (flow) basqaratuǵın operatorlar: Izbe-izlik, Tarmaqlanıw (if, switch) hám Tákirarlanıw (for, while). Hár qanday quramalı algoritmdi usı úsh struktura arqalı súwretlewge boladı (Strukturalı programmalastırıw teoreması). Konstrukciyalawda bul strukturalardı "Strukturalı" túrde qollanıw zárúr, yaǵnıy GOTO sıyaqlı tártipsiz sekiriwlerden awlaq bolıw kerek.

Tarmaqlanıw strukturalarında (if-else) eń kóp jiberiletuǵın qáte – bul "dumalaq" (nested) shártlerdiń kóbeyip ketiwi. Eger if-tiń ishinde if, onıń ishinde jáne bir if bolsa, kodtı oqıw qıyınlasadı (Arrow Code). Bunıń sheshimi – "Erte qaytıw" (Early Return) usılın qollanıw. Yaǵnıy, shárt orınlanbaǵan jaǵdayda funkciyanı birden toqtatıw (return) hám tiykarǵı logikanı sheginiwsiz (indentation) jazıw. Sonday-aq, switch operatorın (yamasa zamanagóy pattern matching) qollanıw kóp sanlı if-else shınjırlarınan qutılıwǵa járdem beredi.

Tákirarlanıw (Cikller) strukturalarında "birge adasıw" (off-by-one error) qátesi hám "sheksiz cikl" qáwipi bar. Konstrukciyalawda cikldiń baslanıw hám tamamlanıw shártlerin itibar menen tekseriw kerek. Cikl denesin (body) múmkinshiligi bolǵansha qısqa saqlaw hám bir cikl ishinde bir neshe wazıypanı aralastırmaw kerek. Eger cikl ishinde quramalı logika bolsa, onı bólek funkciyaǵa shıǵarıw (Extract Method) usınıs etiledi. Basqarıw strukturalarınıń sapası olardıń "tiykarǵı jol"dı (happy path) qanshelli anıq kórsetiwine baylanıslı. Kodtı oqıǵan adam dáslep programmanıń normal jaǵdayda qalay isleytuǵının kóriwi kerek, al qáteler hám ayrıqsha jaǵdaylar ekinshi planda bolıwı tiyis. Bul kodtıń logikalıq strukturasın turaqlı etedi.

Maǵlıwmatlar strukturası hám tiplestiriw

Maǵlıwmatlardı konstrukciyalawda eń birinshi sheshim – "Ózgeriwshiniń tipi"n tańlaw. C++ yamasa Java sıyaqlı "Statikalıq tiplestirilgen" tillerde tip kompilyaciya waqtında belgilenedi hám ózgermeydi. Python yamasa JavaScript sıyaqlı "Dinamikalıq" tillerde tip orınlanıw waqtında ózgeriwi múmkin. Konstrukciyalawda tiplerdi durıs tańlaw (mısalı, pútin san ushın int, aqsha ushın Decimal) esaplawlardıń anıqlıǵın hám yadtıń effektli qollanılıwın támiyinleydi.

Maǵlıwmatlar strukturasın (Data Structures) tańlaw programmanıń ónimliligine (performance) tikkeley tásir etedi. Eger bizge tez izlew kerek bolsa, ápiwayı massiv (Array) ornına xesh-keste (Hash Map) yamasa binar izlew teregin

(BST) qollanıwı kerek. Eger maǵlıwmatlar tez-tez qosılıp hám óshirilse, baylanısqan dizim (Linked List) qolaylı bolıwı múmkin. Tájiriybeli injener hár bir strukturanıń "Big O" quramalılıǵın (waqıt hám yad boyınsha) bilip, jaǵdayǵa sáykes eń optimalın tańlaydı. Maǵlıwmatlardı basqarıwda "Kórinis tarawı" (Scope) hám "Ómir súriw waqtı" (Lifetime) túsinikleri áhmiyetli. Ózgeriwshilerdiń kórinis tarawın maksimal dárejede tar (local) etip saqlaw kerek. Global ózgeriwshilerdi qollanıwdan qashıw zárúr, sebebi olar kodtıń bólekleri arasında jasırın baylanıslardı (coupling) payda etip, ońlawdı qıyınlastıradı. Ózgeriwshini tek qollanılatuǵın jerine jaqın jerde járiyalaw hám jumısı pitkennen keyin yaddan óshiriw (yamasa garbage collectorǵa tapsırıw) jaqsı ámeliyat esaplanadı.

Zamanagóy konstrukciyalawda "Ózgermeytuǵınlıq" (Immutability) principine úlken itibar berilmekte. Yaǵnıy, obyekt jaratılǵannan keyin onıń mánisin ózgerte almaymız. Eger jańa mánis kerek bolsa, jańa obyekt jaratamız. Bul princip parallel programmalastırıwda (multithreading) maǵlıwmatlar qáwipsizligin támiyinleydi hám kodtıń logikasın ápiwayılastıradı, sebebi "side effect"ler (kútilmegen ózgerisler) bolmaydı.

Qátelerdi basqarıw (Error Handling)

Ideal dúnyada programmalar qátesiz isleytuǵın edi, biraq real dúnyada qáteler – bul norma. Konstrukciyalawdıń tórtinshi elementi – "Qátelerdi basqarıw". Qáteler eki túrli boladı: "Sistemalıq qáteler" (bugs - logikadaǵı qáteler) hám "Kútilmegen jaǵdaylar" (runtime errors - mısalı, fayl tabılmadı, internet úzildi). Konstrukciyalawdıń maqseti – programmanıń bunday jaǵdaylarda "qulap túspewin" (crash), al jumısın "minnetli túrde" (graceful degradation) dawam etiwin yamasa durıs toqtawın támiyinlew. Qátelerdi basqarıwdıń klassikalıq usılı – "Qaytarıw kodları" (Return codes). Funkciya jumısın tamamlaǵanda qáte bolsa -1, bolmasa 0 qaytaradı. Biraq zamanagóy tillerde "Ayrıqsha jaǵdaylar" (Exceptions - try/catch/throw) mexanizmi qollanıladı. Bul mexanizm qátelerdi qayta islew kodın tiykarǵı logikadan ajıratıwǵa imkaniyat beredi. Baǵdarlamashı try blogında "normal" kodtı jazadı, al catch blogında qáte shıqqan jaǵdayda ne islew kerekligin kórsetedi.

Konstrukciyalawda "Qorǵanıwshı programmalastırıw" (Defensive Programming) usılı qollanıladı. Yaǵnıy – "heshkimge hám hesh nársege isenbe". Funkciyaǵa kelgen hárbir parametrdi tekseriw (validation), null mánislerin

tekseriw hám shegaralardan (bounds) shıǵıp ketpewdi qadaǵalaw. Assertions (tastıyıqlawlar) qollanıw arqalı kodtıń ishinde "múmkin emes" jaǵdaylardın bolmawın kepillewge boladı. Mısalı, adamnıń jası heshqashan teris bolmawı kerek (assert age >= 0).

Juwmaqlap aytqanda, programmalıq támiynattıń elementleri – bul shaxmat tasları sıyaqlı. Hárbiriniń óz júrisi hám óz wazıypası bar. Logika, maǵlıwmatlar, basqarıw strukturaları hám qátelerdi basqarıw mexanizmlerin sheberlik penen qollana bilgen "grossmeyster" (injener) ǵana sapalı, isenimli hám sulıw programma "partiyasın" oynay aladı.

BAQLAW SORAWLARÍ:

1."Algoritmler + Maǵlıwmatlar Strukturaları = Programmalar" formulasınıń mánisi nede?

2.Basqarıw strukturalarındaǵı "Arrow Code" (Dumalaq if-else) mashqalası ne hám onı qalay sheshiwge boladı?

3.Statikalıq hám Dinamikalıq tiplestiriwdiń konstrukciyalawdaǵı ayırmashılıǵı hám tásiri qanday?

4."Kórinis tarawı" (Scope) tarlıǵınıń kod sapasına qanday paydası bar?

5."Ayrıqsha jaǵdaylar" (Exceptions) mexanizmi qátelerdi basqarıwdıń dástúrli usıllarınan nesi menen qolaylı?

Соседние файлы в папке Programmalıq támiynat qurılması hám evolyuciyası