Névjegyek

Algoritmikus nyelvi példák. Orosz algoritmikus nyelv. Példák olyan logikai kifejezések írására, amelyek igazak, ha a megadott feltételek teljesülnek

Iskolai algoritmikus nyelv

Algoritmikus nyelv(is Orosz algoritmikus nyelv, PARADISZ) egy algoritmusok írására és tanulására használt programozási nyelv. Az informatika iskolai tanulmányozása során az ún. iskolai algoritmikus nyelv (oktatási algoritmikus nyelv), a diák számára érthető orosz szavakat használva. A legtöbb programozási nyelvtől eltérően az algoritmikus nyelv nincs kötve a számítógép architektúrájához, nem tartalmaz a gép felépítésével kapcsolatos részleteket.

Példák

Az algoritmus az algoritmikus nyelvben általában a következő formában van megírva:

alg algoritmus neve (érvek és eredmények) adott algoritmus alkalmazhatósági feltételei szükséges az algoritmus célja korai a közbenső értékek leírása parancssor (algoritmus törzs) con

Az algoritmus nyilvántartásában a kulcsszavak általában aláhúzással vagy félkövérrel voltak kiemelve. A logikai blokkok kiemeléséhez behúzásokat használtunk, és a blokk elejének és végének párosított szavakat függőleges vonallal kapcsoltuk össze.

Példa a négyzetek összegének kiszámítására:

alg Négyzetek összege ( arg ép n, vágott ép S) adott| n> 0 szükséges| S = 1 * 1 + 2 * 2 + 3 * 3 + ... + n * n korai ép i | bemenet n; S: = 0 | nts i-re 1-től n-ig | | S: = S + i * i | kts | Kimenet"S =", S con

E-műhely

Az algoritmikus nyelvű programozás elméleti tanulmányainak megerősítése érdekében a Moszkvai Állami Egyetem Mechanikai és Matematikai Karának szakemberei 1985-ben létrehoztak egy szerkesztőt-fordítót "E-workshop"("E" - Ershov tiszteletére), amely lehetővé teszi a programok algoritmikus nyelven történő bevitelét, szerkesztését és végrehajtását.

1986-ban kiadták az "E-műhely" oktatási világainak (előadóinak) a készletét: "Robot", "Rajzoló", "Kétlábú", "Terepjáró", amelyek lehetővé teszik a fogalmak egyszerű bevezetését az algoritmus. Az "e-workshop" számítógépeken valósult meg: a Yamaha, a Corvette, az UKSC, és elterjedt.

Ezt a programozási nyelvet folyamatosan finomították, és az 1990-es tankönyvben megjelent az "E-műhely" későbbi verziójának leírása. Ezt a tankönyvet támogató "Kumir" ("Oktatási világok halmaza") programozási rendszert az "InfoMir" vállalkozás adta ki 1990-ben. Ennek a rendszernek a nyelvét "kumirnak" is nevezik.

1995-ben az Orosz Föderáció Oktatási Minisztériuma a "Kumir" -t ajánlotta az "Informatika és a számítástechnika alapjai" tanfolyam fő tananyagaként A. G. Kushnirenko, G. V. Lebedev és R. A. Svoren tankönyvei alapján. ...

Kritika

Meg kell azonban jegyezni, hogy az algoritmikus nyelv - a számítógép architektúrájával közvetlenül összekapcsolódó részletek hiányában - ennek ellenére az Algol-szerű nyelvekre hivatkozva hallgatólagosan megtanítja az iskolásokat, hogy támaszkodjanak a gépek von Neumann-architektúrájára. (A von Neumann-architektúra egy korábbi, Turing-gép nevű ötlet gyakorlati megvalósítása. A Turing-i ötlet mellett vannak más ötletek is. A legnépszerűbb közülük Lambda-számítást hívják: Alonzo Church dolgozott rajta. A Lisp-gép a Lambda-kalkuluson alapuló architektúra.)

Linkek

  • A. P. Ershov. Algoritmikus nyelv az informatika és a számítástechnika alapjainak iskolai tanfolyamán. 1985.05.05
  • Fórum az orosz programozási nyelvekről és a fejlesztési eszközökről

Wikimedia Alapítvány. 2010.

Nézze meg, mi az "iskolai algoritmikus nyelv" más szótárakban:

    Az algoritmikus nyelv egy formális nyelv, amelyet algoritmusok írására, megvalósítására vagy megtanulására használnak. Minden programozási nyelv algoritmikus nyelv, de nem minden algoritmikus nyelv alkalmas nyelvként való használatra ... ... Wikipedia

    Ennek a kifejezésnek más jelentése is van, lásd Algoritmikus nyelv. Az oktatási algoritmikus nyelv egy formális nyelv, amelyet algoritmusok írására, megvalósítására és megtanulására használnak. A legtöbb programozási nyelvvel ellentétben ez nem kötődik a ... Wikipédiához

    Ennek a kifejezésnek más jelentése is van, lásd Sárkány (pontosítás). Példa egy algoritmus blokkdiagramjára egy DRAGON-séma (Láthatóságot biztosító, barátságos orosz algoritmikus nyelv) DRAGON nyelvi sárkányában ... Wikipedia

    A programozási nyelv tanulása A tanításra tervezett programozási nyelv. Mint ilyen, olyan nyelveket fejlesztettek ki, mint a BASIC és a Pascal. A tanuláshoz kifejlesztett ABC nyelv a Pythonból nőtt ki. Népszerű nyelv, ... ... Wikipédia

    Ezt a cikket törlésre javasolják. Az okok magyarázatát és a megfelelő vitát a Wikipedia oldalon találja: Törlendő / 2012. szeptember 28. Bár a vita folyamata még nem fejeződött be, a cikk ... Wikipedia

    Az algoritmikus nyelv (az orosz algoritmikus nyelv, a PARADISE is) egy algoritmusok rögzítésére és tanulmányozására használt programozási nyelv. Az informatika iskolai tanulmányozása során az ún. iskolai algoritmikus ... ... Wikipédia

    Ennek a kifejezésnek más jelentése van, lásd Idol. Kumir ... Wikipédia

    Edumandriva ... Wikipédia

    - (Oktatási világkészlet vagy Mira Kushnirenko) programozási rendszer, amelyet a számítástechnika és a programozás kezdeti tanfolyamainak támogatására fejlesztettek ki a közép- és középiskolákban. Az 1980-as évek második felében kifejlesztett technika alapján ... ... Wikipédia

Könyvek

  • Programozás a Kumir algoritmikus nyelven, szerkesztette: AG Kushnirenko, Anelikova L., Gusev O .. Ez a kézikönyv a tanárok és a hallgatók számára készült, hogy támogassák a számítástechnika és a programozás kezdeti tanfolyamait a közép-, közép- és középiskolában. ... Ez magában foglalja a főbb lépéseket és ...

Ha algoritmust írunk algoritmikus (formális) nyelvre, programnak nevezzük. Néha az algoritmus fogalmát azonosítják annak rekordjával, így az "algoritmus" és a "program" szavak szinte szinonimák. Kis különbség az, hogy amikor egy algoritmust említenek, akkor általában annak felépítésének alapgondolatát jelentik, amely minden algoritmikus nyelvben közös. A program mindig társul az algoritmus egy adott felvételéhez Hivatalos nyelv.

Például egy algoritmus ötletének bemutatásakor az tudományos cikk, nem mindig ajánlott valamilyen speciális programozási nyelvet használni, nehogy elrontja a jelentést jelentéktelen részletekkel. Ilyen esetekben informális algoritmikus nyelvet használnak, a lehető legközelebb a természeteshez. Ezt a típusú nyelvet nevezzük álkód... A szakember számára nem nehéz átírni egy programot az álkódról bármely meghatározott programozási nyelvre. Algoritmus írása álkódba gyakran egyértelműbb és világosabb, lehetővé teszi a részletesség szintjének szabad megválasztását, kezdve a legáltalánosabb vázlatban szereplő leírástól és befejezve egy részletes bemutatással.

Álkódok Fél formalizált algoritmusleírások vannak bekapcsolva feltételes algoritmikus nyelv, beleértve a programozási nyelv elemeit és a természetes nyelvi kifejezéseket, az általánosan elfogadott matematikai jelöléseket és egyebeket.

Az álkód egy jelölés- és szabályrendszer, amelyet algoritmusok következetes rögzítésére terveztek.

Az álkód köztes a természetes nyelv és a programozási nyelv között. Egyrészt közel áll egy közönséges, természetes nyelvhez, így algoritmusok írhatók és olvashatók benne, mint a hétköznapi szövegek. Másrészt néhány formális konstrukciót és matematikai szimbólumot használnak az álkódban, amely közelebb hozza az algoritmus jelölését az általánosan elfogadott matematikai jelöléshez.

Az álkód általában tartalmaz néhány olyan konstrukciót, amely a programozási nyelvekben rejlik. Ez megkönnyíti az átmenetet az álkódos írásból az algoritmus programozási nyelven történő írásába egy adott számítógép számára. Különösen az álkódban, valamint a programozási nyelvekben vannak függvényszavak, amelyek jelentését egyszer és mindenkorra meghatározzuk. Ezek vastag betűvel vannak kiemelve nyomtatott szövegben és aláhúzva a kézzel írott szövegben.

Általános forma algoritmus:

alg algoritmus neve (érvek és eredmények)

adott algoritmus alkalmazhatósági feltételei

szükséges az algoritmus célja

korai a közbenső értékek leírása

parancssor(algoritmus törzs)

Az algoritmus része a szóból alg a szóra korai a címet és a szavak közötti részt hívta korai és con - az algoritmus törzse.

Egy mondatban alg Az algoritmus neve után zárójelben feltüntetik az összes bemeneti (argumentum) és kimeneti (eredmény) változó jellemzőit (arg, res) és az érték típusát (egész szám, dolog, sym, lit vagy log). A tömbök (táblázatok) leírásakor egy speciális szót használunk fülre, kiegészítve határpárokkal a tömbelemek minden egyes indexéhez.

Példamondatok alg :

alg A henger térfogata és területe (arg R, H tétel, res V., S tétel)

alg Roots KvUr ( arg a, b, c dolgok vágott dolog x1, x2, rez lit t)

alg Elem kizárása ( arg int N, arg rez dolog fül A)

alg Átlós ( arg int N, arg cel tab A, rez lit Otvet)

javaslatok adott és szükséges választható. Javasoljuk, hogy írjon beléjük olyan utasításokat, amelyek leírják az algoritmus végrehajtójának környezeti állapotát, például:

alg Csere (arg lit Str1, Str2, arg rez lit Text)

adott | az Str1 és Str2 alszekciók hossza megegyezik

szükséges | a szöveg karakterláncban mindenhol az Str1 helyébe az Str2 lép

alg Maximák száma (arg egész N, arg anyag A fül, res egész K szám)

adott | N> 0

szükséges | K - az A táblázatban található maximális elemek száma

alg Ellenállás (arg dolog R1, R2, arg int N, res dolog R)

adott | N> 5, R1> 0, R2> 0

szükséges | R - áramkör ellenállása

Itt a mondatokban adott és szükséges a "|" után a megjegyzéseket rögzítjük. A megjegyzéseket bármely sor végén elhelyezhetjük. A fordító nem dolgozza fel őket, de sokkal könnyebben megértik az algoritmust.

Alapvető szolgálati szavak algoritmikus nyelv:

alg (algoritmus) sim (szimbolikus) igennel megadva

arg (argumentum) lit (literal) legyen a no

res (eredmény) log (logikus), ha korábban a

start (start) fül (táblázat), majd értékválasztás

vége (vége) nts (a ciklus kezdete) különben és bevitel

int (egész) kt (ciklus vége) all vagy output

dolog (valódi) hosszak (hossz) még nincs jóváhagyva

Alapparancsok:

1. A hozzárendelés parancs. Kifejezések kiértékelésére és értékeik változóhoz rendelésére szolgál. Általános forma: A: = B hol van a jel ":=" azt jelenti, hogy a bal oldali változó előző értékét a jobb oldalon lévő kifejezés kiszámított értékével cseréljük le.

Például: a: = (b + c) * sin (Pi / 4); i: = i + 1.

Bemeneti és kimeneti parancsok.

bemenet változó nevek (billentyűzet bevitel)

Kimenet változó nevek, kifejezések, szövegek. (adatkimenet a képernyőre)

Elágazási parancsok.

Ezek a parancsok a feltétel (igen vagy nem) ellenőrzésének eredményétől függően lehetővé teszik az algoritmus működésének egyik alternatív módjának megválasztását. Mindegyik út közös kijárathoz vezet, így az algoritmus tovább fog futni, függetlenül attól, hogy melyik utat választjuk.

Az elágazó szerkezet négy fő ízben kapható:

1. Csapat ha akkor;

Ha egy feltétel

azután cselekvések

2. Csapat ha - akkor - másként;

Ha egy feltétel

azután 1. cselekvés

másképp 2. cselekvés

3. Csapat választás;

Választás

nál nél 1. feltétel: 1. cselekvések

nál nél 2. feltétel: 2. cselekvés

. . . . . . . . . . . .

nál nél N feltétel: N műveletek

4. Csapat a választás más.

Választás

nál nél 1. feltétel: 1. cselekvések

nál nél 2. feltétel: 2. cselekvés

. . . . . . . . . . . .

nál nél N feltétel: N műveletek

másképp N + 1 cselekvések

Ciklusparancsok.

Biztosít egy bizonyos műveletsorozat többszörös végrehajtását, amelyet a hurok testének nevezünk.

Két hurok rendezésére van lehetőség:

1. Hurok típusa Amíg - Utasítja a hurok törzsének végrehajtását mindaddig, amíg a szó után írt feltétel teljesül amíg.

nts amíg feltétel

hurok test

(szekvenálás)

kts

2. Hurok típusa For - Utasítja, hogy hajtsa végre a ciklustestet a változó (hurokparaméter) összes értékéhez a megadott tartományban.

nts mertén tól től i1 előtt i2

hurok test

(szekvenálás)

kts

PROGRAMOZÁSI NYELVEK

Jelenleg több száz valóban használt programozási nyelv van a világon. Mindegyiknek megvan a maga alkalmazási területe.

Bármely algoritmus, mint tudjuk, egy utasítássorozat, amelyet véges számú lépésben követhetünk a kezdeti adatoktól az eredményekig. Az utasítások részletességi szintjétől függően általában a programozási nyelv szintjét határozzák meg - minél kevesebb részletességgel, annál magasabb a nyelv szintje.

Programozási nyelv(algoritmikus nyelv) - szabálykészlet, amely meghatározza, hogy melyik karaktersorozat alkotja a programot (szintaxisszabályok), és mely számításokat írja le a program (szemantikai szabályok).

A programozási nyelvek a következő jellemzőkkel rendelkeznek:

  • Nyelvi szint - az e nyelv segítségével megoldott feladatok összetettsége jellemzi.
  • A nyelv ereje - a feladatok száma és változatossága jellemzi, a megoldásra szolgáló algoritmusok ezen a nyelven írhatók.
  • Megbízhatóság - a nyelvnek minimális hibát kell tartalmaznia a programok írásakor. Ezenkívül a nyelvnek olyannak kell lennie, hogy a rossz programokat nehéz megírni.
  • Olvashatóság b - a programok emberi felfogásának könnyűsége. Ez a jellemző fontos a csapatmunkában, amikor többen dolgoznak ugyanazokkal a programszövegekkel.
  • Teljesség - jellemzi egy adott tantárgyi probléma osztályának leírására való képességet.
  • Rugalmasság - jellemzi a szükséges cselekvések kifejezésének könnyűségét.

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

  • gép;
  • géporientált (összeszerelők);
  • gépfüggetlen (nyelvek magas szint).

A gépnyelvek és a géporientált nyelvek alacsony szintű nyelvek, amelyek megkövetelik az adatfeldolgozás apró részleteinek megadását. A magas szintű nyelvek viszont utánozzák a természetes nyelveket a beszélt nyelv egyes szavainak és általános matematikai szimbólumainak felhasználásával. Ezek a nyelvek emberbarátabbak.

A magas szintű nyelveket a következőkre osztják:

  • eljárási (algoritmikus)(Basic, Pascal, C stb.), Amelyeket egyértelmű algoritmusok leírására terveztek; egy probléma megoldása érdekében az eljárási nyelvek egyik vagy másik formában megkövetelik, hogy kifejezetten leírják az eljárás megoldását;
  • agytorna ( Prolog, Lisp stb. ) , amelyek nem a probléma megoldására szolgáló algoritmus kifejlesztésére, hanem a probléma szisztematikus és formalizált leírására összpontosítanak, így a megoldás az írásbeli leírásból következik;
  • objektum orientált(Object Pascal, C ++, Java, stb.), Amelyek egy objektum fogalmán alapulnak, amely egyesíti a ránk vonatkozó adatokat és műveleteket. Egy objektumorientált nyelvű program, amely megold egy bizonyos problémát, lényegében leírja a világ egy részét, amely ehhez a problémához kapcsolódik. A valóság leírása kölcsönhatásban lévő tárgyak rendszere formájában természetesebb, mint kölcsönhatásban lévő eljárások formájában.

A számítógépes program létrehozása a következő szakaszokat tartalmazza:

§ elemzés;

§ tervezés;

§ programozás;

§ tesztelés és hibakeresés;

§ kizsákmányolás.

A mai napig a programozási nyelvek hat generációja létezik. A következő generációk mindegyike minőségileg különbözik az előzőtől funkcionális képességét tekintve.

  • Első generáció: Gépnyelvek. A XX. Század 40-es évek közepén jelentek meg.
  • Második generáció: Összeszerelők. Valójában ezek ugyanazok a gépnyelvek, de szebben "be vannak csomagolva". A XX. Század 50-es évek végén jelent meg
  • Harmadik generáció: Eljárási nyelvek. A XX. Század 60-as évek elején jelentek meg. Ez a generáció magas szintű univerzális nyelveket tartalmaz, amelyek bármely terület problémáinak megoldására használhatók (például Algol-60).
  • Negyedik generáció: A komplex adatstruktúrákat támogató nyelvek(pl. SQL). A XX. Század 60-as évek végén jelentek meg.
  • Ötödik generáció: Mesterséges intelligencia nyelvek(pl. Prolog). A XX. Század 70-es évek elején jelentek meg.
  • Hatodik generáció: Ideghálózati nyelvek(önállóan tanuló nyelvek). A kutatási munka ezen a területen a 20. század 80-as évek közepén kezdődött.

KÖVETKEZTETÉS

Ahhoz, hogy a számítógép elvégezzen egy feladatot, végre kell hajtania egy bizonyos programot. A programot szigorú szabályok szerint, a számítógépen feldolgozásra rendelkezésre álló formában kell megírni. Az ilyen szabályokat programnyelvnek vagy algoritmikus nyelvnek nevezzük. Tudva általános elv programok felépítése és írása számítógépre, szinte minden problémát megoldhat, ami szükséges az adatok információfeldolgozásával kapcsolatos munkában.

Az oktatási algoritmikus nyelv az algoritmusok olyan formában történő rögzítésének eszköze, amely az algoritmus természetes (emberi) nyelven történő rögzítése és a számítógépes nyelven (programozási nyelv) történő rögzítése között helyezkedik el.

Az oktatási algoritmikus nyelv előnyei között szerepel az egyszerűsége, valamint az a tény, hogy az algoritmus orosz nyelven íródott, bizonyos korlátozott számú szó használatával, amelyek jelentését és használati módját szigorúan meghatározták. Ezeket a szavakat szolgálati szavaknak nevezzük.

Annak érdekében, hogy megkülönböztessük a szolgálati szavakat a nyelv egyéb szavaitól, íráskor aláhúzással kerülnek elő.

Az oktatási algoritmus nyelvű algoritmusrekord egy fejlécből és az algoritmus törzséből áll. Az algoritmus törzse a kulcsszavak között van koraiés conés az algoritmus utasításainak sorozata. A címsor tartalmazza az algoritmus nevét, tükrözve annak tartalmát, a bemeneti adatok (érvek) és eredmények listáját.

Az algoritmus fejlécének aláírása: kulcsszó alg.

Tehát az oktatási algoritmikus nyelven írt algoritmus a következő formában van:

alg algoritmus neve

arg forrásadatok listája

vágott az eredmények listája

algoritmus parancssor

Az iskolai algoritmikus nyelv tanulmányozását célszerű a hozzárendelés paranccsal kezdeni, ez az egyik fő parancs.

Így van írva:

<переменная> := <выражение>

A ": =" jelen a "hozzárendelés" felirat olvasható.

Abban az esetben, ha az értékhez rendelt érték szerepel a parancs jobb oldalán, a következő történik:

1) a hozzárendelés parancs jobb oldalára írt kifejezés értékét kiszámítjuk az ebben a kifejezésben szereplő összes érték aktuális értéke alapján;

2) az új számított aktuális értéket hozzárendelik a változóhoz. Ebben az esetben a változó előző értéke megsemmisül.

Ezért a b: = a + b parancs azt jelenti, hogy az a változó értéke hozzáadódik a b érték előző aktuális értékéhez, és a kapott eredmény a b érték új aktuális értékévé válik.

Ez a példa a hozzárendelés három fő tulajdonságát szemlélteti:

1) amíg egy változóhoz nem rendelünk értéket, addig ez meghatározatlan marad;

