Naprednije programiranje u C-u – dio 1

Na zahtjev korisnika Učionice donosimo novi tutorijal koji govori o naprednijem programiranju u C-u. U istom tutorijalu šturo ćemo proći kroz većinu toga kako biste zapravo znali mogućnosti programskog jezika C.

 

Ako tražite razvojno okruženje za pisanje programa pod Windows operacijskim sustavima sjetite se tutorijala koji govori o uvodu u programski jezik C (Tutorijal - Uvod u C) i programa pod nazivom „Dev-C++“ (Download Dev-C++).

Prije svega trebali biste otvoriti „Dev-C++“ kako biste mogli paralelno s tutorijalom pisati svoj kod.

Varijable u C-u
Navesti ćemo nekoliko osnovnih tipova koji su neophodni za programiranje u C-u.
char – znakovni tip ili mali cijeli broj
int – cjelobrojni tip
float – realni tip
double – realni tip dvostruke preciznosti

U C-u postoje i prefiksi, te kvalifikatori koje možemo ili smo prisiljeni koristiti
short – smanjuje raspon cjelobrojnih vrijednosti koje varijabla može sadržavati
long – smanjuje raspon cjelobrojnih vrijednosti koje varijabla može sadržavati
signed – omogućuje pridruživanje pozitivnih i negativnih vrijednosti
unsigned – omogućuje pridruživanje samo pozitivnih vrijednosti i povećava raspon brojeva koje možemo pohraniti u varijablu.


Primjer deklaracije varijabli

int a;
float b;


Primjer deklaracije varijabli sa inicijalizacijom

int a = 5;
char b = 'a';


Inicijalizacija je postupak dodjeljivanja početne vrijednosti varijabli.


Operatori u C-u
Operatori u C-u, kao i u drugim programskim jezicima omogućuju nam manipulaciju vrijednostima varijabli.

Neki od operatora koje možemo koristiti su:
+ zbrajanje
- oduzimanje
* množenje
/ dijeljenje
% modulo – ostatak cjelobrojnog dijeljenja. Npr. 5%4 = 1
++ inkrement - uvećava varijablu za 1
-- dekrement - umanjuje varijablu za 1


Primjer korištenja operatora u C-u

int a = 5;
int b = 6;
int c;
++a; /* uvećanje varijable a za 1 */
c = a + b;
a = a + b; /* rezultat operacije može biti i u istoj varijabli */
a += b; /* skraćeni način zapisa linije iznad */


Prioriteti aritmetičkih operacija
Prioriteti su određeni skraćenicom "B.O.D.M.A.S.", što znači: Brackets (zagrade), Order (potencije), Division i Multiplication (dijeljenje i množenje - isti prioritet), Addition i Substraction (zbrajanje i oduzimanje - isti prioritet).
Ako u izrazu ima više operatora jednakog prioriteta, izračunavaju se slijeva nadesno.


Sturktura C programa
Moguće je staviti više naredbi u isti redak.
Razlikujemo velika i mala slova u imenima varijabli
Za nazive funkcija ne smijemo koristiti ključne riječi
Deklaracijom opisujemo tip i naziv varijable
Blok naredbi započinje znakom {, a završava znakom }
Iza znaka } ne stoji znak ;
Glavna funkcija naziva se main


Konstante
Konstante u C-u su one varijable koje se neće mijenjati, a imaju prefiks const:

const double pi = 3.1415926;


Konstante možemo i napisati na sljedeći način, neposredno iza uključivanja biblioteka poput stdio.h, a iznad glavne funkcije:

#define PI 3.1415926;


Ispis i unos podataka
Funkciju printf već smo imali prilike upoznati.
U sljedećem primjeru ispisati ćemo vrijednost varijable na ekran.

#include <stdio.h>

int main () {
 int a = 2;

 printf("Varijabla a ima vrijednost %d", a);

 getche();
 return 0;
}

Primjetimo „%d“ u printf-u. To označava mjesto gdje će se pojaviti vrijednost varijable a. Mogli smo imati i sljedeći slučaj:

printf("Varijabla a ima vrijednost %d, a varijabla b ima vrijednost %d", a, b);


Sada ispisujemo 2 varijable. One u dijelu nakon zatvaranja navodnika moraju biti odvojene zarezima.


Ako se radi o cjelobrojnim varijablama koristimo „%d“. Za realne vrijednosti koristiti ćemo „%f“, a za znakovne „%c“. Ovo nisu jedini specifikatori formata, a postoje i njihove varijacije o kojima ćemo više kasnije.


Primjer unosa vrijednosti varijable izgleda npr. ovako:

#include <stdio.h>

