Inspelning på ett algoritmiskt språk är ett exempel. Pedagogiskt algoritmiskt språk

26.11.2023

Alla programmeringsspråk är fyllda med en mängd olika nyckelord, funktioner eller klasser. Som regel använder de alla engelska, som beskriver metoder eller argument. I vissa miljöer finns det helt enkelt förkortningar av maskinfunktioner. Detta hämmade kraftigt utvecklingen av utvecklingen i de inledande stadierna. För att öka förståelsens hastighet skapades en serie speciella algoritmiska programmeringsspråk, som bestod av begripliga och tillgängliga ord och deras kombinationer, tydliga även för en otränad person.

Lite historia

För att kommunicera med de första datorerna användes programmeringsspråk som var så nära maskinkoden som möjligt, bestående av nollor och ettor. Naturligtvis var det en mycket svår uppgift att komma ihåg många kommandon. Dessutom vilade metoden för minnesallokering under programmering helt på utvecklarens axlar. Och om han gjorde ett litet misstag fick han göra om allt igen.

En stor roll i övergången från maskinspråk till ett mer lämpligt språk för människor spelades av programmeringsspråkssamlaren på låg nivå. Den använde minnesminnen och symboler. Detta förenklade utvecklarens uppgift, eftersom han nu mer produktivt kunde bygga sina algoritmer från kombinationer av kontrollinstruktioner och numeriska koder. Trots all sin flexibilitet och kraft var språket fortfarande svårt att bemästra.

För att lära ut utveckling och algoritmer i utbildningsinstitutioner började introduktionen av programmeringsspråket BASIC. Den innehöll redan många kommandon och nyckelord som var begripliga för eleven. BASIC används fortfarande för att lära sig grunderna i programmering.

Med skapandet av det första algoritmiska programmeringsspråket, Algol, accelererade utvecklingen av algoritmer avsevärt.

Vad är algoritmen

Om vi ​​går bort från torr teori och definitioner, så är en algoritm en sekvens av åtgärder som syftar till att lösa ett givet problem. Trots all floridness i uttrycket möter en person detta koncept varje dag. Till exempel, för att dricka te, måste du följa följande sekvens:

  1. Ställ vattenkokaren på spisen.
  2. Vänta tills det kokar.
  3. Häll kokande vatten i vattnet.
  4. Placera tepåsen i koppen.
  5. Tillsätt önskad mängd socker, mjölk eller honung.

Denna sekvens är mycket förenklad, men den representerar den enklaste algoritmen.

Precis som en person är en dator kapabel att utföra en viss sekvens av uppgifter. Men för att den tydligt ska förstå dem måste man ta hänsyn till att en dator saknar många begrepp som är uppenbara för människor. Dessutom måste algoritmen noggrant beskriva alla nödvändiga åtgärder. Ett algoritmiskt språk tjänar detta syfte och skapar en slags bro mellan maskin och människa.

Egenskaper och funktioner för ett algoritmiskt språk

Algoritmisk är ett formellt språk där algoritmer som är avsedda att köras på datorer beskrivs. Vanligtvis är den inte knuten till någon maskinarkitektur. Detta hjälper avsevärt att förbättra och påskynda kodningen. Ett slående exempel är det algoritmiska språket BASIC. Pascal och C visade sig också populära på grund av deras enkla syntax och inlärningshastighet.

Strukturen är implementerad på ett sådant sätt att procedurerna som beskrivs i koden exekveras en efter en. Det vill säga en algoritm - en uppgift. Detta liknar att skapa funktioner eller metoder i C och Java.

All kod är byggd av nyckelord som beskriver en händelse eller variabel.

Skillnader mellan maskin- och algoritmspråk

En slående representant för ett maskinberoende språk är assembler. Programmering på den handlar om att indikera för översättaren med specialmärken vad som behöver flyttas och var eller vilket dataområde som ska fyllas. Eftersom assemblersyntaxen är mer lik maskinsyntax är det ganska svårt att studera och skriva kod i den. Nedan kan du se hur kommandona kan se ut för olika processorer.

Därför skapades ett formellt eller algoritmiskt språk med ett stort antal mänskligt förståeliga nyckelord och namn.

Nyckelord

Algoritmiskt språk består av nyckelord, som är förkortningar för den fullständiga beteckningen av åtgärder eller variabler. Detta gör att du kan minska längden på koden samtidigt som den är begriplig.

  • Alg. Alla algoritmer börjar med detta nyckelord. Den beskriver namnet och anger inom parentes vilka argument som krävs för beräkningen och vad resultatet ska bli.
  • Arg. Betecknar argumenten för algoritmen. Återspeglar typen och namnet på värdet som kommer att användas i koden.
  • Res. Detta nyckelord tjänar till att indikera typen och namnet på den variabel där resultatet av beräkningen kommer att behöva placeras.
  • Början Indikerar den omedelbara starten av algoritmexekveringen. Varar tills con nyckelordet. Hela intervallet från "start" till "slut" kallas kroppen för den aktuella algoritmen.
  • Lura. Indikerar att algoritmen har slutfört exekvering.
  • Given. Talar om några av funktionerna och nyanserna av att använda algoritmen eller begränsningar. Här kan du till exempel ange att längden på de jämförda strängarna måste vara desamma. Användningen av nyckelordet "given" är valfritt.
  • Nödvändig. En mer detaljerad beskrivning av vad som bör erhållas som ett resultat av exekvering av algoritmen. Precis som "given" kan den utelämnas, men för att bygga en mer förståelig och detaljerad kod rekommenderas användningen av den.

Listan över dessa nyckelord hänvisar till algoritmens titel och kroppsbeteckning. Och så här ser tokens för variabler ut:

  • Cel. Heltalsvariabeltyp. Deras intervall bör variera från -32768 till 32767.
  • Sak. Riktiga nummer. Till exempel med en exponent eller bråkdel.
  • Logga. Detta nyckelord betyder att en boolesk variabel kommer att användas som bara kan acceptera "ja" eller "nej".
  • Sim. Detta inkluderar värden med enstaka tecken, som "a", "3".
  • Belyst. Strängvariabler som kan innehålla hela textsträngar.
  • Flik. Betecknar en tabell med data av en viss typ. Det är en analog till en array från andra programmeringsspråk.

Ytterligare funktionsord

