Za učenike I i III godine Tehničke škole, smerovi: Mašinski tehničar za kompjutersko konstruisanje; Tehničar drumskog saobraćaja; Vozač motornih vozila

понедељак, 18. јануар 2010.

Funkcije

Funkcija je posebni dio programskog koda koji izvodi poseban zadatak. Ona ima svoje jedinstveno ime pomoću kojeg je možemo pozvati iz neke druge funkcije. To se zove pozivanje funkcije. U tom slučaju funkcija vraća neku vrijednost funkciji koja ju je pozvala.

Svaka funkcija u C programskom jeziku izvršava svoj poseban zadatak, a to može učiniti bez da se uključuje u druge dijelove programa ili da se drugi dijelovi programa uključuju u njezin rad.

Za sada sve funkcije pišite u istu datoteku kamo i funkciju main(), i to iza nje, iako ih možete držati odvojene od izvornog koda što je korisno kod velikih programa gdje se iste funkcije pozivaju iz različitih dijelova programa. O tome će biti riječi u posljednjem dijelu knjige.

Vaše funkcije možete držati i potpuno odvojene od izvornoga koda, tako da jednom napisanu funkciju možete koristiti u više programa.

Funkcija u programu ne radi ništa sve dok nije pozvana od nekog drugog dijela programa. Tada joj program šalje informacije u obliku jednog ili više argumenata. Argument je programski podatak koji je neophodan za rad funkcije. Tada se naredbe u funkciji izvršavaju i ona izvodi onaj zadatak za koji je programirana. Kada funkcija završi svoj zadatak izvršenje programa vraća se na isto mjesto s kojeg je funkcija bila pozvana. Funkcije mogu slati informacije natrag u program koji ih poziva u obliku povratne vrijednosti (return value).





Prototip funkcije izgleda ovako:



tip_vrednosti_koju_vraća ime_funkcije(tip_argumenta ime-1,...,tip_argumenta ime-n);



Prototip funkcije opisuje prevoditelju funkciju koja je definisana negdje u programu. U prototipu se nalazi tip vrednosti koji funkcija vraća programu i ime funkcije; koje bi trebalo opisivati šta funkcija radi (ovo je zbog lakšeg snalaženja u programskom kodu). Prototip sadrži i tip argumenta koji će biti prosleđen funkciji. Prototip uvek završava tačka-zarezom.

Program mora sadržavati prototip svake funkcije koju koristi. Prototipovi funkcije MORAJU se staviti U KOD PRE GLAVNE FUNKCIJE main() ili pre definicije prve funkcije. Sve prototipove funkcija grupišite na jednom mestu radi lakšeg snalaženja u programskom kodu.



Definicija funkcije



Definicija funkcije izgleda ovako:



tip_vrednosti_koju_vraća ime_funkcije(tip_argumenta ime-1, ..., tip_argumenta ime-n)

{

/* naredbe; */

}



Definicija funkcije zapravo je sama funkcija. Definicija sadrži programski kod koji se izvršava prilikom pozivanja funkcije. Prva linija definicije funkcije, zaglavlje funkcije (function header), mora biti identična prototipu funkcije, bez tačka-zareza na kraju.



Zaglavlje funkcije



Zaglavlje funkcije ima tri dela:

- tip vrednosti koji funkcija vraća programu koji ju je pozvao

- ime funkcije

- listu parametara.



Tip vrednosti koji funkcija vraća programu koji ju je pozvao može biti bilo koji C tip podataka: char, int, long, float ili double. Također možete definisati i funkciju koja ne vraća nikakve podatke u glavni program koristeći tip void. Evo primera:



int funkcija1(...) /* Vraća tip int. */

float funkcija2(...) /* Vraća tip float. */

void funkcija3(...) /* Ne vraća ništa. */



Funkcijama možete davati imena koja god želite, sve dok se držite istog pravila o imenima kao i za varijable. Ime funkcije mora biti jedinstveno, a dobra je praksa davati funkcijama imena koja opisuju ono što funkcija radi.
Tijelo funkcije

Iza zaglavlja funkcije nalazi se telo funkcije koje sadrži naredbe koje će biti izvršene prilikom pozivanja funkcije. Telo funkcije nalazi se unutar vitičastih zagrada. Ako funkcija vraća tip podataka različit od void, povratna naredba također mora biti napisana s tačnim tipom povratne vrijednosti.

Nema nikakvih ograničenja u pisanju naredbi koje funkcija može sadržati, jedino unutar jedne funkcije ne možete definisati drugu. Funkcija ne bi trebala biti predugačka, 25 - 30 linija koda. Ako vam je funkcija duža, verojatno radi više od jednog zadatka i možete je podeliti na jednu ili više manjih. Kako budete postajali iskusniji, funkcije će vam biti kraće i jednostavnije.

Za vraćanje vrednosti iz funkcije koristite ključnu reč return iza koje dolazi C izraz. Kada izvršenje programa dođe do ove naredbe, funkcija vraća vrednost programu koji ju je pozvao. Upamtite da funkcija vraća vrednost tipa koji je određen u njenom zaglavlju. Ukoliko vraćena vrednost nije istog tipa, prevodilac će pokazati grešku.


