Osnove C programiranja: Od varijabli do kontrole toka
Datum objave: 27.12.2009.
Autor: Igor Kovačić
Napomena: Ovaj vodič je objavljen prije više od dvije godine i možda ne odražava u potpunosti najnovija dostignuća u području programiranja.
Uvod u svijet C programiranja
Ovaj vodič predstavlja detaljan uvid u ključne koncepte C programskog jezika, namijenjen korisnicima koji žele produbiti svoje razumijevanje i ovladati naprednijim tehnikama kodiranja. Cilj je upoznati čitatelja s raznolikim mogućnostima koje C pruža, od osnova definiranja i korištenja varijabli do složenijih mehanizama kontrole toka programa. Kroz praktične primjere i jasna objašnjenja, potičemo aktivno učenje i eksperimentiranje s kodom.
Za one koji tek započinju svoje programersko putovanje, preporučuje se korištenje razvojnog okruženja kao što je Dev-C++. Ovaj besplatni integrirani razvojni alat (IDE) za operativne sustave Windows pruža sveobuhvatnu podršku za pisanje, kompilaciju i debugiranje C programa, čineći početak procesa učenja što jednostavnijim i efikasnijim.
Upravljanje podacima: Varijable i njihove vrste
U srcu svakog programa leži manipulacija podacima, a u C-u se to ostvaruje putem varijabli. Varijable su spremnici za pohranu podataka koji se mogu mijenjati tijekom izvršavanja programa. Osnovni tipovi podataka u C-u uključuju:
- char: Namijenjen pohrani jednog znaka ili malih cijelih brojeva.
- int: Cjelobrojni tip, pogodan za pohranu cijelih brojeva.
- float: Realni tip za pohranu brojeva s decimalnom točkom, s manjom preciznošću.
- double: Realni tip dvostruke preciznosti, nudi veći raspon i preciznost od ‘float’.
Osim osnovnih tipova, C nudi i prefikse koji modificiraju raspon vrijednosti koje varijabla može sadržavati:
- short: Smanjuje raspon cjelobrojnih vrijednosti, štedeći memoriju.
- long: Povećava raspon cjelobrojnih vrijednosti, omogućujući pohranu većih brojeva.
- signed: Omogućuje pohranu pozitivnih i negativnih vrijednosti.
- unsigned: Dopušta pohranu samo pozitivnih vrijednosti, udvostručujući raspon pozitivnih brojeva u usporedbi s potpisanim tipovima iste veličine.
Deklaracija varijable podrazumijeva definiranje njezina tipa i imena. Primjerice, deklaracija int a; najavljuje varijablu nazvanu ‘a’ tipa ‘int’. Inicijalizacija je proces dodjeljivanja početne vrijednosti varijabli tijekom njezine deklaracije, kao u primjeru int a = 5; ili char b = 'a';.
Manipulacija podacima: Operatori u C-u
Operatori su ključni za izvođenje operacija nad varijablama i vrijednostima. C podržava širok spektar operatora:
- Aritmetički operateri:
+(zbrajanje),-(oduzimanje),*(množenje),/(dijeljenje) i%(modulo – ostatak cjelobrojnog dijeljenja). - Operatori uvećanja i umanjenja:
++(inkrement – povećava vrijednost varijable za 1) i--(dekrement – smanjuje vrijednost varijable za 1).
Primjer korištenja operatora:
int a = 5;
int b = 6;
int c; ++a; // a sada iznosi 6
c = a + b; // c sada iznosi 12
a = a + b; // a sada iznosi 12 (rezultat spremljen u istu varijablu)
a += b; // skraćeni zapis za a = a + b;Pri izvođenju aritmetičkih operacija, C slijedi standardni redoslijed prioriteta poznat kao BODMAS (Brackets, Orders, Division/Multiplication, Addition/Subtraction). Zagrade imaju najviši prioritet, zatim potencije, potom množenje i dijeljenje (s jednakim prioritetom), te na kraju zbrajanje i oduzimanje (također s jednakim prioritetom).
Struktura C programa i konstante
Poznavanje strukture C programa esencijalno je za pisanje jasnog i učinkovitog koda. Važno je zapamtiti sljedeća pravila:
- Više naredbi može se nalaziti u istom retku.
- C je osjetljiv na velika i mala slova (case-sensitive).
- Nazivi funkcija ne smiju biti ključne riječi programskog jezika.
- Deklaracijom se definira tip i naziv varijable.
- Blokovi koda započinju znakom ‘{‘ i završavaju znakom ‘}’.
- Nakon znaka ‘}’ (kraj bloka) ne stavlja se točka-zarez.
- Glavna funkcija programa uvijek se naziva
main().
Konstante su vrijednosti koje se ne mijenjaju tijekom izvršavanja programa. Mogu se definirati pomoću ključne riječi const, kao u primjeru const double pi = 3.1415926;. Alternativno, koriste se preprocesorske direktive #define, obično na vrhu datoteke, npr. #define PI 3.1415926;. Ova metoda definira simboličku konstantu čija se vrijednost zamjenjuje prije kompilacije.
Komunikacija s korisnikom: Unos i ispis podataka
Funkcije printf() i scanf() služe za interakciju s korisnikom. printf() se koristi za ispisivanje podataka na zaslon, dok scanf() čita unos od korisnika.
Ispis podataka:
#include <stdio.h> int main() { int a = 2; printf(\"Varijabla a ima vrijednost %d\
\", a); return 0;
}U printf(), specifikatori formata poput %d označavaju mjesto gdje će se umetnuti vrijednost varijable. Za ispis više varijabli, navode se redom nakon zatvaranja navodnika, odvojene zarezima.
%d: za cjelobrojne tipove (int).%f: za realne brojeve (float, double).%c: za znakovne tipove (char).
Unos podataka:
#include <stdio.h> int main() { int a; printf(\"Unesite vrijednost varijable a: \"); scanf(\"%d\", &a); printf(\"Vi kazete: %d\
\", a); return 0;
}Funkcija scanf()