Följande lista med ord används för att organisera förgrenings- och loopingmekanismer.

  • För. Används för att iterera genom alla värden inom ett visst intervall. Används för cykler, d.v.s. kontinuerlig exekvering av alla procedurer med data.
  • Från och till. Indikerar vilket specifikt värdeintervall som ska itereras igenom i en "för"-loop.
  • Hejdå. Används även för att iterera över flera värden. Används för att arbeta tills ett visst villkor är uppfyllt.
  • Nts och kts. "Nts" på algoritmiskt språk betyder början av loopkroppen och "kts" betyder slutet. Mellan dessa två nyckelord finns de procedurer som krävs för beräkningen inbyggda.
  • Om. Detta ord implementerar förgreningsstrukturen. På detta sätt är det möjligt att bestämma programmets framsteg i önskad riktning, med hänsyn till förutsättningarna.
  • Hur som helst. Två ord som fungerar med "om". Förgreningsmekanismen är också byggd.
  • Val. Ett bekvämt verktyg för att förgrena sig från flera värden av samma typ. Fungerar tillsammans med nyckelordet "vid" och "annars".
  • Allt. Indikerar slutet på förgreningsmekanismen.
  • Stiga på. Detta nyckelord låter användaren ange variabelvärden under programdrift för efterföljande bearbetning.
  • Slutsats. Visar data på skärmen.

Grundläggande språkstrukturer

Ett algoritmiskt programmeringsspråk hjälper till att bygga olika strukturer som producerar beräkningsfunktioner i en bekväm form. I allmänhet kan vilket språk som helst använda flera specifika mekanismer och deras kombinationer.

Följande struktur

Vid design av denna typ av struktur sker kodexekvering direkt rad för rad. Ett allmänt exempel kan uttryckas så här:

alg Summan av två tal (arg int a, b, res int S)

utgång "S =", S

I det här exemplet beräknas summan av två siffror som angetts av användaren. I början indikerar ordet "alg" att algoritmen startar och beskriver kort exakt vad den gör. Argumenten som behövs för att programmet ska köras och variabeln som ska fungera som en behållare för att lagra resultaten definieras inom parentes. Därefter kommer nyckelordet "start", som indikerar den omedelbara starten av exekvering av uttryck och procedurer. Bredvid "start" kan du även definiera några mellanvariabler.

I algoritmens kropp accepterar nyckelordet "input" data från användaren och skriver det till variabler. De läggs sedan ihop och deras summa tilldelas S. Innan algoritmen är slut visas resultatet av programmet på skärmen med nyckelordet "output". Denna notation i algoritmiskt språk är typisk för många andra programmeringsmiljöer.

Förgreningsstruktur

Flödet i ett program behöver inte alltid exekveras rad för rad. Ibland behöver du bestämma eller ändra värdet på en viss variabel beroende på situationen. Till exempel, givet att x = 0, dividera inte med x.

Ett algoritmiskt programmeringsspråk gör detta genom att använda flera variantkonstruktioner och nyckelorden "om", "då", "annat" eller "val". Efter "om" sätts ett villkor genom vilket kriteriet för att flytta till en annan gren kommer att bestämmas. Till exempel, så här:

På så sätt kan du ändra värdena på variabler beroende på andra faktorer. Detta exempel täcker inte fullt ut alla möjliga implementeringar. Därför, förutom konstruktionen, används nyckelordet "annars". Det låter dig flytta till en annan gren om villkoret inte uppfyller de valda kriterierna.

annars y = 0

Det vill säga, i fallet när x inte är lika med noll, kommer y också att återställas till noll, oavsett vilket värde det hade tidigare.

Ett bekvämare sätt att göra flera val är "val"-konstruktionen. Det låter dig sortera igenom flera förhållanden. När en av dem utlöses kommer den åtgärd som anges för den att utföras.

vid x = 0: y = 0

vid x = 1: y = 1

vid x = 2: y = 2

Detta exempel visar beroendet av variabeln y på x. Programmet kör igenom all data och jämför det aktuella värdet på x med det som anges i villkoret. När en matchning hittas utför den nästa åtgärd. Denna konstruktion kan även kombineras med sökordet "annat" för mer flexibla lösningar när inga av villkoren är uppfyllda.

Cyklar

Slingor spelar en mycket viktig roll i programmering. Nästan ingen utveckling klarar sig utan implementeringen av denna design. I allmänhet löser loopar problemet med att utföra liknande åtgärder med flera variabler upprepade gånger. Detta är praktiskt, till exempel när du fyller matriser med data med hjälp av en känd formel, sorterar den eller räknar några värden.

Nyckelordet "medan" låter dig organisera en slinga där en viss åtgärd kommer att upprepas tills ett visst villkor är uppfyllt. Till exempel:

hejdå x<= 3

I det här exemplet kommer y att öka tills x blir större än 3. För att slingan inte ska vara oändlig måste x ändras uppåt i varje pass, till exempel med 1, vilket är vad den andra kodraden gör.

Nyckelordet "för" tillämpas på ett visst antal nummer som måste itereras genom sekventiellt och utföra vissa åtgärder med dem. Denna konstruktion används när ett ändligt antal element är känt.

Dess syntax ser ut så här:

nc för x från 1 till 3

Serviceorden "från" och "till" visar intervallet av värden som behöver upprepas. Således, i den första iterationen x = 1, som ett resultat av passet, kommer y också att få värdet 1. Då går kontrollen igen till början, och x blir nu lika med 2, respektive, y blir 3.

Genom att använda de kombinerade konstruktionerna av loopar och förgreningar kan du bygga de enklaste algoritmerna för att lösa enkla problem och få kunskap om hur programmeringsspråk fungerar.

Standardfunktioner

Ett algoritmiskt språk har standardfunktioner som redan är inbyggda i det. De kan göra vissa rutinoperationer med siffror och uttryck enklare. Standardfunktioner i det algoritmiska språket kan beräkna kvadratrötter, logaritmer, moduler, sinus, cosinus, etc.:

  • absolut modul - abs(x);
  • kvadratrot - sqrt(x);
  • naturliga och decimala logaritmer - ln(x) och log(x);
  • minimum och maximum av två tal - min(x,y), max (x,y);
  • sinus, cosinus, tangens, cotangens - sin(x), cos(x), tan(x), ctg(x).

Dessa standardfunktioner låter dig undvika att skapa en "cykel" genom att hjälpa till att implementera de enklaste funktionerna med hjälp av standardverktyg.

booleska uttryck

Booleska uttryck speglar om en viss operation uppfyller ett villkor. Till exempel kommer x > 0 att utvärderas till sant när x är 1, 2, 25 eller något annat tal större än noll. Algoritmspråket innehåller logiska uttryck som, förutom matematiska standardoperationer, kan använda följande nyckelord och operatorer:

  • OCH. Innebär att uttrycken mellan vilka nyckelordet finns måste uppfylla ett visst villkor: (x>0) och (y>0);
  • Eller. Ett av uttrycken kanske inte uppfyller villkoret, till exempel (x>0) eller (y>0);
  • Inte. "Vänder" det logiska värdet av ett uttryck. Till exempel denna design Inte(x>0), betyder att x fortfarande inte får vara mer än noll.

Det finns också jämförelseoperatörer -<, >, =, som kan kombineras för att skapa uttryck som större än eller lika med.

Ett litet program för ett algoritmiskt språk

För att förstå processen kan du organisera ett program som interagerar med användaren. Den kommer att fråga efter ett nummer, och maskinen kommer att kvadraten på det.

Komponenterna i ett algoritmiskt språk innehåller många nyckelord. Det första programmet börjar med är ett meddelande om algoritmen - alg.

alg Kvadra ett tal ()

Inom parentes måste du ange ett argument som representerar värdet från användaren och resultatet. Glöm inte heller att deklarera vilka typer av dessa data.

Nu kommer maskinen att veta att den måste interagera med en variabel av typen heltal, och resultatet av dess arbete blir S.

Det första du behöver göra är att ange data. Detta görs med hjälp av nyckelordet "input".

Nu, direkt i algoritmens kropp, måste du beskriva ett antal kommandon som kommer att användas för att beräkna kvadraterna av tal.

utgång "S =", S

Ett algoritmiskt språk, vars kommandon gör att uppdraget kan implementeras, skrivs i formen: =. Variabeln S innehåller alltså värdet av produkten av x och sig själv. Utdataraden visar resultatet på skärmen. Tja, allt detta slutar med nyckelordet "con". Hela koden kommer nu att se ut så här:

alg Kvadra ett tal (arg heltal x, res heltal S)

utgång "S =", S

Så här implementeras algoritmen för att beräkna kvadraten på det inmatade talet på ett enkelt sätt. Programmet kan kompliceras genom att lägga till summan av alla operationer. Och då kommer det se ut så här:

alg Kvadra ett tal och beräkna deras summa (arg heltal x, res heltal S)

ges | x > 0

behöver | S = 1*1 + 2*2+ … + x*x

börja hel

ingång x; S:=0

nc för a från 1 till x

utgång "S =", S

Det här alternativet använder en loop, en mellanvariabel a och en kort indikation av uppgiften i avsnitten "given" och "måste". Nu, om du skickar ett visst tal till programmet, kommer det att kvadrera det och visa summan av kvadraterna av alla siffror som föregår det.

Användning och utveckling av algoritmiska språk

Algoritmiskt språk är vanligt i inlärningsmiljöer för att förstå de grundläggande normerna och reglerna för programmering. Till exempel BASIC, som lärs ut på många skolor. Det återspeglar perfekt alla paradigm för en sådan term som ett imperativt programmeringsspråk, där alla kommandon exekveras sekventiellt efter varandra.

På grund av de beskrivna konstruktionernas och nyckelordens närhet till det mänskliga språket har det blivit mycket lättare att skriva kod än att använda helt maskin- eller maskinberoende modeller. ALGOL-familjen av programmeringsspråk har gått längst i sin utveckling, sedan dess syntax presenterades i flera lokaliseringar. Det gick att skriva kod även på ryska.

Generellt sett har utvecklingen av algoritmiska språk i hög grad påverkat programmering i allmänhet och gjort det möjligt för ett stort antal människor att bli utvecklare. Moderna medel blir mer tillgängliga och begripliga. Programmeringsspråk på hög nivå innehåller fler och fler funktioner med meningsfulla namn och titlar. Gränserna för deras användning blir allt mindre. Därmed är en mer förståelig och naturlig implementering av utvecklingen möjlig i framtiden.

En del av algoritmen från ordet alg till ordet början kallas rubriken och delen mellan orden början Och lura- algoritmens kropp.

I en mening alg efter namnet på algoritmen anges egenskaperna (arg, res) och typen av värden (int, thing, sim, lit, log) för alla indata (argument) och output (resultat) variabler inom parentes.

Vid beskrivning av arrayer (tabeller) används ett speciellt ord flik, kompletterat med gränspar vid varje arrayelementindex.

Exempelmeningar alg:

alg Volym och area av cylindern (arg saker R, H, res saker V, S)

alg Rötter KvUr(arg saker a, b, c, res saker x1, x2, res lit t)

alg Exclude element (arg int N, arg res stuff tab A)

alg Diagonal(arg int N, arg int tab A, lyser upp Svar)

Meningar med ord given Och nödvändig inte nödvändig. Det rekommenderas att skriva ner påståenden som beskriver tillståndet i miljön för algoritmexekvatorn, till exempel:

Alg-ersättning (arg lit Str1, Str2, arg res lit Text) ges | längden på delsträngarna Str1 och Str2 måste vara samma | Överallt på textraden ersätts delsträngen Str1 med Str2

Alg Antal maxima (arg int N, arg sak tab A, res int K)givna | N>0 behöver | K - antalet maximala element i tabell A

Alg Resistance (args saker R1, R2, args int N, res saker R) ges | N>5, R1>0, R2>0 behöver | R - kretsresistans

Här i meningar given Och nödvändig efter "|"-tecknet kommentarer inspelade. Kommentarer kan placeras i slutet av valfri rad. De bearbetas inte av datoröversättaren, men gör algoritmen mycket lättare att förstå.

Kommandon för skolans programmeringsspråk AJ

Uppdragsoperatör. Används för att utvärdera uttryck och tilldela deras värden till variabler. Operatörens allmänna form: A:= B, där tecknet ":=" betyder tilldelningsoperationen, dvs. kommando för att ersätta det tidigare värdet av variabel A, som finns på vänster sida, med det beräknade värdet av uttryck B, som finns på höger sida.


Till exempel, a:=(b+c)*sin(Pi/4);

i:=i+1 .

För ingång och utgång dataanvändningskommandon

· inmatning variabelnamn

· slutsats variabelnamn, uttryck, texter.

För förgrening Algoritmen använder kommandona - Om Och val.

För organisation cykler - kommandon För Och Hejdå, beskrivet nedan.

Ett exempel på att skriva en algoritm på skolspråket ASL.

Alg Summan av kvadrater (arg heltal n, snittet är intakt S)given | n > 0behöver | S = 1*1 + 2*2 + 3*3 + ... + n*nstart int i inmatning n; S : =0 nc för i från 1 till n S : =S+i*i kts utgång "S = ", Skon

Algoritmiskt språk – det är ett system av notation och regler för enhetlig och korrekt registrering av algoritmer och deras exekvering. Ett algoritmiskt språk är ett sätt att skriva algoritmer i en analytisk form, mellanliggande mellan att skriva en algoritm på naturligt (mänskligt) språk och att skriva den på ett datorspråk (programmeringsspråk).

Det finns en skillnad mellan begreppen "algoritmiskt språk" och "programmeringsspråk". För det första är ett program skrivet på ett algoritmiskt språk inte nödvändigtvis avsett för en dator. Den praktiska implementeringen av ett algoritmiskt språk är en separat fråga i varje specifikt fall.

Som alla språk har ett algoritmiskt språk sitt eget ordförråd. Grunden för denna ordbok är uppbyggd av ord som används för att skriva kommandon som ingår i kommandosystemet för utföraren av en viss algoritm. Sådana kommandon kallas enkla kommandon. I ett algoritmiskt språk används ord vars betydelse och användningssätt specificeras en gång för alla. Dessa ord kallas officiell. Användningen av funktionsord gör inspelningen av algoritmen mer visuell, och presentationsformen av olika algoritmer gör den mer enhetlig.

En algoritm skriven på ett algoritmiskt språk måste ha ett namn. Det är lämpligt att välja namnet så att det är tydligt vilket problem denna algoritm beskriver. För att markera namnet på algoritmen, skriv serviceordet ALG (ALGORITHM) framför det. Efter namnet på algoritmen (vanligtvis på en ny rad) följer dess kommandon. För att indikera början och slutet av algoritmen är dess kommandon inneslutna i ett par serviceord START (START) och CON (END). Kommandon skrivs sekventiellt.

ALG – namnet på algoritmen

serie av algoritmkommandon

Till exempel kan en algoritm som bestämmer en robotartists rörelse se ut så här:

ALG – till_lager

Vid konstruktion av nya algoritmer kan algoritmer som kompilerats tidigare användas. Algoritmer som helt och hållet används som en del av andra algoritmer kallas hjälpalgoritmer. Vilken algoritm som helst från ett antal tidigare kompilerade kan vara hjälpmedel. Det är också möjligt att en hjälpalgoritm i en viss situation kan visa sig vara en algoritm som i sig innehåller en länk till hjälpalgoritmer.

Mycket ofta, när man kompilerar algoritmer, blir det nödvändigt att använda samma algoritm som en extra, vilket dessutom kan vara mycket komplext och besvärligt. Det skulle vara irrationellt, när man börjar arbeta, att komponera och komma ihåg en sådan algoritm varje gång för dess efterföljande användning. Därför används i praktiken i stor utsträckning så kallade inbyggda (eller standard) hjälpalgoritmer, d.v.s. sådana algoritmer som ständigt är tillgängliga för utföraren. Sådana algoritmer nås på samma sätt som "vanliga" hjälpalgoritmer. Robotartist har en inbyggd hjälpalgoritm som kan flytta till lagret från vilken punkt som helst i arbetsfältet; executorn av BASIC-programmeringsspråket har till exempel en inbyggd "SIN"-algoritm.

En algoritm kan innehålla en referens till sig själv som ett hjälpmedel, i vilket fall den kallas rekursiv. Om kommandot för en algoritm att referera till sig själv finns i själva algoritmen, så kallas sådan rekursion hetero. Det kan finnas fall då ett rekursivt anrop av en given algoritm sker från en hjälpalgoritm som anropas i denna algoritm. Denna rekursion kallas indirekt. Exempel på direkt rekursion:

ALG – rörelse

rörelse

Algoritmer där exekveringsordningen för kommandon bestäms beroende på resultaten av att kontrollera vissa villkor kallas förgrening. För att beskriva dem på ett algoritmiskt språk används ett speciellt sammansatt kommando - kommandot förgrening. I förhållande till robotutövaren kan villkoret vara att kontrollera att roboten befinner sig vid kanten av arbetsfältet (edge/not_edge); kontrollerar förekomsten av ett objekt i den aktuella cellen (ja/ej) och några andra:

IF-villkor IF-villkor IF-kant

TILL serie 1 TILL serie TILL höger

ANNAT avsnitt 2 ALLT ANNAT fram

Följande är en algoritmisk språkpost för select-kommandot, som är en utveckling av grenkommandot:

MED villkor 1: serie 1

UNDER villkor 2: serie 2

MED skick N: serie N

ELSE serie N+1

Algoritmer där enskilda kommandon eller serier av kommandon exekveras upprepade gånger kallas cykliska. För att organisera cykliska algoritmer i ett algoritmiskt språk används ett speciellt sammansatt loop-kommando. Det motsvarar blockdiagram av typen "iteration" och kan ha följande form:

BYE skick NC

serie FÖRE skick

I skolor, för att studera grunderna i algoritmisering, den så kallade. skolans algoritmiska språk (pedagogiskt algoritmiskt språk), med ord på ryska som är förståeliga för skolbarn. Till skillnad från de flesta programmeringsspråk är ett algoritmiskt språk inte knutet till datorarkitektur och innehåller inte detaljer relaterade till maskinens design.

Exempel

Algoritmen på algoritmiskt språk skrivs vanligtvis i formen:

alg namn på algoritmen (argument och resultat) given villkoren för algoritmens tillämplighet nödvändig syftet med algoritmen början beskrivning av mellanstora kvantiteter | sekvens av kommandon (kroppen av algoritmen) lura

I algoritmposten var nyckelord vanligtvis understrukna eller i fetstil. För att markera logiska block användes indrag och parade ord i början och slutet av blocket kopplades samman med en vertikal stapel.

Ett exempel på att beräkna summan av kvadrater:

alg Summan av kvadrater ( arg intakt n, res intakt S) given| n > 0 nödvändig| S = 1*1 + 2*2 + 3*3 + … + n*n början intakt jag | inmatning n; S:=0 | nc för i från 1 till n | | S:= S + i * i | kts | slutsats"S =", S lura

E-verkstad

För att stödja den teoretiska studien av programmering i ett algoritmiskt språk skapade specialister från fakulteten för mekanik och matematik vid Moscow State University en redaktör-kompilator 1985 "E-verkstad"("E" - för att hedra Ershov), så att du kan gå in, redigera och köra program på ett algoritmiskt språk.

