JavaScript OOP Task

Pozdrav imam jedan zadatak za odraditi upitanju je javascript ali vjerujte mi da ja pojma nemam sta oni zele ovim zadatkom, ako bi mi neko mogao pomoci stvarno bi mu bio vrlo zahvalan :frowning:

Zadatak -
Kreirati klasu koja će se koristiti za instanciranje objekata oblika kocke. Definisati jednu metodu za izračunavanje zapremine kocke i drugu metodu za izračunavanje ukupne dužine svih stranica kocke.

Kreirati dva objekta nad kojima će biti pozvana svaka od kreiranih metoda.

Rezultati izračunavanja ovih metoda moraju biti pregledno prikazani na strani.

Napomena: Rad dostaviti kao zipovan HTML fajl.

https://jsbin.com/calirupuqa/edit?html,js,output

Evo ti za zapreminu, a za ostalo se sam potrudi :wink:

Inace koristio sam ES2015.

Btw vidim navedeni su neki objekti koji ce pozivati metode, vjerovatno se radi o nacinu sa prototype metodama, ali u ES2015 postoje klase koje su u biti syntax sugar za te prototype. :slight_smile:

2 Likes

Svaka ti cast pasa :smiley: a vjeruj trudim se vec 3 dana da svatim zadatak al jedva da ga svatam a kamoli da ga odradim :frowning: ako ima jos neko dobre volje da mi pomogne da ga zavrsim a tebi belmine stvarno hvala od srca ne znam kako da ti se zahvalim

https://jsbin.com/xenufijike/edit?html,js,output

Nadam se da je to to.

Druze svaka ti dala ! :smiley: al nije vode vec bukvalno :smiley: stvarno ti zahvaljujem u svakom pogledu…

S velikim postovanjem !

Na kojem faksu si dobio taj zadatak? :slight_smile:

Očekuješ gotovo rješenje, ili očekuješ da nešto naučiš?

Da li znaš napraviti najobičniju funkciju, koja će kao ulazni parametar dobiti vrijednost x, a kao izlaz će dati vrijednost opsega kvadrata čija je jedna stranica dužine x ?

Nece na faksu nauciti programiranje, jer mu tamo ubiju volju za zivotom sa fizikom i matematikom, koje su u programiranju bitne koliko je i bager bitan u mikrobiologiji :slight_smile:

Zadatak je veoma jednostavan, ali kladim se da profesori nisu culi za ES6 (2015), pa nece biti bas sretni sa ovim rijesenjem.

Ja sam mogao ukratko i objasniti, ali izgleda da mu nije to potrebno.

Belmine u ovom slucajno mislim da si u krivu. Zadnja dva semestra sam imao:

Programiranje u C++ su i radili smo C++11 sto je kolko sam skuzio najnovija verzija
Uvod u web tehnologije tu je bio obraden bootstrap onako dovoljno da ga skuzis kako radi
Trenutno slusam javu i radimo javu 8 koja je najnovija verzija jave

Tako da mislim da bi i u ovom slucaju profesor trebo znati za ES6. istina da ovo varira od faxa do faxa… No kolko sam skuzio vecina profesora na faxu imaju svoju firmu ili rade u nekoj firmi podrucje koje predaju

Ali recenica “Nece na faksu nauciti programiranje” je totalno istinita nauciti ces osnovne svega ali sve je to daleko od realnog koda i prakse…

Da na zalostmi nije prosao ovaj zadatak :frowning: da li ima neko volje da mi pomogne s ovim zadatkom stvarno me izludi vise :frowning:

Ovaj odgovor sam dobio

“Potrebno je da napravite dva objekta i da na oba primenite obe metode. Ukupno postoje 4 izazne informacije.”

Kako da ti se pomogne, ako se nezna u kojoj si fazi sa znanjem. Ponovit ću pitanje:

Mislim, ovo je ono što tebi treba:

var kocka=function(dimension)
	{
	this.x=dimension;
	return this;
	}
	

kocka.prototype.get_volumen=function()
	{
	return this.x*this.x*this.x;
	}

kocka.prototype.get_opseg=function()
	{
	return this.x*12;
	}


var kocka1=new kocka(10);
var kocka2=new kocka(20);

alert('Opseg kocke 1 je: '+kocka1.get_opseg());
alert('Opseg kocke 2 je: '+kocka2.get_opseg());
alert('Volumen kocke 1 je: '+kocka1.get_volumen());
alert('Volumen kocke 2 je: '+kocka2.get_volumen());

…ali imao sam najbolju volju da putem i nešto naučiš.

P.S. dva objekta su ti kocka1 i kocka2, klasa koja ih instancira je kocka.
Četiri izlaza su ti ova koja sam stavio u alert, vrijednosti izlaza su ti:
kocka1.get_opseg()
kocka2.get_opseg()
kocka1.get_volumen()
kocka2.get_volumen()

…na tebi je na koji način ćeš prikazati izlaze, ako ne putem alerta…

liniju return this.x*this.x*this.x; , možeš lijepše zapisati kao return Math.pow(this.x,3); , što je potenciranje na treću.

Aham, sada tek vidim da se iza ovog linka krije i tvoje rješenje.

Vjerovatno nije problem u nedostatku .prototype, to bi tehnički trebalo biti oboje ispravno. Ali ti si mu ponudio klasu, no nisi definirao dvije kocke i pozvao obje metode na obje kocke. Pa nije imao četiri izlaza. xd. (Što je njegov problem apsolutnog nerazumjevanja zadatka i osnova, ne u tvojoj soluciji)

No mala digresija i na tvoje rješenje. Nije baš praktično da “Kocka” govori “Moja zapremina je ta i ta”.

Kocka bi prvenstveno trebala imati atribute gdje direktno vraća vrijednost svoje zapremine ili opsega, a kako će se to pakirati u neki layout, o tome bi trebale brinuti druge metode, jer svojstvo kocke nije da govori. :wink: …pogotovo svojstvo obim ili zapremina nebi trebali “govoriti”.
Možda se čini trivijalnom razlikom hoće li se layout generirati simo ili tamo, ali zapravo je bitno.
Tvoja klasa bi bila daleko urednije postavljena da si sav tekst kreirao u metodi ispis, a da .obim() i .zapremina() vraćaju samo tražene vrijednosti.

Jer kako bi svoju klasu kocka nadogradio metodom tipa .get_double_obim()

Rješenje bi trebalo biti return this.obim()*2 , no kod tebe nebi moglo ići tako :wink:

“return this” u konstruktoru nije potreban.

1 Like

Da to za templating unutar same metode si upravu, mada nisam obracao paznju na to :slight_smile:

class Kocka {

	constructor(stranica) {
		this.stranica = stranica;
	}

	zapremina() {
      return Math.pow(this.stranica, 3);
	}
  
    obim() {
        return this.stranica * 12;
    }

	ispis() {
		const wrapper = document.getElementById('app');
		wrapper.innerHTML += `<p>${this.zapremina()}</p>`;
        wrapper.innerHTML += `<p>${this.obim()}</p>`;
	}
}

const instancaKocke = new Kocka(4);
// Ostale instance...


instancaKocke.ispis();

btw ovo intentadnje na forumu je shit…

I ja bih volio da znam na koji faks ide autor teme.


Copyright © 2022 WM Forum - AboutContact