Da li je operator dodjeljivanja ispravno napisan u Pascal-u. operator dodjeljivanja. Ulaz, izlaz, operatori dodjeljivanja

Vrsta lekcije:

  • obrazovni. Studenti se upoznaju sa novim operatorom jezika Pascal;
  • ponavljanje teme Unutrašnje pamćenje kompjuter";
  • učvršćivanje stečenog znanja.

Tema lekcije:“Programiranje u Pascalu. operator dodjeljivanja.

Ciljevi:

  • Uvesti koncept "operatera dodjele".
  • Razlikovati operacije važeće za cijele i realne brojeve.
  • Ispravno sastavite i procijenite izraze koristeći operator dodjeljivanja.
  • Pišite programe za jednostavne zadatke.

Trajanje lekcije: 1 sat 30 minuta.

TOKOM NASTAVE

Prva lekcija

1. Ponavljanje teme prethodne lekcije "Tipovi podataka". Primjeri korištenja riječi koje zvuče isto, ali imaju različita značenja.

Nastavnik i učenici rade u formi „pitanje-odgovor“ (10 minuta).

2. Nastavnik objašnjava novu temu koristeći multimedijalni čas-prezentaciju „Programiranje u Pascalu. operator dodjeljivanja. Daje se definicija pojma "operater dodjeljivanja", daje se opći i strukturni oblik operatora. Prije razmatranja rada operatora dodjele, prisjećamo se i ponavljamo temu „Memorija slučajnog pristupa, svojstva Ram memorija».

U pratnji prezentacije. Dodatak 1 (15 minuta).

3. Učenici rade samostalno, čitaju i prave bilješke o novoj temi (čas-prezentacija se unaprijed snima na kompjutere učenika, pitanja za vođenje bilješke određuje nastavnik). Ovdje se studenti mogu upoznati sa tekstovima programa koji koriste operator dodjeljivanja. Aneks 2(20 minuta).

Druga lekcija

4. Učenici rade za tablom, radeći vježbe (12-15 minuta).
1. Nastavnik provodi kontrolu znanja u obliku testa. Program testa je unapred snimljen na računarima učenika. Rezultat postavlja program. Dodatak 5(10 minuta).
5. Učenici rade malo samostalno na karticama, ili pišu i otklanjaju greške u programu u LPL Pascalu, koji koristi operator(e) zadatka (nastavnik poziva brojeve kartica sa zadacima). Učenici se ocjenjuju za svoj rad. Aneks 3 . Dodatak 4(15 minuta).
Zadaća. Učenici se pozivaju da napišu tekst jednostavnog programa u LPL Pascalu, koji koristi operator(e) dodjele (za one učenike koji nisu imali vremena da završe zadatak na času).

Nalazi:

  • Kroz blok 1 ponavljanje teme prethodne lekcije.
  • Kroz blokove 2, 3 i 4 data je i fiksirana nova tema “Operator dodjele”.
  • Kroz blok 5 i 6 vrši se kontrola znanja.

Programiranje u Pascalu

Lekcija #1 (2 sata). Varijable i konstante. operator dodjeljivanja

  1. Provjera domaćeg.
  2. Nova tema.
  3. Zadaća.

Provjera domaćeg.

2. Nova tema: „Varijable i konstante. Operator dodjele"

Varijabilna - je naziv memorijskog područja (veličina područja ovisi o tipu podataka) koji pohranjuje vrijednost dodijeljenu varijabli. Varijabla se može uporediti sa kutijom koja sadrži vrijednost (najbolje poređenje je sa stambenom zgradom, jer možete nešto izvaditi iz kutije i to će biti posljednje, tj. kutija ostaje prazna, a varijabla čak ako je korišteno, ostaje u memorijskom području).
Konstantno - fiksne pojedinačne numeričke ili tekstualne vrijednosti koje se ne mogu mijenjati tokom izvršavanja programa.
operator dodjeljivanja. Jedan od najčešće korišćenih operatera operator dodjeljivanja. Opšti prikaz operatora dodjeljivanja:

ime varijable:= izraz;

Izraz može biti i određena vrijednost (tj. cijeli ili realni broj, na primjer, 22 ili 2,5, simbolička vrijednost: "ABC", logička vrijednost: TRUE ili FALSE), i neki izraz (vrijednosti + operacije na njih), čiji će rezultat biti dodijeljen varijabli na lijevoj strani.

PRIMJERI:

PAG:= 10;(specifična vrijednost kao broj);
X:= X + 1;(izraz);
C:=B;(ime varijable);
G:= 'HELLO'; ( specifična simbolička vrijednost);
X:= (-A + SIN(Y) - 4 * B * X) / (2 * C);(matematički izraz);
Y:= TRUE;(specifična logička vrijednost).

Razlika između operacije dodjeljivanja u matematici i programiranju.

U matematici izraz = in znači da izračunate vrijednosti za a i b moraju biti jednake.
U programiranju, pod A := B se podrazumijeva da je vrijednost pohranjena u memorijskom području pod imenom B smještena u memorijsko područje pod nazivom A. Stoga, inverzni izraz
B:= A daje drugačiji rezultat.
Primjer: Vrijednosti 5 i 9 stavljaju se u A i B, redom.

A: = 5;
B:=9

a) Rezultat operacije A:= B;

b) Rezultat operacije B:= A;

Evo još jedne značajne razlike između znaka jednakosti i operatora dodjeljivanja: A = A + 1;
U matematici je takav izraz jednostavno besmislen, jer je identitet lažan. Ne postoje takve numeričke vrijednosti A za koje bi to bilo istinito. U programiranju, to znači da se 1 dodaje vrijednosti pohranjenoj u ćeliji A, a novodobijena vrijednost zamjenjuje staru u ćeliji A. Na primjer, ako je A imao vrijednost 5 prije izvršenja ovog izraza, onda će nakon izvršenja biti 6.

Sljedeća razlika: matematički izraz A + 9 - B = X je sasvim razuman i može značiti da kada zamijenite neke brojeve umjesto A i B u lijevoj strani izraza, dobit ćete N. U isto vrijeme, u programiranje ovog izraza je besmisleno, jer lijeva strana izraza mora sadržavati naziv memorijske oblasti kojoj je dodijeljena vrijednost izračunata na desnoj strani. Ako pokušate da umetnete takav izraz u svoj program, dobićete poruku o grešci, jer je ime varijable A + 9 - B neće razumjeti.

napišite u uobičajenom obliku:

(- b + sqrt(sqr(b) - 4 * a * c))/(2 * a);
a / b * (c + d) - (a - b) / b / c + 1E - 8;

Bibliografija:

  • V.B. Popov"TURBO PASCAL za učenike I", "Finansije i statistika", Moskva, 1996.
  • AA. Cherno u "Sažetak časova informatike u 9 - 11 razredu", "Nastavnik", Volgograd, 2004.
  • D.M. Zlatopolsky„Idem na čas informatike. Zadaci iz programiranja, 7 - 11 razred", "Prvi septembar", Moskva, 2001.

Operater- nalog za izvođenje određenih radnji. Programski jezik Pascal sadrži 11 operatora.

Operator dodjeljivanja u Pascalu

Operator dodjeljivanja je najčešće korišteni operator u Turbo Pascal-u.

Format zapisa: X:=A;
gdje: X– ime varijable;
A- izraz ;
:= - znak zadatka.

Rad operatera: Tokom izvršavanja naredbe, vrijednost na desnoj strani izraza se izračunava i dodjeljuje imenu varijable.

Tip varijable i tip izraza moraju se podudarati, osim kada je izraz cjelobrojnog tipa, a varijabla je realnog tipa. U ovom slučaju, izračunata vrijednost izraza se pretvara u realni tip.

Primjer 9.1. Napišite program za izračunavanje funkcija:

y=cosa+inb; n=k+1; r=ord(#65).

Var
a, b, y: realno;
k, n: cijeli broj;
r: char;
t, v, u: Boolean;
* * *
y:= cos(a)+ln(b);
n:=k+1;
r:=ord(#65);
t:=(v i u)ili(v a ne u);
* * *
kraj.

Operator skoka u Pascalu

U Turbo Pascal-u je usvojen prirodni redosled izvršavanja operatora, tj. redoslijedom kojim se pojavljuju u tekstu programa. Naredba jump prekida prirodni redoslijed izvršavanja naredbi i prenosi kontrolu na naredbu označenu oznakom specificiranom u jump izrazu.

Format snimanja: GoTo m;

gdje: idi- idi;
m- etiketa.

Rad operatera: Naredba skoka prenosi kontrolu na naredbu označenu oznakom m.
Upotreba izraza za skok u TR je nepoželjna jer narušava strukturni integritet programa. Takav program je teško čitati, otklanjati greške i modifikovati. Upotreba operatora skoka u TR podliježe ograničenjima koja sprječavaju njegovu neselektivnu upotrebu.

Koristeći izraz jump, možete prenijeti kontrolu unutar jednog nivoa ili skočiti sa unutrašnjeg na eksterni nivo. Prelazi sa spoljašnjeg sloja na unutrašnji sloj su zabranjeni. Na primjer, iz programa u tijelo potprograma ili unutar izraza petlje ili uvjetnog izraza.


Operator dodjeljivanja je najjednostavniji i najčešći operator.

Format operatora dodjele

Operator dodjeljivanja je notacija koja sadrži simbol = (znak jednakosti), lijevo od kojeg je ime varijable, a desno - izraz. Operator dodjeljivanja završava znakom; (tačka-zarez).

Varijabilna = Izraz ; // operator dodjeljivanja

Operator dodjeljivanja može se razlikovati u tekstu programa po prisustvu znaka jednakosti. Izraz može biti konstanta, varijabla, poziv funkcije ili sam izraz.

Pravilo izvršavanja operatora dodjele

Operator dodjeljivanja, kao i svaki drugi operator, je izvršan. To znači da se unos koji čini naredbu o dodjeli izvršava prema pravilu. Kada se izvrši operator dodjeljivanja, vrijednost na desnoj strani se procjenjuje, a zatim se ova vrijednost dodjeljuje varijabli lijevo od znaka jednakosti. Kao rezultat izvršenja naredbe dodjeljivanja, varijabla na lijevoj strani uvijek dobija novu vrijednost; ova vrijednost može biti drugačija ili ista kao prethodna vrijednost ove varijable. Izraz na desnoj strani operatora dodjeljivanja se procjenjuje u skladu sa redoslijedom kojim se izrazi evaluiraju (pogledajte Operacije i izrazi).

Primjeri iskaza zadatka

U operatoru dodjeljivanja, deklaracija tipa varijable je dozvoljena lijevo od znaka jednakosti:

int In = 3 ;
dvostruki Do = 2,0;
bool Bo = istina;
boja Co = 0 x008000 ; // Varijabli Co dodjeljuje se konstantna vrijednost
stringSt = "sss"; // Varijabli St je dodijeljena vrijednost konstante
datum i vrijeme Da = D "01/01/2004"; // Varijabli Da je dodijeljena vrijednost konstante

Prethodno deklarirane varijable se koriste u iskazu o dodjeli bez specificiranja tipa.

In = 7 ; // Varijabli In se dodjeljuje vrijednost konstante
Do = 23,5; // Varijabli Do je dodijeljena vrijednost konstante
Bo = 0 ; // Varijabli Bo je dodijeljena vrijednost konstante

U operatoru dodjeljivanja nije dozvoljeno deklarirati tip varijable na desnoj strani znaka jednakosti:

In = int In_2; // Deklarisanje tipa varijabli na desnoj strani je zabranjeno
Do = duplo Do_2; // Deklarisanje tipa varijabli na desnoj strani je zabranjeno

Naredba o dodjeli ne dozvoljava ponavljanje deklaracije tipa varijabli.

int in; // Deklaracija tipa varijable In
int In = In_2; // Ponovna deklaracija varijable nije dozvoljena (In)

Primjeri korištenja na desnoj strani prilagođenih i standardnih funkcija:

U = Moja_Funkcija(); // In je postavljen na korisnika. funkcije
Do = Gipo (Do1 , Do1 ) ; // Postavi na korisnika. funkcije
Bo = je spojen(); // Bo postavljen na std. funkcije
St = Ime objekta (0) ; // St je postavljen na std. funkcije
Da = Vremenska struja(); // Da je postavljen na std. funkcije

Primjeri upotrebe na desnoj strani izraza:

In = (Moja_Funkcija() + In2) / 2; // Varijabla In je dodijeljena
// ..vrijednost izraza
Do = MathAbs (Do1 + Gipo (Do2, 5 ) + 2,5 ) ; // Varijabla Do je dodijeljena
// ..vrijednost izraza

Prilikom izračunavanja u operatoru dodjeljivanja, primjenjuju se pravila za prelijevanje tipova podataka (pogledajte Prelijevanje tipa).

Kratki primjeri zadatka

MQL4 takođe koristi kratku formu operatora dodeljivanja. Ovo je oblik iskaza dodjeljivanja koji koristi operacije dodjele koje nisu operacije dodjele = (znak jednakosti) (pogledajte Operacije i izrazi). Operateri kratke forme podliježu istim pravilima i ograničenjima. Kratki oblik operatora dodjeljivanja koristi se u kodu radi jasnoće. Programer, po svom nahođenju, može koristiti jedan ili drugi oblik operatora dodjeljivanja. Bilo koji operator dodjeljivanja kratkog oblika može se lako prepisati u onaj punog formata, a rezultat izvršenja operatora se neće promijeniti.

U /= 33 ;
In = In / 33 ;

St += "_exp7"; // Kratak oblik operatora dodjele
St = St + "_exp7"; // Potpuni oblik operatora dodjele

Razmotrili smo najjednostavnije programe napisane u Pascalu u okruženju PascalABC.Net. Tamo smo izvršili aritmetičke operacije nad brojevima, a zatim ih ispisali koristeći write (ili writeln) operator. Ali nismo koristili operator dodjeljivanja, koji je vrlo čest u programiranju. Dakle, šta je zadatak?

Razmotrimo neke varijable M i N koje imaju određene vrijednosti, recimo, M = 12, N = 34. Za svaku od ovih vrijednosti, računar dodjeljuje zasebno memorijsko područje, što je određeni broj ćelija, ili bitova (1 ćelija = 1 bit). Više brojeva (ili druge vrste podataka) ne može se pohraniti na istoj memorijskoj lokaciji iz istog razloga zbog kojeg dvije litre vode ne stane u teglu od jedne litre.

Vrlo često postaje potrebno ukloniti vrijednost varijable M, jednaku 12, i umjesto toga postati jednaka vrijednosti varijable N, odnosno 34. Šta radi računar? Pronalazi memorijsku lokaciju na kojoj je vrijednost N “skrivena”, kopira je (broj 34), vraća se na lokaciju M (jednako 12), briše njenu vrijednost i ubacuje novu, odnosno 34. Kao rezultat, M = 12 se pretvorio u M = 34.

Dodjela je snimanje podataka u području memorije računala dodijeljenom za vrijednost M, podataka koji se pohranjuju u drugom području memorije računala, gdje je zabilježena vrijednost N.

Dodjela se piše kao M:= N, što znači da vrijednost N ide u M. Postavlja se prirodno pitanje: šta se dogodilo sa vrijednošću N? Ništa, samo je “podijelila” vrijednost sa promjenljivom M, ali ona sama nije promijenila. Ponekad novopridošlice u programiranju misle da su varijable M i N zamijenjene, ali nisu. Da biste ilustrirali ovaj fenomen, razmotrite problem:

Zadatak. Dati su brojevi: M = 12, N = 34. Zamijenite njihove vrijednosti.

Trebamo dodijeliti 34 broju M, a 12 broju N (obrnuto). Vrlo često programeri početnici pišu ovako:


U prvom redu koda, M je dodeljeno N, odnosno M:= 34. U drugom redu, N je dodeljeno M, ali poslednja varijabla više nije jednaka 12, jer je promenila svoju vrednost u prethodni red na 34. Stoga će obje varijable biti jednake 34. Za demonstraciju ćemo napisati kompletan kod koji morate prepisati u programskom okruženju PascalABC.Net:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 var M, N: type integer;

Opis:

")" onmouseout="toolTip()">cijeli broj
; početi pisati ( "Unesite brojeve M i N:" <-- вводим 12 } write (" N = " ) ; readln (N) ; { <-- вводим 34 } M := N; { <== M присваивается N, поэтому M = 34 } N := M; { <== N присваивается M, поэтому N = 34 } kraj.

Pokrenite program za izvršenje; unesite 12 kada se od vas zatraži M, unesite 34 za N i pritisnite Enter. Ako je sve urađeno kako treba, trebali biste vidjeti:

Unesite brojeve M i N:
M=12
N=34
rezultat:
M=34 N=34

Kao što možete vidjeti iz posljednjeg reda, ovo nije ono što smo htjeli - zamijeniti vrijednosti M i N na mjestima.

Da bi se postigao ispravan rezultat, potrebno je fiksirati početnu vrijednost varijable M, na primjer, s:= M ("zapamtiti" M upisivanjem njene vrijednosti u varijablu s). Kao rezultat toga, broju N ćemo dodijeliti ne vrijednost varijable M, koja se već promijenila, već ćemo koristiti vrijednost s jednaku njoj:


U skladu sa najnovijim promjenama, prethodni program će imati oblik:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 var M, N, s: type integer;

Opis:
Predstavlja 32-bitni predpisani cijeli broj.

Raspon vrijednosti: -2 147 483 648 .. 2 147 483 647")" onmouseout="toolTip()">cijeli broj
; početi pisati ( "Unesite brojeve M i N:") ; write("M="); readln(M); (<-- вводим 12 } write (" N = " ) ; readln (N) ; { <-- вводим 34 } s := M; { <== запоминаем M, равное 12 } M := N; ( M = 34 jer N = 34 ) N := s; ( N = 12 jer je s = 12 ) writeln("Rezultat:" ) ; writeln (" M = " , M, " N = " , N); readln kraj.

Prepišite ovaj program u PascalABC.Net i pokrenite (taster F9 na tastaturi). ako je odgovor:

Unesite brojeve M i N:
M=12
N=34
rezultat:
M=34 N=12

tada program radi ispravno. Kao što možete vidjeti iz posljednjeg reda, vrijednosti brojeva M i N su zamijenjene.

Zadatak- mehanizam povezivanja u programiranju koji vam omogućava da dinamički mijenjate veze između imena objekata podataka (obično varijabli) i njihovih vrijednosti. Strogo govoreći, promjena vrijednosti je nuspojava operacije dodjeljivanja, a u mnogim modernim programskim jezicima, sama operacija također vraća neki rezultat (obično kopiju dodijeljene vrijednosti). Na fizičkom nivou, rezultat operacije dodjeljivanja je pisanje i ponovno pisanje memorijskih ćelija ili procesorskih registara.

Dodjela je jedna od centralnih konstrukcija u imperativnim programskim jezicima, implementirana efikasno i jednostavno na von Neumann arhitekturi koja je osnova modernih računara.

U objektno orijentisanim programskim jezicima, semantika dodjeljivanja je prilično različita. Na primjer, u jeziku Kotlin, prilikom dodjele, objekt se kopira, au Rust jeziku objekt se premješta (semantika pokreta) i stari bundle postaje nevažeći.

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

Ova notacija je ekvivalentna pozivanju funkcije. Slično, u starom stilu COBOL:

MNOŽITE 2 SA 2 DAJETE ČETIRI.

Algoritam rada

  • Izračunajte lijevu vrijednost prvog operanda. U ovoj fazi postaje poznata lokacija ciljnog objekta, primaoca nove vrijednosti.
  • Izračunajte desnu vrijednost drugog operanda. Ovaj korak može biti proizvoljno velik i uključivati ​​druge iskaze (uključujući dodjele).
  • Dodijelite izračunatu desnu vrijednost lijevoj vrijednosti. Prvo, u slučaju sukoba tipova, oni se moraju baciti (ili se izdaje poruka o grešci zbog njene nemogućnosti). Drugo, stvarna dodjela vrijednosti u modernim programskim jezicima može se zamijeniti i uključivati ​​ne samo prijenos vrijednosti memorijskih ćelija (na primjer, na "svojstva" objekata u , preopterećenje operatora).
  • Vrati izračunatu desnu vrijednost kao rezultat operacije. Nije potrebno na svim jezicima (na primjer, nije potrebno u Pascalu).

Oznaka

Izbor simbola zadatka predmet je kontroverze među dizajnerima jezika. Postoji mišljenje da upotreba simbola = za dodeljivanje zbunjuje programere, a postavlja i pitanje izbora simbola za operator poređenja, što je teško dobro rešiti.

Dobro poznati loš primjer je izbor znaka jednakosti za označavanje zadatka, koji datira iz Fortrana 1957. godine i koji još uvijek slijepo ponavlja masa programera jezika. Ova loša ideja ruši prastaru tradiciju upotrebe znaka "=" za označavanje poređenja jednakosti, predikata koji se procjenjuje na "tačno" ili "netačno". Ali u Fortranu je ovaj simbol počeo označavati dodjelu, prisilu na jednakost. U ovom slučaju, operandi su u nejednakoj poziciji: lijevi operand, varijabla, mora biti jednak desnom operandu, izrazu. Dakle, x = y ne znači isto što i y = x.

Originalni tekst (engleski)

Zloglasan primjer loše ideje bio je izbor znaka jednakosti za označavanje dodjele. Datira iz Fortrana 1957. godine i slijepo su ga kopirale vojske dizajnera jezika. Zašto je to loša ideja? Zato što ruši stoljetnu tradiciju da se "=" označi poređenje za jednakost, predikat koji je ili istinit ili lažan. Ali Fortran je to značio zadavanje, provođenje jednakosti. U ovom slučaju, operandi su na nejednakim osnovama: levi operand (promenljiva) treba da bude jednak desnom operandu (izraz). x = y ne znači isto što i y = x.

Implementacijom ove Wirthove pozicije može se smatrati da se u jeziku Pascal, čiji je on autor, koristi operator dodjeljivanja: = , dok se za poređenje jednostavno koristi =.

Izbor znaka operatora jednakosti u jeziku kada se koristi = kao dodjela je riješen:

  • Uvođenjem novog simbola jezika za operator testa jednakosti.
A = B = C

promenljivoj A se dodeljuje Boolean vrednost izraza relacije B = C. Ova notacija dovodi do smanjenja čitljivosti i retko se koristi.

Semantičke karakteristike

Daleko od uvijek "intuitivan" (za programere imperativnih jezika) način tumačenja zadatka je jedini istinit i moguć.

Iz sintakse koja se koristi u imperativnim jezicima, nije uvijek moguće razumjeti kako se implementira semantika dodjele osim ako nije eksplicitno definirana u jeziku.

A = b = a a = 1000

Nakon toga, b će imati vrijednost - jednostavno zato što je, u stvari, njegova vrijednost vrijednost a . Broj referenci na isti objekt podataka naziva se njegova kardinalnost, a sam objekt se ubija (uništava ili daje sakupljaču smeća) kada njegova kardinalnost dostigne nulu. Programski jezici nižeg nivoa (kao što je C) omogućavaju programeru da eksplicitno kontroliše da li se koristi semantika pokazivača ili semantika kopiranja.

Operacija zamjena

Mnogi jezici pružaju mogućnost promjene značenja dodjeljivanja, bilo kroz mehanizam svojstava ili preko preopterećenja operatora dodjele. Zamjena može biti potrebna da se izvrši provjera valjanosti dodijeljene vrijednosti ili bilo koje druge dodatne operacije. Preopterećenje operatora dodjeljivanja se često koristi za obezbjeđivanje "duboke kopije", odnosno kopiranja vrijednosti umjesto referenci, koje se kopiraju po defaultu na mnogim jezicima.

Takvi mehanizmi omogućavaju pružanje pogodnosti u radu, tako da za programera nema razlike između korištenja ugrađenog i preopterećenog operatora. Iz istog razloga su mogući problemi, jer akcije preopterećenog operatora mogu biti potpuno različite od akcija zadanog operatora, a poziv funkcije nije očigledan i lako se može zamijeniti za ugrađenu operaciju.

Prošireni dizajni

Konstrukcije zadatka u raznim programskim jezicima

Pošto je operator dodjeljivanja široko korišten, programeri programskih jezika pokušavaju razviti nove konstrukcije kako bi pojednostavili pisanje tipičnih operacija (da bi jeziku dodali tzv. "sintaktički šećer"). Pored toga, u programskim jezicima niskog nivoa, kriterijum uključivanja je često sposobnost prevođenja u efikasan izvršni kod. C jezik je posebno poznat po ovom svojstvu.

Više meta

Jedna od alternativa jednostavnom operatoru je mogućnost dodjeljivanja vrijednosti izraza višestrukim objektima. Na primjer, u PL/1, operator

ZBIR, UKUPNO = 0

istovremeno dodjeljuje nulu SUM i TOTAL . U Adi, dodjela je također izjava, a ne izraz, tako da je notacija za višestruku dodjelu:

ZBIR, UKUPNO: Integer:= 0;

Sličan zadatak u Pythonu ima sljedeću sintaksu:

Zbir = ukupno = 0

Za razliku od PL/1, Ada i Python-a, gdje se višestruka dodjela smatra samo skraćenom notacijom, u C, Lisp-u i drugima, ova sintaksa ima strogu osnovu: operator dodjeljivanja jednostavno vraća vrijednost koja mu je dodijeljena (vidi gore). Dakle, posljednji primjer je zapravo:

Zbir = (ukupno = 0)

Ovakav red će raditi u C (ako dodate tačku i zarez na kraju), ali će uzrokovati grešku u Pythonu.

Paralelni zadatak

Posljednja opcija radi samo s tipovima koji podržavaju bitne operacije (na primjer, za double, prevodilac jezika vam neće dozvoliti da razmjenjujete vrijednosti varijabli na ovaj način).

a ||= 10

Ova konstrukcija dodjeljuje vrijednost varijabli a samo ako vrijednost još nije dodijeljena ili je jednaka false.

Složene izjave

Operator složenog dodjeljivanja omogućava vam da skraćujete uobičajeno korišteni oblik dodjele. Koristeći ovu metodu, možete skratiti notaciju dodjele koja koristi ciljnu varijablu kao prvi operand na desnoj strani izraza, na primjer.