Ennek a blokkdiagramnak a használata egy bizonyos függvény értékének kiszámításához. A blokkdiagram használata egy bizonyos függvény értékének kiszámításához Lineáris számítási algoritmusok

egyéb előadások összefoglalója

„Alapvető algoritmikus struktúrák” – „Loop body” parancsok végrehajtása. Az "elágazás" algoritmikus szerkezetének blokkvázlata. Legyen n=5; i=4. A ciklikus algoritmus blokkdiagramja. Vége. Algoritmikus struktúra "választás". Legyen n=5; i=5. Rajt. Elágazó szerkezet. Legyen n=5; i=6. Algoritmikus struktúrák alaptípusai. Algoritmikus struktúra "ciklus". Pozitív szám. A „választási” algoritmikus struktúra folyamatábrája. Lineáris algoritmus blokkdiagramja.

„Algoritmusok típusai” - Lakástakarítás. Nyissa ki a zacskót. Óra mottója. Hanoi tornyai. Az alak neve. Nézze meg a rajzfilmet. Szüreti be a betakarítást. Bevezetés az algoritmusba. Közelítsd meg az átkelőhelyet. Ciklikus algoritmusok. Lépj be a kertbe. Pálmák. Az emberi cselekvések algoritmusa. Grafikus diktálás. Rögzítési algoritmusok. Algoritmus.

Ciklus rögzítése egy eljárásban. Az eljárás helyesbítése. Elsődleges színek. Rajzoljunk falat. Mi az algoritmus? Csapat. Interaktív bemutató. Rajzoljuk meg a tetőt. Rajzoljunk egy házat. Rajzoljunk. Ablakokat rajzolunk. A ház készen áll. Ciklus. Tudás. Módosítsa a toll színét.

„Lineáris algoritmus problémák” - X = 0 Nincs megoldás. Y = 2. X = 3 Y = 1/48. Az ABC háromszög csúcsainak koordinátái adottak. Számítsa ki az Y függvény értékét X=2 esetén az algoritmus folyamatábrájával. Alakítsa át az A-t nagyobb információs egységekre. Az algoritmizálás egy algoritmus (akcióterv) kidolgozásának folyamata egy probléma megoldására. X = -1 Nincsenek megoldások. Példák problémamegoldásra. Adott az A, B, C háromszög oldalainak hossza. Határozza meg az S háromszög területét. Készítsen blokkdiagramot a feladat megoldásához!

„Algoritmikus konstrukciók” – Az algoritmusok gráf formájában történő ábrázolásának módszere. Elágazó. Algoritmusok bemutatása egy műveletsor leírása formájában. Algoritmusok bemutatásának formái. A „Tapétás” algoritmus folyamatábrája. Algoritmikus tervezés. Algoritmus a probléma megoldásához. Blokk diagramm. Algoritmusok grafikus bemutatásának módja. Algoritmusok bemutatásának módszerei. Algoritmus. Komplex algoritmus. Alapszerkezetek blokkvázlatai.

„Algoritmikus struktúrák fő típusai” - Algoritmusok írása verbális formában. Csoportokban dolgoznak. Szerkezet. Az előtagok helyesírása. Algoritmikus struktúrák alaptípusai. Önálló munkavégzés ellenőrzése. Testmozgás. Feladatok az ismeretek megszilárdítására. Algoritmus. Alapfelépítés. Kezdeti paraméterek beállítása. Recept teafőzéshez. Elágazó. Keresse meg a gyökeret. Hurok utófeltétellel. Ciklus. Karakterek blokkolása. Az algoritmus vége. Az agroritmikus szerkezetek fő típusai.

Általános utasítások
Szekcióban található áramkörök szintetizálásához. Az 5.1 a következő lépéseket írja le:
1. A szükséges áramkör funkciójának leírása.
2. Bemeneti és kimeneti változók hozzárendelése és 0 és 1 értékek hozzárendelése.
3. Igazságtáblázat készítése.
4. A szükséges logikai műveletek meghatározása.
5. Az áramkör egyszerűsítése, szükség esetén átalakítása.
Ha ismert az igazságtáblázat, akkor most a 4. szakaszt célszerű a VAGY normálalak összeállításával kezdeni. A Carnot-diagram segítségével a lehető legnagyobb mértékben leegyszerűsítjük. A 4. lépés végén egy egyszerűsített logikai függvényt kapunk, amellyel logikai digitális áramkört lehet összeállítani.
Az 5. lépés azt vizsgálja, hogy lehetséges és racionális-e a kapott függvény további egyszerűsítése a logikai algebra segítségével. Ha igen, akkor egyszerűsítést kell végrehajtani.
Most meg kell találnunk, hogy milyen logikai elemek állnak rendelkezésre. A logikai függvényt úgy kell átalakítani, hogy csak az elérhető logikai elemeket tartalmazza. Ezután összeállíthatja az áramkört.

Digitális be/ki áramkör több helyről

