Varijable, konstante, operatori

Sjedište: CARNET - Arhiva 2021 Loomen
E-kolegij: III. Gimnazija Osijek - Informatika 2
Knjiga: Varijable, konstante, operatori
Otisnuo/la: Gost (anonimni korisnik)
Datum: ponedjeljak, 28. listopada 2024., 12:19

1. Aritmetički operatori

Za računanje aritmetičkih izraza koriste se aritmetički operatori. U većini programskih jezika, uz već standardne operatore za zbrajanje (+), oduzimanje (-), množenje (*) i dijeljenje (/), koriste se dva dodatna operatora:

  • operator cjelobrojnog dijeljenja i
  • operator ostatka cjelobrojnog dijeljenja.

Operator cjelobrojnog dijeljenja daje rezultat cjelobrojnog dijeljenja dvaju cijelih brojeva. Ostatak pri cjelobrojnom dijeljenju vraća ostatak koji dobijemo pri dijeljenju dvaju cijelih brojeva. U  pseudojeziku zapisuju se sa div i mod. Pogledajmo na primjeru:

   

U programskom jeziku C definirani su ovi aritmetički operatori:

Primjetite da za cjelobrojno dijeljenje nama posebnog operatora neko se upotrebljava znak /, ali ako dijelimo dva cijela broja uvijek ćemo dobiti cijeli broj! Operator za ostatak cijelobrojnog dijeljenja je %.

Kao i u matematici viši prioritet imaju operatori %, * i /, a niži + i -.

Zadatak

Što će se ispisati na zaslonu nakon izvođenja ovog programa?

#include <stdio.h>
int main ()
{
     printf ("\n%d",5+2);
     printf ("\n%d",5-2);
     printf ("\n%d",5*2);
     printf ("\n%d",5/2);
     printf ("\n%d",5%2);
     return 0; 
}

Rješenje

Ispisat će se brojevi 7, 3, 10, 2 i 1, ali jedan ispod drugog (zbog \n). Pripazite, 5/2 kao rezultat će dati cijeli broj jer su i djeljenik i djelitelj cijeli brojevi.


Zadatak

Što će se ispisati na zaslonu nakon izvođenja ovog programa?

#include <stdio.h>
int main ()
{
    printf ("\n%d",5+2);
    printf ("\n%d",(5+2)/3);
    printf ("\n%d",(5+2)*3);
    printf ("\n%d",((5+2)/3)+((5+2)*3));
    return 0;
}

Rješenje


1.1. Zadaci

Ovi zadaci zapisani su u pseudokodu!

1. Izračunaj vrijednost izraza:
a) 15 div 3 + 20 mod 5
b) 17 div 3*7 mod 3
c) 17 div 5 mod 3
d) 4 + 4*7 div 3 mod 7
e) 13*4 + 12 mod 5 - 43 div 2 mod 6


2. Izračunaj vrijednost varijable x ako je:
a) x = 2 * 3 + 4/2
b) x = 2 + 3 * 4 div 3
c) x = 12 div 5 + 17 mod 3
d) x = 14 + 5 div 2 – 7 mod 4
e) x = 17 div 4 * 3

Ovi zadaci zapisani su u programskom jeziku C!

3. Vrijednosti izraza 20 % 3 je:

     a) 6

     b) 6.6667

     c) 2.

4. Izračunajte vrijednosti izraza 9 * 7 / 5 % 8

5. Vrijednost izraza 12 * 5 + 9 / 3 je:

     a) 63

     b) 96

     c) 56.

6. Izračunajte vrijednost izraza  a + b * c – a % b ako je:

     a) a = 2, b = 5, c = 6            

     b) a = 13, b = 10, c = 5.       


Zadatke riješi u svoju bilježnicu!

1.2. Rješenja zadatka

Aritmetički operatori – zadaci

Ovi zadaci zapisani su u pseudokodu!

1. Izračunaj vrijednost izraza:

a) 15 div 3 + 20 mod 5 = 5 + 0 = 5

b) 17 div 3 * 7 mod 3 = 5 * 7 mod 3 = 35 mod 3 = 2

c) 17 div 5 mod 3 = 3 mod 3 = 0

d) 4 + 4*7 div 3 mod 7 = 4 + 28 div 3 mod 7 = 4 + 9 mod 7 = 4 + 2 = 6

e) 13 * 4 + 12 mod 5 - 43 div 2 mod 6 = 52 + 2 – 21 mod 6 = 54 – 3 = 51

 

2. Izračunaj vrijednost varijable x ako je:

a) x = 2 * 3 + 4/2 = 6 + 2.00 = 8.00       Napomena: / je dijeljenje u kojem je rezultat realan broj

b) x = 2 + 3 * 4 div 3 = 2 + 12 div 3 = 2 + 4 = 6

