LOVICE
 

' Lovice.bas - trazi se nadulji podniz unutar nekog skupa rijeci
' zadatak sa drzavnog natjecanja
'Opis algoritma:
''Prva rijec u nizu se uzima i trazi se po svim ostalim rijecima.
'Najbolje bi bilo kada bi prva rijec bila najmanja, tada bi pretrazivanje
'trajalo najmanje.'Ukoliko cijelu prvu rijec ne sadrze sve ostale rijeci, tada se duljina rijeci

'smanjuje za jedan znak i ponovno se trazi, ali sada nova rijec u svim ostalim 'rijecima
'No kada se rijec smanji za jedan znak tada imamo zapravo dvije razlicite

' rijeci duljine n-1 znakova (n-duljina znakova), pa trazimo obje rijeci

'Postupak se ponavlja do duljine rijeci od nula znakova i tu zavrsava.

 

 

DIM r$(5)

CLS

broj = 5

FOR i = 1 TO broj

PRINT i

INPUT r$(i)

NEXT i

rijec$ = r$(1) 'uzimam prvu rijec

d = LEN(r$(1)) 'racunam njenu duljinu

broji = 0 'sluzi za utvrdjivanje da li postoji u drugim rijecima

duljina = d

pocetak = 1

DO WHILE duljina > 0

pocetak = 1 'pocni pretrazivati od prvog slova

DO WHILE pocetak + duljina - 1 <= d

rij$ = MID$(rijec$, pocetak, duljina)

FOR j = 2 TO broj 'provjeri u drugim rijecima

IF INSTR(r$(j), rij$) <> 0 THEN broji = broji + 1

NEXT j

IF broji = broj - 1 THEN 'imaju je sve rijeci

PRINT LEN(rij$), rij$

END

END IF

pocetak = pocetak + 1 'idi na slijedecu poziciju

broji = 0

LOOP

duljina = duljina - 1 'smanji rijec za jedno slovo

LOOP 'zavrsi duljinu

PRINT "nemaju zajednicke rijeci", 0