Logikai kapuk segítségével szintetizálnia kell egy áramkört, amely több helyről be-/kikapcsolásként működik. A kimenet állapota csak akkor változhat, ha az egyik bemenet állapota megváltozik. Ha mindkét bemenet megváltoztatja az állapotát, akkor a kimenet állapota nem változhat. Az áramkört OR-NOT elemekre kell építeni.
A kívánt áramkörnek két bemenete és egy kimenete van. A bemeneti változók neve A és B. A kimeneti változó neve Z (5.47. ábra).
A két bemeneti változót tartalmazó áramkör igazságtáblázatának 4 opciója van (5.48. ábra). Az első opció Z kezdeti állapota bármilyen módon beállítható. Kiválasztva Z = 0.
Amikor az 1. lehetőségről a 2. lehetőségre lép, az A változó állapota megváltozik. A B változó nem változtatja meg az állapotot. Ha csak az egyik bemenet változtat állapotot, akkor az adott feladatnak megfelelően a Z kimenetnek állapotát kell változtatnia. Z-nek egyenlőnek kell lennie 1-gyel.
Amikor a 2. lehetőségről a 3. lehetőségre lép, az A és B változók állapotukat megváltoztatják. Z nem változhat. Amikor a 3. opcióról a 4. lehetőségre lép, az A változó állapotát 0-ról 1-re változtatja. B 1-gyel marad. Így Z állapotát 1-ről 0-ra kell változtatnia. Az igazságtábla készen áll. Másképp nézhet ki, ha az 1. lehetőségnél a Z= 1 értéket választottuk volna.
Az igazságtáblázathoz (5.48. ábra) fel kell írni a normál VAGY alakot. Ez így néz ki:
Z = (AaB)w(AaB).
Ha beírja a normál VAGY alakot a Carnot diagramba, láthatja, hogy a további egyszerűsítés lehetetlen (5.49. ábra).
Mivel az áramkört OR-HE elemekre kell építeni, az egyenleteket transzformálni kell:
Z = (AaB)w(AaB)-,
Z = (AaB)v(AaB),
Z = AaBaAaB.

Rizs. 5.50 Digitális áramkör

ábrán látható a transzformált egyenlet szerint felépített áramkör. 5.50.

Háromból kettő kapcsoló

A fokozott kockázattal járó rendszereket, mint például az atomerőművet, baleset esetén azonnal le kell állítani. A leállítás automatikusan megtörténik egy digitális áramkör segítségével. Téves riasztások fordulhatnak elő a leállásokért felelős vészhelyzeti érzékelőkben. Ezért minden kritikus helyen három egyforma vészérzékelő van felszerelve (5.51. ábra).
A leállítás csak akkor következhet be, ha a három riasztási érzékelő közül legalább kettő működésbe lép. Ez a megközelítés megakadályozza a szükségtelen rendszerleállásokat, amelyek anyagi veszteségeket okoznak. Kioldáskor a vészhelyzeti érzékelők állapota 1. A rendszert ki kell kapcsolni, ha az áramkör kimenetén az 1. állapot aktív.
Tehát egy olyan áramkörre van szükség, amelynek kimenete 1-es állapotban van, amikor a 3 bemenet közül legalább 2 az 1-es állapotban van. Ezt az áramkört kettő-háromból kapcsolónak nevezzük.
A bemeneti változók neve A, B és C. A kimeneti változó: Z. Készítsünk igazságtáblázatot az áramkör működési elvének szóbeli leírásával. Amikor két bemeneti változó egyenlő 1-gyel, Z = 1. Ha mindhárom bemeneti változó egyenlő 1-gyel, akkor Z-nek is egyenlőnek kell lennie 1-gyel. Egy ilyen igazságtáblázatot az ábra mutat be. 5.52.
Ezután az összeállított igazságtáblázat szerint a normál VAGY alakot írjuk:

Rizs. 5.51.

Z = (A a B a C) v (A a B a C) v a5aC|v(^aSaC).

Az OR normál alakját Carnot diagram segítségével egyszerűsítjük (5.53. ábra). Három kettős csoport alakítható ki. Az egyszerűsített egyenlet a következő:
Z = (AaB)w(BaC)w(AaC).
Ezzel az egyenlettel diagramot készíthet (5.54. ábra).
Gyakran csak az OR-HE elemek vannak kéznél. Ahhoz, hogy egy áramkört csak OR-HE elemekből építsünk fel, a következő egyenletet alakítjuk át °-ra
Z = (AaB)v(BaC)v(AaC);
======= S O.
Z = (A l B)v (B aC)v (A lC);
—=====—= Fig. 5.55. Kapcsoló áramkör "kettő"
Z = AlVlVlSlAlS. három" az Sh1I-NE elemeken.
A megfelelő diagram az ábrán látható. 5.55.

Paritási áramkör

A kódok hibáinak észleléséhez (lásd a 8.7 és 8.8 fejezetet), valamint a vezérlési és felügyeleti feladatokhoz gyakran olyan áramkörre van szükség, amelyben a kimenet 1, ha páros számú bemenet 1.
Ezt az áramkört paritási áramkörnek nevezzük.
Négy bemenettel rendelkező áramkört kell szintetizálni. A bemeneti változók A, B, C és D. A kimeneti változó az Y.
Először létre kell hoznia egy igazságtáblázatot. Y mindig egyenlő 1-gyel, ha 0, 2 vagy 4 bemeneti változó 1-gyel egyenlő (5.56. ábra).
Az igazságtáblázatból megkapjuk a normál VAGY formát:
Y = (A l V lS l D)\/ ^A l V lS l (A l V lS l (A l V aS l
v(A l V lS l [A l V lS l (A l V lS l (A l V lS l D).

Az egyes teljes kötőszavak meg vannak számozva. Próbáljuk meg egyszerűsíteni az OR normál alakját egy Karnaugh-térkép segítségével (5.57. ábra). Itt olyan ritka esettel állunk szemben, amikor a csoportok kialakítása lehetetlen. Ez azt jelenti, hogy az OR e normál formája nem egyszerűsíthető le, és diagramja az 1. ábrán látható. 5.58.

A küszöbérték logikai áramkör egy olyan áramkör, amelyben egy bizonyos minimális számú bemeneti változónak 1-es állapotúnak kell lennie ahhoz, hogy a logikai 1 megjelenjen a kimeneten.
Például ki kell számítania egy öt bemeneti változós áramkört. A kimenet csak akkor legyen 1, ha legalább 4 bemenet 1.
A bemeneti változók neve A, B, C, D és E. A kimeneti változó Z. Először meg kell határoznunk az igazságtáblázatot. Öt változóval 32 opció lehetséges (5.59. ábra):
Z =¦ (A l V lS l D l E^v (A l V lS l D l E)v (A l V lS l D l v^A l V lS l D l E^v [A l V lS l D l E^v (A l B lS l D l E).
A normál OR alak hat teljes kötőszóból áll.
Az OR normál alakját Carnot diagram segítségével egyszerűsítjük (5.60. ábra). 5 dupla csoportot alkothatsz. Ez a következő egyszerűsített logikai függvényt eredményezi:
Z = (A aBaCaE)v (A aBaDaE)v (A aBaCaD)v v(A aC a D a E)v (B aC a D a E).

Az egyszerűsített függvény diagramja az ábrán látható. 5.61. Ez az egyenlet tovább egyszerűsíthető a logikai algebra segítségével. Az első három teljes kötőszóra zárójelbe teszünk (AaB), az utolsó kettőre - (C l D). Az eredményül kapott függvény a következő:
Z = [(A A B) A ((C A E) V (D A E) A C A X>))] V [(C A D) A ((A A E) V (B A Z))] . Ennek ellenére jelentős egyszerűsítést nem sikerült elérni.

Összehasonlító áramkör (összehasonlító)

A digitális technológiában gyakran kell összehasonlítani a digitális adatokat egymással. A legegyszerűbb összehasonlító áramkör, az úgynevezett komparátor két változó állapotát hasonlítja össze egymással.
Legyen a változók A és B címkéje. A és B lehet egyenlő. A nagyobb lehet, mint B, és fordítva. A komparátornak három kimenete van ehhez a három lehetséges opcióhoz. Jelölése X, Y és Z, állapotaik a következők:
A = Z => X = 1;
A > B^> Y= 1;
A< В =>Z = 1.
Tehát szintetizálni kell egy áramkört két A és B bemeneti változóval és X, Y és Z kimeneti változókkal.
Az igazságtáblázat összeállításakor a következő szabályokat kell követni: A nagyobb, mint B, ha A = 1 és B = 0. Ennek megfelelően B nagyobb, mint A, ha B = 1 és A = 0. Az igazságtáblázatot az ábra mutatja. 5.62.
A logikai függvények az igazságtáblázatból származnak:
X = (AaB)v(AaB);
Y = A a B;
Z = A a B.
Ezek az egyenletek nincsenek tovább egyszerűsítve. A kívánt sémát az ábra mutatja. 5.63.

Rizs. 5.62.

Rizs. 5.63.

A gyár elhagyása előtt a tranzisztorokat ellenőrzik, hogy négy fontos A, B, C és D paraméter az elfogadható tartományon belül legyen. A méréshez négy digitális érzékelőt használnak. Az érzékelő 1-et ad ki, ha a mért érték az elfogadható értékek tartományán belül van. Ha a mért érték kívül esik az elfogadható értékek tartományán, az érzékelő 0-t ad ki.
A tranzisztorok rendezése digitális áramkör segítségével történik. Ha mind a négy érték az elfogadható értékek tartományán belül van, az M kimeneti változó 1 lesz. Ha csak B van az elfogadható értékek tartományán kívül, akkor az N kimeneti változó 1 lesz. Ha csak B és D van a tartományon kívül. elfogadható értékeket, akkor az U kimeneti változó 1-es állapotot kap. Minden más esetben a Z kimenet 1, ami azt jelenti, hogy a tranzisztor hibás.
Ki kell számítani az áramkört, és csak NAND elemekre kell felépíteni (más néven „NAND alapon”).
A bemenetek négy A, B, C és D változóból állnak. A kimeneti változók M, N, U és Z. M 1 lesz, ha A = 1, 5 = 1, C = 1 és D = 1. Ez a 16. opció igazságtáblázat (ábra.
5.64). 1 lesz, ha A = \, 5 = 0, C = 1 és D = 1 (14. lehetőség). U egyenlő 1-gyel, ha A 1, 5 = 0,
C = 1 és D = 0 (6. lehetőség). A 6, 14 és 16 kivételével minden más esetben Z-1.

Rizs. 5.64. Igazságtáblázat a tranzisztor-válogató áramkörhöz. A nagyobb áttekinthetőség érdekében a kimeneti változó nullákat nem ír le

Az eredmény a következő logikai függvények:
M = AaBaCaD;
N = A a B a C a D; U = A a B aC a D. A Z függvény 13 teljes kötőszót tartalmaz. Z ekkor mindig 1, ha sem M, sem N, sem U nem egyenlő 1-gyel. Jobb, ha Z normál VAGY alakját írjuk (lásd 5.64. ábra):
Z = (^4a5aCaD)v^a5aCaD^v^aBaCaZ));
Z = M v N vU. Ezután Z közvetlen értékéhez:
Z = M v N vU.

Rizs. 5.65.

Az M, Nn U függvények nem egyszerűsíthetők. Ezeket a Z egyenlettel együtt újra kell számítani a NAND alapra:
M = AaBaCaD\
N = A a B aC l D;
U = AlVlSlO",
Z = M v N v U = M a N aU;
Z = M a N a U.
Ezekből az egyenletekből az ábrán látható diagramot kapjuk. 5.65. Az M, N, U és Z kimeneteken keresztül egy mechanikus eszköz vezérelhető, amely a tranzisztorokat 4 különböző konténerbe osztja szét.

2.1 Az algoritmus kidolgozása.

Algoritmus- Ezt

a. a probléma megoldását vagy egy cél elérését szolgáló cselekvések sorrendjének leírása;

b. alapvető adatkezelési műveletek elvégzésének szabályai;

c. matematikai képletekkel végzett számítások leírása.

Az algoritmus kidolgozásának megkezdése előtt világosan meg kell érteni a feladatot: mit kell ennek eredményeként megszerezni, milyen kiindulási adatokra van szükség és mi áll rendelkezésre, milyen korlátozások vonatkoznak ezekre az adatokra. Ezután fel kell írnia, hogy milyen lépéseket kell tennie a kívánt eredmény eléréséhez a kezdeti adatokból.

A gyakorlatban az algoritmusok bemutatásának leggyakoribb formái a következők:

Verbális (természetes nyelvű felvételek);

Grafika (képek grafikus szimbólumokból);

Pszeudokódok (algoritmusok félig formalizált leírása feltételes algoritmikus nyelven, beleértve a programozási nyelv elemeit és a természetes nyelvi kifejezéseket, általánosan elfogadott matematikai jelöléseket stb.);

Programozás (szövegek programozási nyelveken).

Az algoritmusok írásának verbális módja az adatfeldolgozás egymást követő szakaszainak leírása. Az algoritmus szabad formában van megadva természetes nyelven.

Példa. Írjon fel egy algoritmust két természetes szám legnagyobb közös osztójának (GCD) megkeresésére.

Az algoritmus a következő lehet:

1. állíts be két számot;

2. ha a számok egyenlőek, akkor vegyük bármelyiket válasznak, és álljunk le, ellenkező esetben folytassuk az algoritmus végrehajtását;

3. határozza meg a számok közül a legnagyobbat;

4. cserélje ki a nagyobb számot a nagyobb és a kisebb számok különbségével;

5. ismételje meg az algoritmust a 2. lépéstől.

A leírt algoritmus bármely természetes számra alkalmazható, és a probléma megoldásához kell vezetnie. Győződjön meg erről úgy, hogy ezzel az algoritmussal határozza meg a 125 és 75 számok legnagyobb közös osztóját.

A verbális módszer a következő okok miatt nem elterjedt:

Az ilyen leírások szigorúan nem formalizálhatók;

Szenvedjen a hangjegyek szóhasználatától;

Az egyes szabályozások értelmezésében van helye a kétértelműségnek.

Az algoritmusok grafikus bemutatásának módja kompaktabb és vizuálisabb a verbálishoz képest.

Grafikus ábrázoláskor az algoritmus egymáshoz kapcsolódó funkcionális blokkok sorozataként van ábrázolva, amelyek mindegyike egy vagy több művelet végrehajtásának felel meg.

Ezt a grafikus ábrázolást folyamatábrának vagy folyamatábrának nevezik.

A pszeudokód jelölések és szabályok rendszere, amely az algoritmusok egységes írására szolgál.

Köztes helyet foglal el a természetes és formális nyelvek között.

Egyrészt közel áll a hétköznapi természetes nyelvhez, így az algoritmusok úgy írhatók és olvashatók benne, mint a normál szöveg. Másrészt a pszeudokód néhány formális konstrukciót és matematikai szimbolikát használ, ami közelebb hozza az algoritmus jelölését az általánosan elfogadott matematikai jelöléshez.

A pszeudokódban a formális nyelvekben rejlő parancsok írására vonatkozó szigorú szintaktikai szabályokat nem fogadják el, ami megkönnyíti az algoritmus megírását a tervezési szakaszban, és lehetővé teszi az absztrakt végrehajtó számára tervezett parancsok szélesebb készletének használatát. A pszeudokód azonban általában tartalmaz néhány formális nyelvben rejlő konstrukciót, ami megkönnyíti a pszeudokód írásról az algoritmus formális nyelven történő írására való áttérést. Különösen a pszeudokódban, valamint a formális nyelvekben vannak funkciószavak, amelyek jelentését egyszer és mindenkorra meghatározzák. A pszeudokódnak nincs egységes vagy formális definíciója, ezért különféle pszeudokódok lehetségesek, amelyek a függvényszavak halmazában és az alapvető (alap) konstrukciókban különböznek egymástól.

2.2 Blokkdiagram.

A folyamatábra egy algoritmus grafikus ábrázolása, amelyben az egymáshoz kapcsolódó funkcionális blokkok sorozataként van ábrázolva, amelyek mindegyike egy vagy több művelet végrehajtásának felel meg.

A folyamatábrán minden művelettípus (kiindulási adatok bevitele, kifejezések értékeinek kiszámítása, feltételek ellenőrzése, műveletek ismétlődésének vezérlése, feldolgozás befejezése stb.) egy blokk szimbólumként ábrázolt geometriai alakzatnak felel meg. A blokk szimbólumokat átmeneti vonalak kötik össze, amelyek meghatározzák a műveletek végrehajtásának sorrendjét.

Íme a leggyakrabban használt szimbólumok.

Szimbólum neve Kitöltés megnevezése és példája Magyarázat
Folyamat Számítási művelet vagy műveletsor
Megoldás Feltételek ellenőrzése
Módosítás A ciklus kezdete
Előre meghatározott folyamat Számítások szubrutinnal, standard szubrutinnal
Bemenet kimenet I/O általában
Start-stop Az algoritmus kezdete, vége, be- és kilépés az alprogramba
Dokumentum Nyomtatási eredmények

A "folyamat" blokk egy olyan művelet vagy műveletsorozat jelölésére szolgál, amely megváltoztatja az adatok jelentését, megjelenítési formáját vagy elhelyezését. A diagram áttekinthetőségének javítása érdekében több egyedi feldolgozási blokk egyesíthető egy blokkba. Az egyes műveletek bemutatása meglehetősen ingyenes.

A "döntés" blokk a feltételes vezérlési átmenetek jelzésére szolgál. Minden „megoldás” blokknak azonosítania kell az általa meghatározott kérdést, feltételt vagy összehasonlítást.

A "módosítás" blokk ciklikus struktúrák szervezésére szolgál. (A módosítás szó módosítást, átalakítást jelent). A blokkon belül egy ciklusparamétert írunk, amelynek kezdőértéke, peremfeltétele és a paraméterérték változtatásának lépése minden ismétlésnél megjelenik.

Az "előre meghatározott folyamat" blokk a segédalgoritmusok hívásainak jelzésére szolgál, amelyek önállóan léteznek néhány független modul formájában, valamint a könyvtári rutinok hívásait.

Példa. Készítsen blokkvázlatot az a, b, c oldalú háromszög ha, hb, hc magasságának meghatározására szolgáló algoritmusról, ha



Ahol p = (a + b + c) / 2.
Megoldás. Bemutatjuk a jelölést akkor h a = t/a, h b = t/b, h c = t/c. A folyamatábrának tartalmaznia kell a startot, a bemenetet a, b, c, számítást p, t, h a, h b, h c , adja ki az eredményeket és állítsa le.

2.3 Algoritmus-struktúrák.

Az algoritmusokat úgy lehet felfogni, mint bizonyos struktúrákat, amelyek egyedi alap (azaz alap) elemekből állnak. Természetesen az algoritmusok ilyen megközelítésével tervezésük alapelveinek tanulmányozását ezen alapelemek tanulmányozásával kell kezdeni.

Bármely algoritmus logikai struktúrája három alapvető struktúra kombinációjával ábrázolható: követés, elágazás és hurok.

Az alapstruktúrákra jellemző az egy bemenet és egy kimenet jelenléte.

1. Az alapfelépítés következik. Egymás után következő műveletek sorozatából jön létre:

2. Alapvető elágazási szerkezet. A feltétel ellenőrzésének eredményétől függően (igen vagy nem) lehetőséget ad az algoritmus működtetésének alternatív módjaira. Mindegyik útvonal egy közös kimenethez vezet, így az algoritmus továbbra is fut, függetlenül attól, hogy melyik utat választotta.

Szerkezet elágazó négy fő változatban létezik:

Ha-akkor-más;

A választás más.

1) if-if feltétel akkor a cselekvés vége if 2) if-else if feltétel akkor cselekvések 1 egyébként akciók 2 véget érnek, ha 3) választási választás 1. feltétellel: 1. cselekvés 2. feltétellel: 2. cselekvés. . . . . . . . . . . . N feltétel mellett: N akciók a választás vége 4) választás - egyébként választás az 1. feltétel szerint: 1. cselekvés a 2. feltétel szerint: 2. cselekvés. . . . . . . . . . . . N feltétel mellett: N akciók egyébként N+1 akciók választás vége

Példa. Készítse el a függvény számítására szolgáló algoritmus blokkdiagramját

Az alapstruktúra egy ciklus. Biztosítja egy bizonyos műveletsor ismételt végrehajtását, amelyet a hurok törzsének nevezünk.

A ciklusszerkezet három fő változatban létezik:

Hurok típusa Mert.

Utasítja a huroktörzs végrehajtását egy adott változó (hurokparaméter) összes értékéhez egy adott tartományban.

Hurok típusa Viszlát.

A ciklus törzsének végrehajtását rendeli el mindaddig, amíg a while szó után írt feltétel teljesül.

Hurok típusa csinálni, miközben.

A ciklus törzsének végrehajtását rendeli el mindaddig, amíg a while szó után írt feltétel teljesül. A feltétel a ciklustörzs végrehajtása után kerül ellenőrzésre.

Ne feledje, hogy a for és a while ciklusokat a feltétel előzetes ellenőrzésével járó ciklusoknak is nevezik, és a - while - ciklusoknak a feltétel utólagos ellenőrzésével. Más szavakkal, a for és a while ciklusok törzsei még egyszer sem hajthatók végre, ha a ciklusvégi feltétel kezdetben nem igaz. Végezze el a ciklus törzsét, amíg legalább egyszer le nem hajtja, még akkor is, ha a ciklus befejezésének feltétele kezdetben nem igaz.

Ciklus i-hez i1-től i2-ig lépés i3 ciklus törzse (műveletek sorrendje) ciklus vége hurok, míg feltétel hurok teste (műveletsorozat) ciklus vége ciklus végezze el a ciklus törzsét (műveletek sorozata) a ciklus végéig

adott pontossággal (adott váltakozó hatványsor esetén a szükséges pontosságot akkor érjük el, amikor a következő tag abszolút értékben kisebb lesz).

Az összegek kiszámítása tipikus ciklikus feladat. Konkrét problémánk sajátossága, hogy a tagok száma (és ebből következően a ciklustest ismétlődéseinek száma) nem ismert előre. Ezért a ciklusnak véget kell érnie, amikor a kívánt pontosságot elérjük.

Az algoritmus összeállításakor figyelembe kell venni, hogy a kifejezések előjelei váltakoznak, és a kifejezések számlálóiban az x szám hatványa nő.

Ennek a problémának a megoldása úgy, hogy minden i-edik lépésnél kiszámítja a részösszeget

S:=S+(-1)**(i-1)*x**i/i ,

egy nagyon nem hatékony algoritmushoz fogunk jutni, amely nagyszámú műveletet igényel. Sokkal jobb a számításokat a következőképpen megszervezni: ha bármely tag számlálóját p betűvel jelöli meg, akkor a következő tag számlálója -р*х lesz (a mínusz előjel biztosítja az előjelek váltakozását). a kifejezések), és maga a kifejezés m lesz

egyenlő lesz p/i-vel, ahol i a tag száma.

Az iteratív ciklust tartalmazó algoritmust iteratív algoritmusnak nevezzük. Az iteratív numerikus módszerek megvalósítása során iteratív algoritmusokat használnak. Az iteratív algoritmusoknál biztosítani kell, hogy a ciklusból való kilépés feltétele teljesüljön (az iteratív folyamat konvergenciája). Ellenkező esetben az algoritmus hurkolni fog, azaz. az algoritmus fő tulajdonsága - a hatékonyság - nem teljesül.

Beágyazott hurkok.

Előfordulhatnak olyan esetek, amikor egy ciklus törzsén belül meg kell ismételni egy bizonyos utasítássorozatot, vagyis egy belső ciklust kell megszervezni. Ezt a struktúrát hurkon belüli huroknak vagy beágyazott huroknak nevezik. A hurkok beágyazási mélysége (vagyis az egymásba ágyazott hurkok száma) eltérő lehet.

Egy ilyen struktúra használatakor a számítógépes idő megtakarítása érdekében minden olyan utasítást, amely nem függ a belső ciklus paraméterétől, át kell helyezni a belső ciklusból a külsőbe.

Példa beágyazott hurkok. Számítsa ki az adott A(5,3) mátrix elemeinek összegét!

