štrukturálne programovanienya - Metodika programovania je teraz dokončená. Štrukturálne programovanie výrazne prispelo k rozvoju programovania. Táto metóda, aj keď je široko používaná v praktickom programovaní, nestratila svoj význam pre široké spektrum úloh.

Štrukturálny prístup je založený na dvoch hlavných princípoch:

1 - vikoristannya procedurálne programovanie mov (Algol, Pascal, C);

2 - ide o sekvenčný rozklad algoritmu na riešenie problému smerom nadol.

Problémom je, že postupnosť akcií zostáva stagnujúca. Na začiatku je úloha formulovaná v zmysle input-output. To znamená, že údaje sa odosielajú na vstup programov. Program sa spustí a zobrazí výsledok.

Potom sa začína postupné rozkladanie všetkých úloh do jednoduchších záležitostí.

napríklad, Keďže potrebujeme napísať program na kontrolu správnosti adresy, napíšeme ho v nasledujúcom poradí:

Zobrazte adresu z databázy dostupných adries

Ak je výsledok overenia pozitívny,tak,

v opačnom prípade to zviažte.

Je zrejmé, že takýto záznam sa zobrazuje jeden po druhom v programe v ruskom jazyku. vysoký stupeň, Napríklad na Pascal.

program kontrolna_adresa(vstup, vystup); varan_address:Address; begin read_address(an_address);

if (check_database(an_address)) then

writelnTMIa "); inak

Tento program sa riadi postupom čítať_ adresu aby ste si prečítali adresu a postup skontrolovať_ databázy na kontrolu prečítanej adresy s informáciami v databáze. Teraz môžeme pokračovať v procese vytvárania programov pre postupy ofenzívy: čítanie adries a kontrola databázy.

Je veľmi dôležité, aby bolo možné program v ktorejkoľvek fáze overiť. Na tento účel je potrebné písať stub - procedúry, ktoré predstavujú vstup a výstup procedúr nižšej úrovne. (Vo väčšine programov sa dá použiť postup na čítanie adresy, ktorý namiesto zadávania z terminálu jednoducho zavedie nejakú fixačnú adresu, a postup na kontrolu databázy, ktorý do ničoho nezasahuje, len vráti pravdu .)

Program je skompilovaný so stubmi a je možné ho spustiť. Stuby vám umožňujú skontrolovať logiku vyššej úrovne pred implementáciou nižšej úrovne.

Štrukturálne programovanie jasne myslelo hodnotu modulárneho programu Počas vývoja veľkých projektov iné programovanie stále slabo podporovalo modularitu. Jedným zo spôsobov, ako štruktúrovať program, bolo skombinovať ho s podprogramom alebo funkciou. Sledovanie správnosti funkcie wiki, vrátane typu a počtu skutočných argumentov vo vzťahu k formálnym parametrom, ktoré sú v platnosti od štádia wiki (koncept prototypu funkcie sa objavil neskôr).

1.4. Predstavte históriu objektovo orientovaného prístupu k programovaniu

Objektovo orientované programovanie sa objavilo a rozšírilo vďaka rozpoznaniu troch hlavných problémov programovania.

1 - vývoj jazyka a metód programovania nedrží krok s rastúcimi potrebami v programoch. Jediným skutočným spôsobom, ako uspokojiť vaše potreby, bola metóda rozsiahlej vikorizácie už rozdelených, odskúšaných a vylepšených softvérová bezpečnosť.

2 - potreba zjednodušiť elektroinštaláciu a upraviť samostatné systémy. (Skutočnosť trvalej zmeny by mohla viesť k uznaniu systému ako normálneho duševného vývoja systému, a nie ako nemennej alebo nedostatočne prehľadnej organizácie práce distribútorov.) Bolo by potrebné zmeniť spôsob fungovania softvérových systémov. aby lokálne Úpravy nenarušili funkčnosť celého systému a bolo jednoduchšie vykonať zmeny správania systému

3 - to uľahčuje navrhovanie systémov. Nie všetky úlohy sú prístupné algoritmickému popisu a skôr algoritmickému rozkladu, čo si vyžaduje štrukturálne programovanie. Štruktúru programov bolo potrebné priblížiť štruktúre zadaných úloh a názvov sémantický vývoj medzi štruktúrou pridruženej úlohy a štruktúrou programu. Sémantické skúmanie prebieha v kontexte pochopenia toho, čo je jadrom našej práce, osobností a rozdielov. Preto je vzhľadom na nutnosť zaznamenať samotné rozhodnutie potrebné aj preklad niektorých pojmov do iných. (Všimnite si to pri preklade z jedného prirodzeného jazyka do druhého. Aj keď takéto slová neboli nikdy predtým pochopené v ruštine, slová vyzerajú ako maklér, offshore alebo iný investora Je to škoda, do programu nie je možné pridať slová.)

Taktiež zjednodušený dizajn, zrýchlený vývoj veľkého množstva hotových modulov a jednoduchá modifikácia sú tri hlavné výhody objektovo orientovaného programovania, ako ich propagujú jeho priaznivci.

Objektovo orientované programovanie poskytuje jednotný prístup k návrhu, implementácii a vývoju systému.

Vznik objektovo orientovanej metódy bol založený na najnovšom vývoji metód vývoja softvéru, ako aj na mnohých ďalších vedeckých objavoch.

Objektovo orientovaný prístup k návrhu systému inšpirovali nasledujúce pokročilé technológie:

1 - Vývoj výpočtovej techniky vrátane hardvérovej podpory základných konceptov operačných systémov a tvorby funkčne orientovaných systémov.

2 - Pokroky v metodológii programovania, vrátane modulárnych systémov a zapuzdrenia informácií.

3 - Teória vyvolávania a modelovania systémov správy databáz zaviedla do programovacieho objektu myšlienku výzvy na komunikáciu medzi objektmi.

4 - Výskum v oblasti umelej inteligencie umožnil lepšie pochopiť mechanizmy abstrakcie. Teória rámcov, ktorú Minsky navrhol na reprezentáciu skutočných objektov v systémoch rozpoznávania vzorov, dala silný impulz nielen systémom umelej inteligencie, ale aj mechanizmom abstrakcie v ľudskom programovaní.

5 - Rozvoj filozofie a teórie poznania. O objektovo orientovaných systémoch sa dá povedať veľa – komplexný pohľad na modelovanie reálneho sveta. Práve v tomto aspekte filozofia a teória poznania výrazne ovplyvnili objektový model. Dokonca aj starí Gréci videli svetlo vo vzhľade predmetov alebo procesov. Descartes vychádzal z predpokladu, že pre ľudí sa zdá prirodzené mať objektovo orientovaný pohľad na vonkajší svet. Minsky predpokladá, že rozum sa prejavuje ako interakcia činiteľov, ktorá sa nedá robiť popri myslení.

Objektovo orientovaný prístup k programovaniu podporujú programovacie jazyky ako Smoltalk, C++, Java atď. Filmy sú hlavnými nástrojmi objektovo orientovaného programovania, počas ich vývoja sa objavila väčšina týchto myšlienok, ktoré tvoria základ objektovo orientovanej metódy.

Prvým krokom k vytvoreniu objektového modelu je vzhľad abstraktných dátových typov. Je dôležité poznamenať, že prvou úplnou implementáciou abstraktných dátových typov v jazykovom programovaní je jazyk Simula.

Potom sa objavili ďalšie objektovo orientované jazyky (a budú sa objavovať), ktoré označujú aktuálny stav programovania. Najrozšírenejšie z nich boli C++, CLOS, Eiffel, Java.

bezpečnostný softvér

Štrukturálny prístup k programovaniu je metodológiou aj technológiou tvorby programov. V čase jeho implementácie to bolo zabezpečené zvýšením produktivity mnohých programátorov pri písaní a ladení programov; extrakcia programov, ktoré pozostávajú z modulov a príslušenstva pre ovládač; vytvorené tímom vývojárov; dokončená tvorba programov v úlohách ukončen.

Štruktúrované programovanie je prístup, v ktorom je prenos riadenia v programe založený na konštrukciách, ktoré umožňujú sekvenčný, inteligentný a iteračný prenos riadenia. Šialené odovzdanie kontroly na goto operátora sa bráni. Výsledkom je, že komplexný príkaz v programe, ktorý je kombináciou následných, mentálnych a cyklických operátorov, poskytuje iba jeden vstupný a výstupný bod, ktorý zabezpečuje, že programy sú rozdelené do úplne nezávislých fragmentov.

Štrukturálne programovanie je výsledkom stagnácie aplikačných metód pred imperatívnymi programami. Na tento účel sa používajú procedurálne orientované jazyky, v ktorých je možné popísať programy ako súbor procedúr. Procedúry je možné volať jednu po druhej a každú z nich môže vyvolať hlavný program, takže sa na ne dá pozerať aj ako na procedúru.

Štruktúra programu je individuálny spôsob, akým programátor vidí vzájomne súvisiace časti programu. Použitie racionálnej štruktúry rieši problém zložitosti vývoja, vývoja programu inteligentnými zákazníkmi a podporuje spoľahlivosť robotického programu s krátkou dobou testovania a vývoja.

Často je potrebné opakovať postupnosť inštrukcií na rôznych miestach programu. Aby programátor nemusel tráviť hodiny a hodiny kopírovaním týchto pokynov, mnohé programy dostávajú peniaze na organizáciu podprogramov. Program rozpoznáva schopnosť zvýrazniť sekvenciu inštrukcií viacerými informáciami a použiť ju ako skrátenú nahrávku na miestach, kde sa sekvencia zvykne skomplikovať. Podprogram je tiež séria inštrukcií, ktoré možno nájsť na niekoľkých miestach v programe. Podprogramy sa zvyčajne nazývajú procedúry a funkcie.

Opis podprogramov pozostáva z dvoch častí: nadpisov a častí. Predmet: Umiestnite ID podprogramu a zmeňte v ňom obsah. Telo je zostavené s jedným alebo viacerými pokynmi. Identifikátor programu sa používa pri skrátenom zázname na týchto miestach programov, kde je postupnosť pokynov konzistentná.

Procedúry a funkcie, nazývané podprogramy, sú jedným z mála základných nástrojov v umení programovania, ktoré môžu výrazne ovplyvniť štýl a plynulosť práce programátora.

Procedúra nie je len spôsob zhustenia programového textu, ale aj spôsob rozkladu programov na logicky nadväzujúce, uzavreté prvky, ktoré naznačujú jeho štruktúru. Rozdelenie programov na časti je nevyhnutné na pochopenie programov, najmä preto, že program je zložitý a vysoko dostupný na kontrolu prostredníctvom veľkého textu. Rozdelenie podprogramov je potrebné tak pre dokumentáciu, ako aj pre overenie programu. Preto je dôležité zabezpečiť konzistenciu inštrukcií vo forme podprogramov, pretože program je recenzovaný jednorazovo a preto je so skráteným textom programu vždy spojený motív.

Informácie o zmenách alebo názoroch, ktoré uspokoja argumenty, sú uvedené v záhlaví procedúry. O zložitosti procedúry, sedácii a jej úlohe pri štruktúrovaní programov je potrebné spomenúť ešte dva pojmy v programovaní. Dodatočné alebo lokálne zmeny vykonané uprostred procedúry neovplyvňujú zmysel mimo. Program je zrozumiteľnejší, pretože jasne definuje rozsah takýchto zmien. Procedúra funguje ako prirodzená textová jednotka, ktorá ďalej vymedzuje oblasť, kde sa vykonávajú lokálne zmeny.

Najzložitejšia programovacia taktika spočíva v rozvrhnutom procese okolo akcie:

  • - funkčný popis podfunkcií;
  • - ďalšie programy okrem pokynov.

Na koži takéhoto rozkladu je potrebné pamätať na to, že rozlúštenie pokynov vedie k dokončeniu konečnej úlohy, postupnosť akcií je primeraná a umožňuje zrušiť pokyny v akomkoľvek zmysle najbližšie k jazyku v ktoré sa program bude realizovať. To zahŕňa možnosť priameho vkladania od začiatku úlohy až po koniec programu, ktorý musí ísť do koncového vrecka. Fáza rozkladu je sprevádzaná formulovaním súkromných podprogramov. V tomto procese môžete zistiť, že dekompozícia nemá znamenať, že pre podprogramy je ťažké odhaliť použitie zjavných funkcií. V tomto prípade by sa mala znova pozrieť na jednu alebo viac nábežných hrán rozkladu.

Ak pracujeme v postupnom rozklade a hodinovom vývoji a detailovaní programu vkladania do glibu, tak túto metódu na najvyššej úrovni možno charakterizovať ako zostupnú (zhora nadol). A nakoniec, takýto prístup možno dosiahnuť až do konca úlohy, ak je program spočiatku zapojený do svojho neorganizovaného výpočtového stroja alebo programovania, potom zhromažďuje kroky postupnosti inštrukcií do elementárnych a postupov typických pre danú úlohu. Potom sa základné postupy porovnávajú s ďalšou úrovňou hierarchie postupov. Tento spôsob prechodu od primitívnych strojových príkazov k nevyhnutnej implementácii programu sa nazýva odchádzajúci (zdola nahor).

V praxi nikdy nie je možné rozvíjať programy striktne jedným smerom – z kopca alebo z kopca. Pri konštrukcii nových algoritmov sa však stáva dominantnejšou nižšia metóda. Na druhej strane, pri prispôsobovaní programov ďalším zmenám je často zvýhodnená pôvodná metóda.

Obidva spôsoby umožňujú vývoj programov, ktoré sú mocenskou štruktúrou – mocou, ktorá ich rozdeľuje na amorfné lineárne sekvencie inštrukcií alebo strojových príkazov. Je dôležité revidovať jazyk vo vonkajšom svete prispôsobením tejto štruktúry. Iba zvyškový vzhľad odstráneného programu umožňuje stanoviť metódy systematického overovania.

Ak je program rozdelený na podprogramy, potom na prezentovanie výsledkov a argumentov je často potrebné zaviesť nové zmeny a tak vytvoriť spojenia medzi podprogramami. Takéto premenlivé stopy sa zavádzajú a opisujú v štádiu vývoja, v ktorom sú potrebné. Podrobný popis procesu môže byť navyše doplnený podrobným popisom štruktúry vybraných zmien. Tiež je našou zodpovednosťou zobraziť hierarchickú štruktúru údajov. To ukazuje, aký dôležitý je koncept procedúry, lokalita procedúr a dát a štruktúra dát pri vývoji podľa jednotlivých programov.

Návrh začína fixáciou vonkajších špecifikácií. Na základe externých špecifikácií sa vytvorí popis interného algoritmu programu spojený so štruktúrou interných dát. Ďalšie veľké funkcie sú rozdelené do podfunkcií až do veľkosti modulu - podprogramy na programovanie, ktoré poskytujú špeciálne doplnkové výhody.

Základným konceptom a funkčným prvkom technológie štruktúrovaného programovania je modul.

Modul je podprogram, ale je navrhnutý v súlade s platnými pravidlami:

  • 1. modul má jeden vstup a jeden výstup a striktne jednoznačnú funkciu, ktorá je opísaná jednoduchým rozšírením výroku prirodzeného (ruského) jazyka alebo výrokom bez prídavného mena;
  • 2. modul je zodpovedný za zabezpečenie kompilácie nezávisle od ostatných modulov „zabudnutím“ všetkých interných hodnôt modulov;
  • 3. modul môže volať ďalšie moduly pod rovnakými menami;
  • 4. Dobrý modul nevyžaduje kombináciu globálnych zmien s iným modulom, pretože potom je dôležité vybrať modul, ktorý obsahuje dáta. Pri výbere globálnych zmien je potrebné jasne komentovať tie moduly, ktoré je možné len čítať, a tie moduly, ktoré môžu meniť údaje;
  • 5. Modul je kódovaný iba štandardnými štruktúrami a je starostlivo komentovaný.

Pochopenie štruktúry programu zahŕňa sklad a popis spojení všetkých modulov, ktoré implementujú nezávislé funkcie programu a popis dátových nosičov, ktoré sa podieľajú na výmene medzi susednými podprogramami a sú zadávané a odstraňované z externých zariadení.

V každom zložitom, veľkom programe je potrebné použiť špeciálne techniky na vytvorenie racionálnej programovej štruktúry. Racionálna štruktúra programu zaisťuje veľmi krátky čas programovania a veľmi krátky čas záväzkov a testovacích podmienok, čo tiež zásadne znižuje náklady na vývoj.

Zoradenie modulov môže byť manuálne reprezentované hierarchickým diagramom. Hierarchický diagram odráža len poradie podprogramov, ale nie poradie ich volaní alebo fungovanie programov.

Pred vytvorením hierarchickej schémy je potrebné kompletne popísať externé špecifikácie programov a funkčný popis programov spolu s popisom striedajúcich sa dátových nosičov. Za zmienku stojí najmä potreba pridať hierarchiu typov dátových štruktúr a ich komentovanie. Dekompozícia programov na podprogramy sa riadi zásadou od všeobecného po konkrétne, podrobnejšie. Proces vývoja funkčného popisu a vývoja hierarchickej schémy je iteratívny. vyberte najkratšia možnosťє bohaté na kritériá.

  • - modularita programu;
  • - štrukturálne kódovanie programových modulov;
  • - klesajúci dizajn racionálnej hierarchie programových modulov;
  • - znížená implementácia programov s vikoristannými stubmi;
  • - plánovanie rozvoja vo všetkých fázach projektu;
  • - dôkladná štrukturálna kontrola softvérových komplexov vo všeobecnosti a ich skladových modulov.

Modularita programu je charakteristická tým, že celý program je tvorený modulmi. Každá zmysluplná skupina modulov je uložená v nasledujúcich súboroch. Napríklad vo viacerých súboroch (Unit) môže byť modul textového editora a modul hierarchického menu.

Štrukturálne kódovanie programových modulov spočíva v špeciálnom dizajne ich textov. Modul má jasne viditeľný názov s komentárom, ktorý vysvetľuje funkčný účel modulu. Názvy dôležitých činov budú mnemotechnické pomôcky. Podstata zmien a poradie umiestnenia informácií v nich bude vysvetlené komentármi, kódom kódovacieho modulu s názvami typických algoritmických štruktúr a krokmi prístupu.

Pokles v návrhu racionálnej hierarchie programových modulov sa prejavuje v prvých moduloch najvyššej úrovne hierarchie a potom v nižších moduloch.

Najnižšia úroveň implementácie programu spočíva v prvej implementácii skupiny modulov vyšších úrovní, ktoré sa nazývajú jadro programu, a potom sa postupne implementujú moduly nižších úrovní podľa plánu. Všetky denné moduly, ktoré sú potrebné na prepojenie programov, sú vybavené stubmi.

Efektívne plánovanie vo všetkých fázach projektu vám umožňuje spočiatku ho naplánovať ako sklad etáp a triviálnosť všetkých etáp práce. Toto plánovanie umožňuje dokončiť vývoj úloh v termíne pri stanovení nákladov na vývoj.

Dôkladná kontrola konštrukcie je v pozadí plánovaného plánu testovania, ktorý pokrýva obdobie vývoja externých špecifikácií, ako aj interných špecifikácií a ich úpravy počas implementačného obdobia, až po počiatočné testovanie. Skladové programové moduly sa testujú tak pred napísaním kódu, ako aj pri offline testovaní, kontrole ich výstupného kódu a pri testovaní modulu pripojeného k jadru.

Pri štruktúrovanom programovaní je program hlavne implementovaný (kompilovaný a testovaný) smerom nadol. Na začiatku je jadro napísané v 20-30 moduloch. Na začatie testovania sú všetky moduly nižšej úrovne nahradené pahýľmi. Po dokončení testovania jadra sú stuby nahradené novými hotovými modulmi, ak program ešte nie je dokončený, potom sú pre úspešné prepojenie potrebné všetky nové stuby všetkých modulov. Potom sa testuje zostavený diel atď.

Pahýľ je rozloženie modulu. Najjednoduchší stub je program alebo funkcia bez akcie. Skladací konektor môže zobrazovať informácie o tých, ktorí vyrobili taký a taký modul. Ešte viac skladacích stubov môže poskytnúť výstup vstupných informácií do nejakého konfiguračného súboru. Zistili sme, že ešte viac skladacích zástrčiek vydáva testovacie informácie, ktoré sú potrebné na kontrolu už implementovaných modulov. Písanie útržkov je úlohou robota, ale riadi sa duchom dizajnéra, aby bol maximálny počet útržkov jednoduchý a testovanie už zostavenej časti programu efektívnejšie.

Návrhu programovej štruktúry predchádza vývoj nových funkčných popisov. Funkčné popisy (algoritmy a programy), aby sa dosiahla ich implementácia, je potrebné rozložiť od všeobecných ku špecifickým. Musia obsahovať aj opisy foriem prezentácie a opis interných údajov.

Pre začiatočníkov ide o prvú verziu hierarchickej schémy, ktorá odstraňuje spôsob jednoduchého delenia funkcií programu na podfunkcie s určenými zmenami potrebnými na umiestnenie dát v rôznych fázach spracovania. Táto možnosť nie je optimálna a na zlepšenie topológie obvodu sú potrebné iterácie návrhu.

Nová verzia sa zhoduje s predchádzajúcou verziou podľa tu popísaných kritérií. Generovanie možností sa spustí, keď ďalšie pridávanie nie je možné.

Fond kritérií pre optimalitu hierarchických schém je nevyhnutnou pomôckou pri optimalizácii hierarchických schém a pozostáva z nasledujúcich kritérií:

  • - doplnenie špecifických funkcií;
  • - možnosť rýchlej a lacnej aktualizácie o nové, predtým nešpecifikované funkcie;
  • - viditeľnosť programu pre projektanta skladových dielov;
  • - maximálna nezávislosť na dátach rôznych častí programu;
  • - možnosť prepojenia programov s veľkou bohatou hierarchickou schémou so špecifickým editorom odkazov (linker). Hneď ako začnete pracovať na novom programe, je takmer príliš zlé ukončiť EOM jeho model vo forme prázdnych modulov, aby ste nepodnikli žiadne kroky;
  • - dostupnosť RAM. Tu sú možnosti s popisom obzvlášť štruktúrovaných statických a dynamických zmien na rôznych úrovniach hierarchickej schémy. Overenie spokojnosti s týmto kritériom zahŕňa použitie rôznych strojových experimentov;
  • - posúdenie prílevu topológie hierarchických okruhov pre plynulosť programov s rôznymi prekrytiami ( dynamická príťažlivosť programy) a mechanizmus stránkovania stránok pri vývoji programov, ktoré nie je možné úplne umiestniť do pamäte RAM;
  • - množstvo rôznych modulov na kombinovanie podobných činností. V ideálnom prípade jeden a ten istý modul reaguje na rôzne úrovne hierarchických schém;
  • - úspechy pri realizácii programu takého ohraničeného harmonogramu a práce pre tím programátorov, ktorý zabezpečí rovnakú pozornosť tímu ku kľúčovým termínom projektu;
  • - všetky náklady na testovanie už zostaveného jadra programu sa znižujú podľa kľúčových termínov harmonogramu implementácie. Vyznačuje sa jednoduchosťou výberu zástrčiek a intenzitou testovania so všetkými výpočtovými cestami modulov. To sa dosiahne prvou implementáciou nadväzujúcich modulov zavedených a výstupných programami s podriadením implementácie iných prvkov hierarchickej schémy. Suma vynaložená na testovanie predstavuje približne 60 % celkových nákladov projektu. Dobrá schéma hierarchie zníži náklady na testovanie v porovnaní s prvou možnosťou 2-5 krát alebo viac;
  • - výhodou tohto projektu je, že má väčší počet modulov a knižníc rozdelených do skorších projektov s minimálnou námahou pri príprave nových častí;
  • - ďalšie rozdelenie modulov na zostavené súbory, programy a knižnice;
  • - akumulácia hotových modulov a knižníc modulov na výber vo všetkých nových vývojoch.

Na záver možno pochopiť, že štrukturálny prístup k programovaniu je prijatý a existuje veľa metód na navrhovanie skladacích technických systémov. Medzi nimi je blokový prístup k návrhu skladacích systémov, postupný vývoj programov na realizáciu návrhu, metód hodnotenia a plánovania.

funkčný prístup pred programovaním.

Najprv za všetko, vráťme sa do histórie základného matematického výskumu, ktorý viedol k objaveniu funkčný prístup pred programovaním.

Hodina objavenia sa teoretických robotov, ako je príprava funkčný prístup, Pochádza z 20. - 30. hornín XX storočia. Ako sme sa v priebehu rokov zmenili, teória často výrazne prevyšuje prax programovania a najdôležitejšie roboty, ktoré tvorili matematický základ tohto prístupu, boli napísané dávno pred príchodom počítačov a programovania, ktoré by túto teóriu potenciálne mohli realizovať.

Pokiaľ ide o prvú implementáciu, objavila sa v 50. rokoch 20. storočia v podobe jazyka LISP, o ktorom bude nasledovať.

To považujeme za najdôležitejšiu vlastnosť funkčný prístup Toto je situácia, že aj keď je program rozdelený na funkčné programovanie, možno ho považovať za funkciu, argumenty, ktoré sú možno tiež funkciami.

funkčný prístup porodila celú rodinu movov, ktorých predkom, ako už bolo zamýšľané, sa stal jazykové programovanie LISP. Neskôr, v 70-tych rokoch, bola rozdelená prvá verzia jazyka ML, z ktorej sa neskôr vyvinul SML, ako aj množstvo ďalších jazykov. Medzi nimi sme možno aj my sami „mladí“ – výtvory len nedávno, v 90. rokoch, od Haskella.

Dôležitou výhodou implementácie nášho funkčné programovanieє automatizované sekcia dynamickej pamäte počítač na uloženie údajov. V tomto prípade program eliminuje potrebu kontroly údajov a v prípade potreby môže funkciu spustiť "Smittove zbierky"- vymazanie pamäte od týchto údajov, aby ich program už nepotreboval.

Skladacie programy pre funkčný prístup Budeme hľadať ďalšie agregačné funkcie. V tomto prípade je text programu funkciou a za funkcie možno považovať aj jeho argumenty. Týmto spôsobom sa opakované použitie kódu redukuje na volanie predtým opísanej funkcie, ktorej štruktúra je zahrnutá pod procedúru imperatívny jazyk,Matematicky jasné.

Keďže funkcia je prirodzený formalizmus pre naše funkcionálne programovanie, implementácia rôznych aspektov programovania spojených s funkciami bude celkom jednoduchá. Intuitívne vidíme písmo rekurzívne funkcie, Toto je funkcia, ktorá sa v duchu argumentu volá. Implementácia spracovania je prirodzená rekurzívne dátové štruktúry.

implementačné detaily mechanizmus vytvárania obrazu Funkčné programovacie jazyky ako ML a Haskell sú dobrými kandidátmi na symbolické spracovanie.

Prirodzene, existujú určité nedostatky vo funkčnom programovaní.

Často sú pripisované nelineárnej štruktúre programov a zjavne nízkej úrovni efektívnosť implementácie. Prvý však nie je dostatočne úplný na to, aby bol subjektívny, a druhý úspešne dokončuje súčasné implementácie, zocrem, nízke zostávajúce prekladače jazyka SML, vrátane kompilátora pre framework Microsoft. NET.

Pre profesionálny vývoj softvéru pomocou funkcionálneho programovacieho jazyka je potrebné hlboko pochopiť podstatu funkcie. Štúdiu zákonitostí a znakov charakteru funkcie sa venujú najmä prednášky 2 - 12 tohto kurzu.

Upozorňujeme, že výraz „funkcia“ v matematickej formalizácii a implementácii softvéru podlieha rôznym konceptom.

