15
Programiranje 2 (550) Osnove programiranja u C-u 1 Programiranje 2 Osnove programiranja u C-u (osnovna semantika) Programiranje 2 2 Sadržaj Kratka povijest C-a i zašto ga koristiti Način pisanja programa Jednostavni C program Prevođenje i povezivanje programa Komentari Imena varijabli i funkcija Deklaracija varijabli

Programiranje 2 - Računarstvo 550. semestar/Programiranje... · Programiranje 2 (550) Osnove programiranja u C-u 3 Način pisanja programa 1. Shvatiti problem/zadatak koji treba

  • Upload
    doanbao

  • View
    288

  • Download
    5

Embed Size (px)

Citation preview

Page 1: Programiranje 2 - Računarstvo 550. semestar/Programiranje... · Programiranje 2 (550) Osnove programiranja u C-u 3 Način pisanja programa 1. Shvatiti problem/zadatak koji treba

Programiranje 2 (550)

Osnove programiranja u C-u 1

Programiranje 2

Osnove programiranja u C-u(osnovna semantika)

Programiranje 2 2

Sadržaj� Kratka povijest C-a i zašto ga koristiti� Način pisanja programa� Jednostavni C program� Prevođenje i povezivanje programa� Komentari� Imena varijabli i funkcija� Deklaracija varijabli

Page 2: Programiranje 2 - Računarstvo 550. semestar/Programiranje... · Programiranje 2 (550) Osnove programiranja u C-u 3 Način pisanja programa 1. Shvatiti problem/zadatak koji treba

Programiranje 2 (550)

Osnove programiranja u C-u 2

Katka povijest C-a i zašto ga koristiti� Stvorio ga je Dennis Ritchie u Bell laboratorijima 1972.

godine s ciljem razvoja UNIX operacijskog sustava.� Pokazao se kao moćan i fleksibilan jezik pa se ubrzo prešao

u širu upotrebu.� Kako bi se spriječio razvoj brojnih verzija 1983. godine

Američki nacionalni institut za standarde (American National Standard Institute - ANSI) postavlja standardne definicije C-a koji se naziva ANSI C i trebao bi biti neovisan o operacijskom sustavu i programskoj okolini.

� C se može koristiti za razvoj operacijskih sustava, programa za obradu teksta, grafiku, tablice, prevodioce za druge jezike, …

� Portabilan (ANSI C) i modularan

Programiranje 2 3

Korištenje programskih jezika 2011-e

Programiranje 2 4

Page 3: Programiranje 2 - Računarstvo 550. semestar/Programiranje... · Programiranje 2 (550) Osnove programiranja u C-u 3 Način pisanja programa 1. Shvatiti problem/zadatak koji treba

Programiranje 2 (550)

Osnove programiranja u C-u 3

Način pisanja programa1. Shvatiti problem/zadatak koji treba programirati2. Razmisliti na koji način riješiti problem

3. Napisati program 4. Pokrenuti program

� Ispraviti leksičke, sintaksne, semantičke i logičke greške

Programiranje 2 5

Programiranje 2 6

Jednostavni C program

#include <stdio.h>void main(){

printf(“Zdravo svima!!!\n\n”); // naredba za ispis teksta na ekran

}

Page 4: Programiranje 2 - Računarstvo 550. semestar/Programiranje... · Programiranje 2 (550) Osnove programiranja u C-u 3 Način pisanja programa 1. Shvatiti problem/zadatak koji treba

Programiranje 2 (550)

Osnove programiranja u C-u 4

Programiranje 2 7

Pravila� Za pisanje C programa koriste se i mala i velika slova.

� C ih razlikuje pa treba voditi računa što se koristi.

#include <stdio.h>

void main(){

printf(“Zdravo svima!!!\n”);}

#include <stdio.h>

void Main(){

printf(“Zdravo svima!!!\n”);}

Programiranje 2 8

#include� #include je predprocesorska direktiva koja označava da

prevodilac treba dodati tzv. “header” datoteku u program. “header” datoteka sadrži deklaracije funkcija (potprograma) iz standardne biblioteke C-jezika.

#include<stdio.h>

void main()

{

printf(''Zdravo svima!!!\n\n'');

}

Page 5: Programiranje 2 - Računarstvo 550. semestar/Programiranje... · Programiranje 2 (550) Osnove programiranja u C-u 3 Način pisanja programa 1. Shvatiti problem/zadatak koji treba

Programiranje 2 (550)

Osnove programiranja u C-u 5

Programiranje 2 9

#include� Sintaksa: #include<ime_datoteke>

#include”ime_datoteke”

� stdio.h –sadrži definicije funkcija za unos i ispis podataka

Programiranje 2 10

main()� C program se sastoji od niza potprograma koji se nazivaju funkcije.

� main() – osnovna funkcija C programa, neophodna za njegovo izvršavanje� void označava tip funkcije i znači da funkcija ne vrača rezultat.� Izvršavanje C programa kreće od main ().� Može postojati samo JEDAN main() u programu.