Példa beágyazott hurkok egyelőre. Számítsa ki az adott A(10,10) mátrix azon elemeinek szorzatát, amelyek páros sorok és páros oszlopok metszéspontjában helyezkednek el!

Minden ember mindennapi életében rengeteg, változó összetettségű feladat megoldása áll a munkahelyen vagy tanulás közben. Egyes feladatok annyira egyszerűek, hogy amikor végrehajtjuk őket, bizonyos műveleteket automatikusan, gondolkodás nélkül hajtunk végre. Bármely probléma megoldása, még a legegyszerűbb is, általában egymás után, több lépésben történik. Ezt a fajta sorrendet a feladatok megoldásánál algoritmusnak nevezzük. Ma megnézzük, mik azok a lineáris algoritmusok, hogyan ábrázolják a szerkezetüket, hogyan oldják meg és programozzák őket.

Algoritmikus nyelv

Ez a koncepció egy pontos utasítás az előadó számára egy bizonyos műveletsor végrehajtására, amely a feladat megoldására irányul.

Ez a nyelv az általában felhasználó-orientált algoritmusok leírásának eszköze.

  • Algoritmus kezdő-vége blokk. A blokkon egy „kezdet” vagy „vége” felirat található.
  • Adatbeviteli/kimeneti blokk. Ez a blokk paralelogrammaként van ábrázolva. A következő feliratok kerülnek rá: „input”, „output”, „print”. Emellett a bemeneti vagy kimeneti változók listája is megtalálható.
  • Aritmetikai blokk, vagy döntési blokk. Ez egy téglalapnak felel meg. A blokkon szerepelnie kell a következő feliratnak: „művelet”, „műveletek csoportja”.

Az ilyen blokkdiagramok segítségével lineáris algoritmusok megoldását ábrázoljuk. Ezután beszéljünk az értékek hozzárendelésének jellemzőiről.

Lineáris számítási algoritmusok

A számítási algoritmus fő elemi művelete egy adott érték hozzárendelése egy változóhoz. Abban az esetben, ha egy konstans értékét a jelölés típusa határozza meg, a változó értéke kizárólag a hozzárendelés eredményeként kap egy meghatározott értéket. Ezt kétféleképpen lehet megtenni: a hozzárendelés parancs használatával; az input parancs segítségével.

Példa egy lineáris algoritmusos megoldásra

Adjunk egy példát a közönséges törtek lineáris algoritmussal történő osztásának szabályaira, amely az iskolai tankönyvekben a következő tartalommal rendelkezik:

  • az 1. tört számlálóját meg kell szorozni a 2. tört nevezőjével;
  • az 1. tört nevezőjét meg kell szorozni a 2. tört számlálójával;
  • fel kell írni egy törtet, amelyben a számláló az 1. lépés, a nevező pedig a 2. lépés befejezésének eredménye. Ennek a szabálynak az algebrai formája a következő:

a/b: c/d=(a*d)/(b*d)=m/n.

Tehát építsünk fel egy algoritmust a törtek elosztására egy számítógép számára. Hogy ne tévedjünk össze, ugyanazt a jelölést fogjuk használni a változókra, mint a fent jelzett képletben. a, b, c, d - forrásadatok egész változók formájában. Az eredmény egész értékek is lesznek. A megoldás algoritmikus nyelven a következő lesz:

alg Törtek felosztása

ép a, b, c, d, m, n

bemenet a, b, c, d

con

A megoldás grafikus formája

A fent leírt lineáris algoritmus diagramja így néz ki:

Az érték hozzárendelési parancs formátuma a következő:

Változó:=kifejezés.

A „:=” jelet a rendszer hozzárendelésként olvassa be.

A hozzárendelés egy parancs, amely szükséges a számítógépnek a következő műveletek végrehajtásához:

  • kifejezés számítások;
  • a kapott értéket hozzárendeljük egy változóhoz.

A fenti algoritmus két parancsot tartalmaz hozzárendelésként. A blokkdiagramban a hozzárendelési utasítást egy számítási blokknak nevezett téglalapba kell írni.

Lineáris algoritmusok leírásánál nincs különösebb szükség a kifejezések írásakor szigorú szabályok szigorú betartására. A szokásos matematikai űrlap segítségével írhatja le őket. Végül is ez nem a programozási nyelv szigorú szintaxisa.

Az algoritmus adott példájában van egy bemeneti parancs is:

Írja be: a, b, c, d.

A blokkdiagram bemeneti parancsa paralelogrammába, azaz bemeneti-kimeneti blokkba van írva. A parancs végrehajtásával a processzor megszakítja a műveletet, amíg a felhasználó el nem hajt bizonyos műveleteket. Nevezetesen: a felhasználónak be kell írnia a beviteli változókat (értékeiket) a (billentyűzeten) és meg kell nyomnia az Enter billentyűt, amely az enter billentyűként működik. Fontos, hogy az értékek ugyanabban a sorrendben legyenek megadva, mint a beviteli listában található megfelelő változók.

Lineáris algoritmus. A programozása

Ahogy a cikk elején említettük, a lineáris programok a következő állításokat tartalmazhatják:

  • feladat;
  • bemenet;
  • következtetés.

Vagyis a felsorolt ​​operátorok segítségével algoritmusok valósulnak meg.

Tehát programnyelven így van írva:

LET A = B, ahol A egy változó, B egy kifejezés. Például A = Y + 20.

A bemeneti utasítás így néz ki:

INPUT, például: INPUT C

Az adatok, értékek kiadására szolgáló operátor a következő formában van írva:

NYOMTATÁS. Például PRINT S.

Mondjunk egy egyszerű példát. Írnunk kell egy programot, ami megkeresi a billentyűzetről beírt A és B számok összegét.

Programozási nyelven kapunk egy programot, melynek szövege lent látható.

Bemeneti és kimeneti operátorok a Pascal programozási nyelvben

A Pascal nem biztosít speciális operátorokat a lineáris algoritmusok által használt bemeneti vagy kimeneti műveletek jelzésére. A programokban az információcsere beépített eljárások segítségével történik. Mivel nincs szükség a szabványos eljárás előzetes leírására, minden olyan program számára elérhető, amelyik meghívást tartalmaz. Ezenkívül az említett eljárás neve nem fenntartott szó.

Adatbevitelkor az ilyen operátorok egy szabványos adatbeviteli eljárásra utalnak, amely már be van építve a programba.

Olvassa (A, B, C), ahol A, B, C olyan változók, amelyeket be kell írni a RAM-ba a memorizáláshoz.

