Zadatak na provjeri praktičnog rada - Pascal

poruka: 14
|
čitano: 3.503
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
14 godina
neaktivan
offline
Zadatak na provjeri praktičnog rada - Pascal

Evo ovako drage kolege, da vam svima prvo stavim jedan zadatak kojeg sam dobio iz informatike za riješiti :

 

2. Ivica mora naučiti za domadu zadadu naučiti pjesmicu napamet. Napiši program koji de unositi broj riječi u pjesmi i broj riječi u jednom stihu. Ivica zna da mu treba 2 minute po stihu ako pjesmica ima manje od 4 stiha, 3 minute po stihu ako pjesma ima između 4 i 8 stihova te 4 minute po stihu ako pjesma ima više od 8 stihova. Program mora izračunati i ispisati koliko de vremena Ivica učiti pjesmicu napamet. (15 bodova)


Primjer 1:

ULAZ

25

5

IZLAZ

15 minuta

 

Primjer 2:

ULAZ

83

10

IZLAZ

36 minuta

 

E sad ovako drage kolege, ja sam to ovako riješio :

 

program ivica;
var broj_rijeci_u_pjesmi, broj_rijeci_u_stihu, rez, broj_stihova_u_pjesmi, slobodne_rijeci:integer;
begin
  readln(broj_rijeci_u_pjesmi);
  readln(broj_rijeci_u_stihu);
  broj_stihova_u_pjesmi := broj_rijeci_u_pjesmi div broj_rijeci_u_stihu;
  slobodne_rijeci := broj_rijeci_u_pjesmi mod broj_rijeci_u_stihu;
  if broj_stihova_u_pjesmi < 4 then begin
    rez := (broj_stihova_u_pjesmi * 2) + (slobodne_rijeci * 4);
  end;
  if (broj_stihova_u_pjesmi >= 4) and (broj_stihova_u_pjesmi <= 8) then begin
    rez := (broj_stihova_u_pjesmi * 3) + (slobodne_rijeci * 4);
  end;
  if broj_stihova_u_pjesmi > 8  then begin
    rez := (broj_stihova_u_pjesmi * 4) + (slobodne_rijeci * 4);
  end;
  writeln(rez, ' minuta');
  readln;
end.

 

E sada, u čemu je fora drage moje kolege. Ako ste pročitali zadatak (izuzev gramatičkih pogrešaka profesora), kažem profesoru : "Pa dobro, kako da mi program izbaci 36, ako bi po zadatku u 2. primjeru trebao izbaciti 24 minute?". Kaže on meni : "Test primjeri su dobri. Tebi očito ne valja način razmišljanja."

 

Ja ono OK, uvijek su mi ti zadaci išli bez problema, ali gledam kako sad ovo riješiti. I evo kod iznad, to je moje rješenje.

 

Kasnije sam saznao da su se te 3 slobodne riječi trebale tretirati kao novi stih, pa bi bilo 9 * 4 = 36... Jedino što ja želim dokazati ovdje jeste da je profesor u zadatku ili kada sam ga pitao trebao napomenuti da ako broj stihova nije cjelobrojna vrijednost, da se onda pravi novi stih.

 

Jel gledajte, što ako bi unio recimo 84 i 10. To bi moglo biti 9 stihova, ali i 10 (osam stihova po 10 riječi i dva stiha po 2 riječi).

 

Samo želim čuti vaše mišljenje, jer ja mislim da zadatak nije bio dobro definiran te na ja ni na koju foru nisam mogao iz zadatka iščitati da se "slobodne riječi" tretiraju kao novi stih...

 

Unaprijed hvala!

Pars pro toto.
Moj PC  
0 0 hvala 1
13 godina
neaktivan
offline
Re: Zadatak na provjeri praktičnog rada - Pascal

Moje mišljenje je: profesor je u pravu, primjeri su dobri, tvoj način razmišljanja je pogrešan, a tvoje konačno rješenje je još gore. Po navedenom programu za pjesmu od 9 riječi s 5 riječi u stihu Ivici treba 18 minuta, tri minute duže nego za pjesmu od 25 riječi s istom duljinom stihova.

 

I da, možda je bilo potrebno eksplicitno navesti da višak riječi tvore jedan zadnji stih. No meni osobno i niti jednom programeru kojeg znam ne bi palo na pamet da će netko razbijati glavu što učiniti s one tri riječi viška.

 

