- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Exercício de contar as vogais e as consoantes de uma palavra
×
Linguagem de Programação ADVPL
Perguntas Exercício de contar as vogais e as consoantes de uma palavra
- viniciusbsilva
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 29
- Obrigados Recebidos: 0
8 anos 11 meses atrás #29725
por viniciusbsilva
Respondido por viniciusbsilva no tópico Exercício de contar as vogais e as consoantes de uma palavra
Eu vou terminar a atual mudança que eu estou fazendo, mas já posto o que eu fiz.
Por favor Acessar ou Registrar para participar da conversa.
- viniciusbsilva
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 29
- Obrigados Recebidos: 0
8 anos 11 meses atrás #29726
por viniciusbsilva
Respondido por viniciusbsilva no tópico Exercício de contar as vogais e as consoantes de uma palavra
Uma informação adicional: Como que eu chamo uma user function dentro de outra. Exemplo:
User Function 01
(chamar a User Function 02)
lkasdnfksdlnaknf
sdaD
(chamar a User Function 03)
Return
User Function 02
dfasdfd
sd
asd
fas
Return
User Function 03
sadsd
asd
ASD
A
Return
User Function 01
(chamar a User Function 02)
lkasdnfksdlnaknf
sdaD
(chamar a User Function 03)
Return
User Function 02
dfasdfd
sd
asd
fas
Return
User Function 03
sadsd
asd
ASD
A
Return
Por favor Acessar ou Registrar para participar da conversa.
- viniciusbsilva
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 29
- Obrigados Recebidos: 0
8 anos 11 meses atrás - 8 anos 11 meses atrás #29727
por viniciusbsilva
Aqui está o que eu fiz até agora.
Respondido por viniciusbsilva no tópico Exercício de contar as vogais e as consoantes de uma palavra
User Function ATV013()
**********************
Local nOpcao1 := 0
Local nOpcao2 := 0
Local cTotal := " "
Local cPerg := "TATV013_1"
Local cPerg2 := "TATV013_2"
Local cPerg3 := "TATV013_3"
fPutSX1(cPerg)
If !Pergunte(cPerg, .T.)
Return
EndIf
nOpcao1 := mv_par01
While nOpcao1 # 2
nOpcao1 := 0
nOpcao2 := 0
fPutSX1(cPerg3)
If !Pergunte(cPerg, .T.)
Return
EndIf
nOpcao2 := mv_par01
If nOpcao2 == 1
(Chamar a FVogais) //Chamar a User Function de vogais
EndIf
If nOpcao2 == 2
(Chamar a FConsoantes) //Chamar a User Function de consoantes
EndIf
EndDo
User Function FVogais(nOpcao2)
******************************
Local cPalavra := " "
Local aVogais := [1,5]
Local i := 0
Local n := 0
Local nLetras := 0
Local nVogais := 0
fPutSX1(cPerg2)
If !Pergunte(cPerg2, .T.)
Return
EndIf
cPalavra := mv_par01
aVogais[1] := "a"
aVogais[2] := "e"
aVogais[3] := "i"
aVogais[4] := "o"
aVogais[5] := "u"
nVogais := 0
nLetras := 0
nLetras := Len(cPalavra)
For i := 1 To nLetras
For n := 1 To 5
If SubStr(cPalavra, i, 1) == aVogais[n]
nVogais++
EndIf
Next n
Next i
MsgInfo("Na palavra, há: " + cValToChar(nVogais) + " vogais.", "Exibição dos resultados")
Return
User Function FConsoantes(nOpcao2)
**********************************
Local cPalavra := " "
Local aConsoantes := [1,22]
Local i := 0
Local n := 0
Local nLetras := 0
Local nConsoantes := 0
fPutSX1(cPerg2)
If !Pergunte(cPerg2, .T.)
Return
EndIf
cPalavra := mv_par01
aConsoante[1] := "b"
aConsoante[2] := "c"
aConsoante[3] := "d"
aConsoante[4] := "f"
aConsoante[5] := "g"
aConsoante[6] := "h"
aConsoante[7] := "j"
aConsoante[8] := "k"
aConsoante[9] := "l"
aConsoante[10] := "m"
aConsoante[11] := "n"
aConsoante[12] := "p"
aConsoante[13] := "q"
aConsoante[14] := "r"
aConsoante[15] := "s"
aConsoante[16] := "t"
aConsoante[17] := "v"
aConsoante[18] := "w"
aConsoante[19] := "x"
aConsoante[20] := "y"
aConsoante[21] := "z"
aConsoante[22] := "ç"
nConsoantes := 0
nLetras := 0
nLetras := Len(cPalavra)
For i := 1 To nLetra
For n := 1 To 22
If SubStr(cPalavra, i, 1) == aConsoantes[n]
nConsoantes++
EndIf
Next n
Next i
MsgInfo("Na palavra, há: " + cValToChar(nConsoantes) + " consoantes.", "Exibição dos resultados")
Return
Static Function fPutSX1(cPerg)
******************************
Local aTam := {}
Local aHelpPor
aTam := {1, 0, "N"} //Primeira pregunta: nOpcao1
aHelpPor := {}
aAdd(aHelpPor, "Digite 1 para ler uma palavra ou 2 para " )
aAdd(aHelpPor, "finalizar. " )
aAdd(aHelpPor, " " )
PutSX1(cPerg,"01","Digite a opção correspondente","","","mv_ch1",aTam[3],aTam[1],aTam[2],0,"G","","","","","mv_par01","","","","","","","","","","","","","","","","",aHelpPor,{},{})
Return
Static Function fPutSX2(cPerg2)
******************************
Local aTam := {}
Local aHelpPor
aTam := {25, 0, "C"}
aHelpPor := {}
aAdd(aHelpPor, "Digite uma palavra para que possa ser ap" )
aAdd(aHelpPor, "resentado o número de vogais ou o número" ) //Segunda pergunta: cPalavra
aAdd(aHelpPor, "de consoantes. " )
PutSX1(cPerg2,"01","Digite uma palavra","","","mv_ch1",aTam[3],aTam[1],aTam[2],0,"G","","","","","mv_par01","","","","","","","","","","","","","","","","",aHelpPor,{},{})
Return
Static Function fPutSX3(cPerg3)
******************************
Local aTam := {}
Local aHelpPor
aTam := {1, 0, "N"} //Terceira pergunta: nOpcao2
aHelpPor := {}
aAdd(aHelpPor, "Selecione a opção correspondente. " )
aAdd(aHelpPor, " " )
aAdd(aHelpPor, " " )
PutSX1(cPerg3,"01","Opções","","","mv_ch1",aTam[3],aTam[1],aTam[2],0,"C","","","","","mv_par01","Vogais","","","","Consoantes","","","","","","","","","","","",aHelpPor,{},{})
Return
Aqui está o que eu fiz até agora.
Ultima edição: 8 anos 11 meses atrás por viniciusbsilva.
Por favor Acessar ou Registrar para participar da conversa.
- angeloprotti1
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 28
- Obrigados Recebidos: 0
8 anos 11 meses atrás #29734
por angeloprotti1
Respondido por angeloprotti1 no tópico Exercício de contar as vogais e as consoantes de uma palavra
Bom dia Vinicios
Pelo que entendi é o seguinte:
Obs: caso nao seja USER Function, chamar sem o U_
Ex:
Static Function Teste()
Return
chamada:
Teste()
Lembrando que Static só funciona se for chamada no mesmo fonte.
User Function Func1()
/*Chamar funcao 2*/
u_Func2()
/*Chamar funcao 3*/
u_Func3()
Return
User Function Func2()
/*Corpo*/
Return
User function Func3()
/*Corpo*/
Return
Pelo que entendi é o seguinte:
Obs: caso nao seja USER Function, chamar sem o U_
Ex:
Static Function Teste()
Return
chamada:
Teste()
Lembrando que Static só funciona se for chamada no mesmo fonte.
User Function Func1()
/*Chamar funcao 2*/
u_Func2()
/*Chamar funcao 3*/
u_Func3()
Return
User Function Func2()
/*Corpo*/
Return
User function Func3()
/*Corpo*/
Return
Por favor Acessar ou Registrar para participar da conversa.
- viniciusbsilva
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 29
- Obrigados Recebidos: 0
8 anos 11 meses atrás #29752
por viniciusbsilva
Respondido por viniciusbsilva no tópico Exercício de contar as vogais e as consoantes de uma palavra
Muito obrigado Angelo Protti, com a sua ajuda consegui entender melhor como chamar uma User Function dentro de outra, agora vou aguardar a resposta do Kanaãm Luz Romero Rodrigues.
Por favor Acessar ou Registrar para participar da conversa.
- viniciusbsilva
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 29
- Obrigados Recebidos: 0
8 anos 11 meses atrás #29753
por viniciusbsilva
Respondido por viniciusbsilva no tópico Exercício de contar as vogais e as consoantes de uma palavra
Depois da ajuda do Agelo Protti eu consegui fazer com que ele rodasse legal, mas ainda há um erro que eu não consegui solucionar:
Código:
Na execução para simular use os parametros abaixo:
1 -> Opção: Vogais -> (Palavra qualquer) -> Ok -> 2
Ao digitar o 2 era para que encerasse imediatamente o programa, mas isso não está acontecendo, alguem pode me ajudar?
Código:
User Function ATV013()
**********************
Local nOpcao1 := 0
Local nOpcao2 := 0
Local cTotal := " "
Local cPerg := "TATV013_1"
Local cPerg2 := "TATV013_2"
Local cPerg3 := "TATV013_3"
fPutSX1(cPerg)
fPutSX3(cPerg3)
If !Pergunte(cPerg, .T.)
Return
EndIf
nOpcao1 := mv_par01
If nOpcao1 == 2
Return
EndIf
While nOpcao1 # 2
If !Pergunte(cPerg, .T.)
Return
EndIf
nOpcao1 := mv_par01
nOpcao2 := 0
If !Pergunte(cPerg3, .T.)
Return
EndIf
nOpcao2 := mv_par01
If nOpcao2 == 1
U_FVogais()
EndIf
If nOpcao2 == 2
U_FConsoantes()
EndIf
EndDo
Return
User Function FVogais(nOpcao2)
******************************
Local cPalavra := " "
Local aVogais := {}
Local i := 0
Local n := 0
Local nLetras := 0
Local nVogais := 0
Local cPerg := "TATV013_1"
Local cPerg2 := "TATV013_2"
Local cPerg3 := "TATV013_3"
fPutSX2(cPerg2)
If !Pergunte(cPerg2, .T.)
Return
EndIf
cPalavra := mv_par01
//aAdd(nome no array, "elemento")
aAdd(aVogais, "a")
aAdd(aVogais, "e")
aAdd(aVogais, "i")
aAdd(aVogais, "o")
aAdd(aVogais, "u")
nVogais := 0
nLetras := 0
nLetras := Len(cPalavra)
For i := 1 To nLetras
For n := 1 To 5
If SubStr(cPalavra, i, 1) == aVogais[n]
nVogais++
EndIf
Next n
Next i
MsgInfo("Na palavra, há: " + cValToChar(nVogais) + " vogais.", "Exibição dos resultados")
Return
User Function FConsoantes(nOpcao2)
**********************************
Local cPalavra := " "
Local aConsoantes := {}
Local i := 0
Local n := 0
Local nLetras := 0
Local nConsoantes := 0
Local cPerg := "TATV013_1"
Local cPerg2 := "TATV013_2"
Local cPerg3 := "TATV013_3"
fPutSX2(cPerg2)
If !Pergunte(cPerg2, .T.)
Return
EndIf
cPalavra := mv_par01
//aAdd(nome no array, "elemento")
aAdd(aConsoante, "b")
aAdd(aConsoante, "c")
aAdd(aConsoante, "d")
aAdd(aConsoante, "f")
aAdd(aConsoante, "g")
aAdd(aConsoante, "h")
aAdd(aConsoante, "j")
aAdd(aConsoante, "k")
aAdd(aConsoante, "l")
aAdd(aConsoante, "m")
aAdd(aConsoante, "n")
aAdd(aConsoante, "p")
aAdd(aConsoante, "q")
aAdd(aConsoante, "r")
aAdd(aConsoante, "s")
aAdd(aConsoante, "t")
aAdd(aConsoante, "v")
aAdd(aConsoante, "w")
aAdd(aConsoante, "x")
aAdd(aConsoante, "y")
aAdd(aConsoante, "z")
aAdd(aConsoante, "ç")
nConsoantes := 0
nLetras := 0
nLetras := Len(cPalavra)
For i := 1 To nLetras
For n := 1 To 22
If SubStr(cPalavra, i, 1) == aConsoantes[n]
nConsoantes++
EndIf
Next n
Next i
MsgInfo("Na palavra, há: " + cValToChar(nConsoantes) + " consoantes.", "Exibição dos resultados")
Return
Static Function fPutSX1(cPerg)
******************************
Local aTam := {}
Local aHelpPor
aTam := {1, 0, "N"} //Primeira pregunta: nOpcao1
aHelpPor := {}
aAdd(aHelpPor, "Digite 1 para ler uma palavra ou 2 para " )
aAdd(aHelpPor, "finalizar. " )
aAdd(aHelpPor, " " )
PutSX1(cPerg,"01","Digite a opção correspondente","","","mv_ch1",aTam[3],aTam[1],aTam[2],0,"G","","","","","mv_par01","","","","","","","","","","","","","","","","",aHelpPor,{},{})
Return
Static Function fPutSX2(cPerg2)
******************************
Local aTam := {}
Local aHelpPor
aTam := {25, 0, "C"}
aHelpPor := {}
aAdd(aHelpPor, "Digite uma palavra para que possa ser ap" )
aAdd(aHelpPor, "resentado o número de vogais ou o número" ) //Segunda pergunta: cPalavra
aAdd(aHelpPor, "de consoantes. " )
PutSX1(cPerg2,"01","Digite uma palavra","","","mv_ch1",aTam[3],aTam[1],aTam[2],0,"G","","","","","mv_par01","","","","","","","","","","","","","","","","",aHelpPor,{},{})
Return
Static Function fPutSX3(cPerg3)
******************************
Local aTam := {}
Local aHelpPor
aTam := {1, 0, "N"} //Terceira pergunta: nOpcao2
aHelpPor := {}
aAdd(aHelpPor, "Selecione a opção correspondente. " )
aAdd(aHelpPor, " " )
aAdd(aHelpPor, " " )
PutSX1(cPerg3,"01","Opções","","","mv_ch1",aTam[3],aTam[1],aTam[2],0,"C","","","","","mv_par01","Vogais","","","","Consoantes","","","","","","","","","","","",aHelpPor,{},{})
Return
Na execução para simular use os parametros abaixo:
1 -> Opção: Vogais -> (Palavra qualquer) -> Ok -> 2
Ao digitar o 2 era para que encerasse imediatamente o programa, mas isso não está acontecendo, alguem pode me ajudar?
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Exercício de contar as vogais e as consoantes de uma palavra
Tempo para a criação da página:0.091 segundos