1. naloga-Pravokotnik

1. naloga-Pravokotnik

Avtor: Maja Ban

Navodilo naloge:

Napišite razred Pravokotnik,ki ima podane dve stranici. Stranici sta celi števili. Razred naj vsebuje tudi objektne metode za izračun ploščine in obsega. Sestavite tabelo objektov tipa Pravokotnik z naključnimi, a smiselnimi podatki. Rešite naslednje naloge:

  • Izračunajte, koliko pravokotnikov ima ploščino manjšo od povprečne ploščine pravokotnikov v tabeli
  • Vse pravokotnike v tabeli, ki jih lahko, spremenite v kvadrate. Npr. pravokotnik s stranicami 4 in 6 lahko spremenite v pravokotnik (kvadrat) s stranico 5, pravokotnikov s stranicama 11 in 4 oz. 10 in 7 pa ne bo mogoče.
  • Iz žice izdelujemo modele pravokotnikov. Koliko m žice potrebujemo, če želimo narediti vse pravokotnike v tabeli, ker pravokotnik s stranicama 5 in 12 naredimo kot žični model s stranicama 5cm in 12cm.
  • Vsaj en (zaželjeno pa več) problem po vaši izbiri ... (opišite jih!)

Opis problema

Naloga od nas zahteva, da napišemo razred Pravokotnik, ki ima podani dve stranici, kateri sta celi števili. Ustvarimo tudi get in set metode, ki iz konstruktorja popravijo določene podatke ali pa jih dobijo. Z metodami izračunamo ploščino in obseg pravokotnika. Sestavimo tabelo tipa Pravokotnik z naključnimi, a smiselnimi podatki. Napisati je potrebno še metodo s katero bomo dodali na datoteko stranici a in b, ter metodo s katero bomo prebrali z datoteke. Potrebno je dodati metodo str, katera poskrbi, kako mora izgledati objekt, ko ga želimo izpisati.

Razlaga algoritma

  • Napišemo razred s parametroma a in b, ki predstavljata stranici pravokotnika
(slikaP1.jpg)
  • Napišemo metodo za dostop do stanj, to je metoda get. Ter metodo za nastavljanje stanj, ki pa je set.
(slikaP2.jpg)

  • V metodi set za stranico a, nastavimo stranico a:

- Vrednost nastavimo na začetku na 0

- Vrednost stranice a mora biti celo število, če pa ni število nam vrne izjemo, ter ustrezen komentar

- Če je vrednost manjša ali enaka od 0, potem nam tudi vrne izjemo s komentarjem

- Drugače pa je stranica a enaka vrednosti

(slikaP3.jpg)

  • V metodi set za stranico b, nastavimo stranico b

- V teji metodi preverjamo število b

- Če namesto števila vnesemo kaj drugega nam vrne izjemo, ter določen komentar

- Če je število b manjši ali enak 0, nam tudi vrne izjemo s komentarjem

- Drugače če je vneseno pravo število pa nam nastavi na to število

(slikaP4.jpg)

  • Objektno metodo za izračun ploščine dobimo tako, da stranici a in b pomnožimo med sabo, ter nam vrne ploščino pravokotnika

    (slikaP5.jpg)

  • Objektno metodo za izračun obsega pa dobimo tako, da 2 pomnožimo s stranico a ter prištejemo stranici b, ki je tudi pomnožena z 2

    (slikaP6.jpg)

  • Napišemo metodo dodajNaDatoteko, katera nam bo stranici a in b dodala na datoteko

- Odpremo datoteko za dodajanje

- Vpišemo stranico a z get metodo in uporabimo str

- Vpišemo ločilo podpičje, s katerim ločimo stranici a in b

- Vpišemo stranico b z get metodo in uporabimo str

- Vpišemo znak za v novo vrstico, da bo stranici za vsak pravokotnik vpisalo v novo vrstico

- Zapremo datoteko

(slikaP7.jpg)

  • Napišemo metodo preberiZDatoteke, s katero preberemo z datoteke

- Napišemo spremenljivko tabela, katera je na začetku prazna

- Datoteko odpremo za branje

- V vrstici odstranimo začetne in končne presledke

- Na prvo mesto v vrstici damo stranico a, na drugo pa stranico b

- Ustvarimo pravokotnik

- Povečamo za 1

- Datoteko zapremo

- Vrne tabelo

(slikaP8.jpg)

  • Napišemo metodo str, kako bo izgledal objekt, ko ga želimo izpisati

- Izgled objekta: a,b

