Pseudokod - hledani podretezce – Funkcionální programování – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pseudokod - hledani podretezce – Funkcionální programování – Fórum – Programujte.comPseudokod - hledani podretezce – Funkcionální programování – Fórum – Programujte.com

 

vas1l1j
~ Anonymní uživatel
2 příspěvky
24. 11. 2012   #1
-
0
-

Zdravim,

ve skole sme meli nasledujici ukol:

Zjisteti zda se v retezci A nachazi podretezec B.

A: abxy2cdef.

B: 2cd.

i <- 0
while a[i] != '.'
  j <- 0
     while b[j] =! '.'
	if b[j] != a[i+j]
          break
     j <- j+1
	if b[j] = '.'
	  return true
	return false

Takle sme to vyresili ve skole. Ale nemuzu pochopit jak si mam vysvetlit tu cast kde: a[i +j], proste nechapu jak se tam pracuje s tema indexama,mohl by mi to prosim nekdo osvetlit, popr. upravit?

Diky moc                    

Nahlásit jako SPAM
IP: 80.188.29.–
TheOndrap+2
Super člen
24. 11. 2012   #2
-
0
-

Ahoj,

zřejmě se jedná o implementaci metody "prosté síly".

konkrétně v případě a[i + j] se jedná o to, že i je pozice "1. znaku porovnávaného textu"-značí se"src" a j pozici porovnávaného bodu v řetězci B - značí se "pattern".

jinak řečeno:

  • i se posouvá od 0 do (délka_řetězce - 1) // v tvém konkrétním případě je konec řetězce značen tečkou
  • a[0] se porovná s prvním znakem b neboli b[0], potom a[1] s b[1] atd.. No když není nalezená shoda, posune se i = 1, b = 0 a musí se posunout na a[1+0 = 1] a zase porovnat s b[0], a[1+1 = 2] vs b[1], a[1+2 = 3] vs b[2] ..
  • další krok i = 2, b = 0 - >a [2+0 = 2] vs b[0], a[2+1 = 3] vs b[1], a[2+2 = 4] vs b[1]...
  • A obecně z toho vidíš že musíš porovnávat a[i + j] a b[j]
  • konec samozřejmě nastává když b[j] == '.' .. neboli byl uspěšně porovnán celý pattern řetězec => byl nalezen podřetězec, případně doběhnul hlavní cyklus a shoda nebyla nalezena.

Blbě se to vysvětluje, líp se to kreslí http://www.youtube.com/watch?…

BTW: Funkcionální programování je trošku něco jínýho, ale to je tedko vedlejší:) Bazinga

Nahlásit jako SPAM
IP: 88.102.250.–
ZČU v Plzni je mnohem víc, než jenom právnická fakulta !!
Fakulta aplikovaných věd www.fav.zcu.cz
"Když nedokážete říci věci jednoduše, pak jim dostatečně nerozumíte"
vas1l1j
~ Anonymní uživatel
2 příspěvky
25. 11. 2012   #3
-
0
-

diky moc, tohle sem presne potreboval vedet i to video je supr ;)

Nahlásit jako SPAM
IP: 80.188.29.–
Flowy0
Věrný člen
16. 1. 2013   #4
-
0
-

Keď sa to volá Brute force aký iný spôsob hľadania ešte je?

Nahlásit jako SPAM
IP: 90.181.211.–
https://github.com/Flowy
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 3 hosté

Podobná vlákna

Hledání podřetězce — založil Tom1234

Hledání podřetězce zprava — založil peacheass

Podřetězce — založil Deivson

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý