Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

leo_rsouza

Matrizes e funçoes

Recommended Posts

Bom dia pessoal ... É o seguinte, eu gostaria de desenvolver uma função que preenchesse valores em uma matriz , como no seguinte esquema: - Na pagina asp principal, pego os valores do form em uma variavel e chamon a função - Na pagina que contem a função, uso o split e jogo esses valores em uma matriz - Na pagina principal, chamo essa função e começo a dar um print na matriz que ela gerou....Tentei algumas coisas, mas sem sucesso.... Como faço ?Obrigado !

Compartilhar este post


Link para o post
Compartilhar em outros sites

brother, você fez a parte mais dificil..a LOGICA!/*** Na pagina asp principal, pego os valores do form em uma variavel e chamon a função ***/Para pegar os valores, você usa o request..var1 = request.form("nome_campo")/*** Na pagina que contem a função, uso o split e jogo esses valores em uma matriz ***/Split? você só precisa colocar um caracter que vai dividir os valores da variavel. pode ser uma virgula. ou espaço..var2 = split(var1,",")/*** - Na pagina principal, chamo essa função e começo a dar um print na matriz que ela gerou ***/Para mostrar os valores de um vetor, você precisa de um loop.Eu recomendo o FOR.for i=0 to ubound(var2) response.write var2(i)nextA Idéia é essa..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesmo assim da erro !!!!

olha o que eu fiz !

ASP

[*]

 

[*]<%

 

[*]Function geraMatriz (valores)

 

[*]

 

[*]geraMatriz split(valores,"-")

 

[*]max Ubound(geraMatriz,1)

 

[*]

 

[*]For i = 0 to max

 

[*] geraMatriz(i) = i + 1

 

[*]Next

 

[*]

 

[*]

 

[*]

 

[*]End Function

 

[*]

 

[*]call geraMatriz("2-9-8-75-69-7-52")

 

[*]

 

[*]Response.Write("Valores: <br><br><br>")

 

[*]For i = 0 to max

 

[*] Response.Write geraMatriz(i) & "<br>"

 

[*]Next

 

[*]%>

 

Tipo, a idéia é o seguinte

Estou desenvolvendo um sisteminha que pega valores digitados em um campo, coloca-os em ordem frequente, agrupa-os e calcula a frequencia e por fim, a media.....

Entao, o cara digitaria num textarea so valores separados por "-" , dai na pagina de resposta , ele chamaria essa função, que a principio, geraria uma matriz com os valores digitados e os colocaria em ordem !!!

 

Alguem me ajude !!!!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Explica melhor o que você quer fazer.

 

Se fosse para o início eu diria para usar uma SUB e não uma FUNCTION, pois você não precisaria de um retorno de dados da function, e sim a execução de uma rotina de "quebra" e "Response.Write". No caso o erro era a tentativa de usar uma variável local da Function (Max) fora da mesma.

 

Trabalha na Kreative é?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa....Trabalho sim, pq ?Então é o seguinte: Eu quero fazer um tipo de sisteminha que calcule algumas medidas de estatística.Tudo isso está dentro de funções;. Vai haver a página principal onde o usuário irá entrar com os valores (dados) que deseja gerar a tabela ! Os dados deveriam estar separados por "-" .Daí eu chamaria essa função. Ela seria responsável por pegar esses valores, armazenálos em uma matriz, ordená-los (ordem cerscente dos números) e me devolver uma matriz, com esse valores todos ordenados. Com a matriz que foi retornada, eu a passaria como parâmetro para uma outra função que calcularia a média, por exemplo. Entendeu: eu preciso que essa função me retorne uma matriz para que eu possa montar a tabela !!!!! e Aproveitando, eu preciso saber também como passar uma matriz como parâmetro para uma função. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao invéz de passar como matriz para outra Function passe como string usando delimitadores para usar como Split. Para ordenar, dê uma busca aqui mesmo no fórum sobre um tópico para ordenar alfabéticamente a lista de arquivos de uma pasta usando FSO, tem um conceito interessante usando RecordSet desconectado para isso, que foi postado pelo mebckosAlgumacoisaquenãomelembro.

 

 

