Zugor Ediba Gazetic Elma Projekat iz PAI-a , Tema : Calculator

Dependencies:   mbed

Committer:
tim004
Date:
Wed Jun 11 19:07:17 2014 +0000
Revision:
0:dc2c50156436
PAI_Projekat_2014_Calculator

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tim004 0:dc2c50156436 1 #include "mbed.h"
tim004 0:dc2c50156436 2
tim004 0:dc2c50156436 3 //BusInOut display(dp26, dp27, dp5,dp6, dp28,dp1, dp2);
tim004 0:dc2c50156436 4 BusOut display(PTE21,PTE20,PTB10,PTE5,PTE4,PTE3,PTE2,PTB11);
tim004 0:dc2c50156436 5 //DigitalOut point(dp4);
tim004 0:dc2c50156436 6 DigitalOut point(PTB11);
tim004 0:dc2c50156436 7 BusOut digits(PTE30,PTE29,PTE23,PTE22);
tim004 0:dc2c50156436 8 int numbers[16]= {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x04,0x2F,0x23,0x63,0x0E,0x3F};
tim004 0:dc2c50156436 9
tim004 0:dc2c50156436 10
tim004 0:dc2c50156436 11 //BusOut digits(dp23,dp24,dp25);
tim004 0:dc2c50156436 12
tim004 0:dc2c50156436 13 //Serial pc(USBTX, USBRX);
tim004 0:dc2c50156436 14
tim004 0:dc2c50156436 15 //DigitalOut rows[4]= {dp18,dp17,dp15,dp16};
tim004 0:dc2c50156436 16 //DigitalIn kol1(dp9), kol2(dp10),kol3(dp11),kol4(dp13);
tim004 0:dc2c50156436 17 DigitalOut rows[4]= {PTC5,PTC6,PTC10,PTC11};
tim004 0:dc2c50156436 18 DigitalIn kol4(PTC12), kol3(PTC13),kol2(PTC16),kol1(PTA16);
tim004 0:dc2c50156436 19
tim004 0:dc2c50156436 20 Timer Dbnc;
tim004 0:dc2c50156436 21 Ticker T,provjeraUlaza;
tim004 0:dc2c50156436 22
tim004 0:dc2c50156436 23 float cuvam=0; //"cuva" vrijednost u memoriji
tim004 0:dc2c50156436 24 float broj1=0;
tim004 0:dc2c50156436 25 float broj2=0;
tim004 0:dc2c50156436 26 bool drugi=false, treci=false,poc=false;
tim004 0:dc2c50156436 27 bool minus=false;
tim004 0:dc2c50156436 28 bool greska=false;
tim004 0:dc2c50156436 29 bool bin=false;
tim004 0:dc2c50156436 30 bool mem=false;
tim004 0:dc2c50156436 31
tim004 0:dc2c50156436 32 int decimala=0;
tim004 0:dc2c50156436 33 int counter=0;
tim004 0:dc2c50156436 34
tim004 0:dc2c50156436 35 char trenutniZnak=' ';
tim004 0:dc2c50156436 36 void showDisplay(int input)
tim004 0:dc2c50156436 37 {
tim004 0:dc2c50156436 38 display=numbers[input];
tim004 0:dc2c50156436 39 }
tim004 0:dc2c50156436 40
tim004 0:dc2c50156436 41
tim004 0:dc2c50156436 42 void pocetnoStanje(){
tim004 0:dc2c50156436 43 broj1 = broj2 = 0.;
tim004 0:dc2c50156436 44 trenutniZnak = ' ';
tim004 0:dc2c50156436 45 drugi = treci = poc = minus = greska = bin = mem = false;
tim004 0:dc2c50156436 46 cuvam=0.0;
tim004 0:dc2c50156436 47 decimala =0;
tim004 0:dc2c50156436 48 counter = 0;
tim004 0:dc2c50156436 49 }
tim004 0:dc2c50156436 50 void izvrsiOperaciju(){
tim004 0:dc2c50156436 51 if(trenutniZnak == '+')
tim004 0:dc2c50156436 52 broj1 = broj1 + broj2;
tim004 0:dc2c50156436 53 else
tim004 0:dc2c50156436 54 if(trenutniZnak == '-')
tim004 0:dc2c50156436 55 broj1 = broj1 - broj2;
tim004 0:dc2c50156436 56 else if(trenutniZnak == '*')
tim004 0:dc2c50156436 57 broj1 = broj1 * broj2;
tim004 0:dc2c50156436 58 else if(trenutniZnak == '/')
tim004 0:dc2c50156436 59 {
tim004 0:dc2c50156436 60 if(broj2==0) greska = true;
tim004 0:dc2c50156436 61 else broj1 = broj1 / broj2;
tim004 0:dc2c50156436 62 }
tim004 0:dc2c50156436 63 else if(trenutniZnak == 's')
tim004 0:dc2c50156436 64 {
tim004 0:dc2c50156436 65 for(int i=0;i<broj2 - 1;i++)
tim004 0:dc2c50156436 66 broj1 = broj1 * broj1;
tim004 0:dc2c50156436 67 }
tim004 0:dc2c50156436 68 }
tim004 0:dc2c50156436 69
tim004 0:dc2c50156436 70 int binToDec()
tim004 0:dc2c50156436 71 {
tim004 0:dc2c50156436 72 if(counter==1) izvrsiOperaciju();
tim004 0:dc2c50156436 73
tim004 0:dc2c50156436 74 if(int(broj1) != broj1){ greska = true;
tim004 0:dc2c50156436 75 return -1;
tim004 0:dc2c50156436 76 }
tim004 0:dc2c50156436 77 if(broj1 < 0 ) greska = true;
tim004 0:dc2c50156436 78 int pomocni=broj1;
tim004 0:dc2c50156436 79 if(pomocni%10 !=1 || ((pomocni%10) != 0)) greska = true;
tim004 0:dc2c50156436 80 if( (int)broj1/10 % 10 !=1 || (int)broj1/10 % 10 != 0) greska = true;
tim004 0:dc2c50156436 81 if( (int)broj1/100 % 10 !=1 || (int)broj1/100 % 10 != 0) greska = true;
tim004 0:dc2c50156436 82
tim004 0:dc2c50156436 83 if(greska) return;
tim004 0:dc2c50156436 84
tim004 0:dc2c50156436 85 int var = int(broj1);
tim004 0:dc2c50156436 86
tim004 0:dc2c50156436 87 broj1 =(var / 100)*4 + ((var%100)/10)*2 + var%10;
tim004 0:dc2c50156436 88 bin= false;
tim004 0:dc2c50156436 89 }
tim004 0:dc2c50156436 90
tim004 0:dc2c50156436 91
tim004 0:dc2c50156436 92 int decToBin()
tim004 0:dc2c50156436 93 {
tim004 0:dc2c50156436 94 if(bin) binToDec();
tim004 0:dc2c50156436 95 if(counter==1) izvrsiOperaciju();
tim004 0:dc2c50156436 96
tim004 0:dc2c50156436 97 if(int(broj1) != broj1) greska = true;
tim004 0:dc2c50156436 98 if(broj1 > 7 || broj1 < 0) greska = true;
tim004 0:dc2c50156436 99
tim004 0:dc2c50156436 100 if(greska) return;
tim004 0:dc2c50156436 101
tim004 0:dc2c50156436 102 int var=int(broj1); int zbir[3]= {0,0,0} ;
tim004 0:dc2c50156436 103 for(int i=0;i <3;i++){
tim004 0:dc2c50156436 104 if(var==1) {zbir[2]=1; break;}
tim004 0:dc2c50156436 105 zbir[i]=(var%2);
tim004 0:dc2c50156436 106 var=var/2;
tim004 0:dc2c50156436 107 }
tim004 0:dc2c50156436 108 broj1= zbir[2]*100 + zbir[1]*10 + zbir[0];
tim004 0:dc2c50156436 109 bin = true;
tim004 0:dc2c50156436 110 }
tim004 0:dc2c50156436 111
tim004 0:dc2c50156436 112
tim004 0:dc2c50156436 113
tim004 0:dc2c50156436 114 char ocitajTast()
tim004 0:dc2c50156436 115 {
tim004 0:dc2c50156436 116 rows[0]=0;
tim004 0:dc2c50156436 117 rows[3]=1;
tim004 0:dc2c50156436 118 rows[2]=1;
tim004 0:dc2c50156436 119 rows[1]=1;
tim004 0:dc2c50156436 120
tim004 0:dc2c50156436 121 if (kol1== 0) return '1';
tim004 0:dc2c50156436 122 if (kol2 == 0) return '2';
tim004 0:dc2c50156436 123 if (kol3 == 0) return '3';
tim004 0:dc2c50156436 124 if (kol4 == 0) return 'A';
tim004 0:dc2c50156436 125
tim004 0:dc2c50156436 126 rows[3]=1;
tim004 0:dc2c50156436 127 rows[2]=1;
tim004 0:dc2c50156436 128 rows[1]=0;
tim004 0:dc2c50156436 129 rows[0]=1;
tim004 0:dc2c50156436 130 if (kol1 == 0) return '4';
tim004 0:dc2c50156436 131 if (kol2 == 0) return '5';
tim004 0:dc2c50156436 132 if (kol3 == 0) return '6';
tim004 0:dc2c50156436 133 if (kol4 == 0) return 'B';
tim004 0:dc2c50156436 134
tim004 0:dc2c50156436 135 rows[3]=1;
tim004 0:dc2c50156436 136 rows[2]=0;
tim004 0:dc2c50156436 137 rows[1]=1;
tim004 0:dc2c50156436 138 rows[0]=1;
tim004 0:dc2c50156436 139 if (kol1 == 0) return '7';
tim004 0:dc2c50156436 140 if (kol2 == 0) return '8';
tim004 0:dc2c50156436 141 if (kol3 == 0) return '9';
tim004 0:dc2c50156436 142 if (kol4 == 0) return 'C';
tim004 0:dc2c50156436 143
tim004 0:dc2c50156436 144 rows[3]=0;
tim004 0:dc2c50156436 145 rows[2]=1;
tim004 0:dc2c50156436 146 rows[1]=1;
tim004 0:dc2c50156436 147 rows[0]=1;
tim004 0:dc2c50156436 148
tim004 0:dc2c50156436 149 if (kol1 == 0) return '*';
tim004 0:dc2c50156436 150 if (kol2 == 0) return '0';
tim004 0:dc2c50156436 151 if (kol3 == 0) return '#';
tim004 0:dc2c50156436 152 if (kol4 == 0) return 'D';
tim004 0:dc2c50156436 153
tim004 0:dc2c50156436 154 return ' ';
tim004 0:dc2c50156436 155 }
tim004 0:dc2c50156436 156
tim004 0:dc2c50156436 157 void ispisiNaDisplej()
tim004 0:dc2c50156436 158 {
tim004 0:dc2c50156436 159 int treca(0),druga(0),prva(0);
tim004 0:dc2c50156436 160 float ispis;
tim004 0:dc2c50156436 161
tim004 0:dc2c50156436 162 if(counter==0 || (counter==1 && !poc) || counter==2) ispis = broj1;
tim004 0:dc2c50156436 163 else ispis = broj2;
tim004 0:dc2c50156436 164
tim004 0:dc2c50156436 165 ispis = ispis * 100;
tim004 0:dc2c50156436 166 ispis = int(ispis);
tim004 0:dc2c50156436 167 ispis = ispis / 100.0;
tim004 0:dc2c50156436 168 int mjestoZareza(0), mjestoMinusa(0);
tim004 0:dc2c50156436 169
tim004 0:dc2c50156436 170 if(int(ispis) == ispis)
tim004 0:dc2c50156436 171 {
tim004 0:dc2c50156436 172 if(ispis < 0)
tim004 0:dc2c50156436 173 {
tim004 0:dc2c50156436 174 if(ispis <= -1 && ispis >= -9) mjestoMinusa = 2;
tim004 0:dc2c50156436 175 else if(ispis <= -10 && ispis >= -99) mjestoMinusa = 1;
tim004 0:dc2c50156436 176 ispis = abs(ispis);
tim004 0:dc2c50156436 177 }
tim004 0:dc2c50156436 178 }
tim004 0:dc2c50156436 179 else
tim004 0:dc2c50156436 180 {
tim004 0:dc2c50156436 181 if(ispis > 0.0)
tim004 0:dc2c50156436 182 {
tim004 0:dc2c50156436 183 if(ispis < 10.0)
tim004 0:dc2c50156436 184 {
tim004 0:dc2c50156436 185 ispis = ispis * 100;
tim004 0:dc2c50156436 186 mjestoZareza = 1;
tim004 0:dc2c50156436 187 if(int(ispis)%10 == 0)
tim004 0:dc2c50156436 188 {
tim004 0:dc2c50156436 189 ispis = ispis / 10;
tim004 0:dc2c50156436 190 mjestoZareza = 2;
tim004 0:dc2c50156436 191 }
tim004 0:dc2c50156436 192 }
tim004 0:dc2c50156436 193 else
tim004 0:dc2c50156436 194 {
tim004 0:dc2c50156436 195 mjestoZareza = 2;
tim004 0:dc2c50156436 196 ispis = ispis * 10;
tim004 0:dc2c50156436 197 }
tim004 0:dc2c50156436 198 }
tim004 0:dc2c50156436 199 else
tim004 0:dc2c50156436 200 {
tim004 0:dc2c50156436 201 mjestoZareza = 2;
tim004 0:dc2c50156436 202 ispis = ispis * 10;
tim004 0:dc2c50156436 203 ispis = fabs(ispis);
tim004 0:dc2c50156436 204 }
tim004 0:dc2c50156436 205 }
tim004 0:dc2c50156436 206 bool flag(false);
tim004 0:dc2c50156436 207 treca = (int)abs(ispis) % 10;
tim004 0:dc2c50156436 208 druga = (int)abs(ispis / 10) % 10;
tim004 0:dc2c50156436 209 prva = (int)abs(ispis / 100) % 10;
tim004 0:dc2c50156436 210 if(ispis==0)
tim004 0:dc2c50156436 211 {
tim004 0:dc2c50156436 212 digits = 3;
tim004 0:dc2c50156436 213 showDisplay(0);
tim004 0:dc2c50156436 214 wait_ms(1);
tim004 0:dc2c50156436 215 }
tim004 0:dc2c50156436 216 else
tim004 0:dc2c50156436 217 {
tim004 0:dc2c50156436 218 if(prva == 0 && !flag)
tim004 0:dc2c50156436 219 {
tim004 0:dc2c50156436 220 if(mjestoZareza == 1)
tim004 0:dc2c50156436 221 {
tim004 0:dc2c50156436 222 digits=15;
tim004 0:dc2c50156436 223 showDisplay(0);
tim004 0:dc2c50156436 224 digits = 13;
tim004 0:dc2c50156436 225 wait_ms(1);
tim004 0:dc2c50156436 226 digits=15;
tim004 0:dc2c50156436 227 point = 0;
tim004 0:dc2c50156436 228 }
tim004 0:dc2c50156436 229 if(mjestoMinusa == 1)
tim004 0:dc2c50156436 230 {
tim004 0:dc2c50156436 231 digits=15;
tim004 0:dc2c50156436 232 showDisplay(15);
tim004 0:dc2c50156436 233 digits = 13;
tim004 0:dc2c50156436 234 wait_ms(1);
tim004 0:dc2c50156436 235 digits=15;
tim004 0:dc2c50156436 236 point = 1;
tim004 0:dc2c50156436 237
tim004 0:dc2c50156436 238 }
tim004 0:dc2c50156436 239 }
tim004 0:dc2c50156436 240 else
tim004 0:dc2c50156436 241 {
tim004 0:dc2c50156436 242 digits=15;
tim004 0:dc2c50156436 243 showDisplay(prva);
tim004 0:dc2c50156436 244 digits = 13;
tim004 0:dc2c50156436 245 wait_ms(1);
tim004 0:dc2c50156436 246 digits=15;
tim004 0:dc2c50156436 247 if(mjestoZareza == 1) point = 0;
tim004 0:dc2c50156436 248 else point = 1;
tim004 0:dc2c50156436 249 if(mjestoMinusa == 1) showDisplay(15);
tim004 0:dc2c50156436 250 flag = true;
tim004 0:dc2c50156436 251 }
tim004 0:dc2c50156436 252 // wait_ms(1);
tim004 0:dc2c50156436 253
tim004 0:dc2c50156436 254 if(druga == 0 && !flag)
tim004 0:dc2c50156436 255 {
tim004 0:dc2c50156436 256 if(mjestoZareza == 2)
tim004 0:dc2c50156436 257 {
tim004 0:dc2c50156436 258 digits=15;
tim004 0:dc2c50156436 259 showDisplay(prva);
tim004 0:dc2c50156436 260 digits = 11;
tim004 0:dc2c50156436 261 wait_ms(1);
tim004 0:dc2c50156436 262 digits=15;
tim004 0:dc2c50156436 263 point = 0;
tim004 0:dc2c50156436 264 }
tim004 0:dc2c50156436 265 if(mjestoMinusa == 2)
tim004 0:dc2c50156436 266 {
tim004 0:dc2c50156436 267 digits=15;
tim004 0:dc2c50156436 268 showDisplay(prva);
tim004 0:dc2c50156436 269 digits = 11;
tim004 0:dc2c50156436 270 wait_ms(1);
tim004 0:dc2c50156436 271 digits=15;
tim004 0:dc2c50156436 272 point = 1;
tim004 0:dc2c50156436 273 }
tim004 0:dc2c50156436 274 }
tim004 0:dc2c50156436 275 else
tim004 0:dc2c50156436 276 {
tim004 0:dc2c50156436 277 digits=15;
tim004 0:dc2c50156436 278 showDisplay(druga);
tim004 0:dc2c50156436 279 digits = 11;
tim004 0:dc2c50156436 280 wait_ms(1);
tim004 0:dc2c50156436 281 digits=15;
tim004 0:dc2c50156436 282 if(mjestoZareza == 2) point = 0;
tim004 0:dc2c50156436 283 else point = 1;
tim004 0:dc2c50156436 284 if(mjestoMinusa == 2)showDisplay(15);
tim004 0:dc2c50156436 285 flag = true;
tim004 0:dc2c50156436 286 }
tim004 0:dc2c50156436 287 // wait_ms(1);
tim004 0:dc2c50156436 288 if(treca == 0 && !flag)
tim004 0:dc2c50156436 289 point=1;
tim004 0:dc2c50156436 290 else
tim004 0:dc2c50156436 291 {
tim004 0:dc2c50156436 292 digits=15;
tim004 0:dc2c50156436 293 showDisplay(treca);
tim004 0:dc2c50156436 294 digits = 7;
tim004 0:dc2c50156436 295 wait_ms(1);
tim004 0:dc2c50156436 296 digits=15;
tim004 0:dc2c50156436 297 flag = true;
tim004 0:dc2c50156436 298 }
tim004 0:dc2c50156436 299 // wait_ms(1);
tim004 0:dc2c50156436 300 }
tim004 0:dc2c50156436 301 }
tim004 0:dc2c50156436 302
tim004 0:dc2c50156436 303
tim004 0:dc2c50156436 304 void prebaciZnak(int broj)
tim004 0:dc2c50156436 305 {
tim004 0:dc2c50156436 306
tim004 0:dc2c50156436 307 float var;
tim004 0:dc2c50156436 308 if (counter ==0) var=broj1;
tim004 0:dc2c50156436 309 else if (counter ==1){
tim004 0:dc2c50156436 310 var = broj2;
tim004 0:dc2c50156436 311 poc = true;
tim004 0:dc2c50156436 312 decimala=0;
tim004 0:dc2c50156436 313 minus=false;
tim004 0:dc2c50156436 314 }
tim004 0:dc2c50156436 315 else if (counter==2){
tim004 0:dc2c50156436 316 pocetnoStanje();
tim004 0:dc2c50156436 317 var=broj1;
tim004 0:dc2c50156436 318 }
tim004 0:dc2c50156436 319 if ((decimala==0 ||decimala==1) && (var>=100 ||var<=-10)) return ;
tim004 0:dc2c50156436 320 if (decimala==2 && ((int)var>=10 || (int)var<0)) return;
tim004 0:dc2c50156436 321 if (decimala==3) return ;
tim004 0:dc2c50156436 322
tim004 0:dc2c50156436 323 if (decimala ==0)
tim004 0:dc2c50156436 324 if (!minus)
tim004 0:dc2c50156436 325 var=var*10+broj;
tim004 0:dc2c50156436 326 else var=var*10 -broj;
tim004 0:dc2c50156436 327 else if (decimala==1){
tim004 0:dc2c50156436 328 if (!minus) var=var+broj/10.0;
tim004 0:dc2c50156436 329 else var=var-broj/10.0;
tim004 0:dc2c50156436 330 decimala++;
tim004 0:dc2c50156436 331 }
tim004 0:dc2c50156436 332 else if (decimala==2){
tim004 0:dc2c50156436 333 if (!minus)var=var+broj/100.0;
tim004 0:dc2c50156436 334 else var=var-broj/100.0;
tim004 0:dc2c50156436 335 decimala++;
tim004 0:dc2c50156436 336 }
tim004 0:dc2c50156436 337 if (counter==0 ||counter==2) broj1=var;
tim004 0:dc2c50156436 338 else if (counter==1) broj2=var;
tim004 0:dc2c50156436 339 }
tim004 0:dc2c50156436 340
tim004 0:dc2c50156436 341
tim004 0:dc2c50156436 342
tim004 0:dc2c50156436 343 void skontajKojaFunkcija()
tim004 0:dc2c50156436 344 {
tim004 0:dc2c50156436 345 char znak=ocitajTast(); //Ocitava sta smo unijeli
tim004 0:dc2c50156436 346 if (znak==' ') return;
tim004 0:dc2c50156436 347 if (Dbnc.read() > 0.2) {
tim004 0:dc2c50156436 348 if (znak>='0' && znak <='9'){ // Ako je broj, onda ga ispisuje na displej
tim004 0:dc2c50156436 349 prebaciZnak(int(znak-'0'));
tim004 0:dc2c50156436 350 }
tim004 0:dc2c50156436 351
tim004 0:dc2c50156436 352
tim004 0:dc2c50156436 353
tim004 0:dc2c50156436 354 else if (!drugi && !treci){
tim004 0:dc2c50156436 355
tim004 0:dc2c50156436 356 if(counter==0 && !poc)
tim004 0:dc2c50156436 357 {
tim004 0:dc2c50156436 358 if(!drugi && !treci && trenutniZnak == '-')
tim004 0:dc2c50156436 359 minus = true;
tim004 0:dc2c50156436 360 else if(drugi && trenutniZnak == 'D') {}
tim004 0:dc2c50156436 361 else greska = true;
tim004 0:dc2c50156436 362
tim004 0:dc2c50156436 363 counter=1;
tim004 0:dc2c50156436 364 trenutniZnak=znak;
tim004 0:dc2c50156436 365 }
tim004 0:dc2c50156436 366
tim004 0:dc2c50156436 367 if (znak=='#'){
tim004 0:dc2c50156436 368 if(trenutniZnak==' ') return;
tim004 0:dc2c50156436 369 if(trenutniZnak == 'A')
tim004 0:dc2c50156436 370 {
tim004 0:dc2c50156436 371
tim004 0:dc2c50156436 372 if (drugi){
tim004 0:dc2c50156436 373
tim004 0:dc2c50156436 374 binToDec();
tim004 0:dc2c50156436 375 float var = broj1;
tim004 0:dc2c50156436 376
tim004 0:dc2c50156436 377 counter = 2;
tim004 0:dc2c50156436 378 return;
tim004 0:dc2c50156436 379 }
tim004 0:dc2c50156436 380 else if (treci){
tim004 0:dc2c50156436 381 broj1=sin(broj1);
tim004 0:dc2c50156436 382 float var = broj1;
tim004 0:dc2c50156436 383
tim004 0:dc2c50156436 384 counter = 2;
tim004 0:dc2c50156436 385 return;
tim004 0:dc2c50156436 386 }
tim004 0:dc2c50156436 387
tim004 0:dc2c50156436 388
tim004 0:dc2c50156436 389 if(counter==1)
tim004 0:dc2c50156436 390 izvrsiOperaciju();
tim004 0:dc2c50156436 391 trenutniZnak = '+';
tim004 0:dc2c50156436 392 decimala=0;
tim004 0:dc2c50156436 393 minus=false;
tim004 0:dc2c50156436 394 poc=false;
tim004 0:dc2c50156436 395 counter = 1;
tim004 0:dc2c50156436 396
tim004 0:dc2c50156436 397
tim004 0:dc2c50156436 398 }
tim004 0:dc2c50156436 399
tim004 0:dc2c50156436 400 else if(trenutniZnak == 'B') // -
tim004 0:dc2c50156436 401 {
tim004 0:dc2c50156436 402 if(counter==1)
tim004 0:dc2c50156436 403
tim004 0:dc2c50156436 404 izvrsiOperaciju();
tim004 0:dc2c50156436 405 float var = broj1;
tim004 0:dc2c50156436 406 // pocetnoStanje();
tim004 0:dc2c50156436 407 // broj1 = var;
tim004 0:dc2c50156436 408
tim004 0:dc2c50156436 409
tim004 0:dc2c50156436 410 trenutniZnak = '-';
tim004 0:dc2c50156436 411 counter = 1;
tim004 0:dc2c50156436 412 }
tim004 0:dc2c50156436 413
tim004 0:dc2c50156436 414 else if(trenutniZnak == 'C')
tim004 0:dc2c50156436 415 {
tim004 0:dc2c50156436 416 if(counter==1)
tim004 0:dc2c50156436 417
tim004 0:dc2c50156436 418 izvrsiOperaciju();
tim004 0:dc2c50156436 419 float var = broj1;
tim004 0:dc2c50156436 420 // pocetnoStanje();
tim004 0:dc2c50156436 421 // broj1 = var;
tim004 0:dc2c50156436 422
tim004 0:dc2c50156436 423
tim004 0:dc2c50156436 424
tim004 0:dc2c50156436 425 trenutniZnak = '*';
tim004 0:dc2c50156436 426 counter = 1;
tim004 0:dc2c50156436 427
tim004 0:dc2c50156436 428 }
tim004 0:dc2c50156436 429
tim004 0:dc2c50156436 430 else if(trenutniZnak == 'D')
tim004 0:dc2c50156436 431 {
tim004 0:dc2c50156436 432 if(counter==1)
tim004 0:dc2c50156436 433
tim004 0:dc2c50156436 434 izvrsiOperaciju();
tim004 0:dc2c50156436 435 float var = broj1;
tim004 0:dc2c50156436 436 //pocetnoStanje();
tim004 0:dc2c50156436 437 // broj1 = var;
tim004 0:dc2c50156436 438
tim004 0:dc2c50156436 439
tim004 0:dc2c50156436 440 trenutniZnak = '/';
tim004 0:dc2c50156436 441 counter = 1;
tim004 0:dc2c50156436 442 }
tim004 0:dc2c50156436 443
tim004 0:dc2c50156436 444
tim004 0:dc2c50156436 445 /* else if(trenutniZnak == '#')
tim004 0:dc2c50156436 446 {
tim004 0:dc2c50156436 447 if(counter==1) izvrsiOperaciju();
tim004 0:dc2c50156436 448 counter = 2;
tim004 0:dc2c50156436 449 decimala=0;
tim004 0:dc2c50156436 450 broj2=0;
tim004 0:dc2c50156436 451 minus=poc=false;
tim004 0:dc2c50156436 452 }*/
tim004 0:dc2c50156436 453
tim004 0:dc2c50156436 454 izvrsiOperaciju();
tim004 0:dc2c50156436 455 counter = 2;
tim004 0:dc2c50156436 456 decimala=0;
tim004 0:dc2c50156436 457 broj2=0;
tim004 0:dc2c50156436 458 minus=poc=false;
tim004 0:dc2c50156436 459
tim004 0:dc2c50156436 460 }
tim004 0:dc2c50156436 461
tim004 0:dc2c50156436 462
tim004 0:dc2c50156436 463 else if(trenutniZnak == '*') // dec. zarez
tim004 0:dc2c50156436 464 {
tim004 0:dc2c50156436 465
tim004 0:dc2c50156436 466 if (!drugi && !treci) drugi=true;
tim004 0:dc2c50156436 467 else if (drugi && !treci){
tim004 0:dc2c50156436 468 drugi=false;
tim004 0:dc2c50156436 469 treci=true;
tim004 0:dc2c50156436 470 }
tim004 0:dc2c50156436 471 else if(!drugi && treci){
tim004 0:dc2c50156436 472 treci=false;
tim004 0:dc2c50156436 473
tim004 0:dc2c50156436 474 }
tim004 0:dc2c50156436 475
tim004 0:dc2c50156436 476
tim004 0:dc2c50156436 477 }
tim004 0:dc2c50156436 478 }
tim004 0:dc2c50156436 479 Dbnc.reset();
tim004 0:dc2c50156436 480 }
tim004 0:dc2c50156436 481 }
tim004 0:dc2c50156436 482
tim004 0:dc2c50156436 483 int main()
tim004 0:dc2c50156436 484 {
tim004 0:dc2c50156436 485 Dbnc.start();
tim004 0:dc2c50156436 486 provjeraUlaza.attach(&ispisiNaDisplej,0.005);
tim004 0:dc2c50156436 487
tim004 0:dc2c50156436 488 while (7){
tim004 0:dc2c50156436 489 skontajKojaFunkcija();
tim004 0:dc2c50156436 490 }
tim004 0:dc2c50156436 491
tim004 0:dc2c50156436 492 }