Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Çfarë lloji të operatorit të caktimit ka? Operatorët Pascal

Operatori i caktimit

Një nga operatorët kryesorë është operatori i caktimit. Përdoret për t'i caktuar një vlerë një ndryshoreje. Në këtë rast, vlera e shprehjes që ndodhet në të djathtë të shenjës së caktimit i caktohet një ndryshoreje, identifikuesi i së cilës ndodhet në të majtë të shenjës së caktimit.

Operatori i caktimit mund të përdoret për të caktuar vlerat

variabël i çdo lloji, përveç skedarit. Kushti i vetëm është,

në mënyrë që ndryshorja /ose funksioni/ dhe shprehja të kenë të njëjtin lloj. Përjashtim është kur ndryshorja është e llojit real, atëherë shprehja mund të jetë e llojit real ose të plotë.

Këtu a është një variabël i thjeshtë ose indeks; b – aritmetike ose shprehje logjike. Ekzekutimi i operatorit konsiston në vlerësimin e shprehjes në të djathtë të shenjës “:=” dhe caktimin e vlerës që rezulton në anën e majtë të operatorit, duke marrë parasysh llojin e ndryshores që ndodhet aty. Shembuj:

kënd:= kënd * p1;

AccessOK:= False;

SferVol:= 4 * p1 * R * R;

3.3.2. Hyrja – dalje e të dhënave

Futja e të dhënave kryhet duke përdorur operatorët e hyrjes pa format:

Lexoni (a 1,…,a n); Readln (a 1,…,a n);,

ku a 1,…, dhe n është një listë e variablave.

Të dhënat futen nga tastiera, me të dhëna numerike të ndara nga njëra-tjetra me hapësira, me përjashtim të të dhënave të karaktereve dhe llojeve të vargjeve.

Futja e vlerave të elementeve të grupit kryhet si duke renditur elementët në një listë ashtu edhe duke përdorur operatorët e ciklit, për shembull:

Lexoni (a, a, a,…)

për i:=1 deri në n bëj

për j:=1 deri në m bëj

Lexo nje);.

Me një madhësi të madhe grupi, futja e të dhënave nga tastiera bëhet një operacion intensiv i punës. Në këtë rast, është më i përshtatshëm të vendosni vlerat e elementeve të grupit në seksionin e përshkrimit konstant.

Shembull: shkruani vlerat e elementeve të vektorit X dhe matricës A, të cilat janë përkatësisht të barabarta me:

X = (5, 1.2, 0.1, 7, 8.6) A = 3, 0, 6, 14, 5

0, 0, 0, 99, 12

Vlerat e elementeve mund të përcaktohen duke i inicializuar ato:

Const X: grup real = (5.0, 1.2, 0.1, 7.0, 8.6);

A: grup i numrave të plotë = ((4, 5, 10, 8, 0),

(7, 9, 25, 0, 1),

(3, 0, 6, 14, 5),

(0, 0, 0, 99, 12));.

Të dhënat nxirren në ekran duke përdorur operatorët write dhe writeln, për shembull:

shkruani('x=', x:3, 'y=', y:8:3);

Ekrani i ekranit shfaq: vlerat e variablit të tipit të plotë X, për të cilin janë ndarë 3 pozicione, ndryshorja Y lloj real, zë 8 pozicione. Kur atomi është nën pjesë thyesore ndryshores Y i caktohen 3 pozicione; vetëm për ndryshoren X pjesë e tërë. Përpara vlerat numerike variablave, shfaqet informacion shpjegues rreth tyre, i përbërë nga emrat e variablave.

Kështu, siç vijon nga shembulli, formati për daljen e variablave të një lloji të plotë është :A, variabla të tipit real :a:p, Ku A- numri i përgjithshëm i pozitave të ndara për numrin, prej të cilave R- pozicionet ndahen për pjesën thyesore. Në numrin total të pozicioneve A përfshihen pozicionet për shenjën e numrit dhe presjen dhjetore. Kufizuesi në format është karakteri ":". Nëse formati nuk është i specifikuar në deklaratën e daljes, atëherë dalja do të kryhet në formën e normalizuar të paraqitjes së një numri real. Teksti i informacionit shpjegues i shfaqur është i mbyllur me apostrofa.

Për të shkurtuar shprehjet në gjuhën e programimit C++, ekzistojnë operacione speciale të quajtura operacione caktimi. Le të shohim një pjesë të kodit duke përdorur operatorin e caktimit.

Vlera int = 256; vlera = vlera + 256; // një shprehje e rregullt duke përdorur dy operacione: = dhe + vlera += 256; // shprehje ekuivalente e stenografisë duke përdorur operatorin e caktimit

