Mostrando postagens com marcador tradução computacional. Mostrar todas as postagens
Mostrando postagens com marcador tradução computacional. Mostrar todas as postagens

sábado, 27 de agosto de 2011

Tradução Direta: Programinha básico

Programar é um exercício de tradução. Vejamos como ficaria o texto abaixo substituindo cada frase por um equivalente na linguagem de programação Basic Gambas.

, (=vírgula)↵ (= mude de linha)
Temos quesub main ()↵
mostrarprint
pedir oinput
ver se oif
é maior que o    >
então seriathen
senão seriaelse
. (= ponto)↵ endif ↵
e pronto.end

TEXTO ORIGINAL: Temos que mostrar "Diga três números", pedir o primeiro, pedir o segundo, pedir o terceiro, ver se o primeiro é maior que o segundo então seria, maximo= primeiro, senão seria, maximo= segundo. Ver se o terceiro é maior que o maximo então seria, maximo= terceiro. Mostrar "O maior valor é", mostrar maximo e pronto.

TRADUZIDO:
sub main ()
print "Diga três números"
input primeiro
input segundo
input terceiro
if primeiro > segundo then
maximo= primeiro
else
maximo= segundo
endif
if terceiro > maximo then
maximo= terceiro
endif
print "O maior valor é"
print maximo
end

Para termos um programa funcional é necessário ainda, dizermos o tipo dos valores: primeiro, segundo, terceiro e maximo.
O resultado seria:
| Diga três números
| 5 3 8
| O maior valor é
| 8

quarta-feira, 29 de junho de 2011

Tradução Computacional: Igual

Em matemática quando escrevemos x= 5+2 e perguntamos: Qual é o valor de x?
Prontamente nos ocorre a resposta: x= 7.
Neste breve raciocínio o que fazemos é interpretar uma expressão e dizermos a que valor ela é equivalente, ou melhor, conseguirmos responder ao "O que a expressão significa?".
Em computação é similar. Quando num programa escrevemos "x= 5+2;", queremos na verdade, que x valha 7.
Porém, quando escrevemos x= x + 2, os matemáticos logo reclamam. Alguns dizem que esta expressão não é boa, pois se passarmos o x para o lado esquerdo ficaríamos com x - x= 2, o que resultaria em 0 = 2, e isto não é possivel.
Na verdade o que temos aqui é a tentativa  infrutífera de acharmos um valor para x. Ao executamos uma operação elementar sobre a expressão matemática não obtivemos algo aproveitável.
Esse tipo de experiência é muito comum no mundo das traduções.
Quando versamos a expressão "x= x+ 2;" para o ambiente da programação temos outro raciocínio. Ao valor de x estamos acrescentando 2, ou seja, se o x valesse 5 anteriormente, passaria a valer 7.
O que mudou foi a interpretação da expressão que antes era matemática, e agora é computacional.