Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
80
Task/Semordnilap/FreeBASIC/semordnilap.freebasic
Normal file
80
Task/Semordnilap/FreeBASIC/semordnilap.freebasic
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
' version 20-06-2015
|
||||
' compile with: fbc -s console
|
||||
|
||||
Function reverse(norm As String) As String
|
||||
|
||||
Dim As String rev
|
||||
Dim As Integer i, l = Len(norm) -1
|
||||
|
||||
rev = norm
|
||||
For i = 0 To l
|
||||
rev[l-i] = norm[i]
|
||||
Next
|
||||
|
||||
Return rev
|
||||
|
||||
End Function
|
||||
|
||||
' ------=< MAIN >=------
|
||||
|
||||
Dim As Integer i, j, count, amount, ff = FreeFile
|
||||
Dim As String in_str, rev, big = " " ' big needs to start with a space
|
||||
Dim As String norm(27000), result(270, 2)
|
||||
|
||||
Print
|
||||
Print "Start reading unixdict.txt";
|
||||
|
||||
Open "unixdict.txt" For Input As #ff
|
||||
|
||||
While Not Eof(ff) ' read to end of file
|
||||
|
||||
Line Input #ff, in_str ' get line = word
|
||||
in_str = Trim(in_str) ' we don't want spaces
|
||||
If Len(in_str) > 1 Then ' if length > 1 then reverse
|
||||
rev = reverse(in_str)
|
||||
If in_str <> rev Then ' if in_str is not a palingdrome
|
||||
count = count + 1 ' increase counter
|
||||
norm(count) = in_str ' store in the array
|
||||
big = big + rev + " " ' create big string with reversed words
|
||||
End If
|
||||
End If
|
||||
|
||||
Wend
|
||||
|
||||
Close #ff
|
||||
|
||||
Print " ... Done"
|
||||
Print : Print "Start looking for semordnilap"
|
||||
|
||||
For i = 1 To count
|
||||
For j = 1 To amount ' check to avoid the double
|
||||
If result(j, 2) = norm(i) Then Continue For, For
|
||||
Next
|
||||
j = InStr(big, " " + norm(i) + " ")
|
||||
If j <> 0 Then ' found one
|
||||
amount = amount + 1 ' increase counter
|
||||
result(amount,1) = norm(i) ' store normal word
|
||||
result(amount,2) = reverse(norm(i)) ' store reverse word
|
||||
End If
|
||||
Next
|
||||
|
||||
Print : Print "Found"; amount; " unique semordnilap pairs"
|
||||
Print : Print "Display 5 semordnilap pairs"
|
||||
Print
|
||||
|
||||
count = 0
|
||||
For i = 1 To amount
|
||||
If Len(result(i,1)) >= 5 Then
|
||||
count = count + 1
|
||||
Print result(i, 1), result(i, 2)
|
||||
If count >= 5 Then Exit For
|
||||
EndIf
|
||||
Next
|
||||
|
||||
Print
|
||||
|
||||
' empty keyboard buffer
|
||||
While InKey <> "" : Wend
|
||||
Print : Print "Hit any key to end program"
|
||||
Sleep
|
||||
End
|
||||
Loading…
Add table
Add a link
Reference in a new issue