Példa az algoritmus rögzítésére az iskolai napokon - a stadopedia

Az algoritmus általános nézete: Az algoritmus végrehajtásának feltételei az algoritmus neve (argumentumok és eredmények) az algoritmus alkalmazhatóságának feltételei. parancssor (algoritmus test)







Az alg szóból a nach szó algoritmusának egy részét nevezik a címsornak, és a részek közé záródó rész kezdődik és az algoritmus része.

A javaslat ALG algoritmus után nevet zárójelben szereplő jellemzők (arg, Res) és egy érték típusú (cél, vesch, Sim, világít vagy log) a bemeneti (argumentum) és kimeneti (eredmény) változókat. A tömbök (táblázatok) leírásakor a szolgáltatásszavak fülét adjuk hozzá, kiegészítve a határolópárral a tömbelemek egyes indexeihez.

Minta mondatok alg:

o alg A henger térfogata és területe (arg, R, H, R, V)

o alg A KvUp gyökei (arg b, b, c, x1, x2, vágott t)

o alg Egy elem kizárása (arg N, arg arres A [1: N])

o alg Diagonal (arg. N, argh tsel A lap [1: N, 1: N], vágott Otvet)

A mondatok meg vannak adva és nem szükségesek. Azt ajánlják, hogy írja le azokat az állításokat, amelyek leírják az algoritmus végrehajtójának környezet állapotát, például:

1. alg Csere (arglit Str1, Str2, arget szöveg) 2. adott | az Str1 és Str2 szubsztrátok hossza ugyanaz3. szükség mindenhol a sztringben A Str1 szövegmezőt Str2 helyettesíti

5. Alg A maximális számok (arg N, arg A [1: N], vágja K) 6. adott | N> 07. szükség K az A táblázat maximális elemeinek száma

9. Alg rezisztencia (arg, R1, R2, arg N, cut R) 10. adott | N> 5, R1> 0, R2> 011. szükség R az áramkör ellenállása

Hozzárendelési operátor. Kifejezetten a kifejezések kiértékeléséhez és az értékek változókhoz való hozzárendeléséhez szolgál. Általános nézet: A: = B, ahol a ": =" jel azt jelenti, hogy a bal oldali változó régi értékét a jobb oldali kifejezés számított értékével helyettesítjük.

Az adatok beviteléhez és kiadásához használja a parancsokat

· Beviteli változó nevek

· Output változó nevek, kifejezések, szövegek.

Elágazás esetén a parancsokat, ha vannak ilyenek, a hurkok szervezéséhez a 7.9. Szakaszban leírt és ideiglenes parancsok.

A négyzetek összege (arg n, vágott S) megadva n> 0 szükséges | S = 1 * 1 + 2 * 2 + 3 * 3 +. + n * n kezdet i bemenet n; S: = 0 nc i számára 1-től n-ig S: = S + i * i kc kimenet "S =", Scon

7.9. Melyek az alapvető algoritmikus struktúrák?

Az algoritmusok úgy ábrázolhatók, mint olyan struktúrák, amelyek különálló alap (vagyis alapvető) elemekből állnak. Természetesen az algoritmusokkal való megközelítéssel az építés alapelveinek tanulmányozása ezen alapelemek tanulmányozásával kezdődik. A leírásukhoz fogjuk használni az algoritmus-sémák nyelvét és az iskolai algoritmikus nyelvet.

Az algoritmus logikai struktúráját három alapszerkezet kombinációjával lehet ábrázolni: követés, ág, ciklus.

Az alapszerkezetek egyik jellemzője, hogy egy bemenet és egy kimenet van jelen benne.

1. A következő alapvető szerkezetét. Az egymás után következő cselekvési sorrendből van kialakítva:

Iskolai algoritmikus nyelv

7.10. Milyen ciklusokat neveznek iteratívnak?

Az iterációs ciklus egyik jellemzője, hogy a hurokháló kezelőinek ismétlődése nem ismert előre. A szervezet számára eddig egy típushurok került felhasználásra. Az iterációs ciklusból való kilépés akkor történik, ha a megadott feltétel teljesül.

A számítások minden egyes lépésénél a kívánt eredmény eléréséhez szükséges feltétel egymás után közelítésre kerül és ellenőrzött.

Egy példa. Összeállít egy algoritmust a sorozat összegének kiszámításához


adott pontossággal (az adott váltakozó teljesítménysorozat esetében a szükséges pontosságot akkor érik el, ha a következő kifejezés abszolút értékben kisebb lesz).

Az összegek kiszámítása tipikus ciklikus probléma. Különleges problémánk sajátossága, hogy a kifejezések száma (és ennek következtében a ciklus testének ismétléseinek száma) előre nem ismert. Ezért a ciklus végrehajtása akkor fejeződik be, amikor a kívánt pontosság érhető el.

Az algoritmus összeállításakor figyelembe kell venni, hogy a csúcsok jelei váltakoznak, és a számok számlálójában lévő x szám mértéke nő.

Ez a probléma megoldása "a homlokán", minden i. Lépésben részösszeg kiszámításával


Nagyon kevés hatékony algoritmust kapunk, amely nagyszámú műveletet igényel. Sokkal jobb szervezni a következő számítással: ha mi jelöljük a számláló egy távon p, akkor a következő kifejezés a számláló egyenlő p x * (mínusz jel váltakozása szempontjából biztosít szimbólumok), és a kifejezés is egyenlő lesz m p / i, ahol i - a kifejezés száma.

Hasonlítsa össze a két megközelítést a műveletek számával.

Algoritmus az iskola AJ számára

alg Az összeg (arg x, Eps, szelet S) adott | 0 Eps p: = - p * x | p - számláló | a következő összeg m: = p / i | m a következő S summa: = S + m | S a részösszeg i: = i + 1 | i - szám | Az S kimenet következő kimenetének összege

Az iteratív hurokból álló algoritmust iterációs algoritmának nevezik. Iteratív algoritmusokat használnak az iteratív numerikus módszerek megvalósításában.

Az iteratív algoritmusokban meg kell győződni arról, hogy a kilépési feltétel a huroktól kötelező (az iterációs folyamat konvergenciája). Ellenkező esetben az algoritmus hurok lesz, azaz. az algoritmus fő tulajdonsága a teljesítmény.

7.11. Mik azok a beágyazott hurkok?

Vannak olyan esetek, amikor a ciklus testében meg kell ismételni egy bizonyos operátorszekvenciát, vagyis egy belső ciklus megszervezését. Ezt a struktúrát ciklusnak nevezzük egy ciklusban vagy egy beágyazott ciklusban. A beágyazási ciklusok mélysége (vagyis az egymásba ágyazott ciklusok száma) eltérő lehet.

Ha ilyen szerkezetet használ, a számítógépes idő megóvása érdekében a belső hurokból ki kell venni az összes külső operátort, amely nem függ a belső hurok paraméterétől.

Példa a beágyazott hurkok számára

Számítsd ki az adott A mátrix elemeinek összegét (5.3).

nc az i esetében 1-5 nc, j esetén 1-3 S: = S + A [i, j] kc kc

Példa a beágyazott hurkokra

Számítsd ki az adott A (10, 10) mátrix elemeinek termékeit, amelyek a sorok és az oszlopok metszéspontjában találhatók.

i: = 2; P: = 1 nz miközben i <= 10 j:=2 нц пока j <= 10 P:=P*A[i,j] j:=j+2 кц i:=i+2 кц

7.12. Mi a különbség az algoritmusok másoktól való írásbeli módja között?

Ha egy algoritmust verbális formában írunk, blokkdiagram vagy pszeudokód formájában, bizonyos parancsfájlok megjelenése esetén megengedett. Ugyanakkor egy ilyen rekord elég pontos, hogy lehetővé teszi az ember számára, hogy megértse az ügy lényegét és végrehajtsa az algoritmust.







Azonban a gyakorlatban a speciális automata számítógépek az algoritmusok végrehajtói. Ezért egy számítógépen végrehajtásra szánt algoritmust egy "érthető" nyelven kell írni. És itt a csapat pontos rögzítésének szükségessége előtérbe kerül, és nem hagy teret az előadóművész önkényes értelmezéséhez.

Ezért az algoritmusok írási nyelvét formalizálni kell. Ezt a nyelvet általában programozási nyelvnek nevezik, és az algoritmus bejegyzés ezen a nyelven egy program a számítógép számára.

7.13. Mi a programnyelv szintje?

Jelenleg több száz igazán használt programozási nyelv van a világon. Mindegyiknek saját alkalmazási területe van.

Bármilyen algoritmus, mint tudjuk, utasítások sorozata, amely véges számú lépésben végezhető el az eredeti adatoktól az eredményig. A receptek részletességétől függően általában meghatározzák a programozási nyelv szintjét - annál kevésbé részletesen, annál magasabb a nyelv szintje.

E kritérium szerint a programozási nyelvek következő szintjei különböztethetők meg:

· Géptől független (magas szintű nyelvek).

A gépnyelvek és a géporientált nyelvek alacsony szintű nyelvek, amelyek kis részleteket igényelnek az adatfeldolgozási folyamatokban.

