Programiranje
Napisano na 10/27/2007 - 13:40, napisao katarina
Programiranje (en. programming) je vještina pomoću koje korisnik stvara i izvršava algoritme koristeći određene programske jezike da bi napravio računarski program. Programiranje sadrži elemente umjetnosti,znanja, matematike i konstruiranja.
U matematici i računarskoj nauci algoritam je određeni skup definiranih naredbi za obavljanje nekog zadatka. Algoritmi se koriste u računarskim programima kao način rješavanja nekog zadatka. Algoritam može značiti i grafički prikaz toka obrade ili skup instrukcija računarskog programa (tad se naziva dijagram toka). On predstavlja vodilju za programera koji pomoću algoritama predstavlja viziju programa koji želi napisati u programskom jeziku.
Koncept algoritma se obično ilustrira pojednostavljeno, iako je u stvarnosti kompliciran. Algoritmi sadrže stepenice koje se ponavljaju ili zahtijevaju odluke koje propisuje programer. Koncept algoritma je dobio formu 1936. preko Turingovih mašina i Alonzo Churchovog lambda calculusa, koji su praktično udarili temelje računarske nauke. Većinu algoritama je moguće implementirati u računarski program.
PROGRAMSKI JEZIK
Programski jezik je formalni jezik za prezentaciju računalnih programa. Pomoću njega se računalnom sistemu, čovjeku čitljivim tekstom, daju instrukcije i naredbe za izvršenje unutranjih zadataka, opis ulaznih i izlaznih podataka kao i njihovu strukturu u zavisnosti od unutrašnjih (u sistemu) i vanjskih (izvan sistema) događaja.
Do danas napravljeno je tisuće programskih jezika, dok je samo nekoliko od njih postalo poznato i dostupno širokom krugu korisnika. Neki su više usmjereni za rješavanje određenog zadatka, dok su sveobuhvatniji programski jezici (kao C programski jezik) mnogo poznatiji i češće u primjeni.
Elementi jednog programskog jezika
•Obrada ulaznih podataka
Podatke preuzeti sa tastature, iz datoteke ili nekog drugog izvora.
•Obrada izlaznih podataka
Podatke predati monitoru, datoteci, bazi podataka ili nekom drugom medijumu.
•Matematička obrada podataka
Podatke obraditi pomoću matematičke operacije,npr: zbrajanje, oduzimanje ili dijeljenje.
•Poređenje i izbor
Provjera određenih mogućnosti i kontrola izvršavanja naredbi.
•Ponavljanje
Posebnim pravilima regulirano ponavljanje izvršenja naredbi (obično sa varijacijama podataka ili pravila ponavljanja).
KLASIFIKACIJA PROGRAMSKIH JEZIKA
1.Prva generacija (Mašinski jezici)
2.Druga generacija (Asembler jezici)
3.Treća generacija (Jezici višeg ranga)
4.Četvrta generacija (Objektni i jezici posebne namjene)
Svaki programer piše programski kod u nekom programskom jeziku. Različiti programski jezici podržavaju različite stilove programiranja (programska paradigma). Različiti programski jezici zahtjevaju različite razine znanja, umijeća i detalja koje programer treba posjedovati.
Jedini programski jezik koji programer može direktno izvršavati je mašinski jezik (mašinski kod ili binarni kod). U počecima računarstva programeri su pisali u mašinskom kodu, što je bilo vrlo komplicirano i zamorno. Sljedeći korak u razvoju računarskog programiranja ogleda se u upotrebi simboličkih jezika, poznatih pod zajedničkim nazivom asembler. Asemblerski jezici sastoje se od jednostavnih instrukcija koje se direktno i jednoznačno mogu prevesti u mašinski kod koji se direktno izvršava. Iako mnogo pogodnije i od mašinskog programiranja, asemblersko programiranje karakterizira velika količina posla koju programer mora obaviti, zbog činjenice da su operacije i dalje elementarne. Zbog toga su stručnjaci stvorili programske jezike više razine pomoću kojih se piše izvorni kod koji se u mašinski kod prevodi posredstvom specijalnog programa poznatog pod nazivom programski prevodioc ili kompajler.
C programski jezik
C programski jezik spada u proceduralne programske jezike koji je razvijen u ranim 70-im godinama 20. stoljeća. Autor ovog programskog jezika je Dennis Ritchie, no značajan doprinos nastanku C-a dali su Ken Thompson kao autor programskog jezika B i Martin Richards, autor programskog jezika BCPL. Dennis Ritchie je stvorio ovaj programski jezik za rješavanje praktičnih problema kodiranja sistemskih programa i jezgre operativnog sistema UNIX, koji je praktički u cijelosti napisan u C-u.
Programski jezik C dosta se mijenjao tijekom godina te je u više navrata neformalno i formalno standardiziran. Prva važnija inačica poznata je pod nazivom "K&R C", što je engl. kratica prezimena dvaju autora najpoznatijeg C priručnika "The C Programming Language", a to su Brian Kernighan i Dennis Ritchie. Prvo izdanje te vrlo sažeto i precizno pisane knjige koje datira iz 1978. godine ujedno je de facto standardiziralo jezik u 70-ima. Drugo izdanje iz 1988. godine opisuje "ANSI C", standard kojeg je 1983. godine definirao američki nacionalni institut za standardizaciju, a koji je i danas najbolje podržan. Aktualni ISO/IEC standard skraćeno poznat kao "C99" podržava u cijelosti samo jedan manji dio komercijalnih proizvođača softvera.
Kao jedan od najvažnijih jezika u povijesti komercijalne računalne industrije, C je do danas ostao jedini programski jezik prilagođen za sve računalne platforme, od malih sustava pa do mrežnih superračunala. Programi napisani u njemu vrlo su bliski načinu rada hardvera te u načelu zahtijevaju od programera dobro razumijevanje rada procesora, memorije, ulazno-izlaznih sklopova itd. No, rad s registrima procesora i adresiranje memorije apstrahirani su pomoću koncepta varijabli i pokazivača što uz eksplicitne kontrolne strukture i funkcije znatno olakšava programiranje u odnosu na izravno programiranje u strojnim jezicima.
Tijekom 1980-ih, Bjarne Stroustrup zajedno s drugim istraživačima u Bell Labs proširuje C dodavajući sposobnosti objektno orijentiranog programiranja, a naziv ovog novog programskog jezika je C++. Nažalost, ta je stopostotna kompatibilnost ujedno i razlog što su problemi koje programiranje u C-u nosi sa sobom naslijeđeni u C++-u. Efikasno i sigurno programiranje u C-u vrlo je zahtjevna vještina koja traži višegodišnje iskustvo pa je stoga C jezik koji se ne preporučuje početnicima, posebice ako im programiranje nije primarni posao.
Mnogobrojni problemi vezani prije svega za upravljanje memorijom koje programer mora sam eksplicitno kodirati razlog su da je danas većina novih korisničkih aplikacija napisana u nekom modernijem jeziku koji ima ugrađeno automatsko upravljanje memorijom (engl. garbage collection), ne dopušta izravan rad s memorijom pomoću pokazivača te ima podršku za upravljanje kodom odnosno njegovom okolinom za vrijeme njegova izvođenja. Danas se rijetko ukazuje potreba za pisanjem novih korisničkih aplikacija izravno u C-u, pa čak i u vrlo malim sustavima kao što su primjerice mobilni telefoni. Glavno područje njegove uporabe su sistemski programi na strani poslužitelja (engl. servers), programi prevoditelji (engl. compilers) i jezgre operativnih sustava (engl. operating system kernels), gdje je potreba za najvećom mogućom brzinom izvođenja, efikasnom kontrolom resursa i izravnom kontrolom hardvera od primarne važnosti.