rreshti 2 vlerës së ndryshores i caktohet vlera 512, që rezulton nga shuma e vlerës që përmban vlera e ndryshores me numrin 256. Në rreshti 3 shprehja kryen të njëjtin veprim si në rreshti 2, por shprehja shkruhet në formë të thjeshtuar. Kjo shprehje përmban një operator caktimi me një shenjë plus +=. Kështu, operacioni += përmbledh vlerën e vlerës së ndryshores me vlerën që është në të djathtë: 256, dhe ia cakton rezultatin e shumës së njëjtës variabël. Siç mund të shihet nga shembulli, operatori në rreshti 3 më i shkurtër se operatori në rreshti 2, megjithëse kryen një operacion të ngjashëm. Pra, nëse disa ndryshore duhet të ndryshohen, atëherë rekomandohet përdorimi i operatorëve të caktimit.

Ekzistojnë pesë operatorë të caktimit në C++, pa llogaritur operatorin bazë të caktimit: =.

  1. += operacioni caktim-shtim;
  2. -= veprim caktim-zbritje;
  3. *= operacioni caktim-shumëzimi;
  4. /= operacion caktim-ndarje;
  5. %= operatori i caktimit - pjesa e mbetur e ndarjes;

Le të biem dakord të emërtojmë operacionet e caktimit me vizë në mënyrë që të jetë e qartë se për çfarë lloj operacioni po flasim. Tabela 1 tregon qartë shembuj të përdorimit të operatorëve të caktimit në gjuhën e programimit C++.

Operatorët e caktimit në C++
Operacioni Emërtimi Shembull Shembull ekuivalent Shpjegim
operacioni caktim-shtim += var += 16 var = var + 16 I shtojmë numrin 16 vlerës së ndryshores var, rezultati i përmbledhjes ruhet në variablin var
veprim caktim-zbritje -= var -= 16 var = var - 16 Ne zbresim numrin 16 nga ndryshorja var, rezultati i zbritjes ruhet në ndryshoren var
operacion caktim-shumëzimi *= var *= 16 var = var * 16 Ne e shumëzojmë vlerën e ndryshores var me 16 herë, rezultati i shumëzimit i caktohet ndryshores var
operacion caktim-ndarje /= var /= 16 var = var / 16 Ndani vlerën e ndryshores var me 16, rezultati i ndarjes i caktohet ndryshores var
operatori i caktimit - mbetje e ndarjes %= var %= 16 var = var % 16 Gjeni pjesën e mbetur të ndarjes dhe ruajeni në variablin var

Le të zhvillojmë një program që do të përdorë operacionet e caktimit.

// assignment.cpp: Përcakton pikën hyrëse për aplikacionin e konsolës. #include "stdafx.h" #include duke përdorur hapësirën e emrave std; int main(int argc, char* argv) ( vlera int = 256; cout<< "value = "<< vlera << endl; vlera += 256; // stenografi duke përdorur operatorin e caktimit - shtesë cout <<"value += 256; >> " << value << endl; value -= 256; // сокращённое выражение с использованием операции присваивания - вычитания cout << "value -= 256; >> " << value << endl; value *= 2; // сокращённое выражение с использованием операции присваивания - умножения cout << "value *= 2; >> " << value << endl; value /= 8; // сокращённое выражение с использованием операции присваивания - деления cout << "value /= 8; >> " << value << endl; system("pause"); return 0; }

Për të filluar me rreshti 9u deklarua variabli vlerë , dhe inicializohet me vlerën 256. Linjat 11, 13, 15, 17 përmbajnë veprimet e caktimit - përkatësisht mbledhje, zbritje, shumëzim dhe pjesëtim. Pasi të kryhet çdo operacion caktimi, deklarata cout printon rezultatin. Rezultati i programit (shih Figurën 1).

Vlera = 256 vlera += 256; >> 512 vlera -= 256; >> vlera 256 *= 2; >> 512 vlera /= 8; >> 64 Për të vazhduar, shtypni çdo tast. . .

Figura 1 – Operacionet e caktimit në C++

Figura 1 tregon qartë shembuj të kryerjes së operacioneve të caktimit, dhe gjithashtu tregon rezultatin e ekzekutimit të operacionit përkatës të caktimit.

Detyrë- një mekanizëm në programim që ju lejon të ndryshoni në mënyrë dinamike marrëdhëniet e objekteve të të dhënave (zakonisht variablave) me vlerat e tyre. Në mënyrë rigoroze, ndryshimi i vlerave është një efekt anësor i operacionit të caktimit, dhe në shumë raste gjuhët moderne Në programim, vetë operacioni gjithashtu kthen disa rezultate (zakonisht një kopje të vlerës së caktuar). Aktiv niveli fizik Rezultati i operacionit të caktimit është shkrimi dhe rishkrimi i qelizave të memories ose regjistrave të procesorit.

Detyra është një nga konstruktet qendrore në gjuhët e programimit imperativ dhe zbatohet në mënyrë efikase dhe thjesht në arkitekturën von Neumann që është baza e kompjuterëve modernë.

Set<целевая_переменная> <выражение>

Kjo hyrje është ekuivalente me thirrjen e funksionit. Po kështu, në COBOL të stilit të vjetër:

SHUMËZOJENI 2 ME 2 DHËNË KATËR.

Algoritmi i punës [ | ]

Emërtimi [ | ]

Zgjedhja e karakterit të detyrës është një burim debati midis zhvilluesve të gjuhës. Ekziston një mendim se përdorimi i simbolit = për caktimin i ngatërron programuesit dhe gjithashtu e bën të vështirë vendim i mirë pyetje në lidhje me zgjedhjen e një simboli për operatorin e krahasimit.

I njohur mirë shembull i keqështë zgjedhja e shenjës së barabartë për të treguar detyrën, duke u kthyer në Gjuha Fortran në vitin 1957 dhe ende përsëritet verbërisht nga masa e zhvilluesve të gjuhës. Kjo ide e keqe përmbys traditën shekullore të përdorimit të shenjës "=" për të treguar një krahasim për barazi, një kallëzues që merr vlerat "e vërtetë" ose "e rreme". Por në Fortran ky simbol erdhi në kuptimin e caktimit, duke detyruar barazinë. Në këtë rast, operandët janë në një pozicion të pabarabartë: operandi i majtë, ndryshorja, duhet të bëhet i barabartë me operandin e djathtë, shprehjen. Prandaj x = y nuk do të thotë njësoj si y = x.

Teksti origjinal (anglisht)

Një shembull famëkeq për një ide të keqe ishte zgjedhja e shenjës së barabartë për të treguar detyrën. Ajo kthehet në Fortran në 1957 dhe është kopjuar verbërisht nga ushtritë e stilistëve të gjuhës. Pse është një ide e keqe? Sepse përmbys një traditë shekullore që të lejosh që "=" të tregojë një krahasim për barazi, një kallëzues që është ose i vërtetë ose i rremë. Por Fortran e bëri atë të nënkuptojë detyrën, zbatimin e barazisë. Në këtë rast, operandët janë në baza të pabarabarta: Operandi i majtë (një ndryshore) duhet të bëhet i barabartë me operandin e djathtë (një shprehje). x = y nuk do të thotë të njëjtën gjë si y = x.

Zbatimi i këtij pozicioni të Wirth mund të konsiderohet se në gjuhën Pascal, autor i së cilës është ai, operatori i caktimit është:=, ndërsa për krahasim përdoret thjesht =.

Zgjedhja e simbolit për operatorin e barazisë në gjuhë kur përdoret = si detyrë zgjidhet:

  • Duke futur një simbol të ri gjuhësor për operatorin e barazisë.
A = B = C

ndryshores A i është caktuar vlera Boolean e shprehjes së relacionit B = C. Ky shënim çon në lexueshmëri të reduktuar dhe përdoret rrallë.

Veçoritë semantike[ | ]

Mënyra "intuitive" (për programuesit e gjuhëve imperative) e interpretimit të detyrës nuk është gjithmonë e vetmja e saktë dhe e mundshme.

Nuk është gjithmonë e mundur të kuptohet nga sintaksa e përdorur në gjuhët imperative se si zbatohet semantika e detyrave, përveç nëse ajo përcaktohet në mënyrë eksplicite në gjuhë.

A = b = a a = 1000

Pas kësaj, b do të ketë një vlerë - thjesht sepse në fakt vlera e tij është vlera e a . Numri i referencave për të njëjtin objekt të dhënash quhet kardinaliteti i tij, dhe vetë objekti vritet (shkatërrohet ose mblidhet mbeturina) kur kardinaliteti i tij arrin zero. Më shumë gjuhë programimi nivel i ulët(p.sh. C) lejojnë programuesin të kontrollojë në mënyrë eksplicite nëse përdoret semantika e treguesit ose semantika e kopjimit.

Zëvendësimi i operacionit[ | ]

Shumë gjuhë ofrojnë mundësinë për të ndryshuar kuptimin e një detyre: qoftë përmes mekanizmit të pronësisë ose përmes mbingarkesës së operatorit të caktimit. Zëvendësimi mund të jetë i nevojshëm për të kryer kontrolle mbi vlefshmërinë e vlerës së caktuar ose ndonjë operacion tjetër shtesë. Mbingarkimi i operatorit të caktimit përdoret shpesh për të siguruar "kopjimin e thellë", domethënë kopjimin e vlerave në vend të referencave, të cilat kopjohen si parazgjedhje në shumë gjuhë.

Mekanizma të tillë bëjnë të mundur sigurimin e komoditetit gjatë punës, kështu që për programuesin nuk ka asnjë ndryshim midis përdorimit të një operatori të integruar dhe një të mbingarkuar. Për të njëjtën arsye, problemet janë të mundshme, pasi veprimet e një operatori të mbingarkuar mund të jenë krejtësisht të ndryshme nga veprimet e operatorit të paracaktuar, dhe thirrja e funksionit nuk është e dukshme dhe lehtë mund të ngatërrohet për një operacion të integruar.

