You are on page 1of 23

Algoritmi i programiranje

Program, pogreke kod programiranja, programski jezici

Program
Program je slijed naredbi koji opisuje kako rijeiti postavljeni zadatak Zadaci, rjeavanje, izraunavanje
Numeriki sustav linearnih algebarskih jednadbi, korijeni polinoma, integracija funkcije Simboliki (nenumeriki) ureivanje podataka, traenje i zamijena rijei u tekstu, izraunavanje najkraeg puta, prevoenje programa

Naredbe programa unos podataka


Osnovne operacije izraene naredbama programskog jezika
unos podataka: dohvat podataka sa tipkovnice, diska ili neke druge ulazne jedinice raunala
Unesi podatke: impulsi, cijena, pretplata // prirodni jezik
impulsi, cijena, pretplata

readln(impulsi, cijena, pretplata);

// Pascal

impulsi = int.Parse(System.Console.ReadLine()); // C# cijena = float.Parse(System.Console.ReadLine()); pretplata = float.Parse(System.Console.ReadLine());

Naredbe programa ispis podataka


Ispis podataka: prikaz na zaslonu, pohrana podataka na disk ili predaja na neku drugu izlaznu jedinicu raunala
Ispii podatak: trosak // prirodni jezik troak writeln(Troak iznosi , trosak, kn); // Pascal

System.Console.WriteLine("Trosak iznosi " + trosak.ToString + " kn"); // C#

Naredbe programa raunanje


Matematiki izrazi: varijable i raunske operacije
troak = pretplata + visak * cijena // matematiki jezik

troak = pretplata + viak * cijena

trosak = pretplata + visak * cijena; trosak = pretplata + visak * cijena;

// Pascal // C#

Naredbe programa ispitivanje uvjeta


Provjera: ispitivanje ispunjavanja postavljenih uvjeta i zavisno o rezultatu provjere nastavak izvoenja

if (total < 7) System.Console.WriteLine("Ukupna vrijednost je manja od 7") if (prviZnak != 'a') broj = broj + 1; else broj = broj / 2;

Ispunjavanje uvjeta
ako impulsi > 100 // prirodno-matematiki jezik onda viak = impulsi 100 inae viak = 0

if impulsi > 100 then visak = impulsi 100 else visak = 0;

// Pascal

if (impulsi > 100) // C# visak = impulsi - 100; else visak = 0;

Naredbe programa - ponavljanje


Viestruko ponavljanje izvoenja naredbi
Ponavljanje naredbi sve dok je uvjet ispunjen Ponavljanje naredbi s unaprijed poznatim brojem ponavljanja

Ponavljanje naredba while


Ponavljanje naredbi sve dok je uvjet ispunjen