Točan kod koji računa broj stihova je:

 

  broj_stihova_u_pjesmi := broj_rijeci_u_pjesmi div broj_rijeci_u_stihu;
  if (broj_rijeci_u_pjesmi mod broj_rijeci_u_stihu) > 0 then
    broj_stihova_u_pjesmi := broj_stihova_u_pjesmi + 1; // ostatak riječi tvore jedan dodatni stih

17 godina
offline
Zadatak na provjeri praktičnog rada - Pascal

Gle, na primjeru 2 ti je anulirana nedorečenost koja u tekstu zadatka postoji, ostatak od cjelobrojnog djeljenja se računa kao stih, shodno tome postavi logiku programa:

 

 

#include <iostream>
using namespace std;


int main()
{
    int brojRijeciPjesma, brojRijeciStih, brojStihova;
    cin>> brojRijeciPjesma;
    cin>> brojRijeciStih;
    brojStihova = brojRijeciPjesma/brojRijeciStih +  (brojRijeciPjesma%brojRijeciStih != 0);
    cout<< brojStihova << endl;
    return 0;
}

 

 

Kod ovakvih zadataka logiku programa hvataš i na osnovu datih primjera ulaz - izlaz, i oni su dio zadatka. U stvari da nema primjera 2 tek bi onda mogli govoriti o nedorečenosti zadatka.

Dakle, tebi je primjer 2 poslužio da ukažeš profi na nedorečenost, a njemu da ti dokaže da zahvaljujući baš tom primjeru nedorečenosti nema - u pravu je on.

 

 

 

 

 

 

 

 

 

Poruka je uređivana zadnji put sub 22.12.2012 21:57 (Floki).
 
0 0 hvala 0
14 godina
neaktivan
offline
Zadatak na provjeri praktičnog rada - Pascal

Ma u redu, znam sve, samo kažem da je moje rješenje u biti dobro (jer NIJE bilo naglašeno da će program, ako broj nije cjelobrojan, dodati 1 stih...)

 

Ja sam gledao da mu za svaku slobodnu riječ treba 4 minute, a to je rezultiralo točnom ispisu.

 

Kažem, samo me naživciralo to što to nije bilo uopče napisano u zadatku. OK, znam da se moraš oslanjati na ulaz/izlaz, ali opis problema kao takav je nedovoljan.

Pars pro toto.
Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Zadatak na provjeri praktičnog rada - Pascal

Kužite me, sada kada sam vam dao rješenje to se čini logično i naravno da sada znam napisati kako bi pravilno trebalo ići, no kažem vam, kada se uzme u obzir da moje rješenje isto ispiše 36 minuta sa zadanim parametrima, moje rješenje isto ispada točno.

 

Isto tako, kao što sam i rekao, ako netko unese tipa 86 i 10, on bi u biti trebao izbrojati 9, a mogao bi izbrojati i 12 (3 stiha po 2 riječi i 8 stihova po 10 riječi).

 

Kažem samo da se u tekstualnom dijelu trebala definirati "paterna" koja objašnjava kako to sve funkcionira. Ono što se čini logično vama, ne mora značiti da će se činiti logično drugima.

 

Kao što sam i rekao, opis i analiza problema (koji je jedan od početnih koraka u programiranju) nisu zadovoljeni. Išao sam i na natjecanje i tamo je u zadacima uvijek bilo sve definirano - test primjeri služe samo za provjeru. Tako i u ovim zadacima, test primjeri bi trebali služiti samo i isključivo za provjeru...

 

Kladim se da kada bi dao ovaj zadatak 10 različitih osoba, svaka bi nadošla na drugačije rješenje. Samo kažem da zadatak nije definiran do kraja.

Pars pro toto.
Moj PC  
1 0 hvala 0
14 godina
neaktivan
offline
Re: Zadatak na provjeri praktičnog rada - Pascal
Bobobo-bo Bo-bobo kaže...

Moje mišljenje je: profesor je u pravu, primjeri su dobri, tvoj način razmišljanja je pogrešan, a tvoje konačno rješenje je još gore. Po navedenom programu za pjesmu od 9 riječi s 5 riječi u stihu Ivici treba 18 minuta, tri minute duže nego za pjesmu od 25 riječi s istom duljinom stihova.

 

I da, možda je bilo potrebno eksplicitno navesti da višak riječi tvore jedan zadnji stih. No meni osobno i niti jednom programeru kojeg znam ne bi palo na pamet da će netko razbijati glavu što učiniti s one tri riječi viška.

 

