Korisnički Kontrolni Panel
Pogledajte svoj profil
Pogledajte svoje postove
ČPP
Prijavite se

Matematički forum na kojem možete da diskutujete o raznim matematičkim oblastima, pomognete drugima oko rešavanja zadataka, a i da dobijete pomoć kada vam zatreba


















Index stranica OSTALE MATEMATIČKE OBLASTI MATEMATIKA U INFORMATICI MATEMATIKA U PROGRAMIRANJU

[Pseudocode] Ciklička struktura

[Pseudocode] Ciklička struktura

Postod blake » Ponedeljak, 04. Novembar 2013, 23:00

Formulacija problema:
• Učitati RIJEC
• Ispitati za svako slovo u riječi RIJEC koliko se puta pojavljuje
• Ispisati sva slova koja se pojavljuju u rijeci RIJEC zajedno s brojem
ponavljanja
– Osnovna ideja za algoritamsko rješenje:
• Učitati riječ RIJEC
• Ako RIJEC sadrži manje od 2 slova ponoviti učitavanje
• Ispitati za svako slovo S u riječi RIJEC:
– ako je neko od prethodnih slova jednako S, tada NADJENO=true, inače
NADJENO=false
• Ako je NADJENO=true, onda je
– BROJAC=broj pojavljivanja slova S desno od S+1
– Ispisati S, BROJAC


Kôd: Obeleži sve
Algoritam:
  1.   DULJINA=0
  2.   Ponavljaj dok nije DULJINA>=2
        1.   Učitaj RIJEC
        2.   DULJINA=dužina riječi RIJEC
  3.   Za b1=1 do DULJINA
        1.   BROJAC=1
        2.   NADJENO=false
        3.   Ako b1>0 tada
              1.   Za b2=1 do b1-1
                    1.   P1=B1-to slovo u RIJEC
                    2.   P2=B2-to slovo u RIJEC
                    3.   Ako je p1=p2 tada
                          1.   NADJENO=true
                          2.   Prekini ponavljanje
        4.   Ako je NADJENO<>true tada
              1.   Ako je b1<DULJINA tada
                    1.   Za b2=b1+1 do DULJINA
                          1.   P1=B1-to slovo u RIJEC
                          2.   P2=B2-to slovo u RIJEC
                          3.   Ako je p1=p2 tada
                                1.   BROJAC=BROJAC+1
                    2.   Ispiši B1-to slovo u RIJEC, BROJAČ


