Poslao: 07 Apr 2015 10:03
|
offline
- crusher
- Ugledni građanin
- Pridružio: 15 Maj 2012
- Poruke: 396
|
Imam problem sa jednim zadatkom, jer ne znam kako da ga resim. Pa mi je potrebna pomoc oko ideje za resavanje ovog zadatka.
Zadatak glasi ovako:
Treba odrediti najvecu velicinu fonta na tabli zadate velicine.
Pravila:
Visina linije je velicina fonta.
Sirina jednog karaktera je dve trecine od velicine fonta.
Ulazni podacu se primaju u dva reda. U prvom redu su dva broja, gde prvi broj odredjuje sirinu table a drugi broj visinu te table. U drugom redu je tekst, sa maksimalno od 10000 karaktera.
Na izlazu treba biti samo jedan broj, najveca moguca velicina fonta.
Evo nekoliko test primera:
Ulaz: 60 25
The lazy brown dog
Izlaz: 10
Ulaz: 50 50
The lazy brown dog
Izlaz: 12,5
Hvala unapred!
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 08 Apr 2015 17:01
|
offline
- bocke
- Moderator foruma
- Glavni moderator Linux foruma
- Pridružio: 16 Dec 2005
- Poruke: 12532
- Gde živiš: Južni pol
|
Očigledno je da ne znaš kako da ga rešiš jer nisi naveo jezik i razvojno okruženje. Ako je u pitanju C# zadatak, pogrešio si i forum.
Ljudi su voljni da pomognu oko rešavanja zadataka ako si bar pokušao da ga rešiš sam. Tako da nije loše napisati šta si pokušao.
Ako očekuješ da će neko rešiti umesto tebe, to se najverovatnije neće desiti. Nije u skladu sa pravilima foruma, a i većina ljudi ima pametnija posla nego da rešava tuđe domaće zadatke.
|
|
|
|
Poslao: 08 Apr 2015 18:32
|
offline
- crusher
- Ugledni građanin
- Pridružio: 15 Maj 2012
- Poruke: 396
|
Ne, nisam trazio da ga neko resi umesto mene. Lepo sam napisao kakva mi pomoc treba.
Treba mi pomoc samo oko ideje resavanja ovog problema. Jezik nije ni bitan. Napisacu ga u C programskom jeziku.
Problem je u tome sto ne znam kako bi taj problem mogao da se resi. I zato trazim pomoc samo oko ideje.
|
|
|
|
Poslao: 08 Apr 2015 18:59
|
offline
- bocke
- Moderator foruma
- Glavni moderator Linux foruma
- Pridružio: 16 Dec 2005
- Poruke: 12532
- Gde živiš: Južni pol
|
Ok u tom slučaju. Meni deluje kao čisto matematički zadatak. Iako je postavka dosta konfuzna tako da nemam predlog kako ga rešiti.
|
|
|
|
Poslao: 08 Apr 2015 19:26
|
offline
- crusher
- Ugledni građanin
- Pridružio: 15 Maj 2012
- Poruke: 396
|
Da, sigurno treba nesto matematicki da se odradi.
Imamo:
sirinu i duzinu table
broj karaktera teksta
da je sirina karaktera dve trecine velicine fonta
a velicina fonta je visina linije
E sad, nista mi ne pada na pamet sta mogu da uradim sa tim. Sescu veceras lepo da razmlislim pa cu da vidim da li mogu ista uraditi, pa cu javiti dokle sam stigao i gde sam zapeo.
|
|
|
|
Poslao: 09 Apr 2015 12:52
|
online
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Zadatak je malo konfuzno napisan, ali je krajnje jednostavan kada se shvati suština. Suština je da tablu podeliš na onoliko delova (pravougaonog oblika dimenzija visina*širina, a pošto je širina = visina * 2/3 imaš dimenzije visina*(visina * 2/3)) koliko ti je minimalno potrebno da smestiš sve karaktere iz zadatog stringa.
Razjasnimo malo zahteve zadatka na sledećem primeru:
Ulaz: 50 50
The lazy brown dog
Izlaz: 12.5
Visina je 12,5. Odatle je širina jednog karaktera 12,5 * 2/3 = 8,333. Širina reda je 50, što znači da u jednom redu staje 50/8,333 = 6 karaktera. Kako je visina table 50, a visina fonta 12,5, na tabli imamo ukupno 50/12,5 = 4 reda. Znači, imamo 4 reda sa po 6 karaktera što ukupno daje maksimalno 24 karaktera. Tekst ima 18 karaktera, što znači da se uklapa u kreiranu tablu. Ako bi font bio veći od 12,5, recimo 12,6, imali bismo na tabli najviše 3 reda (celobrojni deo od 50/12,6 je 3), ali bi i širina jednog karaktera bila nešto veća, pa u jednog redu ne bi stalo 6 karaktera, već 5. 5*3 = 15, a to je manje od broja karaktera koje ima zadati string. Dakle, 12,5 jeste tačno rešenje.
Jedina vodilja treba da ti bude da tabla treba da bude na najbolji način (da ostane što manje neiskorišćenog prostora, a tada je font najveći) izdeljena na polja veličine visina*(visina * 2/3).
|
|
|
|
|
Poslao: 09 Apr 2015 15:59
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3760
- Gde živiš: 127.0.0.1
|
Ne daje tacne rezultate jer pretpostavljas da je prostor maksimalno iskoriscen, tj nema praznog prostora iza poslednjeg karaktera u redu i ispod poslednje linije, odnosno da je tabla takva da se kompletan tekst nalazi u jednom redu.
|
|
|
|
Poslao: 16 Apr 2015 12:02
|
offline
- crusher
- Ugledni građanin
- Pridružio: 15 Maj 2012
- Poruke: 396
|
Napisano: 09 Apr 2015 16:38
Dobro. Kako bih onda mogao da dodjem do tacnog resenja?
Dopuna: 11 Apr 2015 9:46
Je l moze neko da mi objasni kako da dodjem do rezultata?
Dopuna: 16 Apr 2015 12:02
Je l moze neko da mi pomogne?
|
|
|
|
Poslao: 16 Apr 2015 13:03
|
online
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Probaj za početak sa eliminisanjem predpostavke koju pominje Rastafarii.
Svakako, zadatak ipak zahteva malo vremena da se razmisli o problemu, da se uzmu u obzir sva ograničenja i da se pronađe rešenje. Na tvoju žalost, od čekanja i poziva u pomoć se zadatak neće sam rešiti. Moraš ti sam da se potrudiš malo više! Generalno, ovo može da ti bude dobra škola gde ćeš naučiti da se sve može rešiti uz dovoljno truda, i gde ćeš naučiti da sam rešavaš probleme koji su postavljeni ispred tebe. Osnovne smernice su ti date, pa izvoli. Sve je na tebi sada.
|
|
|
|