2) a változóhoz rendelt érték addig tárolódik benne, amíg a következő új értéket hozzárendelik ehhez a változóhoz;

3) a változóhoz rendelt új érték felváltja korábbi értékét.

Most ismerkedjünk meg az alapstruktúrákkal, kezdjük egy olyan művelettel, mint a "follow". Egymást követő műveletsorozat alkotja:

1. cselekvés

2. cselekvés

. . . . . . . . .

akció n

Ezután megvizsgáljuk az alapvető elágazási struktúrát. A feltétel (igen vagy nem) ellenőrzésének eredményétől függően lehetővé teszi az algoritmus működésének egyik alternatív módjának megválasztását. Mindegyik út közös kijárathoz vezet, így az algoritmus tovább fog futni, függetlenül attól, hogy melyik utat választjuk. Az elágazó szerkezet négy fő ízben kapható:



1.ha-akkor;

Ha egy feltétel

azután cselekvések

2. ha-akkor-másként;

Ha egy feltétel

azután 1. cselekvés

másképp 2. cselekvés

A választás

nál nél1. feltétel: 1. cselekvések

nál nél2. feltétel: 2. cselekvés

. . . . . . . . . . . .

nál nél N feltétel: N műveletek

{másképpN + 1 cselekvések}

És végül: az iskola algoritmikus nyelvet használó hurok alapstruktúrája így fog kinézni.

A számítógép csak akkor tudja végrehajtani a programot, ha a benne foglalt utasítások bináris gépi kódban vannak ábrázolva, azaz olyan nyelven fejezzük ki, amelynek ábécé logikusakból és nullákból áll. Az első számítógépekhez a programokat közvetlenül gépi kódokba állították össze, amelyek magas szintű programozói képesítést és magas munkaerőköltséget igényeltek, ezért már a 40-es években megkezdődött a programozási nyelvek fejlesztése, amely a szókincsükben a lehető legközelebb állna az ember természetes nyelvéhez. Ilyen programozási nyelveket hívunk algoritmikus.

Az algoritmikus nyelvek fejlesztése felé vezető közbenső lépés a nyelv volt Szerelő... Az Assemblerben az utasításokat nem bináris számok képviselik, hanem karakterkombinációkként (mnemónikus kódok), amelyek segítségével az utasítás jelentése reprodukálható, ami jelentősen kiküszöböli a gépnyelven történő programozás nehézségeit és hátrányait. Az Assemblernek azonban vannak hátrányai is - ez egy gép-orientált nyelv, és minden számítógéphez külön szerelési nyelv jön létre. Az Assembler programozása megköveteli, hogy a programozó ismerje a számítógép architektúráját (eszközét), és jelentős munkaerőköltségekkel jár, ugyanakkor az Assembler segítségével lehet a lehető legjobban kihasználni a számítógépes erőforrásokat programban (memória, sebesség), ezért az Assembler még mindig széles körben elterjedt a professzionális programozók között.

Az első algoritmikus nyelv az volt Fortran, létrehozva 1957-ben. az IBM szakemberei John Beckus irányításával. Sok algoritmikus nyelv létezik: Pascal, C, Algol, PL1, Basic, Lisp, Prolog és még sok más.

Az algoritmikus nyelvek és az összeállítók szimbolikus kódoló nyelvek, azaz olyan nyelvekre, amelyek nem gépi kódokkal, hanem hagyományos szimbolikus jelölésekkel működnek, ezért az ezeken a nyelveken írt programokat nem lehet közvetlenül futtatni a számítógépen. Ahhoz, hogy egy ilyen program működjön, szövegét konvertálni kell gépi kódokká. Ehhez vannak speciális fordítói programok (fordítók). Kétféle fordító létezik - fordító és tolmács. Fordítóprogram a teljes műsort egyszerre sugározza, és csak utána lehetséges a végrehajtása. Tolmács- ez egy egyszerűbb fordító, sorrendben lefordítja a program utasításait, és részben végrehajtja is.

21) A program felépítése C / C ++ nyelven.

A C ++ program áll funkciókat , leírások és előfeldolgozó irányelvek ... Az egyik függvénynek nevet kell tartalmaznia fő- ... A program végrehajtása ennek a függvénynek az első utasításával kezdődik. A legegyszerűbb függvénydefiníció a következő formátumú:


Rendszerint egy függvényt használnak az érték kiszámításához, ezért annak típusát a függvény neve előtt kell feltüntetni. Az alábbiakban a funkciókkal kapcsolatos legfontosabb információk találhatók:

  • ha a függvény nem ad vissza értéket, akkor a void típus kerül megadásra:
  • a függvény teste blokk, ezért göndör zárójelbe van zárva;
  • a funkciókat nem lehet egymásba ágyazni;
  • minden állítás pontosvesszővel végződik (az összetett utasítás kivételével).

Példa a main, fl és f2 függvényeket tartalmazó program felépítésére:

A program többből állhat modulok (forrás fájlok).

Néhány megjegyzés az I / O-ról C ++ nyelven

A C ++ -nak nincs beépített I / O-ja - a funkciók, típusok és objektumok segítségével valósul meg szabványos könyvtárak... Kétféle módon használható: a C nyelvtől örökölt függvények és a C ++ objektumok.

Alapvető C stílusú I / O jellemzők:

int scanf (const char * formátum, ...) // bemenet
int printf (const char * formátum, ...) // output