hmm.. ovaj odlomak o C-u..
http://bs.wikipedia.org/wiki/C_%28programski_jezik%29
http://www.hehehe.pl/hr/Bell%20Labs
i ima jos nekoliko sajtova sa istim odlomkom..
tesko je utvrditi koji je izvorni.. a ako tvoji nije, citiraj.
Pa nek ga onda ima i ovaj :)
Pitanje koji je zapravo pravi izvor, jer ima jako puno odlomaka gotovi identičnih (samo izmjenjen red riječi). A i nije čisti copy-paste već su ispravljene pogreške i predeven je na "čišći" hrvatski pa nek ostane ako nikom ne bude smetalo...
Nice post really informative.While looking for some home business to do on computers i found your site interesting and good for reading.Thanks for sharing.
Technology is an increasingly influential domain name registration factor in education. Computers and mobile phones are used in developed countries both to complement established education practices and develop new ways of learning such as online education web site design(a type of distance education). This gives students the opportunity to choose what they are interested in learning. The proliferation of computers also means the increase of programming and blogging. Technology offers powerful learning tools that demand new skills and understandings of students, including Multimedia, internet marketing and provides new ways to engage students, such as Virtual learning environments. Technology is being used more not only in administrative duties in education but also in the instruction of students. The use of technologies such as PowerPoint and interactive whiteboard is capturing the internet phone attention of students in the classroom. Technology is also being used in the assessment of students. One example is the Audience Response System (ARS), which allows immediate feedback tests and classroom discussions.