Dodeljivanje argumenata funkciji

Da bi funkciji dodelili argumente navedite ih u zagradama iza imena funkcije. Broj i tip argumenata mora se podudarati s parametrima u zaglavlju i prototipu funkcije. Ako funkcija prihvata više argumenata, oni moraju biti navedeni istim redosledom kako je napisano u parametrima funkcije.

Argumenti mogu biti svaki valjani C izraz: konstanta, varijabla, matematički ili logički izraz ili druga funkcija (neka koja vraća vrednost).


Pozivanje funkcija


Funkcije se pozivaju jednostavnim navođenjem njihova imena i argumenata:

ime_funkcije(argument1, argument2,...)

Funkcije - primeri

1)Izračunavanje hipotenuze:
#include
float hip(float,float);
main(){
float c,a,b;
printf("unesi katete:");
scanf("%f%f",&a,&b);
c=hip(a,b);
printf("\n c=%.2f",c);
getch();
}

float hip(float x,float y){
return sqrt(x*x+y*y);
}

2)Izračunaj: 1!+2!+3!+...+n!
long fakt(int);
main(){
long n,s;
int i;
printf("Unesi n:");
scanf("%ld",&n);
s=0;
for(i=1;i<=n;i++) s+=fakt(i);
printf("\nSuma faktorijela je:%ld\n",s);
getch();
}
long fakt(int n){
long i,s=1;
for(i=1;i<=n;i++)s*=i;
return s;
}

Funkcije - zadaci za vežbanje

1. Napisati program koji pomoću funkcije koja računa sumu brojeva od 1 - n izračunava formulu.
F= (1+2+ ... + n)(1+2+ ... +m)/(1+2+...+n*m).

2. Napiši program koji računa sumu S = 1! + 2! + ... + n! , ako se koristi funkcija za faktorijel broja.

3. Napisati program za izračunavanje sume s kvadrata parnih i i kubova neparnih prirodnih brojeva od n do m.

4. Prikazati sve prirodne brojeve manje od n koji su deljivi sa 11. n se unosi preko tastature.

5. Prikazati sve prirodne brojeve manje od n koji su deljivi sa 3 i 4. n se unosi preko tastature.

6. Prikazati sve prirodne brojeve manje od n koji su deljivi sa 3 a nisu sa 4. n se unosi preko tastature.

7. Prikazati sve prirodne brojeve manje od n koji su deljivi sa 3 ili sa 4. n se unosi preko tastature.

понедељак, 23. новембар 2009.

Ciklus while()

Broj ponavljanja ciklusa određuje se uslovom koji se nalazi ispred tela ciklusa. Zato while ciklus zovemo ciklus sa preduslovom. Tok izvršavanja ciklusa je sledeći:

while( uslov )
{
telo ciklusa
}


1. Provera usova, ako je uslov tačan ide se na naredbe tela ciklusa, ako nije prekida se sa radom while ciklusa
2. Izvršava se telo ciklusa (u njemu se mora voditi računa o parametrima koji ulaze u uslov da bi on nekad postao netačan i prekinuo ciklus)
3. Ponovo provera uslov-a, pa zatim ponavljamo tačku 2, 3, 2, ... sve dok uslov ne postane netačan. Tada se prekida while() ciklus.

Možemo zaključiti da kod ciklusa sa preduslovom, ako uslov nije tačan u prvoj proveri telo se neizvršava ni jedanput.

Pr1.

ch='k';
while (ch!= 'd' && ch!='D') ch=getch();

u ovom primeru se unosi znak po znak, sve dok se ne unese malo ili veliko slovo 'D'.

Pr2.

Na koji način možemo obezbediti, da prilikom unosa znaka (D/N) korisnik unese jedan od ta dva znaka,ako pogreši, vraća se da ponovo unese znak sve dok unos ne bude ispravan.

ch=getche(); /*ucitava znak i prikazuje ga na ekranu */
ch=toupper(ch); /* konvertuje ch u veliko slovo */
while (ch!='D' || ch!='N'){

printf("\nPogresno unet znak, unesite ponovo: ");
ch=getche();

}

Pr3.

Napisati program za unos teksta sa tastature sve dok se ne unese tačka ' .' , na kraju se prikazuje poruka koliko znakova sadrži rečenica

main(){

int ch, n=0;
ch=getche();
while(ch!='.'){

ch=getche();
n++;

}

printf("\nRecenica sadrzi %d znakova\n",n);

}

Zadaci sa while() ciklusom

14. Računati sumu prirodnih brojeva 1, 2, ..., n sve dok vrednost sume ne dostigne vrednost veću od 1.000.000.000 , prikazati koliko je brojeva sumirano.
Rešenje

15. Napisati program za približno računanje sume:

Formula sume

Sumirati do prvog člana (uključujući i njega) koji je po apsolutnoj vrednosti manji od unete vrednosti eps.
Rešenje

16. Napisati program kojim unosimo tekst do pojavljivanja znaka '.' . Prikazati broj pojavljivanja slova 'A' i izraziti tu vrednost procentualno u odnosu na sve unete znake.
Rešenje