takže, matematická funkcia f oblasť hodnôt A a oblasť hodnôt B sa nazývajú násobnosť párov usporiadania

ako sa vám páči

b 1 = b 2.

V tvojom srdci, funkciu v programe sa nazýva konštrukcia jazyka, ktorá popisuje pravidlá premeny argumentu (tzv. skutočný parameter) na výsledok.

Formalizovať koncept"

Prednáška 1. Objektovo orientované programovanie.

Objektovo orientované programovanie (OOP) je dominantným štýlom vytvárania skvelých programov. Hlavné etapy vývoja štrukturálneho prístupu k programovaniu pomáhajú lepšie pochopiť vzájomné prepojeniaštrukturálny prístup, modulárne programovanie a OOP.

8.1. Štrukturálny prístup k programovaniu.

Tvorba programu sa však do konca dňa zmenila len málo. Vďaka zvýšenému programu domáceho maznáčika by kreativita tohto výtvoru mohla rásť nelineárne. Hodina tvorby skladacích programov je úmerná štvorcu alebo kocke vo vzťahu k programu. Preto je jedným z hlavných faktorov rozvoj programovacej technológie, pokles produktivity návrhu a tvorby softvérových produktov (PP) a boj proti zložitosti programovania.

Ďalšie faktory, ktoré ovplyvňujú vývoj metód navrhovania a konštrukcie DPS sú:

Zmena architektúry výpočtových zariadení (CS) v záujme pokroku
produktivita, spoľahlivosť;

Zjednodušená interakcia medzi zákazníkmi a lietadlami a inteligencia lietadiel.
Počínanie dvoch zostávajúcich funkcionárov súvisí s narastajúcou zložitosťou softvéru lietadla. skladateľnosť predstavuje neviditeľnú silu programovania a programov, as sa prejavuje v hodine a vykonaní vytvoreného programu, v závislosti od textu programu, charakteristika jeho logickej štruktúry, ktorá je špecifikovaná operátormi prenosu riadenia (odinštalácia, cykly, volania podprogramu).

K dispozícii je 5 možností programovania:

Môžete rozprávať príbeh;

Jazykové programovanie;

program Seredovishche Vikonannya;

Technologický proces kolektívneho vývoja a tvorby softvéru;

Usilujte sa o univerzálnosť a efektívnosť algoritmov a dátových typov.

Pre zložitosť to nie je možné dosiahnuť, ale je možné zmeniť charakteristiky jej prejavu v spôsobe riadenia alebo organizácie.

Program je široko vikorizovanýzákladným princípomovládanie skladacích systémov, ktoré je ľuďom známe už od staroveku - Devide et impera (Rozdіlyay i volodaryuy, lat.) A pri vývoji a navrhovaní akýchkoľvek skladacích technických systémov je to ťažké. Na základe prvej časti tohto princípu pri navrhovaní skladacieho softvérového systému,algoritmický rozkladzadanú úlohu.

Tento rozklad sa používa na odhalenie, že vzhľad vzájomne interagujúcich malých subsystémov (modulov alebo blokov) možno rozdeliť na prospech bez ohľadu na ostatných. Pri vývoji systému rozdeleného na podsystémy je potrebné mať na pamäti informácie o oveľa menšom počte častí, ktoré pri takejto podsekcii nie sú potrebné.

Objednávka s termínom rozklad, výraz je tiež vikorizovanýštruktúrovanie problémy, riadenie alebo programy. Nápady na programy na zjavne nezávislých veľkých častiach, ako je implementácia jednoduchých procedúr a funkcií a vytvorenie jednoduchej hierarchie prepojení, sa premietli doštrukturálny prístuppred vývojom a tvorbou softvérových prvkov. Programovaný štrukturálny prístup vyšiel z počiatkov prvých podprogramov a funkcií napísaných vprocedurálne orientovaný štýl.Tento štýl je založený na pravidle: identifikujte premenné a konštanty, ktoré je potrebné uložiť do pamäte počítača, a popíšte algoritmus na ich spracovanie.

Teoretický návrh štrukturálneho prístupu pochádza zo začiatku 70. rokov v práci teoretikov a praktikov programovania (A.P. Yershova, E. Yodana, N.Virta). To znamená vznik štruktúrovaného programovania, v ktorom bola nájdená myšlienka organizácie programovej štruktúry.štrukturálne neprogramovanéZameriava sa na komplexné programy, ktorých štruktúra je blízka „stromu“ operátorov alebo blokov. Použitie stromovej štruktúry ako akéhosi štandardu sa vysvetľuje skutočnosťou, že ide o jednoduchú štruktúru na analýzu a implementáciu.

Ďalší vývoj štrukturálneho prístupu viedol kmodulárne programovanie.Vono sprostredkúva dekompozíciu aplikovanej úlohy vo forme hierarchie vzájomných modulov alebo programov. Modul, ktorý obsahuje dáta a postupy ich spracovania, vhodný pre autonómny vývoj a tvorbu. Špecializácia modulov na typy spracovania a prítomnosť týchto typov dát v nich je silou, ktorá predstavuje spojenie medzi modulárnym programovaním a OOP.

Najdôležitejšie nástroje vývoja softvéru, ktoré odrážajú prakticky všetky aspekty evolúcie, súprogramovanie filmov.

Naše programovanie sa od samého začiatku zameriava na počítač a obsahuje súbor dátových typov, operátorov, operácií, funkcií, ktoré je možné jednoducho preniesť do príkazov na správu hardvéru a softvéru počítača. V tomto prípade je potrebné maximalizovať efektivitu prekladu jazykových propozícií do strojového kódu minimalizáciou potrebnej pamäte, času písania programu a konštrukcie prekladača. Zároveň sa naše programovanie zameriava na programátora a poskytuje nástroje na modelovanie objektov, ich právomocí a správania v najdôležitejších aplikovaných problémoch v danej tematickej oblasti vo forme programu.

Rozvoj vedy na priame zlepšenie efektívnosti vývoja aplikačných programov viedol k týmto úrovniam:

Nízka rebarbora (strojovo orientované filmy – filmy v assembleri),

Vysoká rebarbora (procedurálne orientované filmy: FORTRAN, ALGOL,

PL/1, Pascal),

Rozsah úloh (jazyk orientovaný na problém - SQL).

Zadávanie typov údajov znamenal ďalší priamy vývoj v technológii programovania. Typovanie je určené ako na zjednodušenie poskladaného programu, tak aj na automatizáciu zisťovania dátových chýb vo forme operandov a skutočných parametrov pri volaní funkcie.

Vikoristannya štrukturálne dátové typyumožňuje v prvom rade zjednodušiť prácu algoritmov pri vytváraní dátových štruktúr aplikačnej úlohy a dát, ktoré sú spracovávané funkciami programových modulov, a inými slovami, urýchliť rutinnú prácu programu pri kódovaní do algoritmus spracovania.

Výsledkom formalizácie pojmu „typ údajov“ je nóbl objektov (C++), ktoré môžu obsahovať prvky nielen rovnakého typu, ale aj ich metód spracovania (funkcií).

Vo svete sa tak vyvinula programovacia technológia ako v programoch, tak aj v dátových typoch, štruktúra súvisiacich aplikačných úloh sa čoraz viac primerane diferencovala a vyvinula sa konzistentná integrácia dát a programov do modulov. Súčasne bolo aktualizované programovanie CIM MOVIE oddelenými spôsobmi , Nevyhnutné pre popíšem podobné štruktúry. Vývoj myšlienok abstrakcie a modularity viedol k objaveniu sa v softvériobjektívny prístup.

Ľudia myslia v obrazoch a predmetoch, poznajú ich silu a manipulujú s nimi, keď sa naučili ich piesne. Starovekí Gréci mali predstavu, že svetlo možno vidieť vo vzhľade predmetov a povrchov. Ľudia začnú kričaťobjektovo orientovanýpozri sa na svet. Takže pri pomyslení na telefónny prístroj si človek môže všimnúť nielen jeho tvar a farbu, ale aj schopnosť telefonovať, charakter zvuku zvonenia a množstvo ďalších schopností (v závislosti od technických znalostí a predstavivosť).

Naše programovanie vám umožňuje opísať sily modelovaných objektov a poradie manipulácie s objektmi alebo poradie ich interakcií v závislosti od myslenia daného problému. Prvé jazykové programy boli orientované na matematické objekty a výpočtový model. Preto zahŕňali také konštrukcie ako premenné, konštantné, funkčné, formálne a skutočné parametre. Programy prezentovali svoje programy z hľadiska vzájomne prepojených funkcií a modulov. Povaha programovania bola procedurálne orientovaná a veľký rešpekt bol venovaný postupnosti akcií s údajmi. Zrejme takéto programovanie je ako FORTRAN, PL -1, S názvom procedurálne orientované.

Tieto dáta a podprogramy boli skombinované do modulu v súlade s logikou projektantov, čím sa vytvorili komplexné softvérové ​​systémy pre rôzne oblasti ich implementácie. Logika integrácie v module sa považovala za nízke faktory, vrátanesila predmetnej oblasti: Dáta a podprogramy ich spracovania, ktoré zodpovedajú prvej triede objektov v predmetnej oblasti, boli spojené do modulu. Modul na spracovanie radov funkcií teda zobrazuje hlavné operácie s riadkami: spájanie, vyrovnávanie, kopírovanie, výpočet posledného riadku.

Vývoj myšlienky modulárneho programovania zahŕňa vytváranie doménových objektov (objektové modelovanie) softvérovými konštruktmi, ktoré sú tzv. predmety, typy objektov alebo podľa tried (Modelovanie predmetov). Objekty modelu obsahujú údaje a funkcie, ktoré popisujú silu modelovaných objektov. Dáta teda môžu zobrazovať významné alebo zložité charakteristiky (hmotnosť, hmotnosť, hmotnosť, cena) a funkcie môžu predstavovať behaviorálne alebo prevádzkové sily (zmena hmotnosti, výpočet hmotnosti, cena inštalácie). V objektovo orientovanom prístupe je teda integrácia údajov a funkcie ich spracovania určené štruktúrou predmetnej oblasti, teda množinou objektov, ktoré sú modelované, a ich interakciou v rámci súvisiacej úlohy. .

Modelovací objekt sa teraz ľuďom javí ako jediný, celý objekt, hoci môže byť vytvorený z častí alebo iných objektov. Úplná identifikácia objektu z hľadiska vzájomne závislého súhrnu jeho právomocí alebo komponentovzákladný princípobjektívny prístup.

Objektívny prístup sa v programe začal rozvíjať od 70. rokov ( Smalltalk, CLOS, Ada ). Tieto jazyky sa nazývajú cieľ. Hierarchická klasifikácia objekty a úpadok autority a najsilnejšie myšlienky, ktoré sa objavili v 80. rokoch objektovo orientovaného prístupu. Jedným z dôvodov narastajúceho výskytu objektovo orientovaného programovacieho štýlu je jeho inherentná všestrannosť oproti procedurálne orientovanému štýlu.

8.2. Koncepcie objektovo orientovaného programovania.

OOP je tretím veľkým stupňom (po štrukturálnom a modulárnom programovaní) v procese vývoja štruktúrovaného prístupu. Skvelé softvérové ​​systémy vytvorené v polovici 70-tych rokov ukázali, že v rámci procedurálne orientovaného štýlu neprináša zástupný štrukturálny prístup želaný efekt. Svet má čoraz väčší počet komponentov v softvérových systémoch počet milostí , Spojené s nesprávnymi postupmi a postupmi nesprávne Vzťahy medzi komponentmi začali nelineárne narastať. Postupne sa aktualizovali podmienky uvedenia týchto systémov do prevádzky. Zmeniť počet takýchto úprav a odpustiť ich objav mohol dovoliťalgoritmický rozklad, ktorá sa zameriava na „prírodné“ prvky (komponenty alebo predmety) v rámci danej úlohy. V tejto fáze, vo fáze kódovania a vývoja, bolo cítiť vytváranie dizajnových programov s modelovanými objektmi.

Tento rozklad sa nazývarozsah úlohy alebo predmetnej oblasti. Na popísanie výsledkov objektovo orientovanej analýzy a následnej syntézy programu sú potrebné adekvátne metódy založené na rovnakých princípoch.

Základné pojmy OOP: objekt alebo trieda v C++, čo je možné vidieť z dvoch pozícií. V prvom rade z pozície predmetnej oblasti: trieda Zodpovedá charakteristickému charakteristickému predmetu tohto galusu. Iným spôsobom, z pozície programovacej technológie, ktorá implementuje tento typ: „trieda“ v OOP je reťazec programovej štruktúry, ktorú vedú tri najdôležitejšie autority:

zapuzdrenie;

relaxácia;

Polymorfizmus.

Tieto právomoci určuje programátor a zabezpečuje ich objektovo orientované programovanie (prekladač, ktorý tento proces implementuje). smrad je povolený primerane predstavujú štruktúru predmetnej oblasti.

Objekty a triedy.

Pojem objektov je určený na modelovanie (reprezentáciu) na pochopenie predmetnej oblasti vo forme programových celkov, ktoré kombinujú atribúty a správanie (stav a fungovanie) rôznych predmetných objektov regiónu.

trieda objektov je programová štruktúra, v ktorej sú dáta a funkcie vytvorené ako celok a predstavujú silu a správanie celku v rámci modelovanej tematickej oblasti. Ako modul, v ktorom ukladanie dát a funkcií podlieha menšiemu počtu nezmyselných hraníc, vzhľadom na prítomnosť iba tých dát a funkcií, ktoré sú potrebné pre popis autorít a správania sa typu objektového spevu.

Objekty sú viditeľné v procese analýzy predmetnej oblasti s rôznymi myšlienkamiabstrakcietyp nesieťového a klasifikácia natívne predmety. Výsledkom objektovo orientovanej analýzy jetriedy objektov,ktorí sú prítomní alebo v budúcnosti môžu byť prítomní v priestore zadanej úlohy a tvoriťhierarchie tried,slúžiť pred divákompád stromov kúpeľ úradov.