(slikaP9.jpg)

  • Sestavimo tabelo objektov tipa Pravokotnik z naključnimi, a smiselnimi podatki. Pri temu izračunamo ploščino, povprečno ploščino, ter oboje izpišemo

- napišemo spremenljivko pravokotniki, katera predstavlja na začetku prazno tabelo

- plošino enačimo z 0, saj na začetku nimamo še nobene ploščine pravokotnika

- gremo od i do števila n

- ustvarimo pravokotnik pri akteremu je stranica a naključna od števila 1 do 5 in prav tako pri stranici b

- ploščini, katera je bila na začetku 0, dodamo ploščino prejšnjega pravokotnika (ustvarjenega pravokotnika)

- povprečno ploščino izračunamo tako, da ploščino delino s številom n

- izpišemo ploščino

- izpišemo povprečno ploščino

(slikaP10.jpg)

  • Za izračun, koliko pravokotnikov ima ploščino manjšo od povprečne ploščine pravokotnika v tabeli naredimo tako:

- Spremenljivko stevilo nastavimo na začetku na 0

- Gremo od i do števila n

- Če je trenutna ploščina od pravokotnika manjša od povprečne ploščine pravokotnika

- Spremenljivki stevilo doda 1

- Izpiše število koliko pravokotnikov ima ploščino manjšo od povprečne ploščine pravokotnikov v tabeli

(slikaP11.jpg)

  • Pravokotniki v tabeli, ki jih lahko spremenimo v kvadrate

- Gremo od i do števila n

- Dolžini stranice a prištejemo stranico b, ter tako dobimi doliži obeh stranic

- Če sta stranici sodi, stranici delimo s številom 2, ter dobimo stranico a, enako naredimo, da dobimo stranico b

(slikaP12.jpg)

  • Izdelava modelov pravokotnikov iz žice

- Uvedemo spremenljivko obseg, katera predstavlja obseg, ki je na začetku 0

- Gremo od i do števila n

- Spremenljivki obseg dodamo obseg ustvarjenega pravokotnika

- Obseg delimo s 100, da dobimo rezultat v metrih

(slikaP13.jpg)

  • Za vsak pravokotnik v tabeli, poiščemo take pravokotnike, ki imajo enako ploščino kot ta pravokotnik

- Uvedemo spremenljivko tabela1, kateri priredimo prazno tabelo za število pravokotnikov, ki se ujemajo z i-tim pravokotnikom

- Gremo od i do števila n

- Spremenljivko tabela1 na i-tem mestu nastavimo na 0, ker nimamo še ujemanja za noben pravokotnik

- Gremo od 0 do števila n

- Če je pravi pravokotnik različen od drugega

- Če je ploščina ustvarjenega pravokotnika enaka ploščini drugega pravokotnika, potem prvemu pravokotniku smo našli še enega, ki mu je enak in mu prištejemo 1

- Izpis koliko je takšnih pravokotnikov

(slikaP14.jpg)

  • Pravokotnike v tabeli, ki jih lahko spremenimo v kvadrate, ter jih izpišemo koliko jih je

- Spremenljivko stevilo1 nastavimo na začetku na 0

- Gremo od i do števila n

- Dolžini stranice a prištejemo stranico b, ter tako dobimi doliži obeh stranic

- Če sta stranici sodi, stranici delimo s številom 2, ter dobimo stranico a, enako naredimo, da dobimo stranico b

- Če to velja spremenljivki stevilo1 doda 1

- Izpis, koliko pravokotnikov se lahko spremeni v kvadrate

(slikaP15.jpg)

Razlaga testnih primerov

  • Prvi testni primer

    (slikaPtp1.jpg)

- Preverjamo veljavnost metod za izračun obsega in ploščine pravokotnika

  • Drugi testni primer

    (slikaPtp2.jpg)

- Pri temu testnemu primeru za izračun obsega in ploščine za dani pravokotnik sem preverila, kaj se zgodi, če sem vpisala črko namesto števila

- Javilo je napako, zato sem v obeh set metodah za stranico a in b, ulovila napake, ter je izpisalo ustrezen komentar

  • Tretji testni primer

    (slikaPtp3.jpg)

- Podala sem 3 pravokotnike

- Preverila sem ali njihove stranice a in b pravilno izpiše v dano datoteko, ki sem jo napisala v testnemu primeru.

- Najprej izpiše število stranice a, nato ločilo podpičje in nazadnje pa število stranice b. Dodati moram, da med stranicama in ločilom ni presledkov.

  • Četrti testni primer

    (slikaPtp4.jpg)

- S tem testnim primerom preberemo z dane datoteke dimenzije pravokotnika, ki so vsak v svoji vrstici

0%
0%