1986 släpptes en uppsättning utbildningsvärldar (artister) för "E-workshopen": "Robot", "Draftsman"", "Two-legged", "All-terrain Vehicle", som låter dig helt enkelt introducera begrepp av algoritmen. "E-workshop" implementerades på datorer: Yamaha, Corvette, UKNC och blev utbredd.

Detta programmeringsspråk förfinades ständigt och en beskrivning av en senare version av "E-workshopen" dök upp i en lärobok 1990. KuMir-programmeringssystemet ("Learning Worlds Set"), som stöder denna lärobok, släpptes av InfoMir-företaget 1990. Språket i detta system kallas också "Idol".

1995 rekommenderades "KuMir" av Ryska federationens utbildningsministerium som det huvudsakliga utbildningsmaterialet för kursen "Fundamentals of Informatics and Computer Science" baserad på läroboken av A. G. Kushnirenko, G. V. Lebedev och R. A. Svoren. .

Kritik

Det bör dock noteras att det algoritmiska språket, i avsaknad av detaljer som kopplar det direkt till datorarkitekturen, ändå, med hänvisning till Algolo-liknande språk, implicit lär skolbarn att förlita sig på maskiners von Neumann-arkitektur. (Von Neumann-arkitekturen är en praktisk implementering av en tidigare idé som kallas Turing-maskin. Utöver Turings idé finns det andra idéer. Den mest populära av dem kallas Lambda-kalkyl: Alonzo Church arbetade på den. Lisp-maskinen är en arkitektur som baseras på Lambda-kalkyl.)

Länkar

  • A. P. Ershov. Algoritmiskt språk i skolans kurs om grunderna i datavetenskap och datateknik. 05/07/1985
  • Forum om ryska programmeringsspråk och utvecklingsverktyg

Wikimedia Foundation. 2010.

Se vad "ryska algoritmiska språk" är i andra ordböcker:

    Algoritmiskt språk är ett formellt språk som används för att skriva, implementera eller studera algoritmer. Varje programmeringsspråk är ett algoritmiskt språk, men inte alla algoritmiska språk är lämpliga att använda som språk... ... Wikipedia

    Denna term har andra betydelser, se Dragon (betydelser). Ett exempel på ett blockschema av en algoritm i DRAGON-språkets drakediagram DRAGON (Friendly Russian Algorithmic Language That Provides Visibility) visual... ... Wikipedia

    Denna term har andra betydelser, se Algoritmiskt språk. Akademiskt algoritmiskt språk är ett formellt språk som används för att skriva, implementera och studera algoritmer. Till skillnad från de flesta programmeringsspråk är det inte knutet till ... Wikipedia

    Algoritmspråk (även ryska algoritmspråk, RAYA) är ett programmeringsspråk som används för att skriva och studera algoritmer. När man studerar datavetenskap i skolan används den så kallade algoritmen för att studera grunderna i algoritmisering. skolalgoritm... ... Wikipedia

    Pedagogiskt programmeringsspråk är ett programmeringsspråk som är utformat för att lära ut programmering till specialister. Ett sådant språk måste uppfylla huvudkravet: enkelhet. Ju enklare det är, desto snabbare kommer en nybörjare att bemästra det. Möjligheterna med en sådan... ... Wikipedia

    Ett exempel på ett blockschema över en algoritm i DRAGON-språkets drakediagram DRAGON (Friendly Russian Algorithmic Language That Provides Visibility) är ett visuellt algoritmiskt språk skapat som en del av rymdprogrammet Buran. Utveckling av detta språk ... Wikipedia

Ryska federationens utbildningsministerium Perm State Technical University

Institutionen för informationsteknologi och automatiserade system

Vikentyeva O.L.

Föreläsningsanteckningar för kursen "Algorithmic languages ​​and programmering" (Grunderna i C++-språket, I termin)

Introduktion

Den första terminen omfattar de grundläggande konstruktionerna av C-språket och grundläggande programmeringsteknik (strukturerad programmering).

Strukturerad programmering är en teknik för att skapa program som gör det möjligt att, genom att följa vissa regler, minska utvecklingstiden och antalet fel, samt att underlätta möjligheten att modifiera programmet.

1.1. Algoritm och program

En algoritm är ett exakt recept som definierar en beräkningsprocess som går från variabel initial data till slutresultatet, dvs det är ett recept för att uppnå ett mål.

En uppsättning verktyg och regler för att presentera en algoritm i en form som lämpar sig för exekvering av en dator kallas ett programmeringsspråk; en algoritm skriven på detta språk kallas ett program.

Först utvecklas alltid en åtgärdsalgoritm, och sedan skrivs den på ett av programmeringsspråken. Programtexten bearbetas av speciella hjälpprogram - översättare. Programmeringsspråk är konstgjorda språk. De skiljer sig från naturliga språk i det begränsade antalet "ord" och mycket strikta regler för att skriva kommandon (operatörer). Helheten av dessa krav bildar syntaxen för programmeringsspråket, och betydelsen av varje konstruktion bildar dess semantik.

1.2.Algorithmens egenskaper

1. Massskala: algoritmen måste tillämpas inte på ett problem, utan på en hel klass av liknande problem (en algoritm för att lösa en andragradsekvation måste lösa inte bara en ekvation, utan alla andragradsekvationer).

2. Effektivitet: Algoritmen måste leda till att ett resultat erhålls i ett specifikt antal steg (när man dividerar 1 med 3 erhålls den periodiska bråkdelen 0,3333(3); för att uppnå det slutliga resultatet är det nödvändigt att ange exaktheten för att erhålla denna bråkdel t.ex. med fyra decimaler).

3. Säkerhet (determinism) - varje åtgärd av algoritmen måste vara förståelig för dess utförare (instruktioner för en hushållsapparat på japanska för en person som inte talar japanska är inte en algoritm, eftersom de inte har egenskapen determinism).

4. Diskrethet - processen måste beskrivas med hjälp av odelbar

operationer som utförs i varje steg (dvs. steg kan inte delas upp i mindre steg).

Algoritmer kan presenteras i följande former:

1) verbal beskrivning av algoritmen.

2) grafisk beskrivning av algoritmen.

3) använder ett algoritmiskt programmeringsspråk

1.2. Sammanställare och tolkar

MED Med hjälp av ett programmeringsspråk skapas en text som beskriver en tidigare kompilerad algoritm. För att få ett fungerande program måste du översätta denna text till en sekvens av processorkommandon, vilket görs med hjälp av speciella program som kallas översättare. Det finns två typer av översättare: kompilatorer och tolkar. Kompilatorn översätter texten i en källmodul till maskinkod, kallad en objektmodul, i en kontinuerlig process. Samtidigt skannar den först programmets källkod på jakt efter syntaxfel. Tolken exekverar källprogrammodulen i operatör-för-operatör-läge, enligt

arbetets framsteg, översätta varje påstående till maskinspråk.

1.3.Programmeringsspråk

Olika typer av processorer har olika instruktionsuppsättningar. Om ett programmeringsspråk är fokuserat på en specifik typ av processor och tar hänsyn till dess funktioner, så kallas det ett programmeringsspråk på låg nivå. Språket på den lägsta nivån är assemblerspråk, som helt enkelt representerar varje maskinkodinstruktion i form av speciella symboliska notationer som kallas mnemonics. Med hjälp av lågnivåspråk skapas mycket effektiva och kompakta program, eftersom utvecklaren får tillgång till processorns alla funktioner. Därför att Eftersom instruktionsuppsättningarna för olika processormodeller också är olika, har varje processormodell sitt eget assemblerspråk, och ett program skrivet i det kan endast användas i denna miljö. Liknande språk används för att skriva små systemapplikationer, drivrutiner etc.

Programmeringsspråk på hög nivå tar inte hänsyn till funktionerna i specifika datorarkitekturer, så de skapade programmen på källnivå kan enkelt överföras till andra plattformar om lämpliga översättare har skapats för dem. Att utveckla program på högnivåspråk är mycket lättare än på maskinspråk.

Språk på hög nivå är:

1. Fortran var det första kompilerade språket som skapades i 50-talet av 1900-talet. Den implementerade ett antal viktiga programmeringskoncept. Ett stort antal bibliotek har skapats för detta språk, allt från statistiska komplex till satellitkontroll, så det fortsätter att användas i många organisationer.

2. COBOL är ett sammanställt språk för ekonomiska beräkningar och lösningar. affärsproblem, utvecklade i början av 60-talet. Cobol tillhandahöll mycket kraftfulla verktyg för att arbeta med stora mängder data lagrade på externa media.

3. Pascal - skapad på slutet 70-talet av den schweiziske matematikern Niklaus Wirth speciellt för undervisning i programmering. Det låter dig utveckla algoritmiskt tänkande, bygga ett kort, lättläst program, demonstrera grundläggande algoritmiseringstekniker, och det är också väl lämpat för att genomföra stora projekt.

4. BASIC - skapad i 60-tal även för undervisning i programmering. Det finns både kompilatorer och tolkar för det, och det är ett av de mest populära programmeringsspråken.

5. C skapades på 70-talet och ansågs från början inte vara ett massprogrammeringsspråk. Det var tänkt att ersätta assembler, för att kunna skapa lika effektiva och korta program, men inte vara beroende av en specifik processor. Den liknar Pascal på många sätt och har ytterligare minnesmöjligheter. Många applikationer och systemprogram är skrivna i den, liksom Unix-operativsystemet.

6. C++ är en objektorienterad förlängning av C-språket, skapad av Bjarne Stroustrup 1980.

7. Java är ett språk som skapades av Sun i början 90-tal baserat på C++. Den är utformad för att förenkla utvecklingen av C++-applikationer genom att eliminera funktioner på låg nivå. Huvuddragen i språket är att det inte kompileras till maskinkod, utan till plattformsoberoende bytekod (varje kommando upptar en byte). Denna kod kan köras med en tolk som kallas Java Virtual Machine (JVM).

2. Struktur för ett C++-program

C-programmet har följande struktur: #preprocessor-direktiv

. . . . . . . . .

#preprocessor-direktiv fungerar a()

operatörer fungerar i ()

operatörer

void main () //funktion med vilken programkörning startar operatorer

beskrivningar

uppgifter

funktion tom uttalande

sammansatt

övergång

Preprocessor-direktiv - styr omvandlingen av programtext innan den kompileras. Det ursprungliga programmet, framställt i SI i form av en textfil, går igenom 3 bearbetningssteg:

1) förbehandlare textkonvertering;

2) sammanställning;

3) layout (redigera länkar eller montering).

Efter dessa tre steg genereras den körbara koden för programmet. Uppgiften att förbereda

processor - konvertera texten i ett program innan det kompileras. Reglerna för förbearbetning bestäms av programmeraren med hjälp av förbearbetningsdirektiv. Direktivet börjar med #. Till exempel,

1) #define - anger ersättningsreglerna i texten. #define NOLL 0,0

Innebär att varje användning av namnet NOLL i programmet kommer att ersättas

2) #inkludera< имя заголовочного файла>- är avsedd att inkluderas i programtexten av text från katalogen "Header files" som medföljer standardbiblioteken. Varje C-biblioteksfunktion har en motsvarande beskrivning i en av huvudfilerna. Listan över huvudfiler definieras av språkstandarden. Användningen av include-direktivet inkluderar inte motsvarande standardhaklapp

bibliotek, men låter dig bara infoga beskrivningar från den angivna rubrikfilen i programmets text. Bibliotekskoderna ingår i länkningsstadiet, det vill säga efter sammanställning. Även om header-filer innehåller alla beskrivningar av standardfunktioner, ingår bara de funktioner som används i programmet i programkoden.

Efter att förbearbetningen är klar finns inte ett enda förbehandlardirektiv kvar i programtexten.

Ett program är en uppsättning beskrivningar och definitioner och består av en uppsättning funktioner. Bland dessa funktioner ska det alltid finnas en funktion som kallas main. Utan det kan programmet inte köras. Före funktionsnamnet placeras information om vilken typ av värde som returneras av funktionen (resultattyp). Om funktionen inte returnerar något, så anges void-typen: void main(). Varje funktion, inklusive huvud, måste ha en uppsättning parametrar, den kan vara tom, då (void) anges inom parentes.

Efter funktionshuvudet finns funktionskroppen. Brödtexten i en funktion är en sekvens av definitioner, beskrivningar och körbara satser inneslutna i klammerparenteser. Varje definition, beskrivning eller påstående slutar med semikolon.

Definitioner - introducera objekt (ett objekt är ett namngivet minnesområde, ett specialfall av ett objekt är en variabel) som är nödvändiga för att representera bearbetade data i programmet. Exempel är

int y = 10; //namn konstant float x ; //variabel

Beskrivningar - meddela kompilatorn om egenskaperna och namnen på objekt och funktioner som beskrivs i andra delar av programmet.

Operatörer - bestäm programmets åtgärder vid varje steg av dess genomförande.

Exempel på ett C-program:

#omfatta //förbehandlare direktiv

Kontrollfrågor

1. Vilka delar består ett C++-program av?

2. Hur skiljer sig en definition från en annons?

3. Lista stegen för att skapa ett körbart program i C++.

4. Vad är en förprocessor?

5. Vad är ett förbearbetningsdirektiv? Ge exempel på förbearbetningsdirektiv.

6. Skriv ett program som skriver ut texten "Mitt första C++-program"

2. Grundläggande medel för SI++-språket 2.1 Språkets sammansättning

I en text på vilket naturligt språk som helst finns det fyra huvudelement: symboler, ord, fraser och meningar. Ett algoritmiskt språk innehåller också sådana element, endast ord kallas lexem (elementära konstruktioner), fraser kallas uttryck och meningar kallas operatorer. Tokens bildas av symboler, uttryck från tokens och symboler, operatorer från symboler för uttryck och tokens (Fig. 1.1)

Ris. 1.1. Sammansättning av ett algoritmiskt språk Således är elementen i ett algoritmiskt språk:

Identifierare är namnen på SI-programobjekt. Identifieraren kan använda latinska bokstäver, siffror och understreck. Versaler och gemener är olika, till exempel PROG1, prog1 och Prog1 är tre olika identifierare. Det första tecknet måste vara en bokstav eller understreck (inte en siffra). Mellanslag i identifierare är inte tillåtna.

Nyckelord (reserverade) ord är ord som har speciell betydelse för kompilatorn. De kan inte användas som identifierare.

- Operationstecken är en eller flera symboler som anger en åtgärd på operanderna. Operationer är uppdelade i unära, binära och ternära enligt antalet operander som är involverade i denna operation.

Konstanter är oföränderliga storheter. Det finns heltals-, reella-, tecken- och strängkonstanter. Kompilatorn identifierar en konstant som ett lexem (en elementär konstruktion) och tilldelar den till en av typerna baserat på dess utseende.

Avgränsare – parentes, punkt, kommatecken, mellanslag.

2.1.1. Konstanter i C++

En konstant är en token som representerar ett fast numeriskt värde, sträng eller tecken.

Konstanter är indelade i 5 grupper:

Hela;

- verklig (flytande punkt);

Uppräknad;

Karaktär;

Sträng.

Kompilatorn väljer en token och tilldelar den till en eller annan grupp, och sedan internt

tre grupper till en viss typ enligt dess inmatningsform i programtexten och enligt dess numeriska värde.

Heltalskonstanter kan vara decimala, oktala eller hexadecimala. En decimalkonstant definieras som en sekvens av decimalsiffror som börjar med något annat än 0 om inte det talet är 0 (exempel: 8, 0, 192345). En oktal konstant är en konstant som alltid börjar med 0. 0:an följs av oktala siffror (exempel: 016 - decimalvärde 14, 01). Hexadecimala konstanter är en sekvens av hexadecimala siffror som föregås av tecknen 0x eller 0X (exempel: 0xA, 0X00F).

I beroende på värdet på heltalskonstanten kompilatorn kommer att presentera det annorlunda

V datorminne (dvs kompilatorn kommer att tilldela motsvarande datatyp till konstanten).

Verkliga konstanter har en annan form av intern representation i datorns minne. Kompilatorn känner igen sådana konstanter efter deras typ. Verkliga konstanter kan ha två former av representation: fast punkt och flyttal. Fastpunktskonstanttyp: [siffror].[siffror] (exempel: 5.7, . 0001, 41.) Flyttalskonstanttyp: [siffror][.][siffror]E|e[+|-][siffror ] ( exempel: 0,5e5, .11e-5, 5E3). När du skriver reella konstanter kan antingen heltals- eller bråkdelar, eller decimalkomma eller exponenttecknet med en exponent utelämnas.

Enumerable konstanter introduceras med hjälp av nyckelordet enum. Dessa är vanliga heltalskonstanter som tilldelas unika och lättanvända notationer. Exempel: enum (en=1, två=2, tre=3, fyra=4);

enum (noll, ett, två, tre) – om du utelämnar = tecken och numeriska värden i definitionen av uppräknade konstanter, kommer värdena att tilldelas som standard. I det här fallet kommer identifieraren längst till vänster att få värdet 0, och varje efterföljande kommer att öka med 1.

enum (tio=10, tre=3, fyra, fem, sex);

enum (söndag, måndag, tisdag, onsdag, torsdag, fredag, lördag-

Teckenkonstanter är ett eller två tecken inneslutna i apostrof. Teckenkonstanter som består av ett tecken är av typen char och upptar en byte i minnet, teckenkonstanter som består av två tecken är av typen int och upptar två byte. Sekvenser som börjar med \ kallas kontrollsekvenser och används:

- För att representera tecken som inte har grafisk representation, till exempel:

\a – ljudsignal,

\b – gå tillbaka ett steg, \n – radmatning,

\t – horisontell flik.

- För att representera tecken: \ , ’ , ? , ”(\\, \’ ,\? ,\”).

- För att representera tecken med hexadecimala eller oktala koder (\073, \0xF5).

En strängkonstant är en sekvens av tecken inom citattecken.

Kontrolltecken kan också användas inom strängar. Till exempel: "\nNy rad",

"\n\"Algoritmiska högnivåprogrammeringsspråk\"" .

2.2. Datatyper i C++

Data visar omvärlden i programmet. Syftet med programmet är att behandla data. Olika typer av data lagras och behandlas olika. Datatypen definierar:

1) intern representation av data i datorminne;

2) uppsättningen värden som mängder av denna typ kan ta;

3) operationer och funktioner som kan tillämpas på data av denna typ.

I Beroende på kraven för uppgiften väljer programmeraren en typ för programobjekt. C++-typer kan delas in i enkla och sammansatta. Enkla typer inkluderar typer som kännetecknas av ett enda värde. C++ definierar 6 enkla datatyper:

int (heltal)

char (karaktär)

wchar_t (bred tecken) bool (boolesk) flyta (riktig)

dubbel (dubbel precision verklig)

Det finns 4 typspecifikationer som anger den interna representationen och intervallet för standardtyper

kort (kort) lång (lång) signerad (signerad)

osignerad

2.2.1. Skriv int

Värden av denna typ är heltal.

Storleken på int-typen definieras inte av standarden, utan beror på datorn och kompilatorn. För en 16-bitars processor tilldelas 2 byte för den, för en 32-bitars processor - 4 byte.

