Jump to content

Search the Community

Showing results for tags 'medium'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Balkan School Community
    • RAGEMP
    • SAMP
    • Promocije
    • Forum
    • Team Speak 3
    • BS League
  • Café
    • Forum eventi
    • Predstavite se
    • Tehnička podrška
    • Design
    • Kompjuteri i internet
    • Zabava
  • Balkan School Club's Diskusije
  • Starosjedioci's Forum | Starosjedioci
  • LjUd0v1's Diskusija o serveru
  • LjUd0v1's Ankete
  • LjUd0v1's Klubovske igre
  • LjUd0v1's Pravila kluba
  • LjUd0v1's Klubovci moji ?
  • Green™'s Dešavanja | by Green™
  • Green™'s Green ♥
  • Green™'s Eventi | by Green™
  • Green™'s Organizacije | by Green™
  • Green™'s Staff Team | by Green™
  • Green™'s Projekat | by Green
  • Medijski tehničar's MT | Zajednički forum
  • Medijski tehničar's MT | Crteži
  • Medijski tehničar's MT | Video montaža/animacija/snimanje
  • Medijski tehničar's MT | Grafički dizajn
  • Medijski tehničar's MT | Bitne stvari
  • Medijski tehničar's MT | Fotografija
  • Medijski tehničar's MT | Web dizajn
  • Supercell | Balkan School's BS | Clash Royale
  • Supercell | Balkan School's BS | Brawl Stars
  • Supercell | Balkan School's BS | Clash of Clans
  • Balkan School Community's [BS]
  • Balkan School Community's [BS]
  • Zamperi's 3. GTA San Andreas
  • Zamperi's 1. Balkan School
  • Zamperi's 2. Pitanja
  • Among Us Klub's Predlozi za klub
  • Among Us Klub's Obaveštenja i Pravila
  • Among Us Klub's Ekipa za igru
  • Among Us Klub's Diskusija
  • Among Us Klub's Pitanja
  • Among Us Klub's Konkurs za moderatora kluba
  • Purple Gang™'s [Purple] Ocenjivanje imovine!
  • RP klub's Test

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Lokacija


Ime_Prezime:


Ime_Prezime:

Found 13 results

  1. Čestitke svima koji su ispravno rešili prethodne izazove - za one koji nisu, imaju još vremena do kraja eventa! Onaj ko reši sve izazove, a pritom je prvi rešio poslednji izazov, biće nagrađen Vip level-om 6 na SA:MP serveru, specijalnom promenom imena, ali i jednom, naravno, neočekivanom nagradom. Odlično smo se snašli radeći farmera - Verujem da ste svi pristojno vratili vozilo nazad do farme nakon uspešno obavljenog prethodnog izazova. Da biste mogli da se pohvalite da ste rešili izazov broj 4, potrebno je da se popenete na brdo iznad farme, do kolibe u kojoj se vrši prerada droge, počevši od RENT kućice kod farmera, a sve to u roku od 90 sekundi na nogama. Dalja uputstva očekujte uskoro. NAPOMENE: - Do kraja kompletnog eventa, svi odgovori će biti sakriveni. - Izazov morate u potpunosti snimiti i poslati u odgovoru ove teme. Zabranjeno je na bilo koji način editovati snimak, pa čak i dodavati muziku itd. Slike se NE PRIHVATAJU. - U editu vašeg odgovora ćete dobiti povratnu informaciju da li ste na pravilan način rešili izazov. - Izazov rešavate na vama najlakši način, s tim što ne smete izazov rešavati na načine koji su zabranjeni pravilima izazova. - Video snimak morate uplodovtati na YT i tako ga poslati. ZABRANJENO je dodavanje hiperlinkova na snimke jer se to kosi sa pravilima foruma (dakle, u komentarima ove teme samo ostavite link video snimka, ništa više). PRAVILA IZAZOVA: - Zabranjeno je koristiti jetpack. - Morate imati upaljen /TIMESTAMP. - Zabranjeno je koristiti /goto. - Zabranjeno je koristiti sve ostale VIP/Promoter komande koje bi vam dale prednost. - Na početku i na kraju trčanja, MORATE napisati bilo šta u IC chatu kako bismo potvrdili vreme za koje ste rešili izazov, a naravno i vaš identitet. Korisnicima koji ne ispoštuju ovo pravilo snimak neće biti prihvaćen. - Kao olakšavajuću okoklnost, prilažemo vam mapu putanje: https://prnt.sc/0YlzwBcyz7GF
  2. Čestitke svima koji su ispravno rešili drugi izazov - za one koji nisu, imaju još vremena do kraja eventa! Onaj ko reši sve izazove, a pritom je prvi rešio poslednji izazov, biće nagrađen Vip level-om 6 na SA:MP serveru, specijalnom promenom imena, ali i jednom, naravno, neočekivanom nagradom. Pošto smo uspešno obnovili gradivo iz opšteg poznavanja igrice i njene mape, možemo preći na pripremu onoga što nam tek sledi. Da biste se pohvalili da ste rešili i izazov pod rednim brojem 3, biće dovoljno da se zaposlite kao farmer i odradite posao prevoza u roku od 180 sekundi. *Prevoz izvršite samo do fabrike u ZG-u, izazov ne zahteva vraćanje do farmera. Dalja uputstva očekujte uskoro. NAPOMENE: - Do kraja kompletnog eventa, svi odgovori će biti sakriveni. - Izazov morate u potpunosti snimiti i poslati u odgovoru ove teme. Zabranjeno je na bilo koji način editovati snimak, pa čak i dodavati muziku itd. Slike se NE PRIHVATAJU. - U editu vašeg odgovora ćete dobiti povratnu informaciju da li ste na pravilan način rešili izazov. - Izazov rešavate na vama najlakši način, s tim što ne smete izazov rešavati na načine koji su zabranjeni pravilima izazova. - Video snimak morate uplodovtati na YT i tako ga poslati. ZABRANJENO je dodavanje hiperlinkova na snimke jer se to kosi sa pravilima foruma (dakle, u komentarima ove teme samo ostavite link video snimka, ništa više). PRAVILA IZAZOVA: - Zabranjeno je koristiti /tunecar. - Morate imati upaljen /TIMESTAMP. - Na početku i na samom kraju vožnje, napišite BILO ŠTA u IC chatu kako bismo potvrdili vreme za koje ste završili izazov, a naravno i identitet. Korisnicima koji ne ispoštuju ovo pravilo snimak neće biti prihvaćen.
  3. Čestitke učesnicima koji su tačno odgovorili na protekla dva pitanja i tako stigli do trećeg koraka. Ukoliko Vam u odgovorima na neka od proteklih pitanja piše da ste odgovorili netačno, upamtite da imate pravo na 3 pokušaja po koraku. Ponavljam, da biste osvojili nagradu, morate tačno odgovoriti na svih 5 koraka. Elem, pravi izazov tek počinje. Prelazimo na sledeći zadatak koji glasi: Dok jastrebovi vazduhom dišu, po talasima stihovi se pišu.. Jednom je potonuo i nikada više, tako sa njim i istorija se briše. Ali nije on glavni lik u ovoj temi, šta se to tamo vidi u plavoj šemi? Čuje se zvuk izdaleka, čak i svetionik ga čeka! NAPOMENA: Do kraja Quest-a svi vaši odgovori će biti sakriveni!
  4. Građanin Balkan School republike Fikret Husnic je kupio imanje na kojem su posađene šljive. Odlučio je da započne biznis prodaje suvih šljiva. Međutim, Fikret zna da se u svežoj šljivi nalazi a% vode, a u suvoj šljivi b% vode. Napiši program koji pomaže Fikretu da izračuna koliko će dobiti kilograma suvih šljiva, od svježih. Ulazne vrijednost programa su a - procenat vode u svežoj šljivi, b procenat vode u suvoj šljivi, c - količina šljiva koju Fikret želi da osuši. Program štampa vrijednost k - količinu koju je Fikret dobio sušenjem. Primjer: Ulaz 72 20 100 Izlaz 35 Dakle, procenat vode u svježim šljivama je 72%, u suvim šljivama je 20%, a Fikret ima 100 kg svježih šljiva. Program treba da štampa vrijednost 35, tj. Fikret je dobio 35 kg suvih šljiva. Nemojte kopirati rešenja sa interneta i krasti tuđa rešenja, srećno sa rešavanjem.
  5. Laki Mančić obožava da radi trikove sa kartama, pa voli i da igre sa njima, ali je rešio da se oproba u nečemu drugačijem. On je želeo da napravi kulu od karata. Zadao je sebi cilj da napravi kulu od 10 spratova, što je za početnika poput njega veoma teško, ali ipak je pokušao. Gradeći redom spratove, shvatio je da neće imati dovoljno karata da napravi kulu sa 10 spratova, pa je rešio da sebi nabavi još karata. Pomozite Lakiju tako što ćete napisati program koji za unet broj n, koji predstavlja broj karata koje Laki ima, prikazuje broj spratova koje Laki može da napravi i koliko karata mu fali za sledeći sprat. Napomena: Laki uvek pravi pravilnu piramidalnu strukturu od karata kao što je prikazano u objašnjenju test primera. Test Primeri: Ulaz: 10 Izlaz: 2 5 Ulaz: 25 Izlaz: 3 1 Ulaz: 26 Izlaz: 4 14 Objašnjenje test primera: Na slici ispod se mogu videti kule sa 2 i sa 3 sprata, ispod slike je broj spratova, iznad broj karata potreban za tu kulu. Ukoliko Laki ima 10 karata on može napraviti kulu sa 2 sprata, i ostaće mu 3 karte viška, pošto je za 3 sprata potrebno 15 karata, razlika 15 i 10 je 5, što znači da Lakiju fali 5 karata za kulu od 3 sprata. Zabranjeno je kopiranje kodova sa interneta i kopiranje rešenja drugih korisnika foruma, ukoliko imate pitanja u vezi zadatka ostavite ih u odgovoru na ovu temu i srećno sa rešavanjem.
  6. Laki želi da uzme kredit od K dolara. Godišnja kamatna stopa na taj kredit je gk, ali kamata se računa nakon svakog meseca, ali ne na glavnicu, već na preostali iznos. Svakog meseca se vrši uplata rate r. Ovaj kredit se izmiruje u N jednakih rata, odnosno svakog meseca je isti iznos rate. Lakiju je potrebna pomoć, jer želi da zna koliki će biti iznos te rate, napišite program koji mu može pomoći oko toga. Ulazni podaci su K, gk i N, dok je jedini izlazni podatak iznos rate r, zaokružen na dve decimale. Test primer: Ulaz: 1000 12 2 Izlaz: 507.51 Objašnjenje test primera: Godišnja kamatna stopa je 12%, pa je mesešna kamatna stopa 1%. Nakon jednog meseca dug će iznositi 1000$ plus kamata od 1%, odnosno 10$, nakon čega se isplaćuje rata od 507,51$ i dug tada bude 502,49$. Nakon drugog meseca dug će iznositi 502,49$ plus kamata od 1%, što ukupno iznosi 507,51$, što je i rata koja se uplaćuje, pa ceo kredit biva izmiren.
  7. Laki_Mancic, igrač BalkanSchool server-a, voli unapred znati koji će level biti za određen broj dana, ali tu postoji problem. On zna unapred koliko će kog dana biti aktivan, ali ima problem izračunati to zbog promene broja respekta potrebnog za sledeći level i uticaja aktivne igre. Pomozite Lakiju tako što ćete napisati program koji za uneti Lakjiev trenutni level, trenutni broj respekata, broj dana nakon kojih želi znati level i broj sati aktivnosti svakog dana izračunava koji će level Laki biti i koliko će respekata imati nakon unetog broja dana. Ulaz programa: U prvoj linije ulaza se unose trenutni level i trenutni broj respekata. U drugoj linije ulaza se unosi broj dana nakon kojih želi znati level. ( U svrhu objašnjenja usvojićemo da je taj broj dana "n", nije obavezno tako nazvati promeljivu u programu ). U narednih n linija ulaza se unosi broj sati koliko će Laki biti aktivan kog dana. ( u prvoj od tih n linija, se unosi za prvi dan, u drugoj od tih n linija se unosi za drugi dan... u n-toj liniji od tih n se unosi za n-ti dan ). Izlaz programa: U jedinoj liniji izlaza ispisati dva broja. Level i broj respekta nakon n dana. Napomena: Svaki sat aktivnosti donosi respekt, takođe ne zaboraviti uračunati i uticaj aktivne igre. Posmatrati da se svakog sata dobije jedan poen aktivne igre, aktivna igra se resetuje svakih 24h, što znači da se svakog dana kreće od 0 poena, nagrade aktivne igre možete videti na slici ispod: Aktivna igra Test primeri: Objašnjene prvog test primera: Laki je level 1 i ima 0 respekata, prema ulazu. Želi da zna koji će level biti nakon jednog dan, a zna da će tog dana biti aktivan 8 sati. On će tog dana dobiti osam respekata, jedan respekt za svaki sat, plus će dobiti jedan respekt na trećem satu igre od Aktivne igre. Što znači da bi ukupno dobio 9 respekata, ali pošto je za level 2 potrebno 8, od postaje drugi level i ostaje mu jedan respekt. Ukoliko imate pitanja postavite u odgovoru na ovu temu. Srećno sa rešavanjem
  8. Pozdrav forumaši, danas obrađujemo jednu pa malo kompleksniju stvar u objektno-orijentisanom programiranju koja se zove polimorfizam. Polimorfizam u biti znači "nečega više", ali stručno rečeno, u programiranju polimorfizam je sposobnost nekog objekta ili metode da preuzme više formi. Polimorfizam se javlja kad imamo hijerarhiju klasa koje su povezane nasljeđivanjem. Nasljeđivanje je mehanizam u kojem jedna klasa nasljeđuje svojstva druge klase. Klasa je tip podatka i ona je nacrt za neki objekt, a objekt je naziv za skup svojstava koje možemo objediniti u jednu cjelinu. U sljedećem primjeru ćemo raditi programiranje kroz klase koje su u razdvojenim fajlovima. Imat ćemo header fajl u kojem će se nalaziti definicije funkcija, svojstva i metode, i .cpp fajl u kojem će se nalaziti implementacija. Pa idemo. Napravili smo klasu Osoba i ona je virtualna klasa. Virtualna klasa je klasa koja ima čistu virtualnu metodu, a čista virtualna metoda je metoda koja je jednaka nuli kao što vidimo ovdje. Virtualne metode se nalaze u baznoj klasi i koristit će se za redefinisanje u izvedenim klasama. Virtualne klase inače koristite kad iz nečega jednog možete izvući nešto više, kao što je ovdje osoba. Imate različite tipove osoba. Npr životinje, imate razne tipove životinja: pas, mačka i u tom slučaju koristite virtualne klase da ne zauzimaju memoriju. Klasa osoba ima zaštićene(protected) članove brLicneKarte i ImeiPrezime koji su tipa string i pošto su istog tipa možete ih staviti pod jednu cjelinu. Kad je član zaštićen(protected), njemu možemo pristupiti unutar klase ili klasa koja nasljeđuje. Ali kad klasa nasljedi taj protected član iz bazne, taj član u nasljeđenoj klasi postaje privatan(private) što znači da mu samo možete pristupiti unutar klase, a javnim(public) članovima možete pristupiti odakle god. Dalje, u klasi ispod public vidimo Osoba(); koja ima neke parametre. To Osoba(); se zove konstruktor i on je specijalna funkcija koja služi za inicijalizaciju objekta. Konstruktor se uvijek zove kao i klasa. A brLicneKarte i ImeiPrezime predstavlja naš objekt pa su oni parametri tog konstruktora. Onda imamo našu čistu virtualnu funkciju ispis, a u izvedenim klasama će biti samo virtualna. Dalje imamo destruktor i on služi za uništavanje objekta koji nam više ne bude potreban i time oslobađa memoriju. I zaboravio sam napomenuti pošto radimo sa stringovima, potrebno je uključiti biblioteku <string>. Također smo odmah u glavnoj klasi dodali i <iostream> i using namespace std da ih kasnije ne moramo posebno dodavati u svaki fajl. U cpp fajlu slijedi implementacija ovoga što smo napravili u header fajlu gdje smo deklarisali ove stvari. Sada ovo izgleda malo zbunjujuće ali nije toliko. Da bismo pristupili konstruktoru iz .cpp fajla, koristi se sintaksa Ime_klase : : Ime_konstruktora. Ovaj operator ": :" se naziva scope resolution i on baš služi za to pristupanje iz .cpp u header fajl. Znači sad inicijaliziramo naš objekt pomoću konstruktora. Vidimo ključnu riječ this i ona je pokazivač na tekući objekt i koristi se kad imamo ista imena za svojstva objekta i parametre konstruktora. Da smo kojim slučajem stavili drukčija imena za parametre npr. brojLKarte i ImePrezime, tada pokazivač this ne bi bio potreban i tada bi parametre dodijeljivali našim vrijednostima u klasi, znači brLicneKarte = brojLKarte i tako za ostalo. Metodu ispis ovdje ne implementiramo jer je ona jednaka nuli. Zatim imamo klasu Student koja nasljeđuje klasu Osoba. Ona za svoje zaštićene članove ima fakultet i smjer tipa string, i godina koju student pohađa tipa int. U javnim članovima imamo također konstruktor kojem prosljeđujemo parametre iz klase Osoba jer je Osoba njezina bazna klasa i parametre klase Student. Još imamo virtualnu metodu ispis. O virtualnoj metodi ćemo pričati pred kraj. I pošto klasa Student nasljeđuje klasu Osoba, potrebno je uključiti header fajl kao što vidimo gore Osoba.h. Dalje opet imamo inicijalizaciju našeg objekta Student. E sad, pošto je klasa Student nasljedila Osobu, mi smo u konstruktor Student morali proslijediti i svojstva klase Osoba kao parametre jer je student osoba u realnom svijetu, znači ima svoje ime i prezime. Kad nasljeđujete klasu i inicijalizirate objekt klase koja nasljeđuje, morate nasljediti konstruktor klase koju ste nasljedili, ali s tim da samo inicijalizirate polja klase koja nasljeđuje. Kao što vidimo u konstruktoru Student imamo parametre, brLicneKarte, ImeiPrezime, fakultet, smjer i godina. Potrebno je da samo inicijaliziramo fakultet, smjer i godinu jer smo ostale nasljedili od klase Osoba. I primijetili smo kad nasljeđujemo konstruktor bazne klase, nije potrebno u stavljati tip podatka. Kasnije će ovo biti još malo jasnije jer je trenutno na prvom još zbunjujuće. Sad smo implementirali metodu ispis. U razdvojenim fajlovima kad implementirate metodu, sintaksa ide potpis_metode(void, int itd...) ime_klase(Student) : : ime_metode. I unutar te metode smo obavili obični ispis i na kraju je destruktor ostao. Sad smo napravili klasu Radnik koja također nasljeđuje klasu Osoba. Radnik ima zaštićene članove brRadnihSati i cijenaSata tipa float. U javnim članovima se nalazi konstruktor koji isto ima svojstva klase Osoba kao parametre jer se klasa Osoba nasljeđuje i vlastite parametre. I ima virtualnu metodu ispis i metodu za računanje plate koja je privatna, znači pristup samo unutar klase. U implementaciji, konstruktor Radnik nasljeđuje konstruktor Osoba jer naravno radnik kao osoba ima broj lične karte i ime i prezime, ali je potrebno inicijalizirati samo vlastite parametre kao što vidimo. Znači poprima vrijednosti osobe brLicneKarte i ImeiPrezime koji su već prije inicijalizirani. Dalje, napravili smo metodu za računanje plate i pozvali je u metodi ispis. Svaka klasa će imati svoj ispis. Dalje imamo klasu Profesor koja je podpodklasa klase Osoba. Znači ona je izvedena klasa klase Radnik a klasa Radnik je izvedena od klase Osoba. Ona ima titulu i predmet tipa string za svoja svojstva koji su protected. Za public imamo metodu ispis i sad, pošto je ona izvedena klasa od Radnik koja je izvedena od Osoba, ona mora za parametre konstruktora uzeti svojstva klasa i Radnik i Osoba. Nije mi moglo sve stati u jednu sliku pa sam morao ovako. Znači sad u implementacionom fajlu, proslijedili smo parametre sve tri klase, ali smo inicijalizirali samo objekt Profesor s tim da smo sad morali nasljediti konstruktor Radnik jer je to klasa koju nasljeđujemo, ali nasljeđujemo parametre i klase Radnik i klase Osoba. Cijeli fazon ovoga se svodi na nasljeđivanje konstruktora. Dakle ukratko, ako radimo sa izvedenom klasom, u konstruktor proslijedimo svojstva bazne i izvedene klase kao parametre, nasljedimo konstruktor klase koju nasljeđujemo i njegove parametre i samo inicijaliziramo parametre izvedene klase jer su parametri bazne klase inicijalizirani prije. Ako radimo sa klasom čija je bazna klasa izvedena od više bazne klase, prosljeđujemo parametre te klase i svih viših klasa, ali nasljeđujemo konstruktor klase koju nasljeđujemo koja ima kao parametre tih ostalih klasa. Nadam se da je jasno. I nakon svega toga glavni program. Prvo moramo uključiti sve header fajlove. Zatim ide pravljenje objekata. Napravili smo objekt s1 klase Student koji ima broj lične karte 123, ime i prezime Pero Peric, ide na tehnicki fakultet smjera IT i treca godina. To su sve parametri tog konstruktora koji smo malo prije imali. I nakon toga zovemo metodu ispis za taj objekt. Isto tako za radnika i profesora napravili smo objekte sa svojim atributima i pozvali metode ispis. I nakon pokretanja programa, ovo je rezultat. Primijetili smo da svaki objekt poziva istu metodu koja se zove ispis ali ta metoda daje različit rezultat. Kako? Ako se sjećate one ključne riječi virtual. Šta ona zapravo radi? Kad kompajler u baznoj klasi nađe metodu koja u sebi nosi riječ virutal i recimo zove se ispis kao ovdje, i prije nego što pozove tu metodu, provjerit će da li u izvedenim klasama ima još metoda koja se zove ispis. Ako ima pozvat će je iz izvedene, a ako ne vraća se u baznu. E to je polimorfizam. Znači metoda i objekti koja se isto zovu ali se drukčije ponašaju. Ovo je bio malo duži tutorijal ali nadam se da je vrijedilo :).
  9. Inflacija u Balkan School republici je stabilnih a % na godišnjem nivou. Fikret, građanin Balkan School republike kupio je prije godinu dana automobil za b dolara. Sada želi da zamijeni automobil po principu staro za novo za isti takav automobil proizveden ove godine. Prodavnica mu za taj, stari automobil nudi c % trenutne cijene modela. Napiši program koji učitava cijele brojeve a (procenat inflacije), b (početna cijena vozila), c (koliko procenata od cijene prodavnica nudi), a štampa koliko novca Fikret mora doplatiti da bi kupio novo auto.
  10. Karta za jednu vožnju u metrou košta 15 dolara, karta za 10 vožnji 125 dolara, a karta za 60 vožnji 440 dolara. Planirate da obavite n vožnji. Koliko karata svakog tipa je potrebno kupiti da bi zbirna cijena bila minimalna, a zbirni broj vožnji n. Dakle, program učitava cijeli broj n - broj vožnji, i štampa 3 pozitivna broja, prvi koji pokazuje koliko karata za jednu vožnju treba kupiti, zatim drugi broj pokazuje koliko karata treba kupiti za 10 vožnji, i treći broj pokazuje koliko karata treba kupiti za 60 vožnji. Npr. za n=129, dakle 129 vožnji najjeftinije je kupiti 2 karte od 60 vožnji i 1 kartu od 10 vožnji, tj. izlaz je "0 1 2".
  11. Napisati program koji učitava prirodan broj, uzmimo da je oznaka tog broja n. Zatim, treba učitati n cijelih brojeva, i za svaki od učitanih brojeva štampati broj koji se dobija kada se iz učitanog broja obrišu sve cifre koje se pojavljuju više od jedan put. Ako se sve cifre broja ponavljaju više od jedan put, onda štampati 0. Npr. za broj 14341 treba štampati 3 (jer se cifre 1 i 4 ponavljaju, a 3 se pojavljuje samo jednom), za -198 se štampa -198 (jer se nijedna cifra ovog broja ne ponavlja), a za 1122133 štampati 0 (jer se sve cifre broja - 1, 2, 3 ponavljaju makar dva puta). Za rešavanje zadatka nije dozvljeno koristiti stringove i nizove.
  12. Programski jezik Java je kompletan objektno-orijentisani programski jezik, što znači da se cijelo programiranje ovdje vrši kroz klase pa čak i najjednostavniji program. Pošto je Java programski jezik ogroman, ja sam se odlučio da napravim tutorijal na jednu temu i meni jednu od najzanimljivijih stvari u objektno-orijentisanom programiranju (OOP) a to je nasljeđivanje. Nasljeđivanje je jedan od najvažnijih mehanizama u OOP i kao što samo ime kaže, sa ovim mehanizmom jedna klasa nasljeđuje svojstva i metode druge klase. Klasa koja nasljeđuje drugu klasu zove se izvedena ili derivirana klasa, a klasa od koje se nasljeđuje zove se bazna ili super klasa. Radi lakšeg razumijevanja često se koriste termini klasa roditelj (bazna) i klasa dijete (izvedena). Za razliku od pojedinih objektno-orijentisanih programskih jezika, nasljeđivanje u Javi se vrši jednostruko što znači da izvedena klasa može imati samo jednu baznu klasu. Nasljeđivanje u Javi možete vidjeti na sljedećim slikama. Dakle, napravili smo klasu Kalkulator koji ima jednu varijablu z tipa double. Imamo dvije public metode saberi i oduzmi koje očito sabiraju i oduzimaju dva broja i rezultat spremaju u varijablu z koju smo malo prije deklarisali. Metode naravno uzima dva parametra x i y koji će se sabrati i oduzeti i imamo ispis koji će ispisati vršenu operaciju i rezultat. Dalje smo napravili klasu ProsireniKalkulator koji ima nove metode: pomnozi i podijeli. Nasljeđivanje u javi se vrši ključnom riječi extend. Primjećujemo da se koristi varijabla z u ovoj klasi a nismo je deklarisali. Deklaracija naravno nije potrebna jer smo tu varijablu nasljedili iz klase Kalkulator. Kad smo obavili sve ovdje, idemo na glavnu klasu. U glavnoj klasi smo napravili jedan izbornik koji nam omogućuje da izaberemo koju operaciju želimo izvršiti. Također smo dodali jedan user input, to je ovo Scanner, a da bismo njega mogli koristiti potrebno je uključiti biblioteku za njega, a to je import na u gornjem dijelu programa. Najvažnija stvar je ovdje instanciranje objekta koji je označen crvenom strelicom na slici. Objekt smo nazvali pk a možete ga nazivati kako hoćete. Naravno koristimo prošireni kalkulator jer bazna klasa Kalkulator ima samo dvije metode saberi i oduzmi, a prošireni je to sve nasljedio. Dalje imamo unos dva broja i odabir operacije. Omogućili smo odabir, pozvali metode iz klase ProsireniKalkulator i pošto su metode uzimale dva parametra x i y, morali smo ih proslijediti ovdje. I to bi bilo to od mene.
  13. Poštovani programeri, U prvom izdanju nagradne igre imamo sledeći zadatak: Pravila nagradnih igara možete pročitati na sledećem linku - KLIK.
×
×
  • Create New...