Readlnn (x1, y, x2) - a bevitel befejezése után a kurzor egy új sor elejére ugrik.

Readlnn; - azt jelzi, hogy az „Enter” megnyomására vár. Általában ez az utasítás az utolsó „End” előtti szövegbe kerül, hogy a program végrehajtásának eredményeit a tartalom képernyőn mentse.

Az adatok a következő operátorok használatával jelennek meg a monitor képernyőjén:

Írás (A, B, C) - az A, B, C értékek egy sorban történő megadásával a kurzor nem hagyja el az aktuális sort.

Writeln (z, y, z2) - az értékek kiírása után a kurzor ebben a pozícióban egy új sorba lép.

Writeln; - egy sor kihagyását és egy új sor elejére ugrását jelzi.

Az adatok Pascal nyelven történő bevitele és kiadása ilyen egyszerű operátorok segítségével történik.

Analóg jelfeldolgozó algoritmusok implementálásakor gyakran szükséges matematikai függvények kiszámítása. A leggyakoribb függvények a logaritmikus és az exponenciális függvények. Ezeket a funkciókat olyan sémákban használják, amelyek csökkentik és növelik az átvitt vagy rögzített jel dinamikus tartományát (kompandálás). A kitevő és logaritmus matematikai áramkörök másik gyakori alkalmazása a bemeneti jelek szorzatának és osztásának kiszámítása.

A nemlineáris függvény kiszámításához gyakran használnak negatív visszacsatolással körülvett műveleti erősítőt. Példaként az 1. ábra egy logaritmikus erősítő áramkörét mutatja be.


1. ábra Logaritmikus erősítő áramkör

Ebben az áramkörben egy nemlineáris elem (félvezető dióda) van a negatív visszacsatoló áramkörben, amely exponenciálisan függ az áramerősségtől az alkalmazott feszültségtől. A visszacsatoló hatás hatására a kimeneti feszültség függése a bemenettől logaritmikussá válik. Ennek a logaritmuskörnek az erősítését R1 határozza meg. A logaritmusáramkört általában egységerősítésre tervezték.

Ha ebben az áramkörben másodfokú áram-feszültség karakterisztikával rendelkező diódát használunk, akkor ez kiszámítja a bemeneti jel négyzetgyökét. Kényelmes a jelamplitúdó meghatározására szolgáló áramkörökben a kvadratúra jelfeldolgozás során.

(1),

Hasonló módon számítjuk ki a logaritmikus függvény inverzét, az exponenciálist. Csak ebben az esetben a nemlineáris elem nem a visszacsatoló áramkörben, hanem az erősítő bemenetén található. A 2. ábra a műveleti erősítő kitevőjének kiszámítására szolgáló diagramot mutat be.


2. ábra A kitevő számítási sémája

Ha ebben az áramkörben másodfokú áram-feszültség karakterisztikával rendelkező diódát használunk, akkor az áramkör kiszámítja a bemeneti feszültség négyzetét, és áramkörként használható a bemeneti jel teljesítményének meghatározására.

Ezekkel az áramkörökkel a matematikai függvények kiszámításához két analóg jel szorzatát lehet kiszámítani. Ez a logaritmusok jól ismert tulajdonságát használja fel arra, hogy a változók szorzatát lecserélje e változók logaritmusainak összegére. Az inverz konverzióhoz a kitevő számítási függvényt használjuk. Ebben az esetben a logaritmus alapja teljesen lényegtelen.

(2),

Az (1) képletet a műveleti erősítőkön megvalósító szorzóáramkör a 3. ábrán látható.



3. ábra Műveleti erősítő szorzó áramkör

A megvalósítás egyszerűsége ellenére egy ilyen sémát meglehetősen ritkán használnak, mert Szorzás csak pozitív bemeneti értékek esetén lehetséges. Ezért általában az alapra épített szorzóáramköröket használják.

A függvények kiszámításához nem mindig lehet nemlineáris elemet kiválasztani adott áram-feszültség karakterisztikával. Ebben az esetben használhatja a függvény darabonkénti lineáris közelítését. Könnyű bármilyen erősítést megvalósítani a műveleti erősítőn, egyszerűen a visszacsatoló áramkörben lévő ellenállás értékének megváltoztatásával, ezzel beállítva a funkció meredekségét. Az ellenállások kapcsolása a bemeneti feszültség változása esetén a legegyszerűbben diódakapcsolókkal végezhető el, amelyeket az általunk beállított kikapcsolási feszültséggel látunk el. Hasonló diagram látható a 4. ábrán.


4. ábra Funkcióerősítő áramkör

A tranzisztor alapú szorzókat gyakran használják bonyolultabb függvények kiszámítására. A legegyszerűbb esetben az X és Y bemenetek kombinálhatók, hogy egy áramkört kapjunk a bemeneti jel négyzetének kiszámításához ( Y=X 2).

Elektronikus feszültségszabályozóként használhatók. Állandó feszültséget kapcsolva az egyik bemenetre, szabályozható a kimeneten a kimenetre táplált váltakozó feszültség szintje.

Irodalom:

A "Matematikai függvények kiszámításának sémája" cikkel együtt olvassa el:



Betöltés...
Top