Leonardo_Silva 0 Denunciar post Postado Dezembro 21, 2009 Estou fazendo alguns exerc. e percebi maneiras diferente de se usar função. Pode invocar a função onde quiser? Diferente, salvar um valor (o retorno) no nome da função e depois usar esse retorno sem atribuir em outra variavel. Por exemplo esse aqui; já chamou e retornou dentro de um decisão. algoritmo "comparacao" funcao compara(a, b : real) : logico inicio retorne a = b fimfuncao var n1, n2 : real inicio escreva("N° 1: ") leia(n1) escreva("N° 2: ") leia(n2) se (compara(n1, n2)) entao //AKI escreva("Iguais") senao escreva("Diferentes") fimse fimalgoritmo É assim mesmo, já chamar e logo em seguida já utilizar do valor retornado? Faria assim: comparacao <- compara(n1, n2) //coloca na var se (comparacao) entao //depois que utiliza ela Obrigadão e malz pelas dúvidas básicas. Pq é complicado não ter ninguem para auxiliar. http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Dezembro 22, 2009 Bom não sei se o visualg(pois n mecho nele) aceita desse jeito. + eu geralmente faço do jeito q você fez qnd programo em outras linguagens.. eu acho + bonito tbm ;D []s Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Dezembro 22, 2009 Com certeza é possível fazer isso! Se o visualG não suportar, ele está seriamente defasado e precisando de uma atualização... Além de ser mais elegante, é mais eficiente. Note que economiza-se uma variável! Compartilhar este post Link para o post Compartilhar em outros sites
Leonardo_Silva 0 Denunciar post Postado Dezembro 23, 2009 Dae Rapaziada . http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif O VisualG faz é coisas alem do comum hauahaua, como zerar as variaveis..etc. Sempre que finaliza as funções ela retorna algo, mas pensava que tinha que se em variaveis. Não sabia que retornava no direto no escreva. Qual outra coisa bacana que da para fazer com função? Outra coisa: a = bEsta retornando: a = b ou true/false?Retorno é logico, mas tbm poderia ser a expressão. Se for true/false, isso é mto loko. http://forum.imasters.com.br/public/style_emoticons/default/natal_w00t.gif Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Dezembro 24, 2009 Cara, o sinal de igual ('=') no visualG é um operador de relação. Isto é, estabelece uma relação entre duas coisas. Logo, o tipo de retorno é um valor lógico. é perfeitamente válido você escrever: se a = b entao ... senao ... fimse E também pode fazer: var a : logico x, y: real inicio //... //... a := x = y //... Compartilhar este post Link para o post Compartilhar em outros sites
Leonardo_Silva 0 Denunciar post Postado Dezembro 29, 2009 Opa deu para sacar. A variavel c por exemplo: a <- 5 b <- 2 c <- a = b d <- 20 < c A variavel C salva a expressão ou verd/falso? Ae beteu a duvida, qual dos 2 modos a var d ficaria: d <- 20 < falso d <- 20 < a = b Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Dezembro 29, 2009 Você só pode comparar cachorros com cachorros, ou cabelo com cabelo. Não faz sentido comparar cachorro com cabelo, não é? Portando, a expressão: 20 < a = b É ambigua. Se for: (20 < a) = b Onde a é do tipo Int, e b é do tipo lógico, então faz sentido. Mas, se for: 20 < (a = B) Ja não faz sentido...Não da pra comparar um número com um valor lógico. Não entendi a sua dúvida. Compartilhar este post Link para o post Compartilhar em outros sites
Leonardo_Silva 0 Denunciar post Postado Dezembro 29, 2009 Correto Victor, mas estou dizendo sobre o que fica guardado na variavel. Temos as var A e B, com valores predefinidos sendo inteiro. a <- 5 e b <- 5 Temos a 3° var C, sendo logica, recebendo a e b, depois verificando igualdade. Nessa hora o que vai estar armazenado: c <- a = b ou c <- verdadeiro Pq pelo livro, estou achando que fica na var a expressão. malz pelo exemplo mal feito. http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Dezembro 30, 2009 Se C é do tipo lógico, como pode ficar guardado uma expressão? Na variável C só podemos guardar dados do tipo lógico, portanto, ficará com "verdadeiro" Compartilhar este post Link para o post Compartilhar em outros sites
Leonardo_Silva 0 Denunciar post Postado Dezembro 30, 2009 Opaaa Victor, muito obrigado cara . http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif Só para complementar o topico e curiosidade; se fosse para salvar a expressão como seria? http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Dezembro 31, 2009 Não da pra salvar a expressão. Quer dizer, até dá pra fazer umas gambiarras e salvar uma espécie de expressão, mas fica beeeem mais complicado e com certeza no visualG não da pra fazer isso. Compartilhar este post Link para o post Compartilhar em outros sites
Leonardo_Silva 0 Denunciar post Postado Janeiro 3, 2010 Tinha ate pensado em salvar como caracter, mas não teria como manipular... Malz a demora tinha viajado, bom Dois Milí e Dez para todos http://forum.imasters.com.br/public/style_emoticons/default/natal_tongue.gif Voltei a estudar funções e deu uma dúvida, teria como pegar o valor do retorno e manipular dentro dessa mesma função? function desligarTv () : logico var respDesligar : caracter inicio escreval("Desligar Tv e dar uma volta..?") leia(respDesligar) return respDesligar = "sim" //AKI se (return = verdadeiro) entao escreva("Desligada") senao escreva("Continua a programação") fimse fimfuncao Pq dependendo do retorno quero um escreva diferente, mas por conhecimento queria ver se é possivel sem uma var adicional ou usar respDesligar. Vai que em outras situações não tem uma var de resposta. Obrigadão de novo ae, topico vai ser referencia sobre funções rs. http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Janeiro 3, 2010 não... uma vez que a função retorna não há volta. Trate o resultado fora da função. Compartilhar este post Link para o post Compartilhar em outros sites
Leonardo_Silva 0 Denunciar post Postado Janeiro 4, 2010 Cara para fechar o topico com chave de ouro... ok, pq tinha visto funções recursivas ae parece chamar ela mesma, mas são ooooutra coisa ? funcao compara(a, b : real) : logico inicio retorne a = b escreva("Opa um texto") fimfuncao Isso em uma linguagem que presta seria impossivel, algo depois do retorne? Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Janeiro 4, 2010 Não é questão de a linguagem prestar ou não. simplesmente não faz sentido pedir pra executar algo após o retorno da função. Funções recursivas precisam obedecer algumas regras, caso contrário elas nunca param de se chamar. Vamos falar muito sobre elas no curso de programação funcional. Compartilhar este post Link para o post Compartilhar em outros sites
Leonardo_Silva 0 Denunciar post Postado Janeiro 5, 2010 Entendo cara, as vezes bate essas ideias hehe . Irei olhar atentamente o curso, principalmente quando tiver proc/func . Pode colocar como resolvido. Muito obrigado a todos, foi de grande ajuda. http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif Compartilhar este post Link para o post Compartilhar em outros sites