A magas szintű nyelvek utánozzák a természetes nyelveket, bizonyos szavakat a beszélt nyelv és a közös matematikai szimbólumokat. Ezek a nyelvek sokkal kényelmesebbek az ember számára.

A magas szintű nyelvek a következőkre oszthatók:

· Algoritmikus (alap, Pascal, C, stb.), Amelyek az algoritmusok egyértelmű meghatározására szolgálnak;

· Logic (Prolog, Lisp, stb), amelyek nem kifejezetten a fejlesztési egy algoritmust a probléma megoldására, és a szisztematikus és formális leírása a problémát, hogy a döntés eredménye, a lefordított leírás.

· Objektumorientált (Object Pascal, C ++, Java stb.), Amely egy olyan objektum fogalmán alapul, amely összekapcsolja az adatokat és a tevékenységeket velünk. A program az objektum-orientált nyelvben, egy adott feladat megoldásával lényegében a világhoz tartozó feladatot írja le. A valóság leírása a kölcsönható objektumok rendszere formájában természetesbb, mint a kölcsönhatásban lévő eljárások formájában.

7.14. Mik a gépi nyelvek előnyei és hátrányai?

A gépi nyelvek programozásakor a programozó képes minden parancsra és memóriakártyára irányítani, használja a rendelkezésre álló gépi műveletek összes lehetőségét.

De a gépírás nyelvének írása nagyon nehézkes és fáradságos. A program nehézkes, nehezen megjósolható, nehezen hibakereshető, módosítható és fejleszthető.

Ezért abban az esetben, ha olyan hatékony programra van szükség, amely figyelembe veszi egy adott számítógép sajátosságát a lehető legnagyobb mértékben, számítógépes nyelvek helyett számítógéppel orientált nyelveket (assemblereket) használnak.

7.15. Mi az összeszerelő nyelv?

Az Assembler-nyelv egy olyan jelölőrendszer, amelyet az ember által olvasható formában gépi kóddal írt programok ábrázolására használnak.

A programot az assembly-nyelvről a gép nyelvére egy speciális program végzi, más néven assembler-ként, és valójában a legegyszerűbb fordító.

7.16. Melyek az algoritmikus nyelvek előnyei a gépen?

A legfontosabb előnyök a következők:

· Az algoritmikus nyelv ábécéje sokkal szélesebb, mint a számítógép nyelvének ábécéje, ami jelentősen növeli a program szövegének láthatóságát;

· A használatra elfogadható mûveletek nem függenek a gépi mûveletek halmazától, hanem az adott osztály problémáinak megoldására szolgáló algoritmusok kialakításánál a kényelem szempontjai közül választanak;

· A pályázatok formátuma elég rugalmas és kényelmes a használathoz, amely lehetővé teszi az adatfeldolgozás kellően értelmes szakaszát egy mondattal;

· A szükséges műveleteket hagyományos matematikai jelöléssel határozzák meg;

· Az algoritmikus nyelvek adatait az egyedi nevek hozzárendelik, amelyeket a programozó választ;

· A gépadat-típusok sokkal szélesebb adattípusát lehet megadni a nyelvben.

Így az algoritmikus nyelvek nagyrészt gépi függetlenek. Segítik a programozó munkáját és növelik a létrehozandó programok megbízhatóságát.

7.17. Mely elemek alkotnak algoritmikus nyelvet?

Az algoritmikus nyelv (mint bármely más nyelv) három összetevőjét alkotja: ábécé, szintaxis és szemantika.

Az ábécé egy adott nyelv alapvető szimbólumainak rögzített halmaza; "ábécé betűk", amelyekből ezen a nyelven minden szövegnek tartalmaznia kell - a szövegben nincs más szimbólum.

A szintaxis a mondatok megalkotásának szabályai, amelyek segítségével megállapíthatja, hogy egy adott kifejezés helyesen vagy helytelenül van-e írva. Pontosabban, egy nyelv szintaxisa olyan szabályok halmaza, amelyek meghatározzák, hogy melyik karakterkombinációk értelmes mondatok az adott nyelven.

A szemiantika határozza meg a nyelvi mondatok szemantikai jelentését. Mivel a rendszer a szabályok értelmezésének egyes nyelvi konstrukciók, szemantika határozza meg, milyen sorrendben leírt tevékenységek ezek, vagy más kifejezések a nyelv, és végül, hogy mi algoritmus szerint határozzák meg a szöveg a algoritmikus nyelvet.

7.18. Milyen fogalmak használnak algoritmikus nyelveket?