Na základe analýzy leteckej techniky je teda možné vidieť triedu objektov Letak. V tomto prípade sme abstrahovali od takých právomocí ako: tvar krídla, hĺbka trupu, použitie materiálov pri konštrukcii, pretvarovanie krídla. Na počet hlavných oprávnení na triedu objektov Letak Môžete zahrnúť: rýchlosť podlahy, zdvih krídla, typ motora, výhľad, výšku podlahy, funkčné účely.

Trieda objektov sa vyznačuje jedinečným súborom právomocí a sú jej priradené jedinečné právomoci v závislosti od typu údajov. V kontexte dôležitých programov, vikorystsya predmety trieda spevu. Vytvorené objekty patriace do tej istej triedy možno rozdeliť na významy (úrovne prejavu) moci a rozdeliť podľa mien.

Zapuzdrenie síl predmetov.

Zapuzdrenie („Umiestnenie v Obolontsia“) je integrácia a lokalizácia v rámci objektu ako celku údajov a funkcií, ktoré tieto údaje spracúvajú. Celkovo vzaté, zápach predstavuje silu objektu.

V C++ sa volajú údaje triedy a objektuprvky pocty buď poliami, funkciami alebo metódami funkčných prvkov.

Prístup k poliam a metódam objektu sa dosiahne prostredníctvom názvu objektu a súvisiacich názvov polí a metód po dodatočnej operácii výberu „.“ і "->". To umožňuje v maximálnej miere izolovať polohu objektu od vonkajšieho okraja, t.j. ohraničiť a trvale kontrolovať prístup k prvkom objektu. Výsledkom je, že nahradenie alebo modifikácia polí a metód zapuzdrených v objekte vo všeobecnosti nemá za následok negatívne kontrolné účinky na program ako celok. Ak je potrebné vložiť názov objektu do tela popisného objektu v C++, použije sa vyhradené slovo. toto, toto ako súčasť objektu je to špeciálne synonymum pre názov objektu - indikátor pre objekt.

Je ešte potrebné zapuzdrenie? Pravda je jednoduchá, sme ľudia. A ľudia majú moc milovať. Nikto nie je poistený proti opravám. Statické zapuzdrenie je v dôsledku toho opevnenie, ktoré chráni údaje, ktoré patria k objektu, v prípade možných kompromisov, ktoré môžu nastať pri priamom prístupe k týmto údajom. Tento princíp navyše často pomáha pri lokalizácii Možné milosrdenstvo v kóde programu. A výrazne to zjednoduší proces vyhľadávania a opravy týchto zmien.

Dá sa povedať, že zapuzdrenie má dôsledky na získavanie údajov ( skrytie údajov ), čo vám umožňuje ukradnúť tieto údaje.

A teraz význam, ktorý presne znamená podstatu zapuzdrenia:

Meniaci sa stav objektu prijatý z vonkajšieho sveta. Zmena stavu objektu (vaša zmena) je možná len pomocou vašej metódy (operácie).

Prečo je to také dôležité? Tento princíp umožňuje chrániť premenlivý stav objektu pred nesprávnym.

Toto starostlivo rozlišuje medzi možnosťou uvedenia predmetu do neprijateľného stavu a neoprávneným zničením predmetu.

Aby sme ilustrovali vyššie uvedený postulát, pozrime sa na zadok.

Zistite, že vaše auto neštartuje a vy, žiaľ, nie ste mechanik a o autách toho veľa neviete. Otvoríte kapotu a začnete vibrovať všetky hadice, ktoré treba skrútiť atď. Je dobré, že ste si pamätali, čo, kde a ako ste krútili a krútili. Čo takto? Alebo je vaša strelka úrovne ohňa na nule a viete, že stále máte oheň a použite uhorky v strede plynovej nádrže na kontrolu úrovne ohňa. Aký druh dedičstva vás môže prenasledovať? V čo najkratšom čase prídete o život vy aj vaše auto, no vy budete ušetrení. Podobne je to s našimi objektmi, ktoré môžu byť vysoko skladacie a chcete s nimi manipulovať bez toho, aby ste odhalili ich vnútornú organizáciu.

Aby ste sa o auto postarali bez toho, aby ste poškodili seba i samotné auto Škoda, je potrebné požiadať o kvalifikovaných autozámočníkov, ktorých plášte sú starostlivo kontrolované len v najdôležitejšej časti vášho auta. Ak nám oznámite, že kontrolka v priestore pre cestujúcich nesvieti, tak oddelenie elektroinštalácie vozidla vymení žiarovku. V našom zariadení je to podobné. Є "master" - metódy, ktoré sa "špecializujú" na spevácke oblasti, ale poznajú aj vašu oblasť čuchu. A čo je najdôležitejšie, vedia zmeniť telo predmetu tak, aby mu neublížil. Opis postulátu odráža jednoduchú každodennú múdrosť: ak neviete, neviete, ako zarobiť peniaze, opýtajte sa niekoho, kto vie, ako ich správne zarobiť. Bohužiaľ, každému je toto pravidlo nepríjemné. V OOP sa toto pravidlo interpretuje ako zákon: „Objekt neprijíma amatérov. Stav objektu môžu na akejkoľvek úrovni zmeniť iba podvodníci.“ Môžete povedať, že tento princíp nie je v programovaní ani zďaleka nový.

Pomenovanie tried, dátových prvkov a metód má v OOP veľký význam. Pomenujte vinníkov alebo sa vyhnite menám, ktoré sa používajú v predmetnej oblasti, a zreteľne zobrazte miesto a účel (funkčnosť) pomenovanej triedy, poľa alebo metódy. V tomto prípade sa netreba báť dlhých názvov – peniaze vynaložené na písanie sa vám vrátia pri dobre vyvinutom a podporovanom produkte. Text takéhoto programu sa stáva zrozumiteľným bez akýchkoľvek špeciálnych komentárov. Ďalší spôsob prístupu k údajom a metódam a popisom prvkov triedy pomocou dodatočných špecifikácií súkromné, chránené a verejné, čo znamená, že existujú tri typy prístupu ku komponentom triedy: súkromný, krádež a nelegálny prístup.

Na rozšírenie prístupu k dátovým prvkom, ako sú atribúty súkromné ​​alebo chránené, v triede možno implementovať pomocou atribútu verejnosti špeciálne metódy prístupu k citlivým a ukradnutým dátovým prvkom.

Metódy v triede môžu byť vyjadrené ako priatelia ( priateľ ) Alebo virtuálne ( virtuálne ). Niekedy existuje tendencia k preťaženiu ( preťaženie) funkcia.

Diferenciácia prístupu umožňuje meniť nekontrolovanú (nekontrolovanú) podporu oprávnení objektu respneoprávnenévikoristannya právomocí tried.

Dobrým štýlom OOP je umožniť prístup k dátovým prvkom podľa funkcie alebo metódy bez použitia operátora priradenia. Tieto ustanovenia nie sú dogmou, ale ak sa rozhodnete vykročiť z akejkoľvek viny, dobre si to premyslite.

Úpadok úradov.

kúpeľný kúpeľ Sila tried ničiť ich záujmy a znižovať moc (prvky údajov a metód) ich otcov. Triedny štítok automaticky všetko zníži dátové prvky a metódy, Môžete tiež pridať nové prvky týchto metód a nahradiť (prerezať, prehodnotiť) otcove metódy alebo ich upraviť (pridať).

Zamierime zadok oddych od skutočného života. Výskumníci v mnohých oblastiach prírodnej histórie trávia veľa času klasifikáciou predmetov podľa ich špecifických vlastností. V školskom kurze biológie a zoológie si pamätáme, že pre zvieratá, rastliny existujú špeciálne princípy klasifikácie a delenia na triedy, podtriedy, druhy a poddruhy (alebo niečo také) atď. V dôsledku toho sa vytvorí akási hierarchia alebo strom s jednou jedinou kategóriou v koreni a podkategóriami usporiadanými do podkategórií.

V snahe klasifikovať niekoľko nových tvorov alebo predmetov si kladieme nasledujúce otázky: Aká je podobnosť tohto predmetu s inými predmetmi právnej triedy? Aký je význam? Trieda kože má súbor charakteristík, ktoré ju označujú. Začíname s

Tvoria sa vrcholy rodokmeňa a my zídeme po konároch a cestou si pýtame jedlo. Vyššie nadmorské výšky sú pikantnejšie a strava je jednoduchšia: existuje napríklad krill alebo nie? Špecifickejšia je kožná rebarbora, dolná predná rebarbora je menej vegetatívna. Keď je charakteristika špecifikovaná, všetky kategórie pod touto úrovňou zahŕňajú túto charakteristiku. Preto, ak hovoríme o tomto konkrétnom zástupcovi triedy (orientácia, druh), nemusíme hovoriť o jeho tajných vlastnostiach charakteristických pre túto triedu, ale hovoríme len o jeho špecifických vlastnostiach v rámci jeho triedy. .

Zmysel a univerzálnosť kompresie spočíva v tom, že nepotrebujete popisovať nový objekt zakaždým nanovo (od začiatku), ale môžete určiť otca (základnú triedu) a popísať Špeciálne vlastnosti nová trieda. Výsledkom je, že nový objekt prinesie všetku silu triedy Fatherland plus svoje vlastné výkonné a pozoruhodné funkcie.

Zhutnenie v OOP umožňuje adekvátnu reprezentáciumilá matka stoobjekty predmetnej oblasti. Keďže trieda B má všetku silu triedy A a má aj dodatočnú silu, potom sa nazýva trieda A základné (Batkivsky), a trieda B sa nazýva pomaly sa pohybujúca nemčina triedy A. C++ je možné sám (S jedným otcom) i množiť (S otcami dekilkom) ukludni sa.

Vlasti sto resptabuľka zahrnutia triednych autorít,sa môže objaviť nielen dodatočným dedením, ale aj spôsobom zapuzdrenia v triedach v rámci prvkov týchto iných tried.

Sila kolapsu ulahci modifikaciu moci tried, zabezpeci flexibilitu vinyatkov OOP a coskoro bude vynaložená na písanie nových tried na základe starých (otcov). Program potom určí základnú triedu, ktorej dominujú najskorumpovanejšie autority, a potom vytvorí postupnosť pozícií, ktoré riadia ich špecifické autority. Výsledkom je hierarchia poklesu moci tried.

základných tried a koreňom takýchto stromov dominujú také abstraktné sily, že často nezvíťazia v programoch, ale sú nevyhnutné „zo všetkého ostatného“ na generovanie potrebných tried. Správny výber koreňa zabezpečí šikovnosť“ viroshuvannya »Stromy, t.j. jednoduchosť vývoja pravidiel knižnice tried Zastosuvaniya OOP„Pánenie a zmena sily predmetov“Využíva postupný prístup k vývoju a tvorbe skvelých softvérových systémov.

Zadok natívnych tried: Súradnice na obrazovke -> Farebný bod-> Priame -> Vzpriamený. Tu šípky priamo označujú poradie poklesu sily tried.

Pri uvedení základnej (Batkivského) triedy v popise triedy v C++ musíte zadať kľúčové slovo verejnosti . Zahrnutie tohto kľúčového slova vám umožňuje zakázať voľný prístup ku všetkým metódam v triede, ako keby boli opísané v najobľúbenejšej triede. Inak nemôžeme odoprieť prístup k metódam Otcovej triedy.

Príklad popisu úpadku tried na C++:

trieda A

. . . . .

trieda B: verejná A

. . . . .

Polymorfizmus behaviorálnych schopností predmetov.

Slovo polymorfizmus má grécky pôvod a prekladá sa ako „má mnoho podôb“.

polymorfizmus - je to sila, ktorá umožňuje jednej a tej istej osobe zvíťaziť pri realizácii niekoľkých technicky odlišných úloh.

Vo všeobecnosti je pojem polymorfizmus myšlienkou „jednoho rozhrania, žiadne metódy“. To znamená, že na základe akcií môžete vytvoriť tajné rozhranie pre skupinu blízkych. Výhodou polymorfizmu je, že pomáha znižovať zložitosť programov tým, že umožňuje použitie jedného rozhrania pre jednu triedu akcií. Voľba konkrétnej akcie v závislosti od situácie je ponechaná na kompilátorovi.

Sto rokov pred OOP je pomocou polymorfizmu možnosť výberu jedného mena za účelom vytvárania nelegálnych aktivít pre triedu. V praxi to znamená umožniť objektom vybrať si interný postup (metódu) na základe typu prijatých údajov v správe.

Zistite, či potrebujete otvoriť zámok a prepojiť kľúče. Prvá os je nútená ju otvoriť. Môžeme upliesť kľúče, z ktorých každý má iné parametre (tvar, veľkosť). Aby sme otvorili dvere, prechádzame jedným kľúčom za druhým, kým nenájdeme ten správny. Ak sa šablóna zámku zhoduje so šablónou parametrov kľúča, zámok sa otvorí. Kompilátor funguje podobným spôsobom, keď je identifikovaných niekoľko funkcií. Postupne kontroluje šablóny funkcií s rovnakými názvami, kým nenájde vhodnú.

polymorfizmus Znamená to, že sila relatívnych objektov rôznymi spôsobmi vytvára rovnaký typ (a napriek tomu je určený) akcií, t. j. rovnaký typ akcií medzi anonymnými spornými triedami môže byť bez rôznych foriem. Napríklad metóda „maľovania na obrazovku“ môže byť implementovaná odlišne pre natívne triedy „bodka“, „rovno“, „lamana“, „rovno“. V OOP je správanie objektu indikované súborom metód. Zmenou algoritmu na metódu v nastaveniach triedy program dáva populácii špecifické behaviorálne schopnosti. Ak chcete zmeniť metódu, je potrebné ju z pracovného stola zablokovať, t. j. pridať rovnakú metódu na pracovný stôl a implementovať novú akciu, ktorá odráža špecifickosť pracovného stola.

Sila polymorfizmu sa realizuje nielen v mechanizme substitúcie (prerušenia) tých istých metód pri kolapse moci, ale aj v mechanizmevirtualizácia metódalebo iné súvisiace metódy. Prepisy metódy sa implementujú vo fáze kompilácie(Včasný hovorobjekt metódou), potom nahradenie deklarovanej v popise virtuálnou triedou ( virtuálne ) Dostupné vo fáze víťazstva(neskoršie pripojenie).

Existujú dva prístupy k nákupu napríklad kilogramov pomarančov. V prvej epizóde už vieme, že musíme kúpiť 1 kg pomarančov. Berieme teda malé balenie, nie veľa, ale len toľko halierov, aby sme vyrovnali tento kilogram. V inej situácii, keď odchádzame z domu, nevieme, čo a koľko musíme kúpiť. Takže berieme auto (a ten rapt bude plný všetkého a všetkého), zásobíme sa taškami veľkých a malých rozmerov a berieme viac ako pár drobných. Ideme na trh a uvedomíme si, že potrebujeme kúpiť len 1 kg pomarančov.

Nasmerovanie zadku do speváckeho sveta zjavne odráža pocit stagnácie skorého a neskorého spojenia. Je zrejmé, že pre daný zadok Prvá možnosť je optimálna. Ten druhý nám dal zo všetkého príliš veľa, ale my sme to nepotrebovali. Na druhej strane, keďže z hľadiska ceny na trhu veríme, že pomaranče nepotrebujeme a pravdepodobne kúpime 10 kg jabĺk, tak v prvej sezóne už nič nevyrobíme. Pre inú osobu je to jednoduché.

A teraz sa pozrime na tento zadok z programovacieho hľadiska. Pri vytváraní skorých spojení sa zdá, že hovoríme kompilátoru: "Presne viem, čo chcem. Tak pevne (staticky) prepojte všetky volania s funkciami." Keď je nastavený mechanizmus kognitívneho prepojenia, zdá sa, že hovoríme kompilátorovi: "Ešte neviem, čo chcem. Keď príde čas, poviem ti, čo a ako chcem." Týmto spôsobom v hodine skorej komunikácie sú metódy spojené pri prvom manuálnom volaní, vyvolanom počas kompilácie. V prípade neskorej väzby sa volanie metódy a volanie metódy nedajú zviazať v čase kompilácie. Preto je implementovaný špeciálny mechanizmus, čo znamená, že spojenie sa vytvorí a metódy sa zavolajú, keď sa volanie skutočne vygeneruje.

Je zrejmé, že je tekutejší a účinnejší v počiatočnom štádiu ochorenia ako v počiatočnom štádiu ochorenia. Neskoršie zapojenie zároveň zabezpečí univerzálnosť zapojenia.

Virtuálne metódy sú zložitejšie kvôli potrebe ďalších komunikačných akcií.

Vytváranie a zmenšovanie objektov.

Popis triedy v OOP je programová štruktúra, ktorá sa používa na súťaž s vytváraním objektov, ktoré sú rozdelené podľa názvov a miestnych orgánov. Vytváranie a vytváranie vzdialených objektov sa uskutočňuje pomocou špeciálnych metód tzv samozrejme konštruktérov a deštruktérov.

konštruktér Trieda vytvára a inicializuje objekty a môže tiež dokončiť prípravu mechanizmu latentnej komunikácie potrebného na vytvorenie virtuálnych funkcií. zničenie Trieda vyberá akcie na dokončenie práce s objektom, napríklad: uvoľnenie dynamickej pamäte, obnovenie obrazovky, zatvorenie zmien súboru.

Dosiahla sa interakcia medzi objektmi a trasami.

Vytvorenie sporu alebo zahrnutie autorít je len jedným z mnohých typov vzťahov medzi triedami. ešte jeden najdôležitejší typ Zásuvky medzi triedami a medzi objektmi, zásuvky interakcie alebo zásuvky klient-server. Obsah sporu závisí aj od dôležitosti vzájomnej interakcie, obklopenej silou zapuzdrenia.

Všetky objekty zapuzdrenia sú od seba tak dobre izolované, že je potrebné venovať zvláštnu pozornosť mechanizmu ich interakcie v programe. Existujú nezávislé objekty, a nie tiché, ktoré sú vložené do iných objektov vo forme prvkov týchto objektov. Zostávajúca interakcia však môže zahŕňať úvahy týkajúce sa viditeľnosti (dostupnosti) dátových prvkov a metód komunikácie objektov a zapuzdrenia objektov. Preto je pri tejto expanzii potrebné venovať tomu osobitnú pozornosť.

Často volajte o pomoc pokazchikiv, Čo robiť, je vytvoriť program podobný štruktúre údajov v dynamickej pamäti. Hlavnou časťou programu je popis tried a súhrnu interagujúcich objektov. V knižniciach tried je vyhradené slovo vyhradené pre objekt, na ktorý má prístup sám (sám). toto, toto Je synonymom názvu objektu, v kontexte ktorého sa používa.

Ďalším spôsobom výmeny informácií medzi objektmi je prenos cezglobálnej zmeny(Report buffer), jeden objekt prijíma hodnoty a druhý ich číta. Táto metóda je jednoduchá na implementáciu, ale vyžaduje starostlivú kontrolu výmeny informácií na strane programu, pretože štruktúra interakcie je viac prispôsobená programu ako pri prvej metóde.

8.3. Etapy objektovo orientovaného programovania.

Program, ktorý vykonáva každú úlohu, obsahuje popis časti sveta, ktorá sa týka konkrétnej úlohy alebo predmetu. Opis činnosti vo forme vzájomných objektov je zrejme prirodzenejší ako vo forme hierarchie podprogramov, a teda jednoduchšieho modelovania programov v danej tematickej oblasti.

Proces je naprogramovaný vobjektovo orientovaný štýlMôžete vidieť nadchádzajúce etapy:

  1. Je dôležité porozumieť predmetnej oblasti a jej príbuzným triedam, ktoré rozhýbu piesne moci (možné pozície a akcie). Možnosti primingu na vytváranie objektov.
  2. Význam alebo formulácia princípov interakcie tried a interakcie objektov v rámci softvérového systému.
  3. Vytvorenie hierarchie je v interakcii s právomocami súťažiacich tried.
  4. Implementácia hierarchie tried prostredníctvom dodatočných mechanizmov enkapsulácie, redukcie a polymorfizmu.
  5. Pre každú triedu implementácia kompletnej sady metód na správu oprávnení objektov.

V dôsledku toho sa vytvoríobjektovo orientovaný stredalebo knižnica tried, ktorá vám umožňuje dokončiť modelovacie úlohy v konkrétnej oblasti.

Prvé tri etapyobjektovo orientovaná analýzapredmetná oblasť.

OOP Voloďa postupuje výhody:

Je prirodzenejšie rozumieť tým istým menám z každodenného života alebo predmetu;

Jednoduchosť zavádzania nových, ktorým rozumiete na základe starých;

Zastúpenie tried najmocnejších síl v knižnici a prepojenia medzi objektmi je modelované v predmetnej oblasti;

Prirodzenosť zobrazenia rozsahu zadanej úlohy v priestore objektov programu;

Jednoduchosť vykonávania zmien v triede, objekte a programe ako celku;

Polymorfizmus tried bude zjednodušený komplexným a inteligentným programom;

Lokalizácia moci a správania založená na zapuzdrení a diferenciácii prístupu zjednoduší pochopenie programovej štruktúry a zlepšenia;

Odovzdávanie parametrov v objektových konštruktéroch zvyšuje flexibilitu tvorby softvérových systémov.

Yak nedoliki OOP možno definovať ako:

Znížený kód rýchlosti programu, najmä s použitím virtuálnych metód;

Strávil veľa času vývojom knižnice tried, takže OOPúčelné pri vytváraní skvelých programov a nie pri písaní malých individuálnych programov;

Potreba analyzovať novú hierarchiu tried pre správne rozdelenie sily základných tried.

Zisťuje sa užitočnosť použitia technológie OOP na vytvorenie špecifického softvérového systémudva hlavné faktory:

Špecifickosť predmetnej oblasti a príslušná aplikačná úloha;

Funkcie programovania filmov (prekladač).

Predmetná oblasť môže byť vo väčšom alebo menšom svete rozdelená do rôznych OOP technológií. Jednotlivé regióny majú jasné triedy, ich hierarchiu a vzájomné vzťahy. V nerozvinutých oblastiach výskumu vznikajú OOP oveľa vyššie náklady v počiatočných fázach vývoja (objektovo orientovaná analýza, návrh a tvorba triednych knižníc).

Ide o oblasti, ktoré vyžadujú maximálnu efektivitu programového kódu v zmysle rýchlostného kódu a spotreby pamäte (systémy v reálnom čase, nadpočetné systémy). V takýchto oblastiach možno stagnáciu OOP zdôvodniť buď znížením tempa vývoja softvéru, alebo dostatočnou flexibilitou generovaného programového kódu.

Je ľahké pridať svoju dobrú prácu do databázy. Vikorist formulár, tieňovanie nižšie

Študenti, postgraduálni študenti, mladí ľudia, ktorí k svojej profesii a práci pridajú vedomostný základ, budú pre vás ešte výnimočnejší.

Uverejnené na http://www.allbest.ru/

Práca na kurze

Modulárne, štrukturálne a objektívne prístupy k návrhu a programovaniu

Zadajte

2.1.2 Štrukturálny prístup

2.2.2 Modulárny prístup

visnovok

programovateľné riadenie dizajnu

Zadajte

Programovanie je stále mladé a oblasť vedy a techniky sa rýchlo rozvíja. Dosiahnutie skutočného vývoja a dôkladný vývoj existujúceho softvéru a technických vlastností sa neustále prehodnocuje, čo vedie k vzniku nových metód, metodík a technológií, ktoré sú zase základom modernejších prvkov. . Sledovať proces vývoja nových technológií a podrobne identifikovať ich hlavné trendy, predstavujúce technológie s neustálym vývojom programovania a vlastností softvéru a hardvéru, ktoré sú evidentné v existujúcich programoch c.

Programovacie technológie sú testovaním stratégií tvorby programov, ktoré pozostávajú z metód s informačnými fondmi, popisov projektových postupov a projektových operácií. Existuje technológia štruktúrovaného programovania, technológia navrhovania programov s racionálnou dátovou štruktúrou, technológia objektovo orientovaného programovania, technológia vizuálneho programovania.

Každá z týchto technológií má jednu alebo viac programovacích paradigiem (koncepty, systémy viery). Zvyšok predstavuje rôzne prístupy k písaniu programov. Pre svoju pleť potrebujete: vlastný typ mentálneho tréningu, špeciálnu školu učenia a akceptovať metódy programovania, ktoré naznačujú moji vikori.

A medzitým, evolúcia softvéru, evolúcia počítačov, je jasné, že práve v tejto sfére sa najjasnejšie prejavujú zákony evolúcie, zákony hierarchie. Predchádzajúca generácia programátorov začala priamo programovať. Programátori uvažovali v abstraktných kategóriách (dvojité strojové kódy). Koristuvach vypočítal výsledok bez toho, aby poznal priebeh (spôsob) riešenia problému. Vychádzajúc z hlbín poznania na cestu štrukturálneho (modulárneho) programovania, v ktorom bola úloha rozdelená do blokov (modulov), z ktorých sa potom sformoval iný program. Vytvorili sa knižnice štandardných programov a vytvorili sa ďalšie programy. Tu sa už začal objavovať úplne nový mechanizmus (v programovaní, ale nie v matematike a iných vedách), v ktorom sa k novej štandardnej množine bodov pridalo nespočetné množstvo priestranných „obrázkov“. Postupné prechádzanie stromom konkrétneho „obrazu“ programu s pridaním špecifického súboru špecifických základných prvkov viedlo k vytvoreniu konkrétneho výsledku. Naprogramovaný systém začal vyvíjať prirodzený mechanizmus, ktorý sa na základe jeho schopností dá porovnať snáď len s ľudským mozgom. V tomto prípade by sa tie isté reťazce mohli stať veľmi variabilnými nielen v rámci jedného obrázka, ale aj pri vytváraní iných počítačových obrázkov. Samotné semená boli listami špecifických „obrázkov“. V tomto prípade platí, že čím zložitejšia je sieť stromov s obrázkami, tým silnejšia je schopnosť nájsť a identifikovať „analógové“ obrázky, tým „inteligentnejší“ bude počítač.

Pokrok vo výpočtovej technike plodín je teda predovšetkým spôsobený tým, že ľudia bez toho, aby o tom vedeli, skopírovali z prírody najoptimálnejší spôsob organizácie hierarchických systémov. Metódou práce je pozrieť sa na rôzne stratégie tvorby programov, ich metódy, výhody a nevýhody (pri aplikácii programovania v Pascale). Predmetom skúmania je stratégia tvorby programu. Na získanie pridelenej známky je potrebné splniť nasledujúce požiadavky:

Skúmajú sa rôzne prístupy k programovaniu a dizajnu;

Pri vykonávaní aplikovanej úlohy udržujte pokožku suchú.

1. Technológie a programovacie paradigmy

1.1 Vývoj programovacej paradigmy

Jednou z najjasnejších aplikácií triumfu myšlienok zákonov hierarchie môže byť vývoj výpočtovej techniky a predovšetkým počítačového softvéru.

Počítačový bezpečnostný softvér sa objavil neskôr ako hardvér. Vo svete sa zvýšila zložitosť hardvéru a zvýšili sa možnosti softvéru. Boli vytvorené assemblery, kompilátory, operačné systémy a systémy na správu databáz. Hoci množstvo disciplín súvisiacich s výpočtovou technikou, napríklad matematická logika, lingvistika, teória automatov atď., je založených na matematike, väčšina fachistov je spočiatku zbavená Prístup k vývoju softvéru je viac pragmatický, menej teoretický.