c) x = 12 div 5 + 17 mod 3 = 2 + 2 = 4

d) x = 14 + 5 div 2 – 7 mod 4 = 14 + 2 – 3 = 13

e) x = 17 div 4 * 3 = 4 * 3 = 12

 

Ovi zadaci zapisani su u programskom jeziku C!

3. Vrijednosti izraza 20 % 3 je:

     a) 6

     b) 6.6667

     c) 2 - zato što je 20 / 3 jednako 6 i ostatak 2.

4. Izračunajte vrijednosti izraza 9 * 7 / 5 % 8. 

9 * 7 / 5 % 8 = 63 / 5 % 8 = 12 % 8 = 4

Napomena: U programskom jeziku C ako dijelimo dva cijela broja uvijek kao rezultat dobijemo cijeli broj!

5. Vrijednost izraza 12 * 5 + 9 / 3 je:

     a) 63

     b) 96

     c) 56.

12 * 5 + 9 / 3 = 60 + 3 = 63

 

6. Izračunajte vrijednost izraza  a + b * c – a % b ako je:

     a) a = 2, b = 5, c = 6            

a + b * c – a % b = 2 + 5 * 6 – 2 % 5 = 2 + 30 – 2 = 30

     b) a = 13, b = 10, c = 5.  

a + b * c – a % b = 13 + 10 * 5 – 13 % 10 = 13 + 50 – 3 = 60

 


2. Podaci u programu

Cilj programiranja nije izrada programa koji rade s nepromjenjivim podatcima, kao što je to učinjeno u prethodnim primjerima. Pisanje programa je dugotrajan i težak proces i nema smisla ako se program ne može primijeniti na različitim ulaznim podatcima. Da bi programi bili općeniti, potrebno je omogućiti korisniku da sam upisuje podatke koji su mu potrebni za obradu. Prije obrade funkcije za učitavanje, potrebno je reći nešto o podatcima.
Podatke u programu dijelimo na:

  •  varijable ‒ podatci čije se vrijednosti tijekom izvođenja programa mijenjaju i
  •  konstante ‒ podatci čije se vrijednosti ne mogu mijenjati.

Da bismo u programu upotrebljavali varijable i konstante, moramo ih razlikovati. Dakle, moramo im dodijeliti imena.

Identifikatori
Varijablama, konstantama i funkcijama dodjeljujemo imena koja se nazivaju identifikatori. Oni se sastoje od niza alfanumeričkih znakova (znamenke i slova engleske abecede), od kojih prvi znak mora biti slovo ili donja crta (_). Identifikatori ne smiju biti ključne riječi programskog jezika C.
Programski jezik C razlikuje velika i mala slova!

Ključne riječi
Ključne riječi su identifikatori koji imaju točno određeno značenje. One zajedno sa sintaksom programskog jezika određuju što se i na koji način u određenom programskom jeziku može učiniti. Ključnih riječi u C-u ima malo (32 ključne riječi određene standardom ANSI C, koje čine jezgru jezika i dovoljne su za rješavanje svih problema) i pišu se malim slovima.
To su:
auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while.

2.1. Varijable

U zadatku s voćnjakom koristili smo različite podatke (m, n, kolicina_zice, x, broj_stupova, ukupna_cijena, ...) Označili smo tako da nas asociraju na podatak koji predstavljaju. Neki od tih podataka bili su:

  • ulazni - unosili smo ih sa tipkovnice,
  • izlazni - ispisivali smo ih na zaslon, najčešće na kraju programa
  • ili su nam samo trebali da bismo nešto izračunali kao pomoćni podaci.
Sve su to bili podaci koje nazivamo varijable. Varijable su podatci čije se vrijednosti tijekom izvođenja programa mijenjaju.

Pojam varijable poznajete i iz matematike, ali u programiranju ipak vrijede drukčija pravila.
Riječ varijabla u programiranju ponajprije označuje memorijsku lokaciju, spremnik u kojem je pohranjena njezina vrijednost.

Svaku memorijsku lokaciju određuju njena adresa, ime i vrijednost koja je u njoj pohranjena. Koliko će bitova ili bajtova zauzimati spremnik u koji ćemo spremiti pojedinu varijablu, ovisit će o njezinu tipu (int, float, double ili char). Sjetite da smo govorili o prikazu podataka u računalu i da različiti podaci ne zauzimaju istu količinu memorije. Upravo zato se sve varijable moraju deklarirati (najaviti) prije uporabe. Najavom se zadaju tip i ime varijable. Varijable se najčešće najavljuju na samom početku programa, ali to nije uvjet. Varijabla se u C-u može najaviti izvan svih funkcija, na početku funkcije ili na početku bloka naredbi.

Opći oblik naredbe za najavu (deklaraciju) varijabli je:

tip_podataka  lista_varijabli;

Tip_podataka je jedan od osnovnih ili korisnički zadanih tipova podataka, a lista_varijabli je niz imena varijabli (odvojenih zarezom) koje će tijekom izvršavanja programa sadržavati vrijednosti zadanog tipa podataka. Imena varijablama dodjeljujemo proizvoljno, ali poštujući pravila koja vrijede za identifikatore.

Zapamtite!

Programski jezik C razlikuje velika i mala slova, tako da su varijable a i A dvije različite varijable!

Naredbom za najavu se u memoriji rezervira memorijska lokacija za svaku varijablu navedenu u listi varijabli. Veličina rezerviranog prostora ovisi o navedenom tipu podataka (4 bajta za broj tipa int, 4 bajta za float …)

Tako se naredbama:

           int a, b, c;

       double x,y;

u memoriji rezervira pet zasebnih lokacija. Za varijable a, b i c one su veličine 4, a za varijable x i y su veličine 8 bajta.

 

Zadatci za vježbu

1. Za svaki navedeni identifikator odgovorite je li ispravno napisan. Ako nije, objasnite zašto!

a)  Zbroj
b)  X1
c)  1t
d)  case
e)  zbroj 1

 Rješenje:

a)  Zbroj - ispravno
b)  X1 - ispravno
c)  1t - nije ispravno, jer prvi znak mora biti slovo
d)  case - nije ispravno jer je case ključna riječ
e)  zbroj 1
- nije ispravno jer u imenu nije dozvoljen razmak

2. Koliko je različitih identifikatora napisano?

Suma, suma, s, S, SUma

  Rješenje:

Svi su različiti jer C razlikuje mala i velika slova!

 





2.2. Konstante

Konstante su vrijednosti koje se zadaju jedanput i ne mijenjaju se tijekom izvođenja programa. S obzirom na tipove podataka, razlikuju se:

  • cjelobrojne,
  • realne i
  • znakovne konstante.

Cjelobrojne konstante su cijeli dekadski brojevi iz dopuštenog opsega, zapisani u standardnom obliku. Od cjelobrojnih konstanti C dopušta još oktalne i heksadekadske konstante. Oktalne konstante počinju s 0, a heksadekadske s 0x. (npr. 044 – oktalna, 0xaba – heksadekadska).

Realne konstante sadržavaju realne brojeve s predznakom ili bez njega i zapisane su u standardom obliku tako da decimalna točka odvaja cjelobrojni dio od decimalnog. Mogu se zapisati i u eksponencijalnom obliku. Prvi dio takvog zapisa je realan broj (s predznakom ili bez njega), zatim slovo e ili E i iza njega cijeli broj (s predznakom ili bez njega), npr. broj 0.02 može biti zapisan kao 2E-2.

Znakovne konstante zadaju se unutar jednostrukih navodnika – literala ' ' i uglavnom se sastoje od jednog znaka (osim spomenutih znakovnih konstanti koje se koriste za kontrolu ispisa). Vrijednost znakovne konstante odgovara numeričkoj vrijednosti koja odgovara ASCII kodu znaka koji se nalazi unutar jednostrukih navodnika. Tako je numerička vrijednost znakovne konstante 'Z' 90. Znakovne konstante se mogu pojavljivati u aritmetičkim izrazima i tada se upotrebljava isključivo njihova numerička vrijednost.
Uz spomenute vrste konstanti, programski jezik C definira i konstantu niza znakova (string constant), koja se sastoji od niza znakova unutar para navodnika, npr. "konstanta".
'A' i ''A'' su različite konstante!

Konstantu možemo najaviti na sljedeći način:
        const tip_konstante ime_konstante = vrijednost_konstante;

Primjerice, naredbom
        const int a = 5;
najavljujemo podatak a koji će tijekom izvođenja programa uvijek imati vrijednost 5.

Za definiranje konstanti još se koristi i pretprocesorska naredba #define, oblika:
        #define ime_konstante vrijednost_konstante
Na taj način definiramo simboličku konstantu. Tako se obično definiraju konstante kao pi ili logičke konstante, primjerice:
                #define pi 3.141592654
       #define true 1
       #define false 0

Zadatci za vježbu
Za svaku navedenu konstantu odgovorite je li ispravno napisana. Ako nije, objasnite zašto!
a) 1785
b) 07A
c) 'Mehanotehna'
d) 5.4E2.5
e) 34.76

Rješenje:

a) 1785 - ispravno
b) 07A - nije ispravno jer A nije oktalna znamenka (nego heksadekadska), a obzirom da za počinje s 0 onda konstanta mora biti oktalna
c) 'Mehanotehna' - nije ispravno, jer se pod literalima piše samo jedan znak. Više znakova mora se pisati pod navodnicima.
d) 5.4E2.5 - nije ispravno jer iza slova E mora biti cijeli broj
e) 34.76 - ispravno