Az algoritmikus nyelv minden fogalma magában foglalja a meghatározott szintaktikai egységet (design) és a program objektumok vagy az általa meghatározott adatfeldolgozási folyamatok tulajdonságait.

A nyelv fogalmát a szintaktikai és a szemantikai szabályok kölcsönhatásai határozzák meg. A szintaktikai szabályok azt mutatják, hogyan alakul ez a fogalom az ábécé más fogalmaiból és betűiből, és a szemantikai szabályok meghatározzák az adott koncepció tulajdonságait

Az algoritmikus nyelvek fő fogalmai általában a következők.

Nevek (azonosítók) - a programobjektumok (változók, tömbök, függvények stb.) Hivatkozására szolgálnak.

Opepatsii. A műveletek típusai:

· Számtani műveletek +. -. *. / és dp. ;

· Logikai műveletek és, vagy, nem;

· Kapcsolat <.>. <=,>=. =. <> ;

· A szimbólum értékek összekapcsolásának működése (egyébként "csatlakozás", "összefonódás") egymással egy hosszú vonal kialakításával; egy "+" jel.

Adatok - a program által feldolgozott mennyiségek. Három fő adatfajta létezik: állandók, változók és tömbök.

· A konstansok olyan adatok, amelyek a program szövegében vannak rögzítve, és nem változnak a végrehajtás során.

o numerikus 7.5, 12;

o logikai igen (igaz), nem (hamis);

o szimbolikus "A", "+";

o szó szerinti "abcde", "informatika", "" (üres karakterlánc).

· A változókat nevekkel jelölik és megváltoztathatják értékeiket a program végrehajtása során. A változók lehetnek egész számok, valósak, logikaiak, szimbolikusak és szó szerint.

· A tömbök azonos típusú sorozatok, amelyek száma rögzített, és azonos névvel. Egy elem helyének pozícióját egyedileg határozza meg az indexek (egy, egydimenziós tömb esetén, vagy több, ha a tömb többdimenziós). Néha a tömböket tábláknak nevezik.

Vypazheniya - ppednaznachayutsya elvégzéséhez szükséges számításokat áll állandók, változók, amelyek függvénymutatók (nappimep, exp (x)), kombinált opepatsy jelek.

A kifejezések vannak írva, mint a lineáris szimbólum szekvenciák (anélkül hatványkitevőket „többszintes” törtek, stb), amely lehetővé teszi, hogy bemutassuk őket a számítógépbe, egymás után nyomja meg a megfelelő nyilakat.

Aritmetikai, logikai és szöveges kifejezések vannak.

· A számtani kifejezések egyetlen számértéket definiálnak. Például, (1 + sin (x)) / 2. Ennek a kifejezésnek az értéke x = 0 esetén 0,5, és x = p / 2-one esetén.

· A logikai kifejezések olyan feltételeket írnak le, amelyek teljesíthetők vagy nem teljesíthetők. Így a logikai kifejezés csak két értéket vehet fel: "igaz" vagy "hamis" (igen vagy nem). Vegyük például az x * x + y * y logikai kifejezést

· A szöveg (szó szerinti) kifejezések értéke - szöveg. Ezek magukban foglalhatják a literáli konstansokat, a szóban forgó változókat és a levélfunkciókat, amelyeket a csatolás működési jele különböztet meg. Például A + B azt jelenti, hogy az A vonal végéhez csatlakozik a B vonal. Ha A = "bokor". és B = "zöld". akkor az A + B kifejezés értéke "zöld bokor".

Operátorok (parancsok). Az operátor a nyelv legnagyobb és legjelentősebb fogalma: minden egyes szereplő a nyelv teljes mondata, és meghatározza az adatfeldolgozásnak egy teljesen befejezett szakaszát. Az operatív struktúra a következőket foglalja magában:

Az operátorok futtatható és nem futtathatóak. Nem végrehajtható utasítások a fűnyíró céljuk, hogy bemutassák az adatok és a struct kódot, nem végrehajtható - postseismic a műveletbe (nappimep, ppisvaivaniya nyilatkozatok, kijelentések bemeneti és kimeneti, feltételes utasítás ciklus üzemeltetői, kezelői eljárások et al.).

7.19. Mi a szokásos funkció?

Számítógépes feladatok megoldása során számolni kell a logaritmust vagy a számmodulust, a szinusz szöget stb.

A gyakran használt funkciók kiszámítását szubrutinokkal végezzük, amelyeket standard funkcióknak nevezünk, amelyek előre programozottak és beépülnek a nyelvfordítóba.




Kapcsolódó cikkek