[obm-l] Re: [obm-l] Re: [obm-l] Re: [obm-l] Re: [obm-l] Re: [obm-l] Hierarquia das Operações
Bem, posso dizer que eu nunca pensei nesta convenção. No fim das contas, quando entrei no Ensino Médio, eu usava só parênteses por ser nais prático, e pelo fato de colchetes nunca aparecerem dentro de parênteses (só fui entender o porquê quando passei a programar). Logo que passei pela Computação (aliás tô meio enferrujado) eu aprendi algo sobre notação infixa e posfixa. Apesar de serem boas para contas em computador, são horríveis para o raciocínio. Por exemplo, como expressar uma equação de segundo grau, ou um sistema de equações, em notação "não-convencional"? Mas na hora de programar a notação prefixa é mais útil (quem já viu código LISP sabe do que estou falando, hehe!) e a posfixa tem seu lugar cativo em Compiladores (quase toda linguagem de programação pode ser evaluada em uma pilha modificada). Hoje em dia, eu me confundo completamente quando não leio a primeira página das "convenções adotadas neste livro": em alguns livros, {x} é o inteiro mais próximo de x, em outros [x] é o conjunto dos naturais abaixo de x... Uma curiosidade meio que no off-topic: tem um programa muito comum em máquinas Unix, o dc, que roda um RPN Calculator. Ele tem mais operações além das 4 básicas. Dá até pra calcular raízes quadradas e programar funções. Em 29/07/10, Luiz Rodrigues escreveu: > Olá pessoal!!! > Tudo bem??? > Agradeço a todos vocês pelas respostas. > Tenho bastante material para poder pensar... > Um grande abraço para todos!!! > Luiz > > 2010/7/28 Adalberto Dornelles > > Olá turma, > > > > > > Falando em notação RPN, lembrei do termo quando comprei uma > > calculadora HP 15 C (há muito tempo). Lembro que custei a pegar o > > jeito, mas depois gostei muito. A resolução de expressões usando a > > "pilha operacional" e pensando de "dentro pada fora" me facilitou a > > vida. Até hoje, penso ser a melhor maneira de operar. Pena que meus > > alunos da engenharia tenham muita dificuldade com a calculadora... > > > > Abraço, > > > > Adalberto > > > > > > Em 28 de julho de 2010 15:05, Bernardo Freitas Paulo da Costa > > escreveu: > > > > > > > > > 2010/7/28 Alessandro Madruga Correia : > > >> Em 28-07-2010 09:32, Bernardo Freitas Paulo da Costa escreveu: > > >>> > > >>> E agora, uma charada: > > >>> > > >>> +*+*123--45--678 = ? > > >>> > > >> > > >> + ((1*2)+3) * [(4-5) - ((6-7) - 8)] = 40 > > >> > > >> É isso? > > > Essa é uma solução que "sai do problema" :) Note que você interpretou > > > o primeiro "+" sem somar ninguém, o que é um problema !!! Mas é mais > > > ou menos por aí... > > > > > > Enfim, pra dar uma dica: como há 8 operandos e 8 operações, não é > > > possível que elas sejam todas binárias... senão, fica faltando um > > > operando. > > > > > >> > > >> Abraço. > > > > > > abraços, > > > -- > > > Bernardo Freitas Paulo da Costa > > > > > > > = > > > Instruções para entrar na lista, sair da lista e usar a lista em > > > http://www.mat.puc-rio.br/~obmlistas/obm-l.html > > > > = > > > > > > > > = > > Instruções para entrar na lista, sair da lista e usar a lista em > > http://www.mat.puc-rio.br/~obmlistas/obm-l.html > > > = > > > > -- /**/ Quadrinista e Taverneiro! http://tavernadofimdomundo.blogspot.com >> Histórias, Poemas, Quadrinhos e Afins http://baratoeletrico.blogspot.com />> Ativismo Digital (?) http://bridget-torres.blogspot.com/ >> Personal! Do not edit! = Instru��es para entrar na lista, sair da lista e usar a lista em http://www.mat.puc-rio.br/~obmlistas/obm-l.html =
[obm-l] Re: [obm-l] Re: [obm-l] Hierarquia das Operações O FFTOPIC
Olá Nehab!!! Tudo bem??? Muito obrigado pela resposta!!! Gostei muito da charada e quero resolvê-la com calma... Um grande abraço!!! Luiz. 2010/7/28 Carlos Nehab > Oi, Bernardo (e Luiz) > > Você tem toda razão, mais achei mais natural para o Luiz ele primeiro se > divertir com a notação prefixada. É mais natural. > > Na verdade já programei durante MUITOS anos e fui também professor na > área... > Mas sem querer ser saudosista (já sendo) lembro aos jovens que meu primeiro > PC tinha 64k de memória e meu HD 10 Mb (isto mesmo)... > Além disso no IME, onde cursei Engenharia Elétrica (1965/1969) - me formei > há mais de 40 anos... o IBM 1130 tinha 8k de memória e não era > muititarefa... Tempos inacreditáveis... > > E sem nenhum saudosismo bobo, naquela época programar era mais do que uma > arte. Era mágico. > E isto em linguagens malucas, como Assembler, Mumps, PL1, Pascal / Turbo > Pascal e... até Cobol... (um saco) e... outras linguagens "exdruxulas" da > época. > Pouco depois do C e da Orientação a Objeto, acabou meu saco e eu me decidi > pela Matemágica... > > Mas na linha da fronteira entre Informática e Matemática, também durante > anos fui professor de Técnicas de Construção de Algoritmos (inclusive > Algoritmos Heurísticos), Matemática Discreta, Linguagens Formais, > Complexidade de Computação, etc, para a galera de Ciência da Computação e, > cá prá nós, isto é mais matemática do que informática, né... > > Portanto, meu comentário sobre as notações in/pós/prefixas vêm deste > saudoso tempo (1970 a 2000). > > Quanto à sua charada, deixo como exercício pro Luiz, responsável por esta > discussão... > > Grande abraço, > Nehab > > PS: Gostosa inveja de você ai na França... Ralando muito ou apenas passando > férias? > > > Bernardo Freitas Paulo da Costa escreveu: > > 2010/7/28 Carlos Nehab : > > > Oi, Luiz, > > Tô ausente da lista há algum tempo justamente por falta de tempo, mas > gostaria de participar desta ... > > > Oi Nehab! Eu aproveitei o almoço hoje para perguntar para alguns > colegas franceses se essa história de "parênteses, colchetes, chaves" > existia por aqui... Parece que não, enfim, ninguém se lembra de ter > visto uma coisa dessas na escola. > > Mas eu respondo mesmo porque eu gosto de perturbar, e você falou da > notação polonesa, eu não posso evitar falar da RPN (reverse polish > notation, ou notação polonesa invertida), e também propor um > probleminha. > > > Vários colegas já responderam na linha de "é uma convenção", "tanto faz" e > eu concordo com os comentários já postados. > Mas talvez a chave da questão no que diz respeito ao ensino das notações > disponíveis para representar expressões seja perceber que, na verdade, não é > necessário nenhum símbolo separador para escrevê-las sem ambiguidade. > > Como a turma de computação aprende, você tem 3 formas usuais chamadas de > infixa, pósfixa e préfixa para representar expressões. > Algumas máquinas de calcular aceitam a forma préfixa naturalmente, também > chamada de notação polonesa. > Procure na Web os verbetes citados se quiser detalhes, mas ai dou apenas uma > idéia da "notação polonesa" que, se ensinada às crianças, evitaria todas > esta discussão. > > Por exemplo, para escrever expressões com esta notação escreva, > recursivamente (repetidamente), o símbolo da operação em primeiro lugar e, à > direita, as duas parcelas a ela associadas, na ordem em que ocorrem: > > Exemplinhos: > a + b será escrito como +ab > a+ b*c será escrito como +a*bc > a * (b + c) será escrito como *a+bc > e assim sucessivamente. > > Ou eja a notação é chamada de préfica porque a operação precede as parcelas > a elas associadas. Percebeu? > > Ou seja, o uso de parênteses, colchetes e chaves é apenas para facilitar o > uso da notação usual que utilizamos que é burra e limitada, pois lemos da > esquerda para a direita mas não necessariamente as operações que desejamos > realizar sejam calculadas nesta ordem. Teoricamente, no ocidente, > portanto, a notação mais sensata é a préfixa (ou polonesa)... Ma se eu > fosse japones ou árabe, possivelmente (espero não estar dando mancada) > preferiria a notação pósfixa... :-) > > > E se você fosse programador, talvez preferisse que seus utilizadores > usassem a notação posfixa, porque usa menos memória e as contas são > feitas diretamente na pilha, o que simplifica bastante o procedimento, > e deve acelerar um pouquinho as coisas ! De um ponto de vista > funcional (de função, não que seja mais simples...), a notação > polonesa inspira bastante f(a,b), se você pensar que f = adição, > enquanto a notação invertida é "a,b,f", que parece mais estranha > ainda. Mas eu prometo, é uma questão de hábito, como você disse. Em > vez de pensar "somar 2 e 3", e escrever isso como "somar(2,3)", você > tem que pensar: "eu tenho 2 e 3, e quero somar". De certa forma, isso > mantém os "argumentos" da função bem próximos, o que ajuda bastante o > programa. > > E agora, uma charada: > > +*+*123--45--678 = ? > > > Abraços > Neha
[obm-l] Re: [obm-l] Re: [obm-l] Hierarquia das Operações
2010/7/28 Alessandro Madruga Correia : > Em 28-07-2010 09:32, Bernardo Freitas Paulo da Costa escreveu: >> >> E agora, uma charada: >> >> +*+*123--45--678 = ? >> > > + ((1*2)+3) * [(4-5) - ((6-7) - 8)] = 40 > > É isso? Essa é uma solução que "sai do problema" :) Note que você interpretou o primeiro "+" sem somar ninguém, o que é um problema !!! Mas é mais ou menos por aí... Enfim, pra dar uma dica: como há 8 operandos e 8 operações, não é possível que elas sejam todas binárias... senão, fica faltando um operando. > > Abraço. abraços, -- Bernardo Freitas Paulo da Costa = Instruções para entrar na lista, sair da lista e usar a lista em http://www.mat.puc-rio.br/~obmlistas/obm-l.html =
[obm-l] Re: [obm-l] Hierarquia das Operações
2010/7/28 Carlos Nehab : > Oi, Luiz, > > Tô ausente da lista há algum tempo justamente por falta de tempo, mas > gostaria de participar desta ... Oi Nehab! Eu aproveitei o almoço hoje para perguntar para alguns colegas franceses se essa história de "parênteses, colchetes, chaves" existia por aqui... Parece que não, enfim, ninguém se lembra de ter visto uma coisa dessas na escola. Mas eu respondo mesmo porque eu gosto de perturbar, e você falou da notação polonesa, eu não posso evitar falar da RPN (reverse polish notation, ou notação polonesa invertida), e também propor um probleminha. > Vários colegas já responderam na linha de "é uma convenção", "tanto faz" e > eu concordo com os comentários já postados. > Mas talvez a chave da questão no que diz respeito ao ensino das notações > disponíveis para representar expressões seja perceber que, na verdade, não é > necessário nenhum símbolo separador para escrevê-las sem ambiguidade. > > Como a turma de computação aprende, você tem 3 formas usuais chamadas de > infixa, pósfixa e préfixa para representar expressões. > Algumas máquinas de calcular aceitam a forma préfixa naturalmente, também > chamada de notação polonesa. > Procure na Web os verbetes citados se quiser detalhes, mas ai dou apenas uma > idéia da "notação polonesa" que, se ensinada às crianças, evitaria todas > esta discussão. > > Por exemplo, para escrever expressões com esta notação escreva, > recursivamente (repetidamente), o símbolo da operação em primeiro lugar e, à > direita, as duas parcelas a ela associadas, na ordem em que ocorrem: > > Exemplinhos: > a + b será escrito como +ab > a+ b*c será escrito como +a*bc > a * (b + c) será escrito como *a+bc > e assim sucessivamente. > > Ou eja a notação é chamada de préfica porque a operação precede as parcelas > a elas associadas. Percebeu? > > Ou seja, o uso de parênteses, colchetes e chaves é apenas para facilitar o > uso da notação usual que utilizamos que é burra e limitada, pois lemos da > esquerda para a direita mas não necessariamente as operações que desejamos > realizar sejam calculadas nesta ordem. Teoricamente, no ocidente, > portanto, a notação mais sensata é a préfixa (ou polonesa)... Ma se eu > fosse japones ou árabe, possivelmente (espero não estar dando mancada) > preferiria a notação pósfixa... :-) E se você fosse programador, talvez preferisse que seus utilizadores usassem a notação posfixa, porque usa menos memória e as contas são feitas diretamente na pilha, o que simplifica bastante o procedimento, e deve acelerar um pouquinho as coisas ! De um ponto de vista funcional (de função, não que seja mais simples...), a notação polonesa inspira bastante f(a,b), se você pensar que f = adição, enquanto a notação invertida é "a,b,f", que parece mais estranha ainda. Mas eu prometo, é uma questão de hábito, como você disse. Em vez de pensar "somar 2 e 3", e escrever isso como "somar(2,3)", você tem que pensar: "eu tenho 2 e 3, e quero somar". De certa forma, isso mantém os "argumentos" da função bem próximos, o que ajuda bastante o programa. E agora, uma charada: +*+*123--45--678 = ? > Abraços > Nehab Abraços, -- Bernardo Freitas Paulo da Costa = Instruções para entrar na lista, sair da lista e usar a lista em http://www.mat.puc-rio.br/~obmlistas/obm-l.html =
[obm-l] Re: [obm-l] Re: [obm-l] Hierarquia das Operações
> Eu acho que isso parece mais uma convenção brasileira... Não sei se é convenção e não sei se é brasileira... Minha filha está com 10 anos e está estudando isso no colégio. Quando ela me perguntou "Pai, tu sabes quel é a ordem?" Respondi "Tanto faz, o que importa é primeiro o que está dentro, depois..." Ele me interrompeu e disse: "Nããõ, o Profe Jaque disse que é primeiro o parenteses, depois " Para não entrar em polêmica, disse que "tudo bem..." Mas na verdade não acho "tudo bem...". De fato acho que alguns livros didáticos enfatizam essa regra meio sem saber porque e copiando do outro livro que também dizia isso ... Não vejo "lógica" em uma "ordem de precedência" entre os símbolos... Na verdade, acho que em expressões do tipo ((a + b) * (c + d) + e) / (f - g)... o "correto" é usar só (). o [] ou {} teríam outras utilidades como delimitador de conjuntos {a,b,c,...} ou intervalos [-5, 5] por exemplo... Mas digite "parenteses colchete chaves" no google e acharas uma montanha de perguntas e respostas sobre o tema (algumas muito ingênuas) Abraço, Adalberto = Instruções para entrar na lista, sair da lista e usar a lista em http://www.mat.puc-rio.br/~obmlistas/obm-l.html =
[obm-l] Re: [obm-l] Hierarquia das Operações
2010/7/27 Luiz Rodrigues : > Olá, pessoal!!! > Tudo bem??? > Tenho uma dúvida já faz algum tempo e não consegui esclarecê-la. > É sobre a hierarquia das operações (parênteses, depois colchetes etc). e depois chaves... e depois o quê ??? > Alguém sabe como isso surgiu? Será que foi um acordo feito entre > matemáticos? Eu acho que isso parece mais uma convenção brasileira... provavelmente, questão de hábito. Enfim, em geral, me parece normal usar símbolos cada vez maiores para poder distinguir, com maior facilidade, as sub-expressões. Mas, até onde eu saiba, não existe um consenso mundial nisso. Inclusive, eu quase não vejo colchetes. Pegando dois livros que eu tenho à mão : W.K. Hayman, Meromorphic Functions, 1964. Tem um monte de contas explícitas que ocupam às vezes mais de uma linha. Ele usa parênteses para os argumentos de funções, e colchetes para grupos. Às vezes, quando aparece um valor absoluto, os | | acabam servindo de grupo também. Mas a estrutura não é, absolutamente, rígida. R.L. Graham, D.E. Knuth, O. Patashnik, Concrete Mathematics. Neste livro, ocorrem diversas vezes os símbolos de (), {} e [] com diversas funções. Primeiros, para os "special numbers", respectivamente binomiais (a b), Stirling tipo 2 {a b} e Stirling tipo 1 [a b] (imagine o "a" em cima do "b"). Além disso, [x] = Parte inteira de x, e {x} = parte fracionária de x. Logo, sobram apenas os parêntesis para formar grupos, e o livro é coerente nisso o tempo todo. Ainda mais que, misturar poderia gerar uma grande confusão. O que importa é que "você resolve primeiro o que está num grupo, depois o que está no grupo de fora". Como você delimita os grupos, é, em geral, flexível. A única condição que eu vejo é que seja simétrico : {) seria muito estranho, e difícil de ler. > Muito obrigado!!! > Um abraço para todos. > Luiz. Portanto, é mais uma questão de convenção do que realmente um grande consenso matemático. Além do mais, eu diria que o "consenso" está mais pro lado do Knuth (de usar [x] para parte inteira, e {x} = x - [x] = parte fracionária) do que para a convenção escolar brasileira... Além do mais, {x} poderia também significar o conjunto cujo único elemento é x (o que é bem diferente de x!!!), e [a,b] é também usado para intervalos... Resultado: no fim das contas, a notação depende, e muito, do contexto. E portanto, quanto mais clara ela for, melhor. Uma coisa muito engraçada do livro do Concrete Math é que ele começa, justamente, com duas páginas de "A note on notation", explicando o que ele vai utilizar em seguida. Eu acho que todo mundo devia fazer assim, pelo menos, nos livros. [ Abraços ]'s, -- Bernardo Freitas Paulo da Costa = Instruções para entrar na lista, sair da lista e usar a lista em http://www.mat.puc-rio.br/~obmlistas/obm-l.html =