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 <ne...@infolink.com.br>: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 NehabAbraços, ========================================================================= 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çõ... Bernardo Freitas Paulo da Costa
- [obm-l] Re: [obm-l] Re: [obm-l] Hiera... Adalberto Dornelles
- [obm-l] Re: [obm-l] Re: [obm-l] R... Bernardo Freitas Paulo da Costa
- Re: [obm-l] Hierarquia das Operações Carlos Nehab
- [obm-l] Re: [obm-l] Hierarquia das Op... Bernardo Freitas Paulo da Costa
- Re: [obm-l] Re: [obm-l] Hierarqui... Alessandro Madruga Correia
- [obm-l] Re: [obm-l] Re: [obm-... Bernardo Freitas Paulo da Costa
- [obm-l] Re: [obm-l] Re: [... Adalberto Dornelles
- [obm-l] Re: [obm-l] ... Luiz Rodrigues
- [obm-l] Re: [obm... Johann Dirichlet
- Re: [obm-l] Re: [obm-l] Hierarqui... Carlos Nehab
- [obm-l] Re: [obm-l] Re: [obm-... Luiz Rodrigues