� Sintaksa main-a u najjednostavnijem obliku:

void main() // u () se mogu nalaziti argumenti f-je main{ // početak programa

//KOD PROGRAMA} // kraj programa

Page 6: Programiranje 2 - Računarstvo 550. semestar/Programiranje... · Programiranje 2 (550) Osnove programiranja u C-u 3 Način pisanja programa 1. Shvatiti problem/zadatak koji treba

Programiranje 2 (550)

Osnove programiranja u C-u 6

Programiranje 2 11

Funkcija printf()� printf() – se koristi za formatirani ispis teksta i varijabli

na ekranu.� Sintaksa za ispis teksta:

printf(“xxxxxxxxxxxxxx”);� Unutar “” za formatiranje ispisa koriste se tzv. “escape”

znakovi:� \n – označava prelazak kursora u novi red.

Programiranje 2 12

;� ; - označava kraj svake naredbe u C-u i OBAVEZNO se

mora navesti.

� Korištenje samo ; u jednoj linije je dozvoljeno i ne radi ništa u programu, a naziva se “null” naredba.

#include <stdio.h>

void main(){

printf(“Zdravo svima!!!\n”)}

Page 7: Programiranje 2 - Računarstvo 550. semestar/Programiranje... · Programiranje 2 (550) Osnove programiranja u C-u 3 Način pisanja programa 1. Shvatiti problem/zadatak koji treba

Programiranje 2 (550)

Osnove programiranja u C-u 7

Programiranje 2 13

Zaključak� C kod se sastoji od niza naredbi pri čemu svaka naredba opisuje

izvršenje nekog zadatka i završava s ;� Pravi razliku između malih i velikih slova.

� Sve ključne riječi se pišu malim slovima� Naredbe završavaju sa ;� #include – uključuje “header” datoteke iz standardne biblioteke

C jezika. � Izvršavanje programa kreće od main().� { - označava početak programskog bloka.� } – označava kraj programskog bloka.� Naredba printf() se koristi za ispis teksta na ekran

� niz znakova, koji se želi ispisati na ekran se piše u “”;� \n – prelazak kursora u novi red.

Programiranje 2 14

Primjeri jednostavnih programa� Primjer 1:

#include<stdio.h>void main(){

printf(“Zdravo svima!\n”);printf(“Programiranje u C-u je lako!\n”);

}

Page 8: Programiranje 2 - Računarstvo 550. semestar/Programiranje... · Programiranje 2 (550) Osnove programiranja u C-u 3 Način pisanja programa 1. Shvatiti problem/zadatak koji treba

Programiranje 2 (550)

Osnove programiranja u C-u 8

Programiranje 2 15

Primjeri jednostavnih programa� Primjer 2:

#include<stdio.h>void main(){

printf(“Zdravo svima! ”);printf(“Programiranje u C-u je lako!\n”);

}

Programiranje 2 16

Primjeri jednostavnih programa� Primjer 3:

#include<stdio.h>void main(){

printf(“Zdravo! …\n…Ovo je stvarno jednostavno!\n”);}

Page 9: Programiranje 2 - Računarstvo 550. semestar/Programiranje... · Programiranje 2 (550) Osnove programiranja u C-u 3 Način pisanja programa 1. Shvatiti problem/zadatak koji treba

Programiranje 2 (550)

Osnove programiranja u C-u 9

Programiranje 2 17

Prevođenje i povezivanje� Prevođenje (“compiling”) je postupak pri kojem se izvorni

kod nekog programa u potpunosti prevodi u objektni program i kao takav sprema u objektnu datoteku (*.obj DOS i Win, *.o UNIX) -> PREVODIOC.

� Objektni program – skup binarno kodiranih naredbi koje izvršava procesor.

� Prevođenje se odvija u dvije faze:1. prevođenje C programa u assembler;2. prevođenje assemblerskog koda u strojni jezik tj. u

operacijski kod procesora.� Povezivanje (“linking”) objektnoj datoteci dodaje podatke

za vezu s operacijskim sustavom i stvara izvršni program (*.exe DOS i Win)

Programiranje 2 18

Prevođenje i povezivanje

*.c

*.obj

*.exe

Povezivanje

Da

Da

greška?

greška?

*.h

Prevoñenje(leksičke, sintaktičke

i semantičke pogreške,te 1. i 2. faza)

Page 10: Programiranje 2 - Računarstvo 550. semestar/Programiranje... · Programiranje 2 (550) Osnove programiranja u C-u 3 Način pisanja programa 1. Shvatiti problem/zadatak koji treba

Programiranje 2 (550)

Osnove programiranja u C-u 10

Veza C-a i operacijskog koda procesora� Viši programski jezik (C) :

x = x + 1 ili x++� Asseembler:

inc ax� heksadecimalni kod naredbe inc ax:

470� binarni kod naredbe inc ax

01000000

Programiranje 2 19

Programiranje 2 20

Komentari� Koriste se za generalni opis programa (zadatak, autor,

datum,…), opis složenih dijelova i varijabli.� Komentari se ne prevode pri prevođenju, već se tretiraju