Om int-specifikatorn föregås av en kort specificator, tilldelas 2 byte för numret, och om specificatorn är lång, tilldelas 4 byte. Mängden minne som allokeras för ett objekt bestämmer uppsättningen giltiga värden som ett objekt kan ta:

kort int - tar 2 byte, har därför ett intervall på –32768 ..+32767;

long int – upptar 4 byte, har därför ett intervall på –2,147,483,648..+2,147,483,647

Int-typen är densamma som den korta int-typen på 16-bitars datorer och den långa int-typen på 32-bitars PC.

De signerade och osignerade modifierarna påverkar också uppsättningen av giltiga värden som ett objekt kan ta:

osignerad kort int - tar 2 byte, därför har ett intervall på 0 ..65536; unsigned long int – upptar 4 byte, har därför ett intervall på 0..+4 294 967

2.2.2. Typ char

Värdena av denna typ är elementen i en ändligt ordnad uppsättning tecken. Varje tecken tilldelas ett nummer, som kallas teckenkoden. 1 byte tilldelas för ett teckentypvärde. Teckningstypen kan användas med de signerade och osignerade specifikationerna. Signerad char-data kan lagra värden i intervallet från –128 till 127. När du använder osignerad char-data kan värden variera från 0 till 255. Kodningen är ASCII (American Standard Code foe International Interchange). Tecken med koder från 0 till 31 är servicetecken och har en oberoende betydelse endast i I/O-satser.

Värden av typen char används också för att lagra nummer från specificerade intervall.

2.2.3. wchar_t typ

Designad för att fungera med en uppsättning tecken för vilka 1 byte inte räcker för att koda, till exempel Unicode. Storleken på denna typ motsvarar i allmänhet den korta typen. Strängkonstanter av denna typ skrivs med L-prefixet: L“String #1”.

2.2.4. Typ bool

Typen bool kallas boolean. Dess värden kan ta värdena sanna och falska. Den interna formen av falskt är 0, vilket annat värde som helst tolkas som sant.

2.2.5. Flyttalstyper.

Den interna representationen av ett reellt tal består av 2 delar: mantissan och exponenten. På IBM-kompatibla datorer upptar flytvärden 4 byte, varav en bit är tilldelad för mantissan, 8 bitar för exponenten och 24 för mantissan.

Dubbla värden upptar 8 byte, 11 och 52 bitar tilldelas för exponenten respektive mantissan. Längden på mantissan bestämmer numrets precision och längden på ordningen för dess intervall.

Om en lång specificering föregår ett dubbeltypsnamn tilldelas byte för värdet.

2.2.6. typ tom

TILL huvudtyperna inkluderar även void-typen. Värdeuppsättningen av denna typ är p-

2.3. Variabler

En variabel i SI++ är ett namngivet minnesområde där data av en viss typ lagras. En variabel har ett namn och ett värde. Namnet används för att referera till minnesområdet där värdet är lagrat. Före användning måste alla variabler deklareras. Exempel:

Allmän vy av beskrivningsoperatören:

[minnesklass]typnamn [initialiserare];

Minnesklassen kan ha följande värden: auto, extern, statisk, register. Minnesklassen bestämmer livslängden och omfattningen av en variabel. Om minnesklassen inte specificeras explicit, bestämmer kompilatorn den baserat på deklarationskontexten. Livslängden kan vara permanent - under programmets körning eller tillfällig - under blockeringen. Omfattning är en del av programtexten från vilken normal åtkomst till en variabel tillåts. Vanligtvis är omfattningen densamma som omfattningen. Med undantag för fallet när det finns en variabel med samma namn i det inre blocket.

Const – indikerar att denna variabel inte kan ändras (benämns konstant). När du beskriver kan du tilldela en variabel ett initialvärde (initiering). Minnesklasser:

auto – automatisk lokal variabel. Den automatiska specificeraren kan endast anges när du definierar blockobjekt, till exempel i en funktions kropp. Dessa variabler tilldelas minne när man går in i ett block och frigörs när man lämnar det. Utanför blocket finns inte sådana variabler.

extern är en global variabel, den finns på en annan plats i programmet (i en annan fil eller längre ner i texten). Används för att skapa variabler som är tillgängliga i alla programfiler.

static är en statisk variabel, den finns bara i filen där variabeln är definierad.

register - liknande auto, men minne för dem tilldelas i processorregister. Om detta inte är möjligt, behandlas variablerna som auto.

int a; //global variabel void main())(

int b;//lokal variabel

extern int x;//variabel x definieras någon annanstans statisk int c;//lokal statisk variabel a=1;//tilldelning till en global variabel

int a;//lokal variabel a

a=2;//tilldelning till en lokal variabel::a=3;//tilldelning till en global variabel

int x=4;//definition och initialisering av x

I exemplet är variabeln a definierad utanför alla block. Omfattningen av variabeln a är hela programmet, förutom de rader där den lokala variabeln a används. Variablerna b och c är lokala, deras omfattning är block. Livslängden är annorlunda: minne för b tilldelas när du går in i blocket (eftersom standardminnesklassen är auto), och frigörs när du lämnar den. En variabel med (statisk) finns medan programmet körs.

Om det initiala värdet för variablerna inte ställs in explicit under definitionen, återställer kompilatorn globala och statiska variabler till noll. Automatiska variabler initieras inte.

Variabelnamnet måste vara unikt inom dess räckvidd.

En variabel deklaration kan göras antingen som en deklaration eller en definition. Deklarationen innehåller information om minnesklassen och typen av variabel; definitionen, tillsammans med denna information, instruerar minnet som ska allokeras. I exemplet extern int x; - deklaration, och resten - definitioner.

2.4 Tecken på operationer i C++

Operationstecken ger bildandet av uttryck. Uttryck består av operander, operatorsymboler och parenteser. Varje operand är i sin tur ett uttryck eller ett specialfall av ett uttryck - en konstant eller en variabel.

Unära operationer

& få operandadress

* Hänvisar till en adress (derferencing)

- unär minus, ändrar den aritmetiska operandens tecken

++ Öka med ett:

prefix operation - ökar operanden innan den används

Postfix-operationen ökar operanden efter att den har använts.

int a=(m++)+n; // a=4,m=2,n=2

int b=m+(++n);//a=3,m=1,n=3

minska med ett:

prefix operation - minskar operanden innan den används

postfix-operation reducerar en operand efter att den har använts

Beräkna storleken (i byte) på ett objekt av typen som

har en operand

har två former

uttryckets storlek

sizeof(float)//4

sizeof(1.0)//8, eftersom reella konstanter är som standard