Ima li ljudi koji znaju ovaj programski jezik i koji su voljni da podele znanje sa drugima? Za pocetak, prosti zadatak: 1. Napisati program koji pronalazi sve brojeve (manje od 10 000) ciji je zbir kubova cifara jednak tom broju.
Ima li ljudi koji znaju ovaj programski jezik i koji su voljni da podele znanje sa drugima? Za pocetak, prosti zadatak: 1. Napisati program koji pronalazi sve brojeve (manje od 10 000) ciji je zbir kubova cifara jednak tom broju.
Program nisam kompajlirao. Greska je moguca.Kod:program zadatak_1; var i : integer; function Kub(Sender : integer) : integer; var Temp : integer; //Ovde cuvamo kub cifre begin repeat Temp := Sender mod 10; //uzmamo cifru Sender := Sender div 10; //i tu cifru izbacijemo iz broja; Result := Result + (Temp * Temp * Temp); // dadajemo rezultatu kub izdvojene cifre until Sender = 0; //izlazimo ako smo sve cifre procesirali end; begin for i := 1 to 9999 do // predpostavljam pod pojmom sve manje brojeve mislise sve manje if Kub(i) = i then writeln(i); //pozitivne brojeve end;
Poslednji put ažurirao/la Nemanja666 : 22.11.2006. u 09:21
Pa zadatak izgleda da je dobro resen. Svaka cast. Bilo bi mi drago kada bi jos neko poslao neki svoj ili tudj ( :-) ) zadatak!
Dzaba ti je da ti drugi resavaju zadatke, nego malo sam mucni glavom.
Čiste ruke
Hladna glava
I vatreno srce
Ma tip provalio taj zadatak pa sad proverava malo znanje drugih... mislim da je to u pitanju.
@Nexilion jesam li pogodio?
Jeste, ko zna koliko je para namlatio nekoj firmi za ovaj program a ne ume da ga uradi... sram ga biloOriginal postavio Pjer_Nis
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
E ovako kad vec zelite da raditi zadatke onda evo jednog ljepseg
writing
Zadatak je sa olimpijade iz programiranje. Nije tezak. Imaj te na umu da je lako uraditi da radi nego treba uraditi da iybaci resenje za manje od sekunde.
PS. Ovo je bio najlaksi zadatak na olimpijadi.
Ovo koda, veoma jednostavno:
Kod:program writing; {$mode objfpc} uses SysUtils; type TOneData = record Have : boolean; Count : integer; end; var Glyph : array[65..122] of TOneData; Sequence : array[1..3000000] of integer; Glyph_Len : integer; Sequence_Len : longint; i : integer; procedure LoadData(FileName : string); var fText : TextFile; i : integer; TempChar : Char; begin AssignFile(fText, FileName); Reset(fText); Readln(fText, Glyph_Len, Sequence_Len); for i := 1 to Glyph_Len do begin Read(fText, TempChar); Glyph[Ord(TempChar)].Have := true; Inc(Glyph[Ord(TempChar)].Count) end; Readln(fText, TempChar); // Uklanjamo #13 for i := 1 to Sequence_Len do begin Read(fText, TempChar); Sequence[i] := Ord(TempChar); end; CloseFile(fText); end; procedure Add(Sender : integer); begin if Glyph[Sender].Have then Inc(Glyph[Sender].Count); end; function DoWriting : integer; var Last, First : integer; i, j : integer; check : boolean; begin Last := 1; First := 0; Result := 0; for i := 1 to Sequence_Len - Glyph_Len + 1 do begin if First > i then begin Add(Sequence[i]); continue; end; Check := true; for j := Last to i + Glyph_Len - 1 do begin if not Glyph[Sequence[j]].Have then begin Last := j + 1; First := Last; Check := false; Break; end; if Glyph[Sequence[j]].Count = 0 then begin Last := j; Check := false; Break; end; Dec(Glyph[Sequence[j]].Count); end; if Check then begin Inc(Result); Last := i + Glyph_Len; end; Add(Sequence[i]); end; end; procedure SaveData(Filename : string); var fText : TextFile; begin AssignFile(fText, FileName); Rewrite(fText); Writeln(fText, DoWriting); CloseFile(fText); end; begin LoadData('writing.in'); SaveData('writing.out'); end.
Poslednji put ažurirao/la Nemanja666 : 27.11.2006. u 06:45
Evo pocele pipreme ove godine za takmicenje iz informatika pa da stavim zadatak koj sam upravo radio
Napisati program kojim se ispituje koliko puta se cifra 2 pojavljuje u zapisu celog broja.
Ovo je sasvim lagan zadatak ali nekaga.Kod:program zad41; {$mode objfpc} var Num : longint; i : integer; count : integer; begin Readln(Num); repeat if (Num mod 10) = 2 then Inc(count); Num := Num div 10; until Num = 0; writeln(Count); end.
Ako smo vec poceli pisati ovako programe, ajmo malo izmjenjivati znanje iz polja alogoritamskog programiranja. Mozamo postaviti nesto kao tutorijale iz oblasti sortiranja, binarnog pretrazivanja, grafova, obrade stringa, rada sa velikim brojevima itd...
Poslednji put ažurirao/la Nemanja666 : 27.11.2006. u 09:42
Nego koju literaturu koristis? Vidim da si upotrebio "{$mode objfpc}" sto do sada nisam sreo u nijednoj kjizi. Pozdrav programeru Nemanji666!
a zasta to {$mode objfpc} uopste sluzi?
znam da je neka fora da ukljuci nesto, nemam pojma, ali nisam skontao za sta je
koristim free pascal kao kompajler a direktiva {$mode objfpc} ukljucuje podrsku za delphi sintaksu
naprimjer
AssignFile umjesto Assign
CloseFile umjesto Close
itd
uglavnom IDE za Free Pascal koji sam radio sam stavlja tu direktivu po defaultu jer se znam zbuniti u gore navedenim procedurama.
Rekao sam da cu malo stavljati alogoritma pa da pocnem:
Prvo cu da pojasnim alogoritme za sortiranje.
Cesto u programiranju javlja potreba da se neki podaci sortiraju u neopadajucem ili u nerastujecem redu. Postoji mnogo alogoritama koji sluze za ovu zadacu a neki su:
Bubble sort, Merge sort, Radix sort, Quick sort ...
Danas cu da objesnim najjednostavniji naravno i najsporiji Bubble sort(metodu mjehurica). Procedura za ovaj alogoritam izgleda ovako:
To bi bilo to. Alogoritam koristi dvije for petlje(vanjska i unutrasnja) u principu program provjerava dva uzastopna clana niza i rotira ih ako je prvi veci od drugog. Ovim se postiza da se svakim ciklusom unutrasnje petlje najveci broj u nesortiranom djelu niza postavi na krajnje mjesto u nesortiranom djelu niza cime zadnji clan postaje sortiran.Kod:type TNiz = array[1..1000] of integer; procedure Bubble_Sort(Count : integer; var niz : TNiz); var i, j : integer; begin for i := Count - 1 downto 1 do for j := 1 to i do if niz[j] > niz[j + 1] then begin Temp := Niz[j]; Niz[j] := Niz[j + 1]; Niz[j + 1] := Temp; end; end;
[font=Verdana]Samo mala dopuna na temu algoritama za sortiranje.
Generalno algoritmi za sortiranje se mogu podeliti u dve grupe u zavisnoti od brzine njihovog izvršavanja - odnosno kompleksnosti. U prvu grupu algoritama za sortiranje kojima je vreme izvršavanja proporcionalno n*n, gde je n broj elemenata koji se sortiraju spadaju: Bubble sort, Selection sort, Insertion sort i Shell sort. U drugu grupu gde je vreme izvršavanja proporcionalno n * log n spadaju: Heap sort, Merge sort i Qucik sort.
Iako više algoritama pripada istoj grupi brzina njihovog izvršavanja se razlikuje. U prvoj grupi algoritma najbrži je: Shell, a potom slede Insertion, Selection i na kraju Bubble sort.[/font]
Bravo za trud Nemanja, ali otvori posebnu lepljivu temu 'Poznati algoritmi' ili nesto slicno, steta je da neko ne procita to zato sto je u Pascal temi.
[font=Verdana]Možda je najbolji i najjednostavniji naziv teme ... Algoritmi. I nema sumnje da će biti lepljiva.
[/font]
Jeste najjednostavniji, ali moze neko da pomesa sa crtanjem algoritama izvrsavanja (valjda se to jos uvek uci u srednjoj?) pa da ne pogleda. Moglo bi 'Strukture podataka i alogoritmi'.
[font=Verdana]Kako god da nazoveš uvek će da se nađe neko da p(r)omeša, tako da to ne možeš izbeći, ma da je ovaj predlog bolji. No, tu je mod ako poruke krenu u lošem smeru.[/font]
ma dajte neki zadatak za dva, ovi su teski!!!
[font=Verdana]Takav možeš i sam da smisliš.[/font]
Interesuje me da li neko zna neki problem sa matricama u Pascalu? I da li zna resenje :-) ?
bice govoro o matricama kasnije natemi alogoritmi
ja sam isao po takmicenjima u srednjoj skoli)
evo jedan lak sa matricama (ne takmicarski): popuniti matricu nxm brojevima od 1 do n*m spiralno pocev od nekog ugla, bilo u clockwise ili suprotnom smeru.
evo jedan malo tezi: naci determinantu matrice Anxn
jos jedan srednji: resiti linearni sistem nxn zadat matricom A (gausov metod svodjenja matrice)
evo jedan dosta tezi: ako matrica Anxn predstavlja lavirint (1 zid, 0 nema zida) naci put od tacke X do tacke Y ako postoji (ovo se radi dinamickim programiranjem)
jos jedan tezi, iako ne izgleda tako: napisati program koji stampa svoj izvorni kod.
evo jedan bez matrica, bio na nekom laksem takmicenju: ako imamo n tegova zadati svojom masom raspodeliti ih u dve grupe tako da razlika medju grupama bued minimalna
to mi pada na pamet sada
Pozdrav
Ride the rainbow, crack the sky
Ovo su mi najdrazi zadatci. Najlakse ga je uraditi primjenom BFS-a, o grafovima bice kasnije price u teme alogoritmi.Original postavio stormbringer
moze i tako, onda je jedino posao da se napravi graf, ostalo nije problem. ali je zgodan primer za dinamicko. Evo jos jedan: zamisli da lopov ulazi u radnju u kojoj je svaki artikl zadat cenom i tezinom. Njegov ranac moze da ponese tezinu X. Odrediti sta treba da ukrade tako da ukupna vrednost bude najveca.Original postavio Nemanja666
evo jedan laksi: zamislite ogrlicu od crnih i belih perli koja je zadata nizom A gde je a[i]=1 za crnu i 0 za belu (ili kako vec). Odrediti mesto presecanja ogrlice tako da se sa obe strane nadje max broj perli iste boje (ne moraju perle levo biti iste boje kao one desno), misli se na max broj u zbiru.
Ride the rainbow, crack the sky
Pošalji link