Ah e manda um abraço pro Maykon, e manda ele abaixar o volume do som.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah e manda um abraço pro Maykon, e manda ele abaixar o volume do som.

hahahhaha, caramba, ouviu ai do RJ? http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif Vou abaixar, já já o sindico vem aqui.... hehehheheAbração Mr. SaRgado! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim..mas tipo...eu já estou fazendo isso...eu passo os valores em string, e uso o split para converte-los.....so que o resultado dessa função será uma matriz, certo ?? ordenada ok(ja faço isso) ????Eu preciso utilizar esse resultado em uma outra pagina ...... imprimindo os valores dessa matriz !!!!mas obrigado !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Sim..mas tipo...eu já estou fazendo isso...eu passo os valores em string, e uso o split para converte-los.....so que o resultado dessa função será uma matriz, certo ?? ordenada ok(ja faço isso) ????

 

Eu preciso utilizar esse resultado em uma outra pagina ...... imprimindo os valores dessa matriz !!!!

 

 

mas obrigado !!!

Sim será uma matriz, use a função Join que faz o INVERSO do Split, ele retorna uma matriz para uma string usando o separador que você indicar. Sintaxe:
ASP
  1. VARIAVEL JOIN(Matriz,Separador)

Dai você pode passar os dados para outra página via Query ou via session, se for o caso, e criar uma SUB para imprimir os resultados na tela.

 

Entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim......valeu mesmonao querendo abusar ai, mas alguem sabe o seguinte: - Como eliminar valores nulos de uma matriz? - Como retornar 2 valores diferentes de uma função?Valews salgado..

Compartilhar este post


Link para o post
Compartilhar em outros sites
Sim......valeu mesmo

nao querendo abusar ai, mas alguem sabe o seguinte:

 

  - Como eliminar valores nulos de uma matriz?

  - Como retornar 2 valores diferentes de uma função?

 

 

Valews salgado..

Uma forma seria varrendo a matriz e montando outra sem os valores nulos.

 

Para retornar 2 ou mais valores em uma Function, só usando separadores mesmo, pelo menos só assim que conheço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salgado,

 

Essa é pra você....

 

Os Srs. sabem que temos parâmetros do TIPO "BYVAL" e "BYREF", para alegria de todos, o ASP usa como default, BYREF, que permite o retorno de valores inseridos num "SUB"....É isso mesmo, dá para retornar valores através de uma "SUB"...

 

O Exemplo abaixo demonstrará isso

 

ASP

[*]

 

[*]Sub VerDados(var1,var2)

 

[*]

 

[*]var1 "Teste1"

 

[*]var2 "Teste2"

 

[*]

 

[*]End Sub

 

[*]

 

[*]var3 ""

 

[*]var4 ""

 

[*]Call verDados(var3,var4)

 

[*]

 

[*]Response.Write var3 & " - " & var4

 

[*]

 

Esse é um recurso muito utilizado no VB, já que o default do VB é ByVal, ou seja, o contrário do ASP.

 

Nada impede que o Byval seja utilizado no ASP conforme o exemplo abaixo.

 

ASP

[*]

 

[*]Sub VerDados(var1,ByVal var2)

 

[*]var1 "Teste1"

 

[*]var2 "Teste2"

 

[*]End Sub

 

[*]

 

[*]var3 ""

 

[*]var4 ""

 

[*]Call verDados(var3,var4)

 

[*]

 

[*]Response.Write var3 & " - " & var4

 

[*]

 

Neste exmplo, voces irão perceber que o valor da variavel "var4" não será retornado, já que o parâmetro "var2" é ByVal.

 

Para não conhece estes conceitos, passo algumas coisas interessantes.

 

Toda vez que criamos um variavel, o intepretador deve guardar um espaço na memória para aquela variavel.

 

Quando utilizamos a expressão "ByRef" nós informamos que o sistema não deverá guardar um espaço na memória, pois, esta variavel já foi criada, e portanto, utilizaremos o mesmo espaço e consequentemente quando altero o valor desta variavel "Byref" altero em toda a aplicação.

 

É muito mais simples do que parece.

 

Falow !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.