Točan kod koji računa broj stihova je:

 

  broj_stihova_u_pjesmi := broj_rijeci_u_pjesmi div broj_rijeci_u_stihu;
  if (broj_rijeci_u_pjesmi mod broj_rijeci_u_stihu) > 0 then
    broj_stihova_u_pjesmi := broj_stihova_u_pjesmi + 1; // ostatak riječi tvore jedan dodatni stih

Upravo ono što pokušavam dokazati. Znam da je moje rješenje loše, ali je barem kada sam ga pitao mogao reći da se onda tvori dodatni stih. Kažem, nisam kriv ja za loše rješenje, nego loše, tj. nedovoljno informacija o problemu!

Pars pro toto.
17 godina
offline
Re: Zadatak na provjeri praktičnog rada - Pascal
TheGh0st kaže...

Ma u redu, znam sve, samo kažem da je moje rješenje u biti dobro (jer NIJE bilo naglašeno da će program, ako broj nije cjelobrojan, dodati 1 stih...)

 

Ja sam gledao da mu za svaku slobodnu riječ treba 4 minute, a to je rezultiralo točnom ispisu.

 

Kažem, samo me naživciralo to što to nije bilo uopče napisano u zadatku. OK, znam da se moraš oslanjati na ulaz/izlaz, ali opis problema kao takav je nedovoljan.

Ne gledaj na primjere ulaz - izlaz kao na nešto bez veze napisano, oni su dio zadatka i služe za pojašnjenje zadatka isto tako.

To ti jest trebao reći kad si ga pitao za pojašnjenje, ali nemaj posla s njim da mu to zamjeriš.

Poruka je uređivana zadnji put sub 22.12.2012 22:06 (Floki).
14 godina
neaktivan
offline
Re: Zadatak na provjeri praktičnog rada - Pascal
Floki kaže...
TheGh0st kaže...

Ma u redu, znam sve, samo kažem da je moje rješenje u biti dobro (jer NIJE bilo naglašeno da će program, ako broj nije cjelobrojan, dodati 1 stih...)

 

Ja sam gledao da mu za svaku slobodnu riječ treba 4 minute, a to je rezultiralo točnom ispisu.

 

Kažem, samo me naživciralo to što to nije bilo uopče napisano u zadatku. OK, znam da se moraš oslanjati na ulaz/izlaz, ali opis problema kao takav je nedovoljan.

Ne gledaj na primjere ulaz - izlaz kao na nešto bez veze napisano, oni su dio zadatka i služe za pojašnjenje zadatka isto tako.

Ne gledam, ali kažem da ono što ti smatraš logično i što je po tebi logično, drugoj osobi nije.

 

Kao što je moral jedne osobe drukčiji od drugoga, tako je logika u svakome čovjeku drukčija.

 

A što se tiče test primjera, moje rješenje zadovoljava oba test primjera...

 

Nadam se da si shvatio što želim reći.

Pars pro toto.
17 godina
offline
Zadatak na provjeri praktičnog rada - Pascal

Ok, odustajem, ja sam svoje mišljenje rekao, dao  kod koji računa najkraćim putem, to je s moje strane sve što mogu.

A ti si mogao pokazati nešto i zahvalnosti, umjesto što ideš u polemike.

Poruka je uređivana zadnji put sub 22.12.2012 22:13 (Floki).
 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Zadatak na provjeri praktičnog rada - Pascal
Floki kaže...

Ok, odustajem.

Vidim da si editao svoj prijašnji post, ali nije meni sad bed, ali zamisli da nekom ovisi ocjena i dobije lošu ocjenu samo zbog nedorečenog zadatka. To je stvarno sramotno.

 

Iskreno, mislim da mu imam pravo to zamjeriti, jer kao što sam i rekao, logika je zasebna u svakoga čovjeka.

Pars pro toto.
Poruka je uređivana zadnji put sub 22.12.2012 22:10 (TheGh0st).
14 godina
offline
Zadatak na provjeri praktičnog rada - Pascal

Mislim da bi od 50 ljudi 45 ovo rješilo na način da "višak" riječi stavlja u novi stih, jer ipak pjesma ima taj broj riječi, gledajući na tvoj način imala bi ih manje ili jednako.