kao prazno mjesto.� Postoje dvije vrste komentara:

� Komentar cijelog bloka:/* _ _ _ _ _

_ _ _ _ _ _ _ _ _ _ */

� Komentar jedne linije: // _ _ _ _ _

Page 11: Programiranje 2 - Računarstvo 550. semestar/Programiranje... · Programiranje 2 (550) Osnove programiranja u C-u 3 Način pisanja programa 1. Shvatiti problem/zadatak koji treba

Programiranje 2 (550)

Osnove programiranja u C-u 11

Programiranje 2 21

Primjer komentara/* Primjer komentara

Ovaj program ispisuje 2 poruke na ekran */#include<stdio.h>

main(){

// ISPISprintf(“Zdravo svima! ”); // Prva porukaprintf(“Programiranje u C-u je lako!\n”);

}

Varijable i konstante� U C se koriste dva načina pohrane podataka koji se koriste

u programu:� varijable – koriste se za one vrijednosti koje se

mijenjaju tijekom izvršavanja programa� konstante - koriste se za one vrijednosti čija se

vrijednost ne mijenja tijekom izvršavanja programa� Radna memorija računala se između ostalog koristi i za

pohranu svih podataka kada se pokrene program.� Organizirana je sekvencijalno� Svaki bajt ima jedinstvenu adresu

� Varijabla – imenovana lokacija za pohranu podataka u radnu memoriju računala

Programiranje 2 22

Page 12: Programiranje 2 - Računarstvo 550. semestar/Programiranje... · Programiranje 2 (550) Osnove programiranja u C-u 3 Način pisanja programa 1. Shvatiti problem/zadatak koji treba

Programiranje 2 (550)

Osnove programiranja u C-u 12

Programiranje 2 23

Nazivi varijabli i funkcija� Imena funkcija i varijabli u C-u moraju započeti s:

� malim ili velikim slovom� _

� Nakon toga može doći bilo koja kombinacija slova, _ ili broja.� Svi ostali znakovi se NE smiju koristiti.� Ne smiju se koristiti ni rezervirane riječi:

� Za većinu C prevodioca maks. se može koristit 31 znak za nazive varijabli.

ada char else for long sizeof unionasm continue entry fortran pascal static unsignedauto default enum goto register struct void

break do extern if return switch whilecase double float int short typedef

Programiranje 2 24

Nazivi varijabli i funkcija� Za imenovanje varijabli se često koriste različiti pristupi npr:

� ime_studenta� ImeStudenta

� Što koristiti kod imenovanja varijabli:� Opisna imena varijabli� Usvojiti jedan pristup imenovanju i koristit ga u cijelom

programu

� Što izbjegavati kod imenovanja varijabli:� korištenje _ kao prvog znaka imena varijable� ne koristiti sva velika slova za ime varijable jer se to

najčešće koristi za konstante

Page 13: Programiranje 2 - Računarstvo 550. semestar/Programiranje... · Programiranje 2 (550) Osnove programiranja u C-u 3 Način pisanja programa 1. Shvatiti problem/zadatak koji treba

Programiranje 2 (550)

Osnove programiranja u C-u 13

Programiranje 2 25

Primjeri naziva varijabli� sum Sum - ista ili različita varijabla?

� Koji su ispravni nazivi varijabli?

zbroj izlazna_vrijednostDo AVar7 7Var_var7 _broj_potezachar broj#potezabroj% broj?3×

×

×

×

×

���

��

Programiranje 2 26

O varijablama� Varijable moraju biti deklarirane prije nego će se koristiti

u programu.� Deklariraju se nakon main() {� Format deklariranja varijabli:

tip_podataka1 var1;tip_podataka2 var2, var3, var4;

Page 14: Programiranje 2 - Računarstvo 550. semestar/Programiranje... · Programiranje 2 (550) Osnove programiranja u C-u 3 Način pisanja programa 1. Shvatiti problem/zadatak koji treba

Programiranje 2 (550)

Osnove programiranja u C-u 14

Programiranje 2 27

O varijablama#include< >

void main(){

deklaracija_SVIH_varijabli;

kod_programa;}

Programiranje 2 28

Inicijalizacija varijabli� Deklaracija varijable označava prevodiocu (“compiler”) tip i

ime varijable, tako da se kod pokretanja programa može rezervirati određeno mjesto u memoriji.

� Obavezno inicijalizirati (postavljanje početne vrijednosti) sve varijable jer je inače njihova vrijednost nepoznata.

� Sintaksa:� tip_podataka var1;

var1 = xx;

� tip_podataka var1 = xx;

� tip_podataka var1 = xx, var2 = yy, var3 = zz;

Page 15: Programiranje 2 - Računarstvo 550. semestar/Programiranje... · Programiranje 2 (550) Osnove programiranja u C-u 3 Način pisanja programa 1. Shvatiti problem/zadatak koji treba

Programiranje 2 (550)

Osnove programiranja u C-u 15

Osnove programiranja u C-u

KRAJ!!!