Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

5-lekciya_paradigma_qq

.pdf
Скачиваний:
0
Добавлен:
18.01.2026
Размер:
238.31 Кб
Скачать

5-lekciya. Imperativ-proceduralıq programmalastırıw. Imperativ programmalastırıw principleri.

Jobası:

1.Imperativ programmalastırıwdıń mánisi hám tábiyatı: "Qalay islew kerek" principi.

2.Fon Neyman arxitekturası hám "Yad" túsinigi (Ózgeriwshiler hám tayınlaw).

3.Basqarıw strukturaları: Izbe-izlik, tarmaqlanıw hám cikller.

4.Proceduralıq kózqaras: Programmanı modullerge bóliw hám onıń áhmiyeti.

Imperativ programmalastırıwdıń tábiyatı hám tiykarǵı filosofiyası

Imperativ programmalastırıw – bul programmalastırıw tariyxındaǵı eń áyyemgi hám eń keń tarqalǵan paradigmalarǵa kiredi. "Imperativ" sózi latın tilindegi "imperare" sózinen alınǵan bolıp, "buyırıw" yamasa "húkim etiw" degen mánisti ańlatadı. Bul paradigmada programmist kompyuterge máseleni sheshiw ushın qanday háreketlerdi qanday tártipte orınlaw kerekligin anıq buyrıqlar (instrukciyalar) arqalı kórsetedi. Eger deklarativ programmalastırıwda "bizge ne kerek" degen sorawǵa juwap izlense, imperativ usılda "bunı qalay islew kerek" degen soraw baslı orında turadı. Yaǵnıy, programma – bul algoritmdi ámelge asırıwshı anıq adımlar dizbegi bolıp tabıladı. Bul paradigmanıń eń ápiwayı hám túsinikli analogiyası retinde kulinarlıq receptti keltiriwge boladı. Receptte "Palaw tayarlań" degen ulıwma buyrıq berilmeydi, al "gúrishti juwıń", "geshirdi tuwrań", "maydı qızdırıń" sıyaqlı izbe-iz háreketler kórsetiledi. Imperativ programmalastırıwda da tap sonday: programmist processordıń hárbir qádemin qadaǵalaydı. Bul usıl insan logikasına júdá jaqın, sebebi biz kúndelikli ómirde de quramalı jumıslardı kishi qádemlerge bólip orınlawǵa úyrengenbiz. Sonıń ushın da C, Pascal, Basic sıyaqlı imperativ tiller oqıw procesinde birinshi bolıp úyretiledi.

Imperativ paradigmanıń oraylıq túsinigi – bul "Programma halatı" (Program State). Programma orınlanıw barısında kompyuter yadı túrli maǵlıwmatlardı saqlaydı. Waqıt ótiwi menen bul maǵlıwmatlar ózgerip turadı. Imperativ programmanıń tiykarǵı maqseti – baslanǵısh halattan (mısalı, bos massiv) kerekli sońǵı halatqa (sortlanǵan massiv) ótiw ushın yadtaǵı maǵlıwmatlardı ózgertiwden ibarat. Hárbir buyrıq yaddaǵı qanday da bir mánisti ózgertiwge xızmet etedi hám bul processti biz "esaplaw" dep ataymız.

Bul usıldıń keń tarqalıwınıń jáne bir sebebi – onıń apparatlıq támiynatqa jaqınlıǵı. Kompyuterlerdiń fizikalıq dúzilisi imperativ buyrıqlardı orınlawǵa beyimlesken. Programmisttiń jazǵan hárbir qatarı (instrukciyası) tikkeley mashina kodına ańsat awdarıladı. Sol sebepli imperativ tiller basqa paradigmalarǵa qaraǵanda kóbinese joqarı ónimlilik (tezlik) hám resurslardı únemli paydalanıw imkaniyatın beredi, bul bolsa sistemalıq programmalastırıwda oǵada áhmiyetli.

Fon Neyman arxitekturası hám tayınlaw operatorı

Imperativ programmalastırıw paradigması tikkeley "Fon Neyman arxitekturası"na tiykarlanǵan. Bul arxitektura boyınsha, kompyuter eki tiykarǵı bólekten: maǵlıwmatlar menen buyrıqlardı saqlaytuǵın "Yad" (Memory) hám olardı qayta isleytuǵın "Processor"dan (CPU) turadı. Imperativ tildegi kod – bul yaddan maǵlıwmatlardı alıw, olardı processorda ózgertiw hám nátiyjeni qaytadan yadqa jazıw procesi bolıp tabıladı. Bul turaqlı maǵlıwmat almasıw procesi "Fon Neyman moynı" (Von Neumann bottleneck) dep atalsa da, ol imperativ stil ushın tábiyiy ortalıq bolıp esaplanadı.

Bul paradigmanıń eń fundamental operatorı – bul "Tayınlaw operatorı" (Assignment operator). Kóbinese = belgisi menen (mısalı, C, Python) yamasa := belgisi menen (Pascal) belgilenetugın bul operator, ózgeriwshiniń mánisin ózgertiw ushın xızmet etedi. Matematikada x = x + 1 degen ańlatpa mániske iye emes (sebebi x heshqashan x+1 ge teń bola almaydı), biraq imperativ programmalastırıwda bul eń kóp qollanılatuǵın konstrukciya. Ol "x yacheykasındaǵı eski mánisti al, oǵan 1 di qos hám nátiyjeni qaytadan x yacheykasına jaz" degen buyrıqtı bildiredi.

Tayınlaw operatorınıń bolıwı "Ózgeriwshi" (Variable) túsinigine ayrıqsha mánis beredi. Imperativ paradigmada ózgeriwshi – bul tek ǵana mánis emes, al yadtıń atalǵan, ózgeriwsheń yacheykası (konteyner). Basqa paradigmalar (mısalı, taza funkcionallıq programmalastırıw) ózgeriwshilerdiń mánisin ózgertiwge qatań sheklew qoysa, imperativ programmalastırıw kerisinshe, ózgeriwshilerdiń mánisin tez-tez ózgertiwge (mutability) súyenedi. Bul "Sırtqı tásir" (Side effect) dep ataladı. Side effect – funkciya yamasa proceduranıń óz shegarasınan tıs yadtıń halatın ózgertiwi. Degen menen, bul erkinliktiń óz qáwipi bar. Eger programmanıń túrli bólimleri bir waqıtta bir ulıwma (global) ózgeriwshiniń mánisin ózgertse, programma kútilmegen qátelerge (bugs) alıp keliwi múmkin. Fon Neyman arxitekturasında buyrıqlar izbe-iz orınlanatuǵınlıqtan, programmist yadtıń hárbir waqıttaǵı halatın esten shıǵarmawı kerek. Solay etip, imperativ programmalastırıw

– bul yadtı basqarıw kónlikpesi menen tikkeley baylanıslı óner.

Basqarıw strukturaları (Control Structures)

Imperativ programmalardıń skeletin "Basqarıw strukturaları" quraydı. Eger tayınlaw operatorı maǵlıwmatlardı ózgertse, basqarıw strukturaları sol ózgerislerdiń tártibin belgileydi. Strukturalıq programmalastırıw teoriyasına sáykes, hár qanday algoritmdi úsh tiykarǵı konstrukciya arqalı ańlatıwǵa boladı: Izbe-izlik (Sequence), Tarmaqlanıw (Selection) hám Tákirarlanıw (Iteration). Bul úshlik imperativ kodtıń "xaostan" (GOTO operatorlarınıń tártipsiz qollanılıwınan) qutılıp, túsinikli hám logikalıq dúzimge iye bolıwın támiyinledi. Birinshi konstrukciya – Izbe-izlik. Bul eń ápiwayı forma: buyrıqlar joqarıdan tómenge qaray, birinen soń biri orınlanadı. Kompyuter birinshi qatardı oqıp orınlamastan, ekinshi qatarǵa ótpeydi. Bul deterministik tábiyattı támiyinleydi, yaǵnıy birdey baslanǵısh maǵlıwmatlar menen iske túsirilgen programma bárqulla birdey izbeizlikte isleydi (eger sırtqı faktorlar bolmasa). Izbe-izlik programmistke waqıt

aǵımın seziwge járdem beredi: "házir a ózgeriwshisiniń mánisi 5, biraq eki qatardan keyin ol 10 boladı".

Ekinshi konstrukciya – Tarmaqlanıw (shártli ótiw). if, else, switch yamasa case operatorları arqalı ámelge asırıladı. Bul konstrukciya programmaǵa "aqıl" qosadı. Programma yadtıń aǵımdaǵı halatın tekserip (mısalı, "paydalanıwshı jas pa?", "parol durıs pa?"), sáykes keletuǵın kod bólegin tańlaydı. Tarmaqlanıw bolmaǵanda, programmalar tek bir sızıqlı kalkulyator bolıp qalar edi. Imperativ stilde shártler kóbinese ózgeriwshilerdiń sol waqıttaǵı mánisine tiykarlanadı.

Úshinshi konstrukciya – Tákirarlanıw (Cikller). for, while, do-while operatorları. Cikller imperativ programmalastırıwdıń eń kúshli quralı bolıp, olar birdey háreketlerdi kóp márte orınlawǵa imkaniyat beredi. Cikller ádette qanday da bir "cikl esaplaǵıshı" (loop counter) yamasa logikalıq shárt penen basqarıladı. Bul jerde de yadtıń ózgeriwi zárúr rol oynaydı: hárbir iteraciyada esaplaǵısh ózgerip (increment), aqır-sońında cikl toqtaydı. Eger shárt qáte qoyılsa, programma "sheksiz cikl"ge túsip qalıwı múmkin, bul imperativ kodtıń tipik qátesi.

Proceduralıq programmalastırıw hám modullik

Imperativ programmalastırıwdıń keńeytilgen hám shólkemlesken túri – bul "Proceduralıq programmalastırıw". Programma kólemi úlkeygen sayın, mıńlaǵan qatar kodtı bir izbe-izlikte jazıw múmkin bolmay qaladı. Proceduralıq usıl kodtı logikalıq bóleklerge – proceduralarǵa (funkciyalarǵa, subprogrammalarǵa) bóliwdi usınıs etedi. Procedura – bul belgili bir kishi wazıypanı orınlawshı, atamaǵa iye bolǵan buyrıqlar jıyındısı. Mısalı, sortirovka_islew(), fayldı_oqıw(), esaplaw() sıyaqlı proceduralar. Proceduralıq stildiń tiykarǵı principleriniń biri – "Parametrler hám argumentler". Procedura tek ǵana izolyaciyadaǵı kod emes, ol sırtqı dúnyadan maǵlıwmat qabıllap (input), olar menen jumıs isley aladı. Bul kodtıń "Ulıwmalasıwın" (Generalization) hám "Qayta qollanılıwın" (Reusability) támiyinleydi. Bir márte jazılǵan proceduranı programmanıń qálegen jerinen shaqırıp (call), hár túrli maǵlıwmatlar menen qollanıwǵa boladı. Bul "Dóńgelekli qayta oylap tabıw" (Reinventing the wheel) mashqalasınan qutqaradı.

Proceduralıq programmalastırıwda "Kórinis tarawı" (Scope) túsinigi júdá áhmiyetli. Ózgeriwshiler "Global" (pútkil programmaǵa tiyisli) hám "Lokal" (tek bir procedura ishindegi) bolıp bólinedi. Proceduralıq stil lokal ózgeriwshilerdi qollanıwdı xoshametleydi, sebebi bul global maǵlıwmatlardıń kútilmegen jerden ózgerip ketiwiniń aldın aladı. Lokal ózgeriwshiler procedura iske túskende jaratılıp, ol jumısın tamamlaǵanda yaddan óshiriledi, bul yadtı effektiv basqarıwǵa járdem beredi.

Juwmaqlap aytqanda, imperativ-proceduralıq programmalastırıw – bul zamanagóy programmalastırıwdıń "álipbesi". C, Fortran, Pascal, Go sıyaqlı tiller usı principke tiykarlanǵan. Hátte Obyektke Baǵdarlanǵan Programmalastırıw (OBP) da proceduralıq stildiń logikalıq dawamı (tek proceduralar endi obyektler ishindegi "metodlar"ǵa aylanǵan). Bul paradigmanı túsinbey turıp, kompyuterdiń qalay isleytuǵının hám quramalı sistemalardı qalay proektlestiriw kerekligin tolıq

ańlaw múmkin emes. Ol anıqlıqtı, turaqlılıqtı hám apparatlıq támiynat penen tıǵız baylanıstı támiyinleydi.

BAQLAW SORAWLARÍ:

1.Imperativ programmalastırıw menen Deklarativ programmalastırıw arasındaǵı tiykarǵı filosofiyalıq ayırmashılıq nede?

2.Fon Neyman arxitekturası imperativ programmalastırıwdıń qaysı aspektlerine tásir etken?

3."Tayınlaw operatorı" (= yamasa :=) imperativ paradigmada qanday rol oynaydı hám onıń matematikalıq teńlikten ayırmashılıǵı nede?

4.Proceduralıq programmalastırıwdaǵı "Lokal" hám "Global" ózgeriwshilerdiń ayırmashılıǵı hám áhmiyeti qanday?

5.Imperativ programmalastırıwdaǵı "Sırtqı tásir" (Side effect) degende neni túsinesiz?

Соседние файлы в предмете Programmalastiriw paradigmalari