A karakterláncnak megfelelően tetszőleges számú érték formázott be- és kimenetét hajtják végre formátum formátum... A formátum karaktersorozat olyan karaktereket tartalmaz, amelyeket a kimeneten az adatfolyamba (a képernyőre) másolnak, vagy bemeneten a streamből (a billentyűzetről) kérnek, és az átalakítási specifikációkat, amelyek% előjellel kezdődnek, és amelyeket a bemenet adott értékei helyettesítenek és a kimenet.

C-stílusú I / O funkciókat használó példa program:

#include
int main () (
int i;
printf ("Írjon be egész számot \ n");
scanf ("% d", & i);
printf ("Megadta a% d számot, köszönöm!", i);
visszatér 0;
}

Ennek a programnak az első sora egy előprocesszoros irányelv, amely szerint egy fejlécfájl kerül a program szövegébe, amely tartalmazza a programban használt bemeneti / kimeneti funkciók leírását (ebben az esetben a szögletes zárójelek nyelvelemek). Minden előfeldolgozó irányelv # jellel kezdődik.

A harmadik sor egy i nevű egész változó leírása.

A printf függvény a negyedik sorban kinyomtatja az "Írjon be egész számot" parancsot, és erre megy új sor a menekülési sorrend szerint \ n. A scanf függvény a billentyűzetről bevitt egész számot az i változóba helyezi (az & jel azt jelenti, hogy egy címet kapunk), és a következő utasítás megjeleníti a képernyőn a megadott karakterláncot, helyettesítve az átalakítási specifikációt
ennek a számnak az értékéről.

És így néz ki ugyanaz a program a C ++ osztálykönyvtár használatával:

#include
int main () (
int i;
cout<< "Введите целое число\ n"; cin >> i;
cout<< "Вы ввели число " << i << ", спасибо!";
visszatér 0;
}

A fejlécfájl az I / O kezelésére szolgáló osztályok leírását tartalmazza. Meghatározza a standard stream objektumokat cin a billentyűzet beviteléhez és a cout a képernyőre történő kimenethez, valamint az adatfolyam műveleteket.< < и чтения из потока >>.

22) Az ábécé és az azonosítók a C / C ++ nyelven.

ÁBÉCÉ
nagy- és kisbetűs latin betűk és aláhúzások;
Arab számok 0 és 9 között;
szóköz karakterek: szóköz, tabulátorok, új sor karakterek.
speciális karakterek:

A nyelvi lexémák az ábécé szimbólumaiból állnak:
azonosítók;
kulcs (fenntartott) szavak;
működési táblák;
állandók;
elválasztók (zárójelek, pont, vessző, szóköz).

AZONOSÍTÓK
Az azonosító használhat latin betűket, számokat és aláhúzást;
A nagy- és a kisbetűk különböznek;
Az azonosító első karaktere lehet betű vagy aláhúzás, de nem szám;
A néven belüli szóköz nem megengedett;
Az azonosító hosszát a szabvány nem korlátozza, de néhány fordító és linkelő korlátozza;
Az azonosító nem lehet azonos a kulcsszavakkal;
Az azonosítókat nem ajánlott aláhúzással kezdeni (ezek egybeeshetnek a rendszerfüggvények vagy változók nevével);
A külső változók meghatározására használt azonosítókról;
Vannak linker korlátozások (különböző linkerek vagy linker verziók használata eltérő követelményeket támaszt a külső változók nevével szemben).

C ++ kulcsszavak

23) Egész adattípusok C / C ++ formátumban.

Egy egész adattípust úgy terveztek, hogy a számítógép memóriájában lévő hétköznapi egészeket ábrázolja. A fő és leggyakoribb egész típusú típus int... Fajtáit sokkal ritkábban használják: rövid(rövid egész szám) és hosszú(hosszú egész szám). Az egész típusok tartalmazzák a típust is char(karakter). Ezen felül, ha szükséges, használhatja a típust hosszú hosszú(long-long!), amelyet ugyan a szabvány nem határoz meg, de sok C ++ fordító támogatja. Alapértelmezés szerint az összes egész típus az ikonszerű, azaz az ilyen számokban a legjelentősebb bit határozza meg a szám előjelét: 0 pozitív szám, 1 negatív szám. A C ++ nyelven aláírt számok mellett használhatja aláírás nélküli... Ebben az esetben az összes számjegy részt vesz egy egész szám kialakításában. Az előjel nélküli egész változók leírásakor a szó hozzáadódik aláírás nélküli(aláírás nélküli).

Aláírt egész típusú adattípusok összefoglaló táblázata:

Adattípus Méret, bájtok Értéktartomány
char -128 ... 127
rövid -32768 ... 32767
int -2147483648 ... 2147483647
hosszú -2147483648 ... 2147483647
hosszú hosszú -9223372036854775808 ... 9223372036854775807

Összefoglaló táblázat aláíratlan egész típusú adattípusokról:

Adattípus Méret, bájtok Értéktartomány
aláíratlan char 0 ... 255
aláíratlanul rövid 0 ... 65535
aláíratlan int (csak aláírhat) 0 ... 4294967295
aláíratlanul hosszú 0 ... 4294967295
aláíratlan hosszú hosszú 0 ... 18446744073709551615

Aligha érdemes emlékezni a határértékekre, különösen 4 vagy 8 bájtos egész számokra, elegendő legalább tudni, hogy ezek az értékek milyen sorrendben lehetnek, például típus int- körülbelül 2 · 10 9.