17. Napisati program koji određuje broj unetih linija u ulaznom tekstu. Unos teksta traje dok se ne naiđe na znak EOF (end of file)

Rešenje

18. Napisati program kojim unosimo tekst do pojavljivanja znaka '.' . Prikazati broj pojavljivanja malih slova, broj pojavljivanja velihih slova i br pojavljivanja svih ostalih znakova. Izraziti te vrednosti procentualno u odnosu na sve unete znake. (Rešenje)

среда, 14. октобар 2009.

BIOS

BIOS је osnovni ulazno-izlazni sistem (Basic Input Output System). Čini ga skup programa namenjenih komunikaciji sa hardverom računra. Pomoću BIOS-a se postavljaju osnovni radni parametri, pronalazi i učitava operativni sistem. Pisan je u asembleru (prog. jezik)i prilagođen određenom hardveru.

- Smešten u ROM memoriji
- Pokreće se odmah po startovanju računara
- Najpre testira memoriju, zatim ostale uređaje
- Proverava gde je smešten operativni sistem (uvek na spoljnoj memoriji: proverava najpre disketu, zatim HDD) i učitava ga u memoriju (RAM)

Operativni sistem

Skup sistemskih programa koji upravljaju radom računara i omogućavaju komunikaciju sa korisnikom. Svrha računara je izvršavanje programa. Znači taj program treba na neki način pokrenuti, nahraniti ga podacima, negde sačuvati izlazne informacije, imati mogućnost štampanja rezultata, ali i mogućnost prekida rada programa. Sve te zahteve obavlja operativni sistem, tako što naredbe korisnika prevodi u oblik koji računar može da razume i izvrši. Osnovne namene OS su:
- upravljačka – upravlja hardverom tako što koordinira rad mikroprocesora sa ostalim uređajima;
- uslužna – izvršava komande korisnika

Operativni sistemi se mogu klasifikovati na više načina, a najčešće se to vrši na jedan od četri načina:
- prema načinu zadavanja komandi: grafički OS i OS komandnog tipa
- prema broju korisnika: jedno- ili višekorisnički
- prema broju programa koji se istovremeno izvršavaju – jedno ili višeprogramski
- prema prenosivosti: prenosive i neprenosive


VRSTE OPERATIVNIH SISTEMA

DOS – osamdesetih standard za sve PC. OS komandnog tipa, jednokorisnički i jednoprogramski. Težak za rad, ali osnova za pojavu mnogih drugih OS.
WINDOWS – od 1990.god. Grafičko okruženje, višeprogramski rad.
UNIX – za računare velike i srednje snage. Složeniji od Windowsa, omogućava višeprogramski i višekorisnički rad
LINUX – varijanta UNIX-a. Podržava i komandni i grafički način rada. Višekorisnički i višeprogramski režim rada.


DOS
UPRAVLJANJE PODACIMA

Čuvanje podataka je (počev od DOSa) organizovano na poseban način: podaci se zapisuju u datoteke, a one se organizuju pomoću kataloga.

Obrada podataka se završava dobijanjem rezultata, ali oni imaju privremeni karakter jer su smešteni u RAM memoriji. Zapisivanje na uređaje spoljne memorije potrebno je sve podatke, program i informacije povezati u celinu koja se zove DATOTEKA (file). To e osnovna jedinica sa kojom OS može da radi.
Ime datoteke sastoji se iz dva dela:
ime.tip
Ime ne sme imati više od 8 znakova, počinje slovom i ne sme biti razmaka u imenu
Tip sadrži tri znaka i daje dopunsku informaciju o sadržaju datoteke:
.DOC .TXT Tekstualna datoteka
.COM .EXE Izvršna datoteka
.SYS Sistemska
.BAT komandna

Datoteke se zapisuju na spoljnomemorijske uređaje. Svakom sm uređaju OS dodeljuje logičko ime, ili identifikator.
Identifikacija uređaja:
A: prva disketna jedinica
B: druga disketna jedinica
C: prvi čvrsti disk
D: drugi čvrsti disk(ili CD čitač)
E: CD čitač

KATALOZI (direktorijumi) je spisak svih datoteka koje se nalaze na nekom uređaju, njihove veličine, ekstenzije (tipovi), datumi kreiranja i poslednjeg pristupa. Radi lakšeg snalaženja u okviru osnovnog kataloga kreira se veći broj podkataloga (poddirektorijuma) u kojima se čuvaju podaci o datotekama i same datoteke. Najbolje je grupisati ih po tipu.

Naredbe
• Promena radne jedinice C:/ A:
• Naredbe za rad sa katalozima:
– MD ili MKDIR kreiranje novog kataloga
– CD ili CHDIR promena radnog kataloga
– RD ili RMDIR brisanje kataloga
– DIR ispis sadrzine kataloga (/p po stranama, /W u vise kolona, *.doc – samo sa ekstenzijom doc
– REN staro_ime novo_ime promena imena datoteke
– DEL ime_datoteke brisanje datoteke
– TYPE dat listanje sadr\aja datoteke