Modele të avancuara[ | ]

Konstruktet e detyrës në gjuhë të ndryshme programimit

Meqenëse operatori i caktimit përdoret gjerësisht, zhvilluesit e gjuhëve të programimit po përpiqen të zhvillojnë konstruksione të reja për shënim i thjeshtuar veprime tipike (shtoni të ashtuquajturin "sheqer sintaksor" në gjuhë). Për më tepër, në gjuhët e programimit të nivelit të ulët, kriteri i përfshirjes për një operacion është shpesh aftësia për t'u kompiluar në kod të ekzekutueshëm efikas. Gjuha C është veçanërisht e famshme për këtë pronë.

Objektiva të shumtë[ | ]

Një nga alternativat operator i thjeshtëështë aftësia për të caktuar vlerën e një shprehjeje në shumë objekte. Për shembull, në gjuhën PL/1 operatori

SHUMË, TOTALI = 0

cakton njëkohësisht vlerë zero variablat SUM dhe TOTAL. Në gjuhën Ada, një detyrë është gjithashtu një operator, jo një shprehje, kështu që shënimi për një detyrë të shumëfishtë është:

SHUMË, TOTALI: Numri i plotë:= 0;

Një detyrë e ngjashme në Python ka sintaksën e mëposhtme:

Shuma = total = 0

Ndryshe nga PL/1, Ada dhe Python, ku caktimi i shumëfishtë konsiderohet vetëm një formë e shkurtuar e shënimit, në gjuhët C, Lisp dhe të tjera këtë sintaksë ka një bazë strikte: thjesht operatori i caktimit kthen vlerën që i është caktuar (shih më lart). Pra, shembulli i fundit është në të vërtetë:

Shuma = (gjithsej = 0)

Një linjë si kjo do të funksionojë në C (nëse shtoni një pikëpresje në fund), por do të shkaktojë një gabim në Python.

Detyrë paralele[ | ]

Opsioni i fundit funksionon vetëm me llojet që mbështesin operacionet bit(për shembull, për dyfishin, përpiluesi i gjuhës nuk do t'ju lejojë të shkëmbeni vlera të ndryshueshme në këtë mënyrë).

Zbatimi [ | ]

Funksionimi i kompjuterëve modernë konsiston në leximin e të dhënave nga memorja ose një pajisje në regjistra, kryerjen e operacioneve mbi ato të dhëna dhe shkrimin në memorie ose pajisje. Operacioni kryesor këtu është transferimi i të dhënave (nga regjistrat në memorie, nga memoria në regjistër, nga regjistri në regjistër). Prandaj, ai shprehet drejtpërdrejt nga komandat e procesorëve modernë. Pra, për arkitekturën x86 (të gjitha komandat më poshtë vlejnë edhe për këtë arkitekturë) ky është operacioni mov dhe variacionet e tij për dërgimin e të dhënave madhësive të ndryshme. Operacioni i caktimit (dërgimi i të dhënave nga një qelizë memorie në tjetrën) zbatohet pothuajse drejtpërdrejt nga kjo komandë. Në përgjithësi, kërkohen dy instruksione për të kryer një transferim të të dhënave në memorie: memorie-regjistër dhe regjistër-në-memorie, por duke përdorur optimizimin, numri i instruksioneve mund të reduktohet në shumicën e rasteve.

Detyrë

Detyrë- një mekanizëm në programim që ju lejon të ndryshoni në mënyrë dinamike marrëdhëniet e objekteve të të dhënave (zakonisht variablave) me vlerat e tyre. Në mënyrë të rreptë, ndryshimi i vlerave është një efekt anësor i operacionit të caktimit, dhe në shumë gjuhë programimi moderne vetë operacioni gjithashtu kthen disa rezultate (zakonisht një kopje të vlerës së caktuar). Në nivelin fizik, rezultati i një operacioni caktimi është shkrimi dhe rishkrimi i qelizave të memories ose regjistrave të procesorit.

Detyra është një nga konstruktet qendrore në gjuhët e programimit imperativ dhe zbatohet në mënyrë efikase dhe thjesht në arkitekturën von Neumann që është baza e kompjuterëve modernë.

Set<целевая_переменная> <выражение>

Kjo hyrje është ekuivalente me thirrjen e funksionit. Po kështu, në COBOL të stilit të vjetër:

SHUMËZOJENI 2 ME 2 DHËNË KATËR.

Algoritmi i punës

  • Llogaritni vlerën në të majtë të operandit të parë. Në këtë fazë, vendndodhja e objektit të synuar, marrësi i vlerës së re, bëhet i njohur.
  • Llogaritni vlerën në të djathtë të operandit të dytë. Kjo fazë mund të jetë aq e madhe sa të dëshirohet dhe të përfshijë deklarata të tjera (përfshirë detyrat).
  • Cakto vlerën e llogaritur të dorës së djathtë në vlerën e dorës së majtë. Së pari, nëse ka një konflikt tipi, duhet të kryhet një cast (ose duhet të lëshohet një mesazh gabimi për shkak të pamundësisë së tij). Së dyti, caktimi aktual i vlerave në gjuhët moderne të programimit mund të zëvendësohet dhe të përfshijë jo vetëm transferimin e vlerave të qelizave të kujtesës (për shembull, në "vetitë" e objekteve në , mbingarkimin e operatorit).
  • Ktheni vlerën e llogaritur në të djathtë si rezultat i operacionit. Nuk kërkohet në të gjitha gjuhët (për shembull, nuk kërkohet në Pascal).

Emërtimi

Zgjedhja e karakterit të detyrës është një burim debati midis zhvilluesve të gjuhës. Ekziston një argument që përdorimi i simbolit = për caktimin i ngatërron programuesit dhe gjithashtu ngre pyetjen e zgjedhjes së një simboli për operatorin e krahasimit që është e vështirë të bëhet mirë.

Një shembull famëkeq i keq është zgjedhja e shenjës së barabartë për të treguar detyrën, e cila daton në Fortran në 1957 dhe ende përsëritet verbërisht nga shumë zhvillues të gjuhës sot. Kjo ide e keqe rrëzon traditën shekullore të përdorimit të shenjës = për të treguar një krahasim të barazisë, një kallëzues që merr vlerat "e vërtetë" ose "e rreme". Por në Fortran ky simbol erdhi në kuptimin e caktimit, duke detyruar barazinë. Në këtë rast, operandët janë në një pozicion të pabarabartë: operandi i majtë, ndryshorja, duhet të bëhet i barabartë me operandin e djathtë, shprehjen. Prandaj x = y nuk do të thotë njësoj si y = x.

Teksti origjinal(anglisht)

Një shembull famëkeq për një ide të keqe ishte zgjedhja e shenjës së barabartë për të treguar detyrën. Ajo kthehet në Fortran në 1957 dhe është kopjuar verbërisht nga ushtritë e stilistëve të gjuhës. Pse është një ide e keqe? Sepse përmbys një traditë shekullore që të lejosh që "=" të tregojë një krahasim për barazi, një kallëzues që është ose i vërtetë ose i rremë. Por Fortran e bëri atë të nënkuptojë detyrën, zbatimin e barazisë. Në këtë rast, operandët janë në baza të pabarabarta: Operandi i majtë (një ndryshore) duhet të bëhet i barabartë me operandin e djathtë (një shprehje). x = y nuk do të thotë të njëjtën gjë si y = x.

Zgjedhja e simbolit për operatorin e barazisë në gjuhë kur përdoret = si detyrë zgjidhet:

  • Duke futur një simbol të ri gjuhësor për operatorin e barazisë.
A = B = C

ndryshores A i është caktuar vlera Boolean e shprehjes së relacionit B = C. Ky shënim çon në lexueshmëri të reduktuar dhe përdoret rrallë.

Veçoritë semantike

Mënyra "intuitive" (për programuesit e gjuhëve imperative) e interpretimit të detyrës nuk është gjithmonë e vetmja e saktë dhe e mundshme.

Nuk është gjithmonë e mundur të kuptohet nga sintaksa e përdorur në gjuhët imperative se si zbatohet semantika e detyrave, përveç nëse ajo përcaktohet në mënyrë eksplicite në gjuhë.

A = b = a a = 1000

Pas kësaj, b do të ketë një vlerë - thjesht sepse vlera e tij është në fakt vlera e a . Numri i referencave për të njëjtin objekt të dhënash quhet kardinaliteti i tij, dhe vetë objekti vritet (shkatërrohet ose mblidhet mbeturina) kur kardinaliteti i tij arrin zero. Gjuhët e programimit të nivelit më të ulët (siç është C) i lejojnë programuesit të kontrollojë në mënyrë eksplicite nëse përdoret semantika e treguesit ose semantika e kopjimit.

Zëvendësimi i operacionit

Shumë gjuhë ofrojnë mundësinë për të ndryshuar kuptimin e një detyre: qoftë përmes mekanizmit të pronësisë ose përmes mbingarkesës së operatorit të caktimit. Zëvendësimi mund të jetë i nevojshëm për të kryer kontrolle mbi vlefshmërinë e vlerës së caktuar ose ndonjë operacion tjetër shtesë. Mbingarkimi i operatorit të caktimit përdoret shpesh për të siguruar "kopjimin e thellë", domethënë kopjimin e vlerave në vend të referencave, të cilat kopjohen si parazgjedhje në shumë gjuhë.

Mekanizma të tillë bëjnë të mundur sigurimin e komoditetit gjatë punës, kështu që për programuesin nuk ka asnjë ndryshim midis përdorimit të një operatori të integruar dhe një të mbingarkuar. Për të njëjtën arsye, problemet janë të mundshme, pasi veprimet e një operatori të mbingarkuar mund të jenë krejtësisht të ndryshme nga veprimet e operatorit të paracaktuar, dhe thirrja e funksionit nuk është e dukshme dhe lehtë mund të ngatërrohet për një operacion të integruar.

Modele të avancuara

Konstruktet e detyrave në gjuhë të ndryshme programimi

Meqenëse operacioni i caktimit përdoret gjerësisht, zhvilluesit e gjuhëve të programimit po përpiqen të zhvillojnë konstruksione të reja për regjistrimin e thjeshtuar të operacioneve tipike (shtoni të ashtuquajturin "sheqer sintaksor"). Për më tepër, në gjuhët e programimit të nivelit të ulët, kriteri i përfshirjes për një operacion është shpesh aftësia për t'u kompiluar në kod të ekzekutueshëm efikas. Gjuha C është veçanërisht e famshme për këtë pronë.

Objektiva të shumtë

Një alternativë ndaj operatorit të thjeshtë është aftësia për të caktuar vlerën e një shprehjeje në shumë objekte. Për shembull, në gjuhën PL/1 operatori

SHUMË, TOTALI = 0

njëkohësisht cakton vlerën zero variablave SUM dhe TOTAL. Në gjuhën Ada, një detyrë është gjithashtu një operator, jo një shprehje, kështu që shënimi për një detyrë të shumëfishtë është:

SHUMË, TOTALI: Numri i plotë:= 0;

Një detyrë e ngjashme në Python ka sintaksën e mëposhtme:

Shuma = total = 0

Ndryshe nga PL/1, Ada dhe Python, ku caktimi i shumëfishtë konsiderohet vetëm një formë e shkurtuar shënimi, në C, Lisp dhe gjuhë të tjera kjo sintaksë ka një bazë strikte: operatori i caktimit thjesht kthen vlerën e caktuar atyre (shih më lart ). Pra, shembulli i fundit është në të vërtetë:

Shuma = (gjithsej = 0)

Një linjë si kjo do të funksionojë në C (nëse shtoni një pikëpresje në fund), por do të shkaktojë një gabim në Python.

Detyrë paralele

a ||= 10

Ky konstruksion i cakton një vlerë ndryshores a vetëm nëse vlera nuk është caktuar ende ose është e barabartë me false.

Operatorët e Kompleksit

Operatori i caktimit të përbërë ofron një mënyrë stenografike për të specifikuar një formë caktimi të përdorur zakonisht. Duke përdorur këtë metodë, ju mund të shkurtoni shënimin e caktimit në të cilin ndryshorja e synuar përdoret si operandi i parë në anën e djathtë të shprehjes, për shembull:

A = a + b

Sintaksa e operatorit të caktimit të përbërjes C është një kombinim i operatorit binar të dëshiruar dhe operatorit =. Për shembull, shënimet e mëposhtme janë ekuivalente

shuma += vlera; shuma = shuma + vlera;

Gjuhët e programimit që mbështesin operatorët e përbërë (C++, , Python, Java, etj.) zakonisht kanë versione për shumicën e operatorëve binare të atyre gjuhëve (+=, -=, &=, etj.).

Operatorët unarë

Gjuha e programimit C dhe shumica e derivateve të saj kanë dy operatorë aritmetikë të veçantë unarë (d.m.th., me një argument) që në fakt janë detyra stenografike. Këta operatorë kombinojnë operacionet e rritjes dhe zvogëlimit me caktimin. Operatorët ++ për rritje dhe -- për zvogëlim mund të përdoren si operatorë prefiks (d.m.th., përpara operandëve) ose si operatorë postfiks (d.m.th., pas operandëve), duke treguar një renditje të ndryshme vlerësimi. Operatori i rritjes së prefiksit kthen vlerën tashmë të rritur të operandit dhe operatori postfiks kthen vlerën origjinale.

Një shembull i përdorimit të operatorit të rritjes për të formuar një operator të plotë caktimi:

Edhe pse kjo nuk duket si një detyrë, është një. Rezultati i ekzekutimit të deklaratës së mësipërme është i barabartë me rezultatin e ekzekutimit të një detyre.

Operatorët e rritjes dhe zvogëlimit në C janë shpesh stenografi për të formuar shprehje që përmbajnë indekse

Operatoriështë një fjali e gjuhës programuese që specifikon një përshkrim të plotë të disa veprimeve që duhet të kryhen. Pjesa kryesore e një programi Turbo Pascal është një sekuencë deklaratash. Ndarësi i deklaratës është një pikëpresje. Të gjithë operatorët e gjuhës Turbo Pascal mund të ndahen në dy grupe: të thjeshtë dhe strukturorë.

Deklaratat që nuk përmbajnë deklarata të tjera quhen thjeshtë. Këto përfshijnë caktimin, kërcimin e pakushtëzuar, thirrjen e procedurës dhe operatorin bosh.

Operatori i caktimit

Operatori i caktimit (:=) udhëzon për të ekzekutuar shprehjen e specifikuar në anën e saj të djathtë dhe për t'i caktuar rezultatin një variabli, identifikuesi i së cilës ndodhet në anën e majtë. Variabla dhe shprehja duhet të jenë të tipit të përputhshëm.

Operatori i caktimit ekzekutohet si më poshtë: së pari vlerësohet shprehja në anën e djathtë të detyrës dhe më pas vlera e saj caktohet në ndryshoren e specifikuar në anën e majtë të operatorit.

Për shembull, për operatorin

Rezultati:=A div B;

Së pari, kryhet ndarja me numra të plotë të vlerës së ndryshores A në vlerën e ndryshores dhe më pas rezultati i caktohet një ndryshoreje Rezultati.

Shembuj të përdorimit të operatorit të caktimit:

A:= 8;

S:=A*;

Ostatok:= Një mod B;

Raporti:= A/B;

Operatori i kërcimit të pakushtëzuar (shkoni te)

Operatori i kërcimit të pakushtëzuar (shko tek) do të thotë "shko te" dhe përdoret në rastet kur, pas ekzekutimit të një deklarate të caktuar, është e nevojshme të ekzekutohet jo tjetri sipas radhës, por ndonjë deklaratë tjetër e shënuar me etiketë.

Kujtoni që një etiketë deklarohet në seksionin e përshkrimit të etiketës dhe mund të përmbajë si karaktere numerike ashtu edhe alfabetike.

Kur përdorni operatorin shkoni në duhet mbajtur mend se fushëveprimi i etiketësështë vetëm blloku në të cilin përshkruhet. Transferimi i kontrollit në një bllok tjetër është i ndaluar.

Rregullat për përdorimin e operatorit të kërcimit të pakushtëzuar. Përdorimi i transferimeve të pakushtëzuara të kontrollit në një program konsiderohet teorikisht i tepërt dhe i nënshtrohet kritikave serioze, pasi kontribuon në krijimin e programeve të errëta dhe të vështira për t'u modifikuar që shkaktojnë vështirësi të mëdha në korrigjimin dhe mirëmbajtjen. Prandaj, rekomandohet përdorimi minimal i operatorit shkoni në subjekt i rregullave të mëposhtme:

Ju duhet të përpiqeni të përdorni operatorët e kërcimit (nëse duket e pamundur të bëhet pa to) për të transferuar kontrollin vetëm poshtë (përpara) përmes tekstit të programit; nëse është e nevojshme të transferohet kontrolli mbrapsht, duhet të përdoren operatorët e lakut;

Distanca midis etiketës dhe operatorit të kërcimit nuk duhet të kalojë një faqe teksti (ose lartësinë e ekranit të ekranit).

Një shembull i përdorimit të operatorit të kërcimit të pakushtëzuar:

etiketë Mark; (në seksionin e përshkrimit të etiketës kemi përshkruar një etiketë me emrinMetka}

fillojnë (programi kryesor)

(deklaratat kryesore të programit)

(deklaratat kryesore të programit të shënuara me një etiketë)

Rradhe pune

    Eksploroni informacion teorik me temën: "Shkrimi i një programi në Pascal duke përdorur operatorët e caktimit dhe kërcimin e pakushtëzuar".

    Marr detyrë individuale nga mësuesi dhe zhvillojnë një program në përputhje me detyrën.

    Tregojuni mësuesit programin e punës.

    Përgjigjuni pyetjeve të sigurisë.

Pyetje kontrolli

    Elementet bazë të programimit.

    Karakteristikat kryesore të programit. Konceptet e gjuhës, mbivendosjet, blloqet globale dhe lokale.

    Operatorët e gjuhës programuese Pascal. Operatori i caktimit. Formati, shembujt.

    Operatori i kërcimit të pakushtëzuar. Formati, shembujt. Rregullat bazë të përdorimit

Punë laboratori nr.7

Shkrimi i një programi në Pascal duke përdorur deklarata të kushtëzuara dhe operatorin e përzgjedhjesRast

Qëllimi i punës : formimi i njohurive dhe aftësive në punën me operatorët gjuhësorë. Përvetësimi i aftësive në shkrimin e programeve duke përdorur operatorët e detyrave dhe kërcimet e pakushtëzuara.

Informacion i shkurtër teorik

Deklarata të kushtëzuara

Operatorët e kushtëzuar janë krijuar për të zgjedhur një nga të mëposhtmet për ekzekutim. veprimet e mundshme(operatorët) në varësi të disa kushteve (në këtë rast, një nga veprimet mund të jetë bosh, d.m.th. të mungojë). Vlera e një shprehjeje logjike përdoret si kushte përzgjedhjeje.

Ekzistojnë dy deklarata të kushtëzuara në Turbo Pascal: nëse dhe rasti.

Deklarata e kushtëzuar nëse

Operatori i gjendjes nëseështë një nga mjetet më të njohura për ndryshimin e rendit natyror të ekzekutimit të deklaratave të programit.

Mund të marrë një nga format e mëposhtme:

    nëse<условие>pastaj<оператор1>

tjetër<оператор2>;

    nëse<условие>pastaj<оператор>;

Të përkthyer nga anglishtja, këto formate mund të përkufizohen si:

    NËSE <условие> QE <оператор1> PER Ndryshe <оператор2>

    NËSE <условие> QE <оператор>

Operatori i gjendjes nëse kryhet si më poshtë. Së pari, vlerësohet shprehja e shkruar në kusht. Si rezultat i llogaritjes së tij, fitohet një vlerë e tipit Boolean.

Në rastin e parë, nëse vlera e shprehjes është E vërtetë(e vërtetë), e ekzekutuar <оператор1>, tregohet pas fjalës pastaj(përkthyer si "ajo"). Nëse rezultati i llogaritjes së shprehjes në kusht është I rremë(e rreme), pastaj ekzekutohet <оператор2> .

Në rastin e dytë, nëse rezultati i shprehjes E vërtetë, kryer <оператор>, Nëse I rremë- operatori që ndjek menjëherë operatorin nëse. Operatorët nëse mund te jete folezuar.

Një shembull i një fragmenti programi me një deklaratë të kushtëzuar if:

nëse Ch="N" atëherë Fjalëkalimi:= E vërtetë

else Fjalëkalimi:= False;

nëse Fjalëkalimi = E vërtetë atëherë

nëse X = 100, atëherë Shkruaj ("Fjalëkalimi dhe kodi janë të sakta")

Writeln ("Gabim në kod");

Në këtë shembull, vlera e një variabli të tipit të karakterit lexohet nga tastiera Ch. Më pas kontrollohet gjendja MEh=" N" . Nëse plotësohet, atëherë ndryshorja Fjalëkalimi tipit boolean i caktohet një vlerë E vërtetë, nëse kushti nuk plotësohet, I rremë. Pastaj vlera e kodit lexohet nga tastiera X. Më pas, deklarata if kontrollon kushtin Passol = True. Nëse ka rëndësi E vërtetë, atëherë fjalëkalimi i futur kontrollohet nga operatori nëse X=100. Nëse kushti X=100 ka kuptimin E vërtetë, atëherë shfaqet mesazhi "Fjalëkalimi dhe kodi janë të sakta" dhe kontrolli në program i transferohet operatorit duke ndjekur fjalën fund, nëse ka rëndësi I rremë, deklarata e përbërë pas ekzekutimit të fjalës tjetër, i cili shfaq mesazhin "Gabim në kod" në ekranin e monitorit të videos dhe thërret procedurën standarde Ndaloni (1) për të ndaluar programin.

Karakteristikat e operatoritnëse. Kur përdorni pohime të kushtëzuara të mbivendosura, mund të lindë paqartësi sintaksore, për shembull:

nëse kushti1 atëherë nëse kushti2 atëherë<оператор1>tjetër<оператор2>

Paqartësia që rezulton se cili operator nëse i përket pjesës tjetër <оператор2>, lejohet nga fakti se fjala funksion tjetër gjithmonë i lidhur (lidhur) me fjalën e funksionit më të afërt në tekst nëse, që ende nuk lidhet me fjalën e funksionit tjetër.

Për shkak të kësaj, duhet të jeni të kujdesshëm kur shkruani deklarata të kushtëzuara të mbivendosura.

Shembulli 1 . Shkruani një program që njehson herësin e dy numrave të plotë. Për shkak të faktit se është e pamundur të ndahet me zero, organizoni kontrollin e hyrjes së të dhënave.

Për të kontrolluar vlerat hyrëse të pjesëtuesit, ne përdorim operatorin e kërcimit të kushtëzuar nëse ... atëherë ... tjetër.

Teksti i programit mund të duket si ky:

programi Primer1;

A, B: numër i plotë;

Write("Fut vlerën e dividentit A: ");

Write("Fut vlerën e pjesëtuesit B: ");

nëse B=0 (Kontrolli i hyrjes së numritB}

pastaj Writeln ("Zero nuk mund të ndahet") (Kushti plotësohet)

(kushti nuk plotësohet)

Rezultati:= A/B;

Writeln("Sasia e numrave ",A," dhe ",B, " = ", Rezult);

Artikujt më të mirë mbi këtë temë