Existujú základné paradigmy, ktoré popisujú väčšinu dnešných metód programovania: imperatívne, aplikačné, založené na pravidlách a objektovo orientované.

Imperatívna paradigma (byť základom štrukturálneho, modulárneho prístupu). Tento model sa líši od zvláštností hardvéru štandardný počítač, Ako písať pokyny (príkazy) postupne. Hlavným typom abstrakcie používaným v tejto paradigme sú algoritmy. Na jej základe bolo rozčlenených množstvo systémov programovania orientovaných na operátora. Program, ako je tento, sa skladá zo sekvencie operátorov, ktoré spôsobia, že vzhľad zmení hodnotu v jednej alebo viacerých oblastiach pamäte. Vo všeobecnosti syntax takéhoto filmu vyzerá takto:

operator_1:

Operator_2:

Keď sa prvýkrát zoznámite s koncepciami programovania, naučíte sa práve z tohto modelu a mnohé ďalšie ich podporujú (napríklad C, C++, FORTRAN, ALGOL, PL/I, Pascal, Ada, Smalltalk a COBOL).

Aplikačná paradigma. Toto je iný pohľad na výpočty, založený na dodatočnom programovaní. Táto paradigma je založená na pohľade na funkciu, z ktorej program pozostáva. Neukazuje postupnosť etáp, ktorými musí počítací stroj prejsť. Jedlo sa nastavuje iným spôsobom: akú funkciu je potrebné nastaviť predtým, ako stroj začne pracovať (výberom sady klasov a ich usporiadaným spojením), aby sa eliminoval požadovaný výsledok?

Movi, ktoré zdôrazňuje práve tento pohľad na výpočet, sa nazývajú aplikačné alebo funkčné. Syntax takéhoto jazyka spravidla vyzerá takto:

Funkcia_n (... funkcia_2 (funkcia_1 (údaje)) ...)

Tento model podporujú jazyky ako ML a LISP.

Paradigma je založená na systéme pravidiel. Movi, na základe tejto paradigmy, vám umožňuje overiť dôkazy o nevyhnutnosti, umožňuje vašej mysli a po identifikácii uzavrieť podobnú akciu. Podľa mňa vychádzame zo systému pravidiel s názvom Prolog. Nazýva sa aj metóda logického programovania.

Program Vikonannya na podobnom moi je podobný programu vikonannya napísanému na imperatíve mou. Operátory sa však nepridávajú v rovnakom poradí, ako sú priradené v programe. Viconniansky poriadok je určený ako prípustný. Syntax takéhoto jazyka vyzerá ako nasledujúci krok:

povolí podmienka_1 -> akcia_1 povolí podmienka_2 -> akcia_2

umožňuje podmienku_n -> akciu _n

Niekedy sú pravidlá napísané vo forme „akcia, ak to myseľ dovolí“, keď je akcia zapísaná.

Objektovo orientovaná paradigma (založená na objektovom prístupe). Tento model bude mať komplexné dátové objekty. Pre operácie na nich je definovaný určitý súbor metód. Vytváranie objektov môže znížiť silu jednoduchších objektov. Vďaka tejto schopnosti majú objektovo orientované programy vysokú účinnosť a poháňajú programy napísané v imperatívnych jazykoch. Schopnosť vyvinúť rôzne triedy, ako napríklad vikoristiku medzi súborom dátových objektov, zabezpečuje flexibilitu a spoľahlivosť ako autority aplikačného jazyka.

Existujú aj iné paradigmy, ktoré vysvetľujú potrebu rozpoznávania rôznych údajov. Paradigmu nie je možné považovať za najväčšiu hodnotu vo všetkých oblastiach praktickej stagnácie. Napríklad pre výpočtové úlohy je vhodnejšia imperatívna paradigma, zatiaľ čo pre návrh inteligentných systémov je ustanovená paradigma orientovaná na pravidlá. Na pozadí mimoriadnej popularity sa objavila paradigma vizuálneho programovania.

1.2 Riadiace štruktúry a podprogramy

Teóriu prvých programov navrhol Maddux ako formalizáciu metodológie štruktúrovaného programovania na určenie jedinečného hierarchického rozkladu blokových diagramov. Táto teória tvrdí, že programové grafy môžu obsahovať tri triedy uzlov (malé 1):

a) funkčné jednotky - predstavujú výpočty, generované programom a sú reprezentované pravouhlými jednotkami s jedným vstupom do tejto jednotky a jedným výstupom. Funkčné uzly sú reprezentované priraďovacími operátormi, ktoré vyžadujú zmenu stavu virtuálneho stroja;

b) rozhodovacie uzly – objavujú sa vo forme kosoštvorcov s jedným vstupom a dvomi výstupmi (pravda a nepravda). Tieto uzly sú predikáty a kontrola z uzla na prijatie rozhodnutia sa prenáša buď pravdou alebo klamstvom;

c) spoj - je reprezentovaný bodom, v ktorom sa dva oblúky grafu zbiehajú a tvoria jeden výstupný oblúk.

Malyunok 1 Vuzli na grafe programu

Akákoľvek bloková schéma pozostáva iba z týchto troch komponentov.

Správny program je bloková schéma, ktorá je formálnym modelom riadiacej štruktúry, ktorá obsahuje: jeden vstupný oblúk; vynoriť sa jeden oblúk; prejsť od vstupného oblúka do ľubovoľného uzla a z ľubovoľného uzla na výstup z uzla.

Pôvodný program je správny program, ktorý nemožno rozdeliť na viac častí správne programy. Problémom tohto pravidla je postupnosť funkčných uzlov, ktoré sú zodpovedné za jeden primárny program.

2. Vývoj prístupov k dizajnu a programovaniu

2.1 Štrukturálny prístup k návrhu a programovaniu

2.1.1 Koncepcia štruktúrovaného programovania

Historicky to bolo tak, že v programovaní v súčasnosti dominujú imperatívne jazyky. Štúdie uskutočnené v 70-80-tych rokoch 20. storočia však ukázali, že aplikačná technika poskytuje viac efektívnymi spôsobmi overenie programov a preukázanie ich správnosti. To je možné vidieť z blokovej schémy uvedenej v malom 2.

Malyunok 2 Typická bloková schéma programov zo 60. rokov

60. roky minulého storočia sú charakterizované ako obdobie „spontánneho“ programovania. Počas tohto obdobia došlo k širokému chápaniu programovej štruktúry, dátových typov atď. V dôsledku toho, ktorého kód sme vyšli, sme zmätení, super citliví. Programovanie týchto osudov bolo rešpektované s mystikou. Koniec 60. rokov - kríza v programovaní.

Východiskom z tejto krízy je prechod k paradigme štrukturálneho programovania. Baby 2 zobrazuje blokovú schému, typickú pre programy 60. rokov 20. storočia. Nemá žiadnu zjavnú štruktúru. Takéto programy sa nazývajú špagetové programy. Kvôli veľkému počtu iracionálnych presunov kontroly tam a späť je dôležité pochopiť, aký je program v akomkoľvek danom čase počas procesu dobývania.

Baby 3 má štruktúrovanejší dizajn. Segment kože tohto blokového diagramu možno rozdeliť na bodkovaný obdĺžnik. Šupka takýchto rovných kotletiek na tomto diagrame bude mať jeden vstupný bod a jeden výstupný bod. Tento program možno vnímať ako skladbu štyroch funkcií-podprogramov a správanie programu možno chápať ako funkciu, ktorá na vstupe bodkovanej čiary nadobudne takýto stav a prevedie ho do výsledného výstupného stavu s new. Je jednoducho nemožné písať zložité programy v tisícoch a desiatkach tisíc riadkov bez ich rozdelenia na nezávislé fragmenty, teda bez štruktúry.

Štruktúrované programovanie je prístup, v ktorom program používa iba tri konštrukcie na prenos riadenia, čo umožňuje sekvenčný, inteligentný a iteračný prenos riadenia.

V tomto prípade je prenos riadenia šialený, napríklad je chránený goto operátor.

Výsledkom je, že komplexný príkaz v programe, ktorý je kombináciou následných, mentálnych a cyklických operátorov, má iba jeden vstupný bod a jeden výstupný bod, čo umožňuje rozdeliť programy na úplne nezávislé časti.

Malyunok 3 Bloková schéma programového štruktúrovaného dizajnu

Štrukturálne programovanie je výsledkom stagnácie aplikačných metód pred imperatívnymi programami. Na tento účel sa používajú procedurálne orientované jazyky, v ktorých je možné popísať programy ako súbor procedúr. Procedúry je možné volať jednu po druhej a každú z nich môže vyvolať hlavný program, takže sa na ne dá pozerať aj ako na procedúru.

2.1.2 Štrukturálny prístup

Štrukturálny prístup k programovaniu je súbor odporúčaných technologických techník, ktoré podporujú všetky fázy vývoja softvéru. Postarám sa o to, aby ste boli v dobrých rukách:

a) zvýšenie produktivity programátorov pri písaní a monitorovaní programov;

b) extrakcia programov, ktoré sú pre kontrolóra relevantnejšie, keďže sú vytvorené z iných modulov;

c) vytvorené tímom vývojárov;

d) ukončená tvorba programu v termíne úlohy.

V štruktúrovaných programoch sa hlavný algoritmus ľahko sleduje a programovanie je efektívnejšie a menej citlivé na kompromisy. Táto sila je mimoriadne dôležitou vlastnosťou podprogramov, ktoré sú často nezávislými fragmentmi programov, ktoré sú prepojené s hlavným programom a mnohými ďalšími parametrami. Takáto nezávislosť podprogramov im umožňuje lokalizovať v nich všetky detaily softvérovej implementácie akejkoľvek inej algoritmickej akcie, a preto zmena týchto detailov, napríklad v procese zlepšovania, nevedie k zmenám v hlavných programoch.

Koncept štruktúrovaného programovania prenáša vývoj programov naprieč komponentmi, podobne ako princíp získavania informácií.

Princíp zachytávania informácií spočíva v tom, že identifikátory lokálnych objektov (názvy konštánt, typov, premenných, procedúr, funkcií, návestí a polí v záznamoch premenných) tak, aby boli Iba v strede daného sledu pokynov , neviniť z rozumu matky medzi týmito pokynmi.

Procedúry a funkcie fungujú ako prirodzené textové jednotky, ktoré zároveň uzatvárajú oblasť lokálnych identifikátorov.

Identifikátor je séria znakov, ktoré sa používajú na identifikáciu alebo pomenovanie (sekvencia písmen, čísel a lomiek, ktoré začínajú písmenom alebo lomkou a neobsahujú medzery ).

Oblasť (oblasti) viditeľnosti identifikátora sa nazýva časť programu, ale nemusí byť opravená.

Oblasť viditeľnosti identifikátorov je označená ich významom. Keďže je povolené používať identifikátory iba v rámci tej istej procedúry alebo funkcie, potom sa takéto identifikátory nazývajú lokálne. Ak sa aktivita identifikátorov rozširuje na množstvo vložených (aspoň jednej) procedúr a/alebo funkcií, potom sa takéto identifikátory nazývajú globálne. Pravidlá pre priradenie rozsahu viditeľnosti pre identifikátory sú nasledovné:

a) všetky identifikátory určené v strede procedúry/funkcie sú platné;

b) všetky identifikátory sú v správnom kontexte, keďže ich mená sú rozdelené na mená vyslovené uprostred procedúry/funkcie;

c) miestne identifikátory procedúr/funkcií vôbec neexistujú;

d) v prípade vyhýbania sa názvom globálnych a lokálnych identifikátorov sa vyhýbajú iba interným a lokálnym identifikátorom podľa typu.

2.1.3 Metódy projektovania konštrukcií

Pri navrhovaní akéhokoľvek vírusu, vrátane algoritmu, v počiatočných fázach sa hlavný dôraz kladie na najdôležitejšie problémy a nezasahuje do príliš veľa súkromných detailov. Preto najviac ignorantská taktika dizajnu spočíva v rozvrhnutom procese okolo akcie. Štrukturálny prístup je založený na rozklade (rozbití na časti) skladacích systémov so spôsobom ďalšej implementácie formou niekoľkých malých podprogramov. So vznikom ďalších princípov rozkladu (objektívny, logický atď.) dánska metóda odoberanie názvu procesný rozklad. Na koži takéhoto rozkladu je potrebné pochopiť, že:

a) rozhodnutia v súkromných záležitostiach vedú k vykonávaniu tajných záležitostí;

b) postupnosť nasledujúcich činností je daná najracionálnejším spôsobom;

c) tento rozklad umožňuje odstrániť inštrukcie, na ich mieste môžete nájsť príslušný kontakt s jazykom, v ktorom bude program napísaný.

Nedávny prístup k návrhu softvérových systémov. Je zrejmé, že tvorba programov začína metódou šelmy, potom vývojom samotného hlavného, ​​všeobecného algoritmu. Keďže na vyššej úrovni ešte nie sú jasné detaily implementácie oboch ďalších častí programu, mali by byť tieto časti nahradené časovými zátkami.

Spustenie nedokončeného programu (pred nahradením stubov skutočnými pracovnými postupmi) poskytuje ďalší pokrok pred vývojom a implementáciou algoritmov nižšej úrovne. Pri implementácii algoritmu stub pridajte skladací, reštrukturalizujte ho, pozrite si hlavný algoritmus a vytvorte nové stub atď. (Stub nahrádza komponent, ktorý sa práve analyzuje v programe, takže jeho vývoj, kompilácia alebo testovanie môže pokračovať dovtedy, kým sa komponent nerozdelí v spoľahlivej forme). Proces pokračuje smerom nadol, kým sa nevytvorí perfektná verzia programu.

V praxi je nemožné dosiahnuť „čistú“ recesiu. V jednom z neskorších štádií sa často ukáže, že skôr vykonaná voľba je neadekvátna a nevedie k potrebe iteratívneho vývoja.

Počiatočný prístup pred vývojom programu. V tomto prípade existuje postupný program už zrejmých prvkov, počnúc primitívami, ktoré, ako dúfame, zachránia moje programovanie. Tento proces sa skončí výberom potrebného hotového programu. Vo fáze pokožky budú zrejmé prvky intenzívnejšie. Tieto prvky budú v ďalšej fáze zdokonaľované, aby sa vytvorili ešte výkonnejšie prvky, a tak ďalej, kým sa neodstránia prvky, z ktorých sa dá ľahko upraviť potrebný program.

V praxi je začiatok vývoja v čistom vzhľade rovnako nemožný. Impulz nového skin elementu môže byť sprevádzaný tešením dopredu s metódou spätného chodu, ktorá vyhovuje schopnosti rozpustiť program; Pri tomto prístupe sa však často v neskoršom štádiu zistí, že s vikoristanom sa predtým zaobchádzalo nesprávne a je potrebná nová iterácia.

Pri konštrukcii nových algoritmov dominuje zostupná metóda. Pri prispôsobovaní programu ďalším zmenám má často prednosť pôvodný spôsob. Tieto metódy umožňujú rozširovať štruktúrované programy.

Podpora princípov konštrukčného návrhu je základom takzvaného procedurálneho programovania. Spravidla zahŕňali hlavné „štrukturálne“ operátory prenosu riadenia, podporované vnorené podprogramy, lokalizáciu a vymedzenie oblasti „viditeľnosti“ údajov. Medzi najznámejšie skupiny sa táto skupina nazýva PL / 1, ALGOL-68, Pascal, S.

Ďalšie zvyšovanie zložitosti a veľkosti vyvíjaného softvéru, tlak na rozvoj dátovej štruktúry. V dôsledku toho v jazykoch existuje možnosť rozlíšenia koristuvakových typov údajov. Zároveň sa vynaložilo úsilie na oddelenie prístupu programov ku globálnym údajom s cieľom zmeniť množstvo problémov, ktoré sa vyskytujú pri práci s globálnymi údajmi. V dôsledku toho sa objavila a začala sa rozvíjať technológia modulárneho programovania.

2.2 Modulárny prístup k návrhu a programovaniu

2.2.1 Pochopenie modulárneho programovania

Modulárne programovanie je organizácia programov ako súbor malých nezávislých blokov (modulov), ktorých štruktúra a správanie podliehajú rovnakým pravidlám.

Modul (v modulárnom programovaní) je skupina vzájomne prepojených podprogramov (postupov) spolu s údajmi, ktoré tieto podprogramy produkujú.

Modulárne programovanie je určené na vývoj skvelých programov. Vývoj skvelých programov vykonáva tím programátorov. Programátor kože je poverený vývojom akejkoľvek nezávislej časti programu. V tomto prípade je zodpovedný za návrh všetkých potrebných postupov a údajov pre tieto postupy. Získavanie údajov (zablokovanie prístupu k údajom z dôvodu medzimodulov) zabraňuje ich výraznému zvyšovaniu a následnému poškodeniu programami robotov. Pre interakciu rôznych častí (modulov) programov musí tím programátorov premýšľať iba cez rozhranie (interakciu) navrhnutých modulov v hlavnom programe.

Štruktúra modulu v zmysle jazyka Pascal.

Modul (jednotka) - programová jednotka, ktorej text sa zostavuje samostatne (autonómne).

Modul obsahuje 4 sekcie: hlavička, časť rozhrania (hlasová sekcia), implementačná sekcia a implementačná sekcia.

JEDNOTKA<имя модуля>; (názov)

INTERFACE (časť rozhrania)

Využitie<используемые модули>;

Konšt<объявления глобальных констант>;

Typ<объявления глобальных типов>;

Var<описание глобальных переменных>;

Postup<заголовки(!) доступных процедур>;

Funkcia<заголовки(!) доступных функций>;

IMPLEMENTÁCIA (sekcia implementácie)

Využitie<используемые при реализации модули>;

Konšt<объявления скрытых (локальных) констант>;

Typ<объявления скрытых (локальных) типов>;

Var<описание скрытых (локальных) переменных>;

Postup<тела(!) скрытых (локальных) процедур>;

Funkcia<тела(!) скрытых (локальных) функций>;

<основной блок модуля = раздел инициализации>

2.2.2 Modulárny prístup

Koncept modulárneho prístupu možno formulovať spôsobom, ktorý je ľahko pochopiteľný a zrozumiteľný:

a) veľké úlohy sú rozdelené do množstva väčších, funkčne samostatných podúloh - modulov, ktoré sú navzájom prepojené len vstupnými a výstupnými dátami;

b) modul je „čierna skrinka“ s jedným vstupom a jedným výstupom. To umožňuje bezbolestnú modernizáciu programov počas prevádzky, uľahčuje údržbu a tiež umožňuje vývoj častí softvérového projektu v rôznych programovacích jazykoch;

c) v module pokožky sú vinníci jasní. Ak je význam modulu nejasný, znamená to, že rozklad na module nebol vykonaný dostatočne jasne. Proces rozkladu musí pokračovať, kým nie je jasné pochopenie významu všetkých modulov a ich optimálneho spojenia;

d) výstupný text modulu pozostáva z hlavičky a časti rozhrania, kde je zobrazený význam modulu a všetky jeho externé prepojenia;

e) pri vývoji programových modulov je potrebné preniesť špeciálne bloky operácií, aby bola zabezpečená reakcia na prípadné zmeny v údajoch alebo v úkonoch objednávateľa.

Veľký význam v koncepcii modulárneho prístupu má organizácia kľúčových a informačných väzieb medzi programovými modulmi, ktoré bezproblémovo zvládajú jednu alebo viacero veľkých úloh.

Pri práci s modulmi je potrebné pamätať na ich hlavný význam v podobe procedúr a funkcií. Tradičné pravidlá v oblasti globálnych a lokálnych zmien pre moduly neplatia. Táto hlavná štruktúra je rozdelená tak, aby znemožnila tok globálnych zmien ohlásených v hlavnom programe do interných popisov modulu. Ak je potrebné zadať globálne popisy dostupné pre všetky programové bloky, potom vytvorte modul globálnych deklarácií a zahrňte ho do zoznamu importov všetkých modulov, ktoré vyžadujú jeho popis.

Modulárny dizajn prenáša rôzne skupiny podprogramov, ktoré pristupujú k rovnakým globálnym údajom, okrem skompilovaného modulu (knižnice podprogramov), napríklad modulu grafického zdroja. Komunikácia medzi modulmi s touto technológiou prebieha cez špeciálne rozhranie, pričom prístup k implementácii modulu (ako sú podprogramy a iné „interné“ zmeny) je zablokovaný. Táto technológia je podporovaná aktuálnymi verziami Pascal a C (C++), Ada a Modula.

2.3 Objektívny prístup k dizajnu a programovaniu

2.3.1 Objektovo orientované programovanie

Objektovo orientované programovanie je definované ako technológia na vytváranie komplexného softvéru, ktorý je založený na identifikovaných programoch vo forme množiny objektov (objekt je súbor zmien a väzieb medzi nimi, metódy; metódy znamenajú ako objekt interakcie s veľa svetla a pod metódami objektu rozumieť procedúram a funkciám, ktoré sú zahrnuté v popise objektu), z ktorých každá je inštanciou prvej triedy (typu) a triedy vytvárajú hierarchiu s poklesom moci. K interakcii programových objektov v takomto systéme dochádza prostredníctvom prenosovej metódy.

Hlavnou výhodou objektovo orientovaného programovania v porovnaní s modulárnym programovaním je „prirodzenejšia“ dekompozícia softvéru, čo výrazne uľahčuje jeho vývoj. Výsledkom bude väčšia lokalizácia dát a ich integrácia so spracovateľskými podprogramami, čo umožňuje prakticky nezávislé spracovanie samostatných častí (objektov) programu.

Objekt ako logická jednotka umiestňuje aktuálne údaje a operácie (metódy s kódom algoritmu) okrem pridelenia pamäte:

a) polia objektu (alebo atribúty výstupných údajov), ktorých hodnoty označujú výrobnú linku objektu;

b) metódy objektu, ktoré vykonávajú akcie (algoritmy vikonanny) v reakcii na ich kliknutia vo forme daného oznámenia;

c) moc – časť metód, ktoré určujú správanie objektu, jeho reakciu na vonkajšie vplyvy.

Pri deklarovaní tried sa uvádzajú tri charakteristiky objektov: polia, metódy a právomoci a uvádza sa aj predok tejto triedy.

Objekty v programoch zobrazujú všetky aspekty javov reálneho sveta: „vznikajú“ a „zomrú“; zmeňte svoj postoj; spustiť a zastaviť procesy; „Vjazdiť“ a „oživiť“ iné predmety.

2.3.2 Objektovo orientovaný dizajn

Objektovo orientovaný dizajn je metodológia dizajnu, ktorá zahŕňa proces rozkladu objektov a prezentáciu modelov, ktoré reprezentujú logickú (triedy a objekty) a fyzickú štruktúru systému (proces a členenie na komponenty, súbory alebo moduly), ako aj statické a dynamické aspekty.

Objektovo orientovaná paradigma je paradigma vysokej úrovne a ide nad rámec princípov štruktúrovaného programovania, pretože sa zaoberá modelovaním reality a bude modelovať tematické oblasti založené na princípoch týchto oblastí. Ak chcete písať bohaté programy, ktoré sa budú dať ľahko upravovať, rozširovať, majú prehľadné rozhrania a nezávislé moduly, potom to bude znamenať obrat k paradigme štruktúrovaného programovania. Program bude dobrý pre každého, ale nebude možné mu porozumieť, pretože nebude zodpovedať realite, bude vysvetlený v pojmoch, ktoré pozná iba program, a fachive pozná predmetnú oblasť a nebude schopný dostať sa do programu bez pomoci. mi. Podľa môjho názoru sa zložitosť zníži vo veľmi úzkom rozsahu, hoci sa bude organizovať skôr špecifický program ako model. Úplnosť modelu alebo ešte povrchnejšie prejavy „pod“ dobrý program v strede, a nedovolí, aby sa v budúcnosti ďalej rozvíjala a sprevádzala.

Ak sa zavedú triedy, nedochádza k žiadnej abstrakcii, ak sú tieto triedy čisto systémové a nemajú nič spoločné s predmetnou oblasťou, ak sa zavedú len na zjednodušenie toku interakcií iných tried – bezpečnostný program zmizne, a ako refaktoring cestu, nesledujte také V jednom bode sa vývoj softvérovej bezpečnosti spomalí a stane sa nemožným.

Návrh softvérových a hardvérových systémov s objektovo orientovaným prístupom je založený na myšlienke, že žiadny subsystém danej úrovne nesmie ležať za štruktúrou žiadneho iného subsystému danej úrovne. Táto nezávislosť vnútornej štruktúry jedného objektu od vnútornej štruktúry druhého sa nazýva zapuzdrenie.

Princíp zapuzdrenia bol vyvinutý v modulárnej programovacej technológii. Modul má explicitné zapuzdrenie podsekcie v sekciách rozhrania a implementácie.

V objektovo orientovanom programovaní sa princíp zapuzdrenia používa na izoláciu triedy od ostatných častí programu, aby bola sebestačná na dokončenie konkrétnej úlohy. Napríklad trieda TForm v middleware Delphi obsahuje (zapuzdruje) všetko potrebné na vytvorenie okna Windows, trieda TMemo je výkonný textový editor, trieda TTimer zabezpečuje prácu programov s časovačom atď.

Zapuzdrenie sa dosiahne spojením programovania dátových štruktúr v jednom zázname s procedúrami a funkciami, ktoré manipulujú s dátovými poľami záznamu, aby sa vytvoril nový dátový typ – trieda. Zapuzdrenie vám umožňuje zablokovať prístup k poliam a metódam cez rozhranie. Prístup je povolený len k určitým metódam a poliam. Súhrn metód a jemností ich implementácie a postupov.

TMyClass = trieda

IntField: Integer;

function MyFunc(a: Integer): Integer;

postup MyProc; koniec;

Výhodou princípu zapuzdrenia je možnosť výmeny softvérových komponentov pripravených na použitie. Napríklad knižnica tried Delphi je v skutočnosti zbierka nápadov pre každodenné aplikačné programy.

Pevným zapuzdrením chránime údaje, ktoré sa nachádzajú v objekte, v prípade možných kompromisov, ktoré môžu nastať pri priamom prístupe k týmto údajom. Tento princíp navyše často pomáha lokalizovať možné chyby v programovom kóde. A to výrazne zjednoduší proces vyhľadávania a opravy týchto zmien. Obmedzenie zapuzdrenia však vedie k zníženiu efektívnosti prístupu k prvkom objektu. Je to kvôli potrebe použiť metódy na zmenu vnútorných prvkov objektu. Pri súčasnom rozvoji výpočtovej techniky a vynaložení nákladov na efektívnosť však nehrajú zásadnú úlohu.

Význam zjednodušenia chápania zložitých úloh sa dosahuje štruktúrou komplexnej hierarchie. Pod hierarchiou rozumieme zoradenie abstrakcií, ich rozmiestnenie za radmi. Kolaps hierarchie z úrovne na úroveň dosahuje úroveň poklesu.

Princíp úpadku operuje s pojmami „predok – zem“ a prenáša expanziu na množinu právomocí potomka za účelom akceptovania všetkých právomocí predka.

Buď trieda, môžu byť pôrody z inej triedy. Pre koho je v šoku uvedené meno triedneho otca:

TChildCIass = trieda(TParentClass)

Generovanie triedy automaticky redukuje polia, metódy a silu svojho otca a môže ich pridať novými. Princíp rozkladu teda zabezpečí postupné vytváranie skladacích tried a rozvoj kvalitných knižníc tried. Zmysel a všestrannosť redukcie spočíva v tom, že nepotrebujete popisovať nový objekt zakaždým nanovo („od nuly“), ale môžete zadať „otec“ (základná trieda) a popísať dôležité problémy nového objektu. trieda. Výsledkom je, že nový objekt prinesie všetku silu triedy Fatherland plus svoje vlastné výkonné a pozoruhodné funkcie.

Všetky triedy v Object Pascal sú odvodené od jediného otca – triedy TObject. Táto trieda nemá polia a oprávnenia, ale zahŕňa metódy najhlbšieho významu, ktoré zabezpečia celok životný cyklus byť akýmikoľvek predmetmi - sú redukované až do vyčerpania. Preto programátor nemôže vytvoriť triedu, ktorá nie je podradenou triedou TObject. Nasledujúce dve udalosti sú rovnaké.

TaClass = trieda(TObject)<==>TaClass = trieda

Princípom relaxácie je viesť k rozvoju degradovaného dreva tried. Koža podložiek dodáva svojmu otcovi nové schopnosti a prenáša ich na svoje podložky. Napríklad trieda TPersistent ťaží zo schopností svojho otca TObject v tom, že dokáže uložiť dáta zo súboru a extrahovať ich z iného, ​​v dôsledku čoho bude pracovať na všetkých svojich funkciách. Trieda TComponent zasa interaguje s jadrom procesora a odovzdáva ho svojim uzlom. TControl dokáže nielen pracovať so súbormi a stredom softvéru, ale dokáže aj vytvárať a udržiavať obrázky viditeľné na obrazovke a jeho panely TWinControl dokážu vytvárať okná Windows atď.

V Object Pascal je možné, že sa to práve nazýva jednoduché zhutňovanie, ale v skutočnosti sú hlavy dve, takže v niektorých prípadoch (napríklad v C ++) existuje prenosový mechanizmus na viacnásobné zhutňovanie. Viacnásobné dropy sú z pohľadu modelovania reálneho sveta logickejšie, čo nám komplikuje implementáciu programovania.

Polymorfizmus je užitočný na pridávanie rôznych významov k rovnakému predmetu v závislosti od typu zozbieraných údajov. Tento princíp znamená rôzne formy vykonávania tej istej akcie.

Metóda polymorfizmu je použitie jedného mena na určenie skrytých akcií pre triedu a objekt kože alebo trieda hierarchie môže byť schopný implementovať túto akciu vlastným spôsobom s vlastnou silou, vhodnou pre novú triedu. , kód ohm Polymorfizmus a sila tried teda prekonávajú podobné problémy rôznymi spôsobmi.

V rámci Object Pascal sú behaviorálne schopnosti triedy definované ako súbor vstupných metód. Tento princíp je porušený, ak je potrebné rozšíriť silu triedy nie pridaním nových metód, ale nadobudnutím jednej metódy alebo súboru metód. Zmenou algoritmu jednej alebo druhej metódy v sekciách triedy môže programátor poskytnúť týmto sekciám špecifickú silu.

Ak chcete zmeniť metódu, je potrebné ju z panela zablokovať, aby bolo možné rovnakú metódu pridať na panel a implementovať do novej požadovanej akcie. V dôsledku toho budú existovať dve identické metódy v objekte-otca a objektovej platforme, ktoré majú odlišný algoritmický základ a dávajú objektom rôznu silu. Čo je podstatou polymorfizmu predmetov.

Navyše v Object Pascal sa polymorfizmus dosahuje nielen mechanizmom rozpadu a ukončenia otcových metód, ale aj ich virtualizáciou, ktorá umožňuje otcove metódy transformovať na metódy ich vlastných základov.

Výhodou polymorfizmu je, že pomáha znižovať zložitosť programov tým, že umožňuje použitie jedného rozhrania pre jednu triedu akcií. Voľba konkrétnej akcie v závislosti od situácie je ponechaná na kompilátorovi.

Štruktúra programov v objektovo orientovanom prístupe je reprezentovaná grafom interakcie objektov, a nie stromom hierarchie, ako je to v prípade konštrukčného návrhu. Tieto mechanizmy umožňujú zostavovať skladacie predmety veľmi jednoduchým spôsobom. V dôsledku toho sa výrazne zvyšuje miera opätovného použitia kódov a je možné vytvárať knižnice tried pre rôzne aplikácie.

Rýchly vývoj programovacích technológií, založených na objektovom prístupe, viedol k mnohým problémom. Takto vznikla stredná cesta, ktorá podporuje vizuálne programovanie, napríklad Delphi, C ++ Builder, Visual C ++ atď. S výberom vizuálneho média má programátor možnosť navrhnúť každú časť, napr. , rozhrania budúceho produktu, z dôvodu stagnácie vizuálnych metód pridávania a úpravy špeciálnych knižničných komponentov. Výsledkom vizuálneho dizajnu je výroba nových programov, ktoré už obsahujú dodatočné kódy.

3. Pozastavenie rôznych prístupov pre najdôležitejšie úlohy

Pozrime sa, ako bude vyzerať implementácia programu na základe rôznych prístupov na najvyššej úrovni: Zapamätajte si prvé a posledné číslo v prirodzených číslach. Jazyková implementácia Pascalu.

Štrukturálny prístup. Kód programu vyzerá takto:

program Perestanovka;

N, copy_N, number, copy_number, first, last, stepen, new_N: integer;

(program Tilo)

(Zadajte čísla)

write("vstup N=");

(Pochopte počet číslic v čísle)

číslo: = číslo + 1;

kópia_N: = kópia_N div 10;

ak kópia_N<>0 potom

ak číslo = 0, potom

(Fáza výpočtu čísla 10 ^ (číslo-1))

copy_number: = číslo;

(Vízie prvej a zvyšnej číslice)

kópia_N: = kópia_N div 10;

číslo_kópie: = číslo_kópie-1;

ak číslo_kópie<>1 potom

copy_number: = číslo;

(Preskupenie čísel)

stepen: = stepen * 10;

číslo_kópie: = číslo_kópie-1;

ak číslo_kópie> 1, potom

new_N: = N-prvý * krok + posledný * krok-posledný + prvý;

(Odkaz na výsledok)

Kód je lineárny, všetky akcie sa dokončia postupne, prenos riadenia vykonáva paralelný operátor na prechod goto.

Modulárny prístup. Kód programu vyzerá aktuálny.

program Perestanovka;

(Rozšírte šok veľkých)

N, číslo, nové_N: celé číslo;

(Zverejnenie postupov a funkcií)

(Postup na úpravu počtu číslic v čísle)

zatiaľ čo NN<>0 robiť

(Funkcia na hodnotu prvej číslice čísla)

kým kol<>1 robiť

first_cifra: = NN;

(Funkcia na určenie zostávajúcej číslice čísla)

last_cifra: = NN mod 10;

(Funkcia na pridanie celého čísla k celým krokom)

pri prehliadke<>0 robiť

(program Tilo)

write("vstup N=");

kol_cifr(číslo, N);

ak číslo<>0 potom

new_N: = N-first_cifra (N, číslo) * stepen (10, číslo-1) +

last_cifra (N) * stepen (10, číslo-1) -

posledná_cifra (N) + prvá_cifra (N, číslo)

Programový kód je čitateľnejší, rovnaký typ akcií je kombinovaný do procedúr a funkcií, zmenil sa počet premenných v programe a pamäť je teraz viditeľná. Pre optimalizáciu výsledkov skombinujte všetky postupy a funkcie do modulu a pripojte ho k programu. Organizácia modulu umožňuje jedinečné členenie procedúr a funkcií, čo uľahčuje proces programovania a skracuje programový kód.

Objektívny prístup. Kód programu vyzerá aktuálny.

Program sa zastaví;

číslo: celé číslo;

zadanie procedúry;

výstup procedúry;

procedure kol_cifr (var kol: integer; NN: integer);

procedure perestavka (var NN: integer; cf, cl: integer);

function first_cifra (NN: integer; kol: integer): integer;

funkcia last_cifra (NN: integer): integer;

funkcia stepen (bas: integer; pokaz: integer): integer;

pri prehliadke<>0 robiť

postup tN.vstup;

write(`input N=");

readln(N.znach);

procedure tN.kol_cifr (var kol: integer; NN: integer);

zatiaľ čo NN<>0 robiť

funkcia tN.first_cifra (NN: integer; kol: integer): integer;

kým kol<>1 robiť

first_cifra: = NN;

funkcia tN.last_cifra (NN: integer): integer;

last_cifra: = NN mod 10;

procedure tN.perestanovka (var NN: integer; cf, cl: integer);

NN: = NN-cf * stepen (10, číslo-1) + cl * stepen (10, číslo-1) -cl + cf;

postup tN.výstup;

Form1.Edit1.Clear;

Form1.Edit1.Text:=inttostr(N.znach);

N.kol_cifr (N.číslo, N.znach);

ak N.číslo<>0 potom

N.perestanovka (N.znach, N.first_cifra (N.znach, N.cislo), N.last_cifra (N.znach));

Programový kód je dokonca podobný programovému kódu s modulárnym prístupom, ale teraz môžete využiť všetky možnosti objektového prístupu: zhutňovanie, polymorfizmus, vytváranie detských tried, rozširovanie ich právomocí v rovnakom svete triedy ivskiy atď.

visnovok

Počas práce boli preskúmané rôzne typy prístupov k dizajnu a programovaniu z hľadiska vývoja, boli naznačené ich charakteristické riziká, výhody a nedostatky.

Náznaky na zadkoch ukazujú, ako sa vytvára implementačný program, keď sa vytvorí jeden alebo druhý prístup.

Je možné sa dozvedieť, že vývoj v programovacej technike umožnil vytvárať programovanie inteligentnejšie, oddeľovať zložité programy do samostatných častí a vykonávať dizajn a programovanie ich vzhľadu nezávisle, bez ohľadu na zariadenie. softvérových produktov prináša náklady a plytvanie zdrojmi.

Vývoj nestojí na mieste – objavujú sa nové prístupy, ktoré dávajú programátorom veľké možnosti spoliehať sa na hotové softvérové ​​bloky pri svojej práci, takže proces navrhovania softvérových produktov nie je nezávislý, rozumný len pre programátora, ale aj pre zástupca manažéra, koristuvachev. Program je premenený na model reálneho sveta.

Zoznam Wikorista Gerels

1. Buch, G. Objektovo-orientovaná analýza a dizajn so zadkami v C++ / G. Buch, preklad z angličtiny. vyd. ja Romanovský a F. Andreev. - M.: Williams, 2008. - 721 s.

2. Archangelsky, A.Ya. Programovanie v Delphi 7 / A.Ya. Archangelsk. M.: TOV "Binom-Press", 2003., - 1152 s.

3. Programovanie. Prednášky s programovaním. - Režim prístupu www.studifi.ru

4. Technológia programovania. Štrukturálne a objektovo orientované. - Režim prístupu www.sgm.forumssity.ru

5. Technológia štrukturálneho programovania. . - Režim prístupu www.razlib.ru

6. On-line informatika. Modulárne programovanie. - Režim prístupu www.online-ane.ru.

Uverejnené na Allbest.ru

...

podobné dokumenty

    Pohľad na základný prístup k dizajnu obalových produktov. Metódy vývoja rôznych metód automatizovaného projektovania. Pohľad na trh štruktúr na umiestňovanie reklamných brožúr. Konverzia náčrtov do grafiky a komunikácie.

    diplomová práca, doplniť 28.08.2014

    Skúmanie princípov tvorby agregátovo-modulárnych nástrojových systémov pre dôležité pracovné stoly s metódou zvyšovania efektivity. Teoretická analýza napäťovo-deformačného modulárneho nástroja s popisom vlastností dôležitých sústruhov.

    diplomová práca, doplniť 04.06.2009

    Vimogy, ktoré sa objavujú pred tepelnou kontrolou obrovského potravinárskeho priemyslu. Označenie a klasifikácia digestorových kotlov a ich súčasné prevedenie. Popis modernizovanej konštrukcie plynového článkového modulového kotla KPGSM-60.

    kurz práce, pridať 27.11.2012

    Hlavným prístupom k sledovaniu skladacích objektov je systémová analýza. Praktickou implementáciou systémovej analýzy je štrukturálna systémová analýza, jej princípy a metódy. Cievky štruktúrneho modelovania. Triedy modelov pre analýzu konštrukčných systémov.

    abstrakt, dodatok 18.02.2009

    Popis CAD "Assol" - modulárny softvérový komplex, ktorý vám umožňuje vytvárať vzory modelov akejkoľvek zložitosti pomocou náčrtu, fotografie alebo vizuálneho dizajnu. Kombinatorická syntéza technického náčrtu. Oblasť konštrukcie "Assol-Design".

    Príručka Navchalnyy, pridaná 02.07.2016

    Atmosférický sušiaci sklad. Technické vlastnosti sušiacej komory "Inter-Ural". Základné výhody pred projektovaním dielne. Technologický postup prípravy výpestkov z reziva. Program drevospracujúceho obchodu Virobnich.

    kurz práce, pridať 13.07.2015

    Optimalizácia riešení na modeloch nelineárneho programovania. Riešenie úlohy lineárneho programovania pomocou grafickej metódy. Rezanie, rezanie drevotrieskových dosiek na prírezy. Strávte hodinu vypracúvaním detailov. Základné riešenie na modeloch SPU.

    kurz práce, pridať 17.05.2012

    Organizačná príprava, predprojektová inštalácia systému a rozvoj technického vybavenia. Vykonané preskúmanie a schválenie súboru dokumentácie z technického návrhu organizácie výroby, procesu a riadenia.

    prezentácia, doplnenie 12.09.2015

    Metodika statickej analýzy a návrhu. Popis systému na základe danej metodiky - modelu. Vikoristannya prírodný a grafický mov. Funkčné, informačné a dynamické modelovanie. Hlavné črty metodiky.

    abstrakt, dodatok 18.02.2009

    popísať technické vlastnosti hlavné bloky vodnej elektrárne. Vlastnosti vývoja programového algoritmu na riadenie jednotky na čerpanie oleja, špecifiká programovania mikrokontrolérov Siemens. Bezpečnostné pravidlá pri údržbe.