Pod 3. ako neko zna objasnit ( ::
Poslednji put menjao ubavic dana Nedelja, 28. Decembar 2014, 14:25, izmenjena 2 puta
Razlog: Prekucavanje sadržaja prikačene slike u odgovarajući kôd; uklanjanje prikačene slike
blake  OFFLINE
 
Postovi: 371
Lokacija: Split, Croatia
Zahvalio se: 127 puta
Pohvaljen: 96 puta

Sharuj ovu temu na:

Share on Facebook Facebook Share on Twitter Twitter Share on MySpace MySpace Share on Google+ Google+
  • +1

Re: Ciklička struktura

Postod Daniel » Utorak, 05. Novembar 2013, 00:45

Pošto je tek pre neki dan objavljen Pravilnik, oprostiću ti nepoštovanje tačke 14. :P
(Upravo sam u podešavanjima foruma povećao visinu polja za programski kôd, kako bi se ceo kôd video odjednom umesto da se skroluje; možda će biti potrebno da u svom browseru stisnete CTRL+F5, kako bi isti, tj. browser, registrovao promenu.)

U ovom bloku se ispituje da li na poziciji b1 imamo prvo pojavljivanje slova u toj reči:

Kôd: Obeleži sve
        3.   Ako b1>0 tada
              1.   Za b2=1 do b1-1
                    1.   P1=B1-to slovo u RIJEC
                    2.   P2=B2-to slovo u RIJEC
                    3.   Ako je p1=p2 tada
                          1.   NADJENO=true
                          2.   Prekini ponavljanje

Izlazni rezultat tog bloka je promenljiva NADJENO. Ako je NADJENO=true, znači da se to slovo već pojavljivalo na nekoj od prethodnih pozicija u datoj reči, a ako je NADJENO=false, to znači da na toj poziciji imamo prvo pojavljivanje tog slova u datoj reči.

S tim, da je u liniji "Ako b1>0 tada" verovatno greška – trebalo bi da bude "Ako b1>1 tada", budući da je b1 ionako uvek veće od nule. Uslov da je b1>1 je i logičan i potreban, zbog naredne linije koja glasi "Za b2=1 do b1-1", u kojoj b1-1 mora biti najmanje 1, tj. b1 mora biti najmanje 2, dakle, mora biti veće od 1.



Naredni blok se izvršava samo ako smo utvrdili da se slovo na tekućoj poziciji prvi put pojavljuje u datoj reči; u suprotnom, ako je već bilo pojavljivanja tog slova, naredni blok preskačemo, vraćamo se na početak petlje i pomeramo na narednu poziciju.

Kôd: Obeleži sve
        4.   Ako je NADJENO<>true tada
              1.   Ako je b1<DULJINA tada
                    1.   Za b2=b1+1 do DULJINA
                          1.   P1=B1-to slovo u RIJEC
                          2.   P2=B2-to slovo u RIJEC
                          3.   Ako je p1=p2 tada
                                1.   BROJAC=BROJAC+1
                    2.   Ispiši B1-to slovo u RIJEC, BROJAČ

U tom bloku se vrši brojanje koliko se puta slovo koje se nalazi na tekućoj poziciji ponavlja do kraja reči. Pošto smo do ovog bloka došli onda kada nije bilo pojavljivanja tog slova na prethodnim pozicijama u reči, broj njegovih ponavljanja od te pozicije pa do kraja reči biće jednak ukupnom broju ponavljanja tog slova u reči – znači, upravo ono što tražimo.

Međutim, mislim da je i ovde greška, jer s ovakvim algoritmom, ako se na kraju reči (na poslednjoj poziciji) nalazi slovo kojem je to jedino pojavljivanje u reči, onda se ono neće ispisivati u rezultatu. Zato bi trebalo poslednju liniju, "Ispiši B1-to slovo u RIJEC, BROJAČ" staviti izvan uslova da je b1<DULJINA, tako da taj poslednji blok izgleda ovako:

Kôd: Obeleži sve
        4.   Ako je NADJENO<>true tada
              1.   Ako je b1<DULJINA tada
                    1.   Za b2=b1+1 do DULJINA
                          1.   P1=B1-to slovo u RIJEC
                          2.   P2=B2-to slovo u RIJEC
                          3.   Ako je p1=p2 tada
                                1.   BROJAC=BROJAC+1
              2.   Ispiši B1-to slovo u RIJEC, BROJAČ
I do not fear death. I had been dead for billions and billions of years before I was born, and had not suffered the slightest inconvenience from it. – Mark Twain
Korisnikov avatar
Daniel  OFFLINE
Administrator
 
Postovi: 9300
Lokacija: Beograd
Zahvalio se: 5151 puta
Pohvaljen: 4951 puta

Re: Ciklička struktura

Postod blake » Utorak, 05. Novembar 2013, 14:37

Jep, u zadatku je trebalo provjerit ima li grešku...Samo jesi zaboravi zadnji blok izminit?
blake  OFFLINE
 
Postovi: 371
Lokacija: Split, Croatia
Zahvalio se: 127 puta
Pohvaljen: 96 puta

Re: Ciklička struktura

Postod Daniel » Utorak, 05. Novembar 2013, 14:55

blake je napisao:Samo jesi zaboravi zadnji blok izminit?

Nisam zaobravio. Ako uporediš dva poslednja koda iz mog prethodnog posta, videćeš da se razlikuju po tome što u ovom poslednjem kodu linija "Ispiši B1-to slovo u RIJEC, BROJAČ" nije unutar "Ako je b1<DULJINA" uslova.
I do not fear death. I had been dead for billions and billions of years before I was born, and had not suffered the slightest inconvenience from it. – Mark Twain
Korisnikov avatar
Daniel  OFFLINE
Administrator
 
Postovi: 9300
Lokacija: Beograd
Zahvalio se: 5151 puta
Pohvaljen: 4951 puta

Re: Ciklička struktura

Postod blake » Utorak, 05. Novembar 2013, 15:24

oko sokolovo.
blake  OFFLINE
 
Postovi: 371
Lokacija: Split, Croatia
Zahvalio se: 127 puta
Pohvaljen: 96 puta


Povratak na MATEMATIKA U PROGRAMIRANJU

Ko je OnLine

Korisnici koji su trenutno na forumu: Nema registrovanih korisnika i 23 gostiju


Index stranicaTimObriši sve kolačiće boarda
Danas je Četvrtak, 28. Mart 2024, 17:12 • Sva vremena su u UTC + 1 sat
Pokreće ga phpBB® Forum Software © phpBB Group
Prevod – www.CyberCom.rs