Autor Tópico: Como ordenar palavras em ordem inversa no Calc [Resolvido]  (Lida 832 vezes)

Offline olinto

  • Usuário Ubuntu
  • *
  • Mensagens: 139
    • Ver perfil
Como ordenar palavras em ordem inversa no Calc [Resolvido]
« Online: 09 de Maio de 2012, 09:30 »
Olá,

Estou precisando ordenar uma lista de palavras no Calc, só que elas devem ser lidas em ordem inversa (cama -> amac).   Ou seja, primeiro virão as palavras cuja última letra seja A.

Procurei uma função que espelhasse as palavras mas também não achei.

Agradeço qualquer dica.

Abraços,

Antônio
« Última modificação: 10 de Maio de 2012, 22:57 por olinto »
Antônio Olinto
Linux User 455618
Ubuntu User 31203

Offline stlkr

  • Usuário Ubuntu
  • *
  • Mensagens: 14
    • Ver perfil
Re: Como ordenar palavras em ordem inversa no Calc
« Resposta #1 Online: 09 de Maio de 2012, 19:31 »
podes fazer isso recursivamente ou colocando as palavras numa pilha (push) e depois fazendo o pop delas e imprimindo...

De forma recursiva é bastante simples. basta fazer
//String designada de temp a passar
//String funcao (String temp) {
if (temp.length == 1)
return temp;
else
return funcao (temp.substring(1)) + temp.charAt(0);
}

Offline olinto

  • Usuário Ubuntu
  • *
  • Mensagens: 139
    • Ver perfil
Re: Como ordenar palavras em ordem inversa no Calc
« Resposta #2 Online: 10 de Maio de 2012, 22:55 »
Valeu! Também vou tentar isso.

Na lista do OpenOffice "sp24horas" (este é o codinome do remetente) deu a dica de fazer a seguinte função basic

Public Function ReverseStr(Source As String)
Dim Result, MyString As String
 Result = ""
 MyString = ""
 If Len(Source) = 0 Then
   Result = Source
 Else
   MyString = Source
   Do While Len(MyString) > 0
       Length = Len(MyString)
       Result = Result + Right(MyString,1) '
       MyString = Left(MyString,Length -1)
   Loop
 End If
 ReverseStr = Result
End Function

Eu não sabia fazer funções mas segui o tutorial de

http://www.vivaolinux.com.br/artigo/Criando-uma-funcao-no-OpenOffice.org-Calc

Foi tudo tranquilo.

Valeu,

Antônio

« Última modificação: 10 de Maio de 2012, 23:18 por olinto »
Antônio Olinto
Linux User 455618
Ubuntu User 31203