Professional Documents
Culture Documents
Vjezba 2
Vjezba 2
#2
Algoritmi i programiranje
Osnove rada sa razvojnim okruenjem - Visual Studio
mr. sc. Ante Gali, dipl. ing.
Juraj Fosin, dipl. ing.
Mario Bunti, mag. ing. traff.
1 | stranica
Priprema vjebe
MS Visual Studio
Razvojna okolina MS Visual Studio namijenjena je razvoju aplikacija u razliitim viim
programskim jezicima ukljuujui i C# kojim emo se mi koristiti na ovom kolegiju.
Sastoji se editora za unos programskog kda i alata za prevoenje, pokretanje te
ispravljanje napravljenog programa. MS Visual Studio u sebi ima ugraenu podrku za
razliite tipove programa. Tokom prvog dijela kolegija raditi emo sa programe s
tekstualnim sueljem (Console Application), a tokom drugog programe sa grafikim
sueljem (Windows Forms Application).
Kreiranje programa
MS Visual Studio sadri ve gotove predloke za izradu aplikacija raznih vrsta
ukljuujui aplikacije sa tekstualnim sueljem. Kreiranje aplikacije sa tekstualni
sueljem radi se u nekoliko koraka:
0. Pokretanje MS Visual Studia
Start -> Microsoft Visual Studio 20XX -> Microsoft Visual Studio 20XX
1. Kreira se projekt
New Project
2. Odabire se predloak programa
Visual C# -> Windows -> Console Application (kod kreiranja aplikacija sa
grafikim sueljem odabere se predloak Windows Form Application)
3. Izabire se ime programa
Name = Naziv projekta (Naziv zadatka npr. Zadatak01)
Solution name = Naziv rjeenja (Naziv vjebe npr. Vjezba01) jedno
rjeenje moe u sebi sadravati vie od jednog projekta.
4. Pritisak na gumb OK
2
3
1
4
2 | stranica
Metoda Main.
Program se poinje
izvravati ovdje
Pokretanje
programa
Popis
sintaksnih
pogreaka
Postavljanje toke
prekida lijevom
tipkom mia
3 | stranica
Tip
bool
char
float
double
int
Reprezentira
Binarnu vrijednost
16-bitni UNICODE znak
32-bitni broj sa plivajuim
zarezom
64-bitni broj sa plivajuim
zarezom veeg opsega
32-bitni cijeli broji
Raspon vrijednosti
True ili False
U +0000 do U +ffff
-3.4 x 1038 do
+ 3.4 x 1038
(+/-)5.0 x 10-324 do
(+/-)1.7 x 10308
-2,147,483,648 do 2,147,483,647
Predefinirana
vrijednost
False
'\0'
0.0F
0.0D
0
U prvom sluaju radi se samo o deklaraciji varijable, dok joj se u drugom primjeru u
istom trenutku dodjeljuje i vrijednost. Vrijednost mora biti istog tipa kao i tip varijable.
Uitavanje vrijednosti
Prilikom unosa podataka u raunalo sve se prvo prikazuje podatkom tipa string
odnosno nizom znakova ili podatkom tipa int odnosno cijelim brojem ako se radi o
uitavanju samo jednog znaka. Za uitavanje podataka je tako mogue koristiti sljedee
metode (sastavni dijelovi sistemske metode Console namijenjene za rad sa tekstualnim
sueljem odnosno konzolom):
Console.Read() - ita znak po znak i vraa podatak tipa int koji predstavlja znak
iz UNICODE standarda (npr. ako upiete znak A dobiti e te vrijednost int-a
65). Ako uitana vrijednost vrati -1 znai da vie nema podataka za proitati.
Console.ReadLine() - ita niz znakova i vraa podatak tipa string.
Za pretvorbu uitanog podatka u eljeni format podatka potrebno je koristiti metodu
Convert za pretvorbu podataka. Radi se o sistemskoj klasi iz imenikog prostora
System. Metoda Convert podrava sljedee bitne pretvorbe formata podataka
(poetni tip podatka je string):
Convert.ToBoolean() -> u logiku varijablu;
Convert.ToInt32() -> u cijeli broj duljine 8 byte;
Convert.ToDouble() -> u broj sa plivajuim zarezom;
Convert.ToChar() -> u znak;
Kao ulaznu varijablu za metodu Convert mogue je iskoristiti rezultat koji vraaju
metode za itanje sa konzole. Situacija je vidljiva u sluaju kda za itanje podatka tipa
int:
// koristenje metode ReadLine
int cijeliBroj;
cijeliBroj = Convert.ToInt32(Console.ReadLine());
Potrebno je primijetiti da je cijeli broj (cijeliBroj) potrebno pretvoriti u niz znakova pri
emu dananji prevodioci to rade automatski. Kod formatiranog ispisa podataka mogue
5 | stranica
je dodavati opcije izgleda ispisa. Opcije ukljuuju broj decimala za ispis, poravnanja u
tekstu, razmak prema prethodnom tekstu i sl. Primjer formatiranog ispisa broja PI na tri
decimale dan je sljedeim kodom:
// ispis podataka
Console.WriteLine("Broj PI: {0,0:#.###}", Math.PI);
Grananje - if naredba
Prilikom izrade programskog kda za rjeavanje razliitih problema esto je potrebno
donositi odluke radi odabira niza potrebnih naredbi za ispravno rjeavanje problema.
Potrebna odluka odnosno grananje u programskom kdu mogue je rijeiti koritenjem
if naredbe i pripadnih opcija.
if (uvjet)
{
//Ovaj dio kda e se izvriti ako je uvjet True
}
//Ako je uvjet False program se samo nastavlja izvravati u ovoj toci
Komentari
Komentari slui pojanjavanju dijelova kda. Njih prevoditelj tokom kreiranja izvrne
verzije programa ignorira. Komentari se u programskom jeziku C# piu na dva naina:
Komentari u jednom retku (//) -> sve iza dvije kose crte u istom retku je
komentar
Komentari za blok naredbi (/* */) sve unutar kosih crta i zvjezdica je
komentar
Primjeri komentiranja prikazani su ispod:
//Ovo je komentar
/*
Ovo je komentar
i ovo
...
*/
6 | stranica
Zadaci za vjebu
1. Zadatak
Napiite program koji ispisuju poruku Pozdrav iz programskog jezika C#! i u novom
retku Dobro doli na Algoritme i programiranje! i pokrenite program.
Rjeenje:
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Threading.Tasks;
namespace Vjezba01_Zadatak01
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Pozdrav iz programskog jezika C#!");
Console.WriteLine("Dobro doli na Algoritme i programiranje!");
Console.ReadKey(); //Zadrava konzolu otvorenom nakon izvravanja programa
}
}
}
7 | stranica
2. zadatak
Napiite program koji za dva uitana broja (broj1 i broj 2) ispisuje njihovu sumu,
umnoak, razliku te kvocijent. Ispis formatirati tako da svaki ispis bude u svom retku, te
se ispisuju i operandi i operator. Npr. za razliku je potrebno ispisati 16 - 10 = 6.
Dijagram toka za rjeavanja zadatka prikazan je na Slika 5.
8 | stranica
Rjeenje:
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Threading.Tasks;
namespace Vjezba01_Zadatak02
{
class Program
{
static void Main(string[] args)
{
int broj1;
int broj2;
Console.Write("Unesite vrijednosti 1. broja: " );
string s1 = Console.ReadLine();
Console.Write("Unesite vrijednosti 2. broja: " );
string s2 = Console.ReadLine();
broj1 = Convert.ToInt32(s1);
broj2 = Convert.ToInt32(s2);
int
int
int
int
Console.WriteLine(broj1
Console.WriteLine(broj1
Console.WriteLine(broj1
Console.WriteLine(broj1
+
+
+
+
"
"
"
"
+
*
/
"
"
"
"
+
+
+
+
broj2
broj2
broj2
broj2
+
+
+
+
"
"
"
"
=
=
=
=
"
"
"
"
+
+
+
+
suma);
razlika);
umnozak);
kvocijent);
Console.ReadKey();
}
}
}
9 | stranica
3. zadatak
Sastavite konzolni program Telefon za izraunavanje mjesenih trokova telefoniranja,
ako su poznati broj potroenih telefonskih impulsa, cijena impulsa i iznos telefonske
pretplate. U iznos telefonske pretplate uraunato je 100 besplatnih impulsa. Dijagram
toka za rjeenje ovog zadatka prikazan je na Slika 6.
10 | stranica
Rjeenje:
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Threading.Tasks;
namespace Vjezba01_Zadatak03
{
class Program
{
static void Main(string[] args)
{
Console.Write("Upiite broj potrenih impulsa: ");
int impulsi = Convert.ToInt32(Console.ReadLine());
Console.Write("Upiite cijenu impulsa: ");
double cijena = Convert.ToDouble(Console.ReadLine());
Console.Write("Upiite iznos pretplate: ");
double iznosPretplate = Convert.ToDouble(Console.ReadLine());
int visak = 0;
if (impulsi > 100)
{
visak = impulsi - 100;
}
double trosak = iznosPretplate + visak * cijena;
Console.Write("Potroeni iznos je " + trosak + " Hrk.");
Console.ReadKey();
}
}
}
11 | stranica