× Linguagem de Programação ADVPL

Perguntas Exercício de contar as vogais e as consoantes de uma palavra

Mais
8 anos 11 meses atrás #29754 por lalberto
Muda aqui

While nOpcao1 # 2 .And. nOpcao2 # 2

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 11 meses atrás #29755 por viniciusbsilva
Mesmo com a alteração, ele continua executando as outras perguntas antes de finalizar.

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 11 meses atrás #29756 por viniciusbsilva
Quando o 2 é digitado primeiro, o programa é encerrado, mas quando é digitado depois de uma ou mais execuções ele só encerra após mais uma execução completa.

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 11 meses atrás #29757 por lalberto
Segue Correcao
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 .t.
	
	If !Pergunte(cPerg, .T.)
		Exit
	EndIf
	
	nOpcao1 := mv_par01
	nOpcao2 := 0
	
	If nOpcao1==2
		Exit
	Endif
	
	
	If !Pergunte(cPerg3, .T.)
		Exit
	EndIf
	
	
	
	nOpcao2 := mv_par01
	
	
	
	If nOpcao2 == 1
		
		U_FVogais()
		
	ElseIf 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

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 11 meses atrás #29758 por viniciusbsilva
Muito obrigado Luiz, consegui concluir o programa. Está rodando perfeito. Após alguns ajustes, ele ficou assim:
User Function ATV013()
**********************
Local nOpcao1     := 0
Local nOpcao2     := 0
Local cTotal      := " "
Local cPerg       := "TATV013_4"
Local cPerg2      := "TATV013_5"
Local cPerg3      := "TATV013_6"

fPutSX1(cPerg)
fPutSX3(cPerg3)

nOpcao1 := 1

While .t.
	
	If !Pergunte(cPerg, .T.)
		Return
	EndIf
	
	nOpcao1 := mv_par01
	nOpcao2 := 0
	
	If nOpcao1 == 2
		Return
	EndIf
	
	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_4"
Local cPerg2   := "TATV013_5"
Local cPerg3   := "TATV013_6"

fPutSX2(cPerg2)

If !Pergunte(cPerg2, .T.)
	Return
EndIf

cPalavra := mv_par01
cPalavra := Lower(cPalavra)

//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_4"
Local cPerg2      := "TATV013_5"
Local cPerg3      := "TATV013_6"

fPutSX2(cPerg2)

If !Pergunte(cPerg2, .T.)
	Return
EndIf

cPalavra := mv_par01
cPalavra := Lower(cPalavra)

//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

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.111 segundos
Joomla templates by a4joomla