int main(){
 int a;

 printf("Unesite vrijednost varijable a: ");
 scanf("%d", &a);

 printf("Vi kazete: %d", a);

 getche();
 return 0;
}


Funkcija koja obavlja unos zove se „scanf“.
Primijetimo da pomoću specifikatora formata moramo odraditi tip. Razlika u odnosu na printf je u znaku „&“ ispred imena varijable koji označava da se vrijednost sprema u određenu memorijsku adresu. Više o tome kasnije.
U jednom scanf-u možete unositi više i varijabli, ali točno na način kao što ste zapisali. Ako napišete sljedeće:

scanf("%d %d", &a, &b);

program očekuje razmak između dvije vrijednosti.


Ako napišete sljedeće:

scanf("%d\n%d", &a, &b);

program očekuje „enter“ između dvije vrijednosti.


Sada možemo pogledati cijeli program koji koristi unos, ispis i operatore.

#include <stdio.h>

int main(){
 int a, b, c;

 printf("Unesite vrijednost varijable a ==> ");
 scanf("%d", &a);

 printf("Unesite vrijednost varijable b ==> ");
 scanf("%d", &b);

 c=a+b;

 printf("Zbroj %d i %d iznosi %d", a, b, c);

 getche();
 return 0;
}


Kontrola toka programa
Primjer nečega što bi trebalo biti kontrolirano: Ako je na semaforu crveno, stani. Ako je na semaforu zeleno kreni.
Najjednostavnija naredba za kontrolu toka programa je naredba „if“. Ako je izraz u zagradama točan tada će se izvršiti blok naredbi ili naredba ispod if-a.
Primjer if naredbe:

if ( varijabla < 5)
 varijabla++;

Ako se radi o jednoj naredbi tada ne trebamo pisati vitičaste zagrade.

if ( varijabla &#60; 5 ) &#123;
 varijabla++;
 printf(„Varijabla sada iznosi %d“, varijabla);
&#125;


Nakon if-a ne ide znak ;


Osnovni operatori koje možemo koristiti kod if naredbe su:
< da li je manje
> da li je veće
<= da li je manje ili jednako
>= da li je veće ili jednako
== da li je jednako
!= da li je različito

Naredba else može se koristiti nakon naredbe if.
Primjer:

if ( a%2 == 0 ) { /* provjera da li je vrijednost varijable a parna */
 printf ("Broj je paran");
} else {
 printf ("Broj nije paran");
}


Također, postoji i else if naredba koja se koristi na sljedeći način:

if ( a < 0 ) {
 printf ("Broj je negativan");
} else if ( a > 0 ) {
 printf ("Broj je pozitivan");
} else {
 printf ("Broj je jednak nuli");
}


Postoje i drugi načini pisanja if, else i else if naredbi koji su teži za korištenje i čitanje.


Naredba switch također služi za kontrolu toka programa. Ukoliko se radi o višestranoj selekciji tada ćemo ovime skratiti mnogo koda u odnosu na if, else i else-if naredbe.


Primjer korištenja u programu:

#include <stdio.h>

int main(){
 int a;

 printf("Unesite ocjenu: ");
 scanf("%d", &a);

 switch(a) {
  case 1:
   printf("Nedovoljan");
   break;
  case 2:
   printf("Dovoljan");
   break;
  case 3:
   printf("Dobar");
   break;
  case 4:
   printf("Vrlo dobar");
   break;
  case 5:
   printf("Odlican");
   break;
  default:
   printf("Pogreska - ocjena ne postoji");
   break;
 }

 getche();
 return 0;
}


Napomena: ne zaboravite „break;“! Uvijek dodajte default slučaj kako biste prikazali eventualne pogreške pri unosu.




U drugom dijelu tutorijala obraditi ćemo sve od programskih petlji do kraja.
Lijepi pozdrav ;-)

Objavio: igor | Datum objave: 18.03.09. (22:19) | Print |
Dodaj komentar
Your Name(*):
Comment(*):
 



 
servis racunala linkovi tagclouds
reklame
pitajte nas
Contact

posaljite tutorijal


Pošaljite nam tutorijal u doc, docx ili pdf obliku. Objaviti ćemo ga na Učionici, potpisati Vas i zahvaliti Vam se. Pošalji...


anketa

U kojoj kategoriji želite više članaka?


kalendar
« Ozujak 2010 »
PonUt SriCetPetSubNed
1234567
891011121314
15161718192021
22232425262728
293031 


PRIJAVA NA UČIONICU
Ukoliko se ne želite prijaviti kliknite izvan ovog okvira!

Korisnik:
Lozinka:
Zaboravljena lozinka? // Registriraj se!
PRETRAŽIVANJE
 

Ukoliko ne želite pretraživati kliknite izvan ovog okvira!