A gyakorlatban ajánlott mindenhol az alap egész típusú típust használni, azaz. int... A lényeg az, hogy az alap egész típusú adatok szinte mindig gyorsabban kerülnek feldolgozásra, mint a többi egész típusú adatok. Rövid típusok ( char, rövid) alkalmasak nagy számtömbök tárolására a memória megtakarítása érdekében, feltéve, hogy az elemek értéke nem haladja meg az ilyen típusok határértékét. Hosszú típusokra van szükség olyan helyzetben, amikor nincs elég típus int.

24) Valós adattípusok a C / C ++ nyelven.

A valós (valós) számok jellemzője, hogy szinte mindig a számítógép memóriájában tárolódnak, és amikor ilyen adatokon számtani műveleteket hajtanak végre, számítási hiba halmozódik fel.

Három valós adattípus létezik: úszó, kettősés hosszú kettős... A fő típus tekinthető kettős... Tehát az összes matematikai függvény alapértelmezés szerint működik a típussal kettős... Az alábbi táblázat a valós típusok főbb jellemzőit mutatja:

Egy típus hosszú kettős jelenleg általában megegyezik a típussal kettősés általában nem használják a gyakorlatban. Régebbi, 16 bites fordítóprogramok használatakor az adatok hasonlóak hosszú kettős 10 bájt méretűek és 19 tizedesjegyig pontosak.

Javasolt mindenhol csak a típust használni kettős... A vele való munkavégzés mindig gyorsabb, kevesebb számítás esetén kisebb az esély a pontosság észrevehető elvesztésére. Egy típus úszó csak nagy tömbök tárolására lehet hasznos, feltéve, hogy ez a típus elegendő a szóban forgó feladat megoldásához.

25) Karakteradattípus C / C ++ formátumban.

A C ++ szabványban nincs olyan adattípus, amely valóban szimbolikusnak tekinthető. A szimbolikus információk ábrázolásához kétféle adat alkalmas erre a célra - ezek típusok charés wchar_t, bár e két típus eredendően egész típusú. Például felveheti az "A" karaktert, és eloszthatja a 2-es számmal. Egyébként mi történik? Tipp: űr karakter. A "normál" karaktertípusok, például a Pascal vagy a C # esetében a karakterek számtani műveletei tilosak.

Egy típus char karakterek ábrázolására szolgál az ASCII (American Standard Code for Information Interchange) kódolási rendszer szerint. Ez egy hét bites kód, elegendő 128 különböző karaktert kódolni 0 és 127 közötti kódokkal. A 128 és 255 közötti kódokkal rendelkező karaktereket nemzeti betűtípusok, álgrafikus karakterek stb. Kódolására használják.

Egy típus wchar_túgy tervezték, hogy olyan karakterkészlettel dolgozzon, amelyhez 1 bájt nem elegendő, például az Unicode. Típus mérete wchar_táltalában 2 bájt. Ha a programnak olyan karakterlánc konstansokat kell használnia, mint a wchar_t, akkor az előtaggal íródnak L pl L "Szó".

26) A hozzárendelés operátora és az üres operátor a C / C ++ formátumban

Hozzárendelés operátor a leggyakrabban használt operátor. Célja, hogy egy változóhoz új értéket rendeljen. Ennek az operátornak három formája van a C ++ nyelven.

1)Egyszerű hozzárendelési operátorígy van írva:

változó = kifejezés;

Ez az operátor a következőképpen működik: először kiértékelik a művelet szimbólumától jobbra írt kifejezést = (egyenlő), akkor az eredményt a jeltől balra lévő változóhoz rendeljük = ... Az eredmény típusának meg kell egyeznie a bal oldalon írt változó típusával, vagy annak csökkenthetőnek kell lennie.

A tábla bal oldalán = csak változó lehet, a jobb oldalon megadhat egy konstansot és egy változót, és általában bármilyen összetettségű kifejezést.

Példa operátorokra

y = x + 3 * r;

s = bűn (x);

2)Többszörös feladat- egy ilyen utasításban, egymástól jobbról balra, több változóhoz azonos értéket rendelünk, például:

a = b = c = 1;

Így azonnal meghatározhatja például, hogy egy egyenlő oldalú háromszögben minden oldal egyenlő-e az 1. számmal. A fenti operátor három operátor egymás utáni végrehajtásával egyenértékű:

Természetesen könnyebb nekünk egy operátort írni, nem hármat. A program rövidebb, a szöveg természetesebbnek tűnik, és ez a konstrukció valamivel gyorsabban működik.

3)Hozzárendelés művelet végrehajtása közbenáltalában a következőképpen írják:

változó op_sign = kifejezés;

és egyenértékű az írással

változó = változó op_sign kifejezés;

Például az operátor:

s + = 5; // 1. lehetőség

ugyanazt teszi, mint az operátor

s = s + 5; // 2. opció

mégpedig: vegye a régi értéket a változóból s, adja hozzá a számot 5 és a kapott értéket írja vissza a változóba s.

Amint láthatja, az 1. változat rekordja rövidebb, mint a 2. változaté, és gyorsabban hajtódik végre, mivel az 1. változatban a változó címe s 1-szer kiszámítják, és a 2. változatban - kétszer.

Üres kezelő

Az üres állítás olyan állítás, amely semmit sem tesz. Miért van szüksége egy "haszontalan" kezelőre?

Üres operátort használunk olyan esetekben, amikor a nyelv szintaxisa szerint bármely operátort le kell írni, de a program logikája szerint nem fogunk semmit tenni. Például egy elágazó utasításban üres utasításra lehet szükség, ha semmit sem kell tenni egy elágazáson, valamint egy címke definiálásához egy ugráshoz a program szövegében, és néha egy üres ciklus törzséhez.

Az üres operátor egyetlen karakter ; (pontosvessző), például:

c = a + b; ;

Itt van az első karakter ; (pontosvesszővel) kitölti a hozzárendelési utasítást, a második karakter pedig csak egy üres állítást ad nekünk. Ebben a helyzetben egy üres operátorra egyáltalán nincs szükség (de ez sem egy szintaktikai hiba!), Csak tisztázásra szolgál. Az üres operátor használatára vonatkozó "ésszerűbb" példákat később a kapcsolódó témakörökben közöljük.

27) Számtani műveletek C / C ++ formátumban.

Ezek a leggyakrabban használt műveletek. Jelentésük közel áll ahhoz, amit egy matematika tanfolyamon ismerünk. Tehát soroljuk fel őket:

Az összeadási és kivonási műveletek prioritása alacsonyabb, mint a szorzás, osztás és maradéké. A számítási sorrend megváltoztatásához zárójeleket használjon például a szorzáshoz 2 két szám összege Aés B tudsz írni:

További. Amint a kapott eredményekből látható, C ++ - ban egy előjel / két különböző műveletet jelent. Ha az egyik vagy mindkét operandus valós, akkor rendes osztást hajtunk végre, ha mindkét operandus egész szám, akkor egész osztást hajtunk végre, és az eredmény egész típusú lesz. Ennek a műveletnek a használata különös gondosságot igényel, például ha matematikai kifejezés kiszámítását programozza

szó szerint, azaz Így:

1/3 * bűn (2 * X)

akkor az eredmény az értéktől függetlenül x mindig nulla lesz, mivel a kifejezés 1/3 egész felosztást jelent. A probléma megoldásához elegendő az egyik operandus valósággá válnia

1,0 / 3 * bűn (2 * X)

A maradék ( % ) csak egész operandusokra alkalmazható.

Jel változás... Unáris működés " - "Jelzőváltást jelent. Amint az összes művelet általános táblázatából látható, nagyon nagy prioritással rendelkezik - magasabb, mint például a szorzási művelet. Ezért a kifejezésben

először megváltoztatja a jelet a számára A majd szorzás -A a B.

Van egy párosítási művelet is unáris plusz, azaz tud írni

Milyen célokra használjam? Nehéz megmondani. De van ilyen lehetőség.

Érdekesebb, és ami a legfontosabb, nagyon elterjedt az automatikus növekedés és az automatikus kicsinyítés műveletei.

Az algoritmus része a szóból alg a szóra korai a címet és a szavak közötti részt hívta koraiés con- az algoritmus törzse.

Egy mondatban alg Az algoritmus neve után zárójelben az összes bemeneti (argumentum) és kimeneti (eredmény) változó jellemzőit (arg, res) és az értékek típusát (egész szám, dolog, sim, lit, log) feltüntetjük.

A tömbök (táblázatok) leírásakor egy speciális szót használunk fülre, kiegészítve határpárokkal a tömbelemek minden egyes indexéhez.

Példamondatok alg:

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

alg Gyökerek QvUr (arg dolog a, b, c, rez dolog x1, x2, rez lit t)

alg Elem kizárása (arg egész N szám, arg rez dolog A fül)

alg átló (arg cel N, arg cel tab A, res lit Otvet)

Mondatok szavakkal adottés szükséges választható. Javasoljuk, hogy írjon beléjük olyan utasításokat, amelyek leírják az algoritmus végrehajtójának környezeti állapotát, például:

Alg csere (arg lit Str1, Str2, arg rez lit Text) adott | az Str1 és Str2 alsztringek hossza megegyezik | a szöveg karakterláncban mindenhol az Str1 helyébe az Str2 lép

Alg A megadott maximumok száma (arg egész N, arg anyag A fül, res res egész K) | N> 0 kell | K - az A táblázatban található maximális elemek száma

Alg ellenállás (arg dolog R1, R2, arg int N, res dolog R) adott | N> 5, R1> 0, R2> 0 kell | R - áramkör ellenállása

Itt a mondatokban adottés szükséges a "|" után a megjegyzéseket rögzítjük. A megjegyzéseket bármely sor végén elhelyezhetjük. Nem a számítógépes fordító dolgozza fel őket, de sokkal könnyebbé teszik az algoritmus megértését.

Az AYa iskolai programnyelv csapatai

Hozzárendelés operátor... Kifejezések kiértékelésére és értékeik változóhoz rendelésére szolgál. Az operátor általános nézete: A: = B, ahol a ": =" jel hozzárendelési műveletet jelent, azaz parancs a bal oldali A változó előző értékének a jobb oldalon lévő B kifejezés kiszámított értékével való helyettesítésére.


Például, a: = (b + c) * sin (Pi / 4);

i: = i + 1 .

Mert bemenet és kimenet adatfelhasználási parancsok

· bemenet változó nevek

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

Mert elágazó az algoritmus a parancsokat használja - Ha egyés választás.

A szervezet számára ciklusok - csapatok mertés amíg az alábbiakban leírt.

Példa egy algoritmus írására az AYa iskolai nyelven.

Alg Négyzetek összege (arg int n, épen vágva S) adott | n> 0 kell | S = 1 * 1 + 2 * 2 + 3 * 3 + ... + n * ninit egész szám én bemenet n; S : =0 nts i-re 1-től n S-ig : = S + i * i kts kimenet "S =", Scon



Tetszett a cikk? Oszd meg