Оператор једноставне доделе

Како само име оператора наговештава, оператор једноставне доделе (енгл. simple assignment operator) = користи се за доделу вредности. Већ је раније напоменуто да се овим оператором не констатује једнакост израза на левој и десној страни као у математици!!!

У најједноставнијем случају једноставну доделу можеш посматрати кроз поступак иницијализације променљивих:

promenljiva = vrednost;

где се променљивој promenljiva додељује вредност vrednost.

Напиши програм у програмском језику C који ће на стандардни излаз исписати Тамарину оцену из програмирања и Владин рекорд у скоку у даљ, ако је Тамара добила оцену \(5\), а Влада оборио свој рекорд у скоку у даљ, скочивши \(5.15m\).

#include <stdio.h>

int main(void)
{
    int t = 5;
    double v = 5.15;
    printf("%d\n%lg", v, t);
    return 0;
}

На стандардном излазу исписаће се:

5
5.15

Каже се да је целобројној променљивој t додељена вредност \(5\) и да је реалној променљивој v додељена вредност \(5.15\).

У општем случају једноставну доделу вредности можеш посматрати као:

promenljiva = izraz;

где се променљивој promenljiva додељује вредност на основу израза izraz. Прво се израчунава вредност израза на десној страни, па се потом резултат израчунавања додељује променљивој promenljiva на левој страни.

Напиши програм у програмском језику C који ће на стандардни излаз исписати колико је, за одличан успех, укупно новца добила Тамара и колико је укупно новца добио Влада, ако је Тамара добила \(1000RSD\) од баке и деке и \(1000RSD\) од родитеља, а Влада, \(500RSD\) од старијег брата, \(500RSD\) од тетке и \(1000RSD\) од родитеља.

#include <stdio.h>

int main(void)
{
    int t = 1000 + 1000;
    int v = 500 + 500 + 1000;
    printf("%d\n%d", t, v);
    return 0;
}

На стандардном излазу исписаће се:

2000
2000

У овом програму, прво се израчунава вредност израза 1000 + 1000, па се резултат 2000 додељује променљивој t. Након тога, израчунава се вредност израза 500 + 500 + 1000, па се резултат 2000 додељује променљивој v. Каже се да је целобројној променљивој t додељена вредност израза 1000 + 1000 и да је целобројној променљивој v додељена вредност израза 500 + 500 + 1000.

Израз може да садржи променљиве. Тако, претходни програм можеш написати на следећи начин:

int main(void)
{
    int t1 = 1000, t2 = 1000; 
    int t = t1 + t2;
    int v1 = 500, v2 = 500, v3 = 1000;
    int v = v1 + v2 + v3;
    printf("%d\n%d", t, v);
    return 0;
}

Резултат исписа на стандардном излазу ће бити исти.

Ако је променљива на левој страни имала неку вредност, након доделе, та вредност ће се изгубити и променљива ће добити нову вредност.

Напиши програм у програмском језику C у којем ће се исписати претходни и тренутни Владини рекорди у скоку у даљ, ако је Владин рекорд био \(4.9m\), а данас је тај рекорд оборио на \(5.15m\).

#include <stdio.h>

int main(void)
{
    double v = 4.9;
    printf("%lg\n", v);
    v = 5.15;
    printf("%lg", v);
    return 0;
}

На стандардном излазу исписаће се:

4.9
5.15

Реална променљива v имала је иницијалну вредност \(4.9\), па је та вредност исписана на стандардни излаз. Након тога, променљивој је додељена нова вредност \(5.15\), па је и она исписана на стандардни излаз. Доделом нове вредности, иницијална вредност је преписана и заувек изгубљена.

Када користиш оператор једноставне доделе води рачуна о типовима података. Могуће је променљивој једног типа доделити вредност другог типа, приликом чега или компајлер аутоматски врши конверзију типова, или сâм програмер дефинише како ће се конверзија одвијати. О овој теми учићеш након наредне лекције.