Opet ne mogu te kriviti jer si tako razmišljao na taj način. U zadataku bi umjesto "broj riječi u stihu" po meni trebalo pisati "maksimalan broj riječi u stihu" da ne bi bilo nikakvih dilema.

 

LoL NordicEU : Heineken01
 
2 0 hvala 0
14 godina
neaktivan
offline
Re: Zadatak na provjeri praktičnog rada - Pascal
KKristijan kaže...

Mislim da bi od 50 ljudi 45 ovo rješilo na način da "višak" riječi stavlja u novi stih, jer ipak pjesma ima taj broj riječi, gledajući na tvoj način imala bi ih manje ili jednako.

Opet ne mogu te kriviti jer si tako razmišljao na taj način. U zadataku bi umjesto "broj riječi u stihu" po meni trebalo pisati "maksimalan broj riječi u stihu" da ne bi bilo nikakvih dilema.

 

Pa da, to i pokušavam dokazati...

 

A i btw., nije morao biti toliko arogantan i reći "Kriv ti je način razmišljanja.". Kao 1., arogantno je. Kao 2., ta rečenica je bulazn svih bulaznova koje sam čuo. Svatko ima svoj način razmišljanja i tako razmišlja, ne postoji "krivo" i "ispravno"...

Pars pro toto.
Poruka je uređivana zadnji put sub 22.12.2012 22:14 (TheGh0st).
13 godina
neaktivan
offline
Re: Zadatak na provjeri praktičnog rada - Pascal

Pa način razmišljanja ti i jest bio - kriv. Floki je dobro primjetio da drugi testni primjer otklanja sve nedoumice, sve dodatne riječi očito tvore točno jedan krnji stih. Tvoj program pukim slučajem zadovoljava dva testna primjera - prvog jer nema dodatnih riječi, a drugog jer je program naštiman baš za taj slučaj.

 

Primijeti da po onom algoritmu za pjesmu od 89 riječi sa po 10 riječi u stihu treba 60 minuta (po 3 minute za 8 stihova + po 4 minute za 9 dodatnih riječi), ali ako se toj pjesmi doda samo jedna jedina riječ učenje se skrati na 36 minuta (po 4 minute za 9 stihova).

 

Neznatno dulja pjesma se nauči za duplo kraće vrijeme? Ovo ti je morao biti znak da nešto nije u redu s tvojom logikom.

 

Svakom se dogodi da pogriješi i to nije neki problem. Problem je što ne želiš prihvatiti ovu činjenicu, nego se sad natežeš s nama i još bez razloga vrijeđaš profesora. Čovjek je u pravu, pogriješio si, program ti je nula bodova. Deal with it.

14 godina
neaktivan
offline
Re: Zadatak na provjeri praktičnog rada - Pascal
Bobobo-bo Bo-bobo kaže...

Pa način razmišljanja ti i jest bio - kriv. Floki je dobro primjetio da drugi testni primjer otklanja sve nedoumice, sve dodatne riječi očito tvore točno jedan krnji stih. Tvoj program pukim slučajem zadovoljava dva testna primjera - prvog jer nema dodatnih riječi, a drugog jer je program naštiman baš za taj slučaj.

 

Primijeti da po onom algoritmu za pjesmu od 89 riječi sa po 10 riječi u stihu treba 60 minuta (po 3 minute za 8 stihova + po 4 minute za 9 dodatnih riječi), ali ako se toj pjesmi doda samo jedna jedina riječ učenje se skrati na 36 minuta (po 4 minute za 9 stihova).

 

Neznatno dulja pjesma se nauči za duplo kraće vrijeme? Ovo ti je morao biti znak da nešto nije u redu s tvojom logikom.

 

Svakom se dogodi da pogriješi i to nije neki problem. Problem je što ne želiš prihvatiti ovu činjenicu, nego se sad natežeš s nama i još bez razloga vrijeđaš profesora. Čovjek je u pravu, pogriješio si, program ti je nula bodova. Deal with it.

Znam da mi program ne radi, ali samo kažem da se to trebalo dodatno napomenuti (i Floki je rekao da je profesor to trebao napomenuti). Moj način razmišljanja je unikatan, kao i tvoj, kriv i ispravan ne postoji.

 

Jesam pogriješio, ali zbog nedostatka informacija. Jednostavno želim dokazati da nije bilo dovoljno informacija da se zadatak riješi kako bi trebao.

 

Ja se ne natežem s nikime, samo branim svoje mišljenje i svoje stavove.

Pars pro toto.
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice