Оператор једноставне доделе¶
Како само име оператора наговештава, оператор једноставне доделе
(енгл. 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\), па је и она исписана на стандардни излаз. Доделом нове вредности,
иницијална вредност је преписана и заувек изгубљена.
Када користиш оператор једноставне доделе води рачуна о типовима података. Могуће је променљивој једног типа доделити вредност другог типа, приликом чега или компајлер аутоматски врши конверзију типова, или сâм програмер дефинише како ће се конверзија одвијати. О овој теми учићеш након наредне лекције.