while (total > max) { total = total /2; System.Console.WriteLine("Trenutna vrijednost iznosi: " + total); {

Srednja vrijednost unesenih brojeva


static void Main(string[] args) { int sum = 0, num, count = 0; double average; System.Console.Write ("Unesite cijeli broj (0 za kraj): "); num = int.Parse(System.Console.ReadLine()); while (num != 0) // za kraj petlje num = 0 { count++; sum += num; // sum = sum + num; System.Console.WriteLine(" Zbroj do sada iznosi " + sum); System.Console.Write("Unesite cijeli broj (0 za kraj): "); num = int.Parse(System.Console.ReadLine()); } System.Console.WriteLine(); System.Console.Write("Broj do sada unesenih vrijednosti: " + count); average = (double)sum / count; System.Console.Write("Srednja vrijednost je {0:0.000}", average); System.Console.ReadLine(); }

Ponavljanje naredba for


Ponavljanje naredbi s unaprijed poznatim brojem ponavljanja

for (int vr = 1; vr < 25; vr++) System.Console.WriteLine(Kvadrat od + vr + = + vr*vr); for (int br = 40; br > 0; br-=3) zb = zb + br;

Izraunavanje faktorijela
F = N! = 1 * 2 * 3 * ...... * N

static void Main(string[] args) { int f = 1, n = 5; for (int i = 1; i < n; i++) f = f * i; }

Osnovni tipovi podataka


Tip sbyte byte short ushort int uint long ulong float double decimal Pohrana 8 bita 8 bita 16 bita 16 bita 32 bita 32 bita 64 bita 64 bita 32 bita 64 bita 96 bita Najmanja vrijednost -128 0 -32,768 0 -2,147,483,648 0 -9,223,372,036,854,775,808 0 1.5 10-45 5.0 10-324 1.0 10-28 Nejvea vrijednost 127 255 32,767 65,535 2,147,483,647 4,294,967,295 9,223,372,036,854,775,807 18,446,744,073,709,551,615 3.4 1038 1.7 10308 7.9 1028

Programiranje
Postupak ralanjivanja postavljenog zadatka u jednostavnije podzadatke koji se na kraju postupka pojednostavljenja mogu izraziti osnovnim operacijama naredbi programskog jezika

Pogreke u programu i njihovo ispravljanje


Kod programiranja i izvoenja programa javljaju se pogreke (bugs)
Pogreke kod prevoenja programa Pogreke kod izvoenja programa Logike ili semantike pogreke

Traenje i ispravljanje pogreaka (debugging)


Otkrivanje pogreaka pokusima

Pogreke kod prevoenja programa


Uzrok je nepotivanje gramatikih pravila programskog jezika kod pisanja programa
U hrvatskom jeziku reenica zapoinje velikim slovom i zavrava tokom ovjek iz sadraja cijelokupnog teksta uz gramatiki krivo zapisanu rije ili reenicu razumije smisao

Program jezinog prevoditelja ispie poruku o pogreci i zavri prevoenje

Pogreke kod izvoenja programa


Pogreke se pojavljuju tek kod izvoenja programa Kod programskih jezika koji prevode i tumae program pogreke se javljaju tek kod tumaenja Pogreke kod izvoenja programa se nazivaju iznimkama (exceptions) i objavljuju se unutar dijalokog okvira preko kojeg kazuju to se dogodilo i kako se u tom sluaju program ponaa

Logike ili semantike pogreke


Uz postojanje logike, semantike pogreke, program se prevodi i izvodi bez pogreke, ali se dobije netoni rezultat Na izvoenje predani program nije program koji se je elio napisati

Otklanjanje pogreaka
Nakon pojave pogreke
Predvidi se uzrok pogreke Izvedu se izmjene u programu Program se ponovo predaje na prevoenje i izvoenje

Uz ispravnu pretpostavku moe se predvidjeti rezultat izmjene i ispraviti pogreka Uvijek postoji mogunost pogreke pa se programiranje moe promatrati kao postupak postepene izmjene programa radi ispravljanja pogreaka dok se ne postigne traeni rezultat

Prvi program
Po tradiciji je to program koji ispisuje Hej svijete. Program Hej svijete. zapisan u C#
class Hello { // main: ispisuje Hej svijete public static void main (String[] args) { System.Console.Writeline ("Hej svijete."); } }

Procjena kakvoe programskog jezika na temelju jednostavnosti pisanja i itanja programa Hej svijete Na poetku program u C# teko razumljiv poetniku

Ustroj programa u C#
Svi programi su sastavljeni od definicije klase proizvoljnog naziva
class NAZIV_KLASE { public static void main (String[] args) { NAREDBE } }

Znaenje rijei public static void e biti kasnije objanjeno

Znaenje rijei main


U svim programima main oznaava mjesto poetka izvoenja programa, iza kojeg se izvode naredbe od prve do zadnje, nakon ega se izvoenje zaustavlja Ne postoji granica na broj naredbi
u primjeru samo jedna naredba ispii (print) ispisuje poruku na zaslon raunala ili na pisa

Naredba System.Console.Writeline ispisuje poruku na zaslonu raunala


Poruka koja e se ispisati nalazi se unutar okruglih zagrada

Na kraju svake naredbe se treba nalaziti znak toka zarez (;)

Osnovna pravila pisanja programa u C#


Vitiaste zagrade se koriste za grupiranje naredbi
Vanjske vitiaste zagrade oznaavaju poetak i kraj definicije klase Unutarnje vitiaste zagrade oznaavaju poetak i kraj definicije main

Dvije kose crte // oznaavaju da iza njih slijedi komentar koji prirodnim jezikom objanjava to program radi
Kod prevoenja se komentar preskae, pa se prilikom izvoenja i ne izvodi

You might also like