LagMaster Posted March 30, 2012 Report Share Posted March 30, 2012 Boas Estava a tentar fazer este exercicio: Propostas de Exercícios1. Crie a sua própria calculadora. Contudo, o utilizador terá de escolher a operação a realizar e, no caso de esta ser a divisão, o programa terá de impedir o utilizador de introduzir denominador 0 (zero), obrigando-o a introduzir outro valor para tornar a divisão possível. Mostre uma mensagem de erro neste caso. As variáveis para os valores das operações a realizar terão de ser reais, e a que selecciona a operação deverá ser uma string. Mostre ao utilizador o maior número de informações possíveis sobre a calculadora. Mas não sobre o que o programa está a processar no momento, como “A realizar a soma”. Normas: Limite máximo de linhas de código (exclusive comentários e linhas em branco): 40 linhas. E tive esta ideia: program ExercicioCalculadora; var num1,num2: real; A,S,D,M,opcao: string; begin WriteLn('Introduza o primeiro numero'); Readln(num1); writeln('Introduza o segundo numero'); readln(num2); writeln ('Escreva A se quiser fazer uma adição); readln(opcao); writeln('Escreva S se quiser fazer uma subtração'); readln (opcao); writeln('Escreva M se quiser fazer uma multiplicação'); readln (opcao); writeln('Escreva D se quiser fazer uma divisão'); readln (opcao); if (opcao=A) then begin writeln (num1:0:2'+'num2:0:2,'=',num1+num2:0:2); readln; end else begin if (opcao=S) then begin writeln (num1:0:2'-'num2:0:2,'=',num1-num2:0:2); readln; end else begin if (opcao=M) then begin writeln (num1:0:2'*'num2:0:2,'=',num1*num2:0:2); readln; end else begin if (opcao=D) then begin writeln (num1:0:2'/'num2:0:2,'=',num1/num2:0:2); readln; end else begin end. Não sei se vai ser possivel em baixo nem nada lol Mas primeiro o problema encontrasse aqui: writeln ('Escreva A se quiser fazer uma adição); readln(opcao); String Exceeds the line BTW acabei mesmo agora de ter uma ideia ( eu a esta hora da noite nao consigo ver se são muito tontas ou não mas aqui vai ) begin WriteLn('Introduza o primeiro numero'); Readln(num1); writeln('Introduza o segundo numero'); readln(num2); writeln ('Escreva A para +,S para -, M para * ou D para /); readln(opcao); Dá o mesmo erro .. mas se desse , tiraria umas quantas linhas ao programa.. Alguém me pode ajudar ?? ? Cumprimentos e Boa Noite ? YOU SHALL NOT PASS !!! Link to comment Share on other sites More sharing options...
mjamado Posted March 30, 2012 Report Share Posted March 30, 2012 Até o GeSHi topa onde está o erro... 😕 Já reparaste que o código está "mal pintado" no teu post? Ora vê lá a partir de onde é que começa a ficar mal pintado (e porquê). "Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web. Link to comment Share on other sites More sharing options...
nunopicado Posted March 30, 2012 Report Share Posted March 30, 2012 Independentemente do erro, que o amigo GeShi detectou 😄 (vê a linha onde o erro foi detectado, e procura uma coisa em falta relacionada com strings), devo falar sobre a estrutura em si. A tua segunda opção, apenas com um readln, não é só a melhor opção. É a única aceitável. Isto é válido não só para ti, mas para qualquer programador. Sempre que estás a fazer uma parte do teu programa que terá interactividade com o utilizador, chama-se a isso Interface. Ora, se estamos a fazer algo que vai mexer com o utilizador, temos de nos meter no lugar dele. Não é o utilizador que se deve adaptar ao programador, mas sim o contrário. Neste caso concreto: 1. Aparece uma pergunta a pedir o numero 1 2. Aparece uma pergunta a pedir o numero 2 3. Pergunta se quer fazer a soma 4. Pergunta se quer fazer a subtracção 5. Pergunta se quer fazer a multiplicação 6. Pergunta se quer fazer a divisão 7. Mostra o resultado da última operação a que se disse que sim Se eu fosse utilizador chamava um nome ao gajo que fez o programa... 😕😄 Das duas uma, ou pergunta só uma vez qual a operação, e mediante a resposta, mostra o cálculo; ou então pergunta as vezes todas (mesmo que funcionasse bem eu continuaria a chamar um nome a quem me faz responder tanta pergunta 😄 ) e mostra o resultado de todas a que se disse sim. Outra coisa. Perguntas primeiro os números, e depois a operação. Mas muitas vezes, os valores a pedir estão dependentes do tipo de operação. Um exemplo, está pedido no proprio exercicio: Contudo, o utilizador terá de escolher a operação a realizar e, no caso de esta ser a divisão, o programa terá de impedir o utilizador de introduzir denominador 0 (zero), obrigando-o a introduzir outro valor para tornar a divisão possível. Mostre uma mensagem de erro neste caso. Ou seja, o segundo número está dependente da operação. Se for divisão, tem de pedir o segundo numero até que este seja diferente de 0. Por esta ordem de ideias, para poderes fazer isto correctamente, tens de saber primeiro a operação, e só no fim perguntas o 2º numero. Das duas uma, ou perguntas a operação antes de tudo o resto, ou pelo menos, perguntas a operação antes do 2º numero. "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
LagMaster Posted March 30, 2012 Author Report Share Posted March 30, 2012 Meu Deus ? Eu devia estar cheio de sono program ExercicioCalculadora; var num1,num2: real; A,S,D,M,opcao: string; begin writeln('Escreva A para +,S para -, M para * ou D para 7 '); readln(opcao); WriteLn('Introduza o primeiro numero'); Readln(num1); writeln('Introduza o segundo numero'); readln(num2); if (opcao=A) then begin writeln(num1:0:2,'+',num2:0:2,'=',num1+num2:0:2); readln; end else begin if (opcao=S) then begin writeln (num1:0:2,'-',num2:0:2,'=',num1-num2:0:2); readln; end else begin if (opcao=M) then begin writeln (num1:0:2,'*',num2:0:2,'=',num1*num2:0:2); readln; end else begin if (opcao=D) then begin if (num2=0) then begin writeln ('Nº Infinito'); readln; end else begin writeln(num1:0:2,'/',num2:0:2,'=',num1/num2:0:2); readln; end else begin writeln ('Então é assim ?? Não usa o programa ?!! Chuck Norris do not aprove..'); readln; end; end. Melhorado.... end else begin writeln ('Então é assim ?? Não usa o programa ?!! Chuck Norris do not aprove..'); readln; end; Erro no else begin devia estar um ; no lugar do else Any Ideas ?? Cumprimentos e Obrigado ;D YOU SHALL NOT PASS !!! Link to comment Share on other sites More sharing options...
bsccara Posted March 30, 2012 Report Share Posted March 30, 2012 Um concelho: sempre que tiveres um bloco condicional no teu código, indenta-o (move-o para a direita). Pensa lá o que é mais legível: if teste1 = 1 then begin if teste2 = 2 then break else if teste3 = 3 then inc(teste1); end; ou : if teste1 = 1 then begin if teste2 = 2 then break else if teste3 = 3 then inc(teste1); end; ou melhor ainda (na minha opinião) : if teste1 = 1 then begin if teste2 = 2 then break else if teste3 = 3 then inc(teste1); end; A indentação permite uma muito melhor compreensão da estrutura do código e ajuda a evitar problemas como o teu. Se bem que esse problema seja o menor: 1. Estás a carregar para a variável 'opcao' a escolha da operação. Mas depois comparas essa variável com variáveis não inicializadas nos condicionais. 2. Queres ter uma condição que se verifique se nenhuma das anteriores se verificarem. Mas estás a encadear as anteriores, o que impossibilita isso. 3. Tens uma instrução (readln) que é executada em todos os ramos da condicional. Deve ser retirada para fora da condicional. Deves fazer assim : if opcao = 'A' then writeln(num1:0:2,'+',num2:0:2,'=',num1+num2:0:2) else if opcao = 'S' then writeln (num1:0:2,'-',num2:0:2,'=',num1-num2:0:2) else if opcao = 'M' then writeln (num1:0:2,'*',num2:0:2,'=',num1*num2:0:2) else if opcao = 'D' then begin if (num2=0) then writeln ('Nº Infinito') else writeln(num1:0:2,'/',num2:0:2,'=',num1/num2:0:2); end else writeln ('Então é assim ?? Não usa o programa ?!! Chuck Norris do not aprove..'); readln; Melhor ainda seria usar uma estrutura 'switch..case' 'case...of' mas se estás com estes problemas é melhor ires devagar. Link to comment Share on other sites More sharing options...
nunopicado Posted March 30, 2012 Report Share Posted March 30, 2012 Não me vais levar a mal dizer-te isto, mas se prestasses mais atenção ao que te tenho dito, não terias esse erro. ? Duas coisas: - Continuas a insistir nos readln's desenfreados, dentro do then e do else, com trabalho duplicado, que te obriga a meter begin's e end's onde muitas vezes não fariam falta. Mais uma vez, põe-te do lado do utilizador. Nenhum utilizador quer dar enter à toa, especialmente neste caso onde não há sequer informação para lhe dizer o que fazer. O readln; só se usa quando a seguir não há nada que pause o programa para permitir ao utilizador ver o que fez. Ou seja, antes do fim do programa, ou antes por exemplo, de limpares o ecrã (clrscr;). - A tua indentação continua a precisar de melhorar imenso. Um end deve sempre alinhar com o begin que lhe deu origem. Assim saberás sempre a quem ele pertence, mesmo quando tens vários seguidos. Se tivesses tido isto em conta quando fizeste o programa, primeiro não terias que criar os begin's e end's dentro do if, pois só lá terias uma instrução em cada. E segundo, mesmo que metesses begin e end, mas estivesse bem indentado, verias que te perdeste no meio de tanto IF: Vê o teu programa, devidamente indentado: program ExercicioCalculadora; var num1,num2: real; A,S,D,M,opcao: string; begin // 1º Begin writeln('Escreva A para +,S para -, M para * ou D para 7 '); readln(opcao); WriteLn('Introduza o primeiro numero'); Readln(num1); writeln('Introduza o segundo numero'); readln(num2); if (opcao=A) then begin // 2º begin writeln(num1:0:2,'+',num2:0:2,'=',num1+num2:0:2); readln; end // End do 2º begin else begin // 3º begin if (opcao=S) then begin // 4º begin writeln (num1:0:2,'-',num2:0:2,'=',num1-num2:0:2); readln; end // End do 4º begin else begin // 5º begin if (opcao=M) then begin // 6º begin writeln (num1:0:2,'*',num2:0:2,'=',num1*num2:0:2); readln; end // End do 6º begin else begin // 7º begin if (opcao=D) then begin // 8º begin if (num2=0) then begin // 9º begin writeln ('Nº Infinito'); readln; end // End do 9º begin else begin // 10º begin writeln(num1:0:2,'/',num2:0:2,'=',num1/num2:0:2); readln; end // End do 10º begin else begin // 11º begin writeln ('Então é assim ?? Não usa o programa ?!! Chuck Norris do not aprove..'); readln; end; // End do 11º begin end. // End do 1º begin Tens End's para o 1º, 2º, 4º, 6º, 9º, 10º e 11º begins... Faltam-te end's para os 3º, 5º, 7º e 8º begins... Por fim, nada disso vai trabalhar. As variáveis A, S, D e M não as estás a ler de lado nenhum, e nem seria suposto. Estás a ler a variável opção, tens de verificar se a opção é a letra 'A', 'S', etc. e não se é igual a uma variável qualquer. Recomendações importantes para fazeres correctamente este (e qualquer outro) programa: 1. Indenta correctamente. Não é só uma questão de estética, é extremamente importante indentar correctamente o código 2. Readln; (sem variável) são proibidos. Só "quero" ver um readln; no fim, e é por enquanto, mais tarde nem esse. 3. Antes de continuares com o programa, estuda a estrutura Case ... OF e vê lá se não é melhor que todos estes IF's encadeados... "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
LagMaster Posted May 3, 2012 Author Report Share Posted May 3, 2012 Após um mês sem cá vir.. voltei 🙂 Entretanto ja nao sei o que andava a estudar em Pascal :/.. agora vou continuar com o pascal e talvez começar a aprender c++ Agradeço muito a ajuda dada ? Vou ver se recomeço este projecto e volto a estudar um pouco dessa estrutura Case of Cumps LagMaster Ps- E quanto à indentação já melhorei nesse aspecto xd YOU SHALL NOT PASS !!! Link to comment Share on other sites More sharing options...
LagMaster Posted May 3, 2012 Author Report Share Posted May 3, 2012 Quanto ao bastante que pensava ter melhorado na identaçao nao sei ? program Noname6; var num1,num2: real; A,S,D,M,op: string; begin WriteLn('Olá.. por favor insira o primeiro numero para a sua operaçao..'); // pede o primeiro numero Readln (num1) ; // lê o primeiro numero writeln ('Por favor insira o segundo numero .'); //pede o segundo numero readln (num2); //lê o segundo numero writeln ('Os seus numeros são: ',num1:0:1,' e ',num2:0:1); //diz quais sao os numeros novamente writeln ('Escolha a sua operaçao: A para +,S para -,D para / e M para *'); //dá a escolher as operaçoes disponiveis readln(op); // lê a operaçao escolhida case op of //inicio operaçao case of A :begin// inicio 1º begin writeln ('O resultado da sua adição (com 2 casas decimais) é: ', num1+num2:0:2); end; //fim 1º begin S :begin //começo 2º begin writeln ('O resultado da sua subtração (com 2 casas decimais) é: ', num1-num2:0:2); end; //fim 2º begin M :begin //começo 3º begin writeln ('O resultado da sua multiplicação (com 2 casas decimais) é: ', num1*num2:0:2); end; //fim 3º begin D :begin //começo 4º begin writeln ('O resultado da sua divisão (com 2 casas decimais) é: ', num1/num2:0:2); end; //fim 4º begin end; // termina a operaçao case of readln;// Para deixar o utilizador ler o resultado da operaçao end. Mas pelo menos penso estar mais legivel.. coloquei uns coments.. Mas ocorre-me um erro no inicio do Case of.. alguem tem uma ideia do porque ?? Errei na forma de usar o case of ?? YOU SHALL NOT PASS !!! Link to comment Share on other sites More sharing options...
thoga31 Posted May 3, 2012 Report Share Posted May 3, 2012 No Case Of, estás a cometer dois erros. 1) Não podes fazer Case Of de uma String, e "op" é uma String - tem de ser uma Char, ou então fazes o Case Of de "Op[1]", mas não o recomendo, é uma má prática. 2) Nas opções do Case Of não estás a meter os caracteres entre plicas: "A", "S", "M" e "D", sem as plicas, são consideradas variáveis. E para que é que estás a declarar as variáveis A, S, M e D?? Não estás a perceber estas bases do Pascal. O que é uma variável, o que é um Case Of, etc etc... Vê lá se encaixas estes conceitos de uma vez, já tos explicaram em longos e bons posts neste tópico. Knowledge is free! Link to comment Share on other sites More sharing options...
nunopicado Posted May 3, 2012 Report Share Posted May 3, 2012 É isso LagMaster... 🙂 A variavel op deve ser do tipo char (apenas um caracter). No case ... of tens de comparar com os caracteres 'A', 'S', 'D' e 'M'; e não com as variaveis A, S, D e M. As pelicas fazem a diferença. Pensa assim, se é um valor alfanumérico que queres comparar, usas pelicas. E claro, as variáveis A, S, D e M, que só declaraste porque te estava a dar erro de "Unknown identifier", já podes tirar, que não fazem lá nada. Quanto à tua indentação, sim, está muito melhor. Podes continuar. Só lhe noto três pormenores: 1. Nas variáveis, tens de as indentar também. Esqueceste-te dos espaços antes de num1 e do A, pelo que essas linhas ficaram imediatamente abaixo do v (de var). 2 espaços em cada uma dessas linhas deixava-te essa parte perfeita. 2. No case, deste 2 espaços entre o D e os : - Bastava 1 espaço, para ficar igual às linhas de cima. 3. Aquele ultimo readln fugiu lá prá frente... 👍 Ali bastam 2 espaços, para alinhar com o resto das instruções do mesmo nivel Com estas correcções, tens a indentação perfeita "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
thoga31 Posted May 3, 2012 Report Share Posted May 3, 2012 Eu vou dar o exemplo (esqueleto): var op : char; // ... case UpCase(op) of 'A' : {código}; // caso op seja "A" 'S' : {código}; // caso op seja "S" 'M' : {código}; // caso op seja "M" 'D' : {código}; // caso op seja "D" end; Knowledge is free! Link to comment Share on other sites More sharing options...
LagMaster Posted May 3, 2012 Author Report Share Posted May 3, 2012 program Noname6; var num1,num2: real; A,S,D,M: string; op: char; begin WriteLn('Olá.. por favor insira o primeiro numero para a sua operaçao..'); // pede o primeiro numero Readln (num1) ; // lê o primeiro numero writeln ('Por favor insira o segundo numero .'); //pede o segundo numero readln (num2); //lê o segundo numero writeln ('Os seus numeros são: ',num1:0:1,' e ',num2:0:1); //diz quais sao os numeros novamente writeln ('Escolha a sua operaçao: A para +,S para -,D para / e M para *'); //dá a escolher as operaçoes disponiveis readln(op); // lê a operaçao escolhida case op of //inicio operaçao case of 'A' :begin// inicio 1º begin writeln ('O resultado da sua adição (com 2 casas decimais) é: ', num1+num2:0:2); end; //fim 1º begin 'S' :begin //começo 2º begin writeln ('O resultado da sua subtração (com 2 casas decimais) é: ', num1-num2:0:2); end; //fim 2º begin 'M' :begin //começo 3º begin writeln ('O resultado da sua multiplicação (com 2 casas decimais) é: ', num1*num2:0:2); end; //fim 3º begin 'D' :begin //começo 4º begin writeln ('O resultado da sua divisão (com 2 casas decimais) é: ', num1/num2:0:2); end; //fim 4º begin end; // termina a operaçao case of readln;// Para deixar o utilizador ler o resultado da operaçao end. Entao pelo que eu percebi tem de ficar assim ? Ja funcionou portanto 🙂 Agradeço aos dois pela ajuda, agora é so fazer o repeat until e ajustar o A,M,D,S para minusculas tb e fica acabado penso eu 😁 YOU SHALL NOT PASS !!! Link to comment Share on other sites More sharing options...
nunopicado Posted May 3, 2012 Report Share Posted May 3, 2012 Verifica o ultimo Post do Thoga. Se no case, em vez de case op of usares case Upcase(op) of, ele automaticamente irá ter atenção às maiusculas e minusculas. Também podes apagar a linha A,S,D,M: string; - não faz lá nada! "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
LagMaster Posted May 3, 2012 Author Report Share Posted May 3, 2012 Nao tinha reparado no ultimo post , e sinceramente nao tinha percebido isso da String.. mas e obvio.. Supostamente agora cada vez que o utilizador colocar o character em questao ira reproduzir a lista de comandos indicado.. program Noname6; var num1,num2: real; opcao: string; op: char; begin repeat // Inicia o ciclo repeat WriteLn('Por favor insira o primeiro numero para a sua operaçao..'); // pede o primeiro numero Readln (num1) ; // lê o primeiro numero writeln ('Por favor insira o segundo numero .'); //pede o segundo numero readln (num2); //lê o segundo numero writeln ('Os seus numeros são: ',num1:0:1,' e ',num2:0:1); //diz quais sao os numeros novamente writeln ('Escolha a sua operaçao: A para +,S para -,D para / e M para *'); //dá a escolher as operaçoes disponiveis readln(op); // lê a operaçao escolhida case Upcase(op) of //inicio operaçao case of 'A' :begin// inicio 1º begin writeln ('O resultado da sua adição (com 2 casas decimais) é: ', num1+num2:0:2); end; //fim 1º begin 'S' :begin //começo 2º begin writeln ('O resultado da sua subtração (com 2 casas decimais) é: ', num1-num2:0:2); end; //fim 2º begin 'M' :begin //começo 3º begin writeln ('O resultado da sua multiplicação (com 2 casas decimais) é: ', num1*num2:0:2); end; //fim 3º begin 'D' :begin //começo 4º begin writeln ('O resultado da sua divisão (com 2 casas decimais) é: ', num1/num2:0:2); end; //fim 4º begin end; // termina a operaçao case of readln;// Para deixar o utilizador ler o resultado da operaçao write('Deseja prosseguir? (S / N) '); readln(opcao); until (UpCase(opcao) = 'N'); Writeln('Obrigado por usar este programa ;D'); readln; end. Espero nao me ter enganado na identaçao do repeat.. coloquei o repeat e o un til ao mesmo nivel.. enquanto o writeln e o readln foram um pouco mais para dentro. Agradeço muito a ajuda dada. So queria saber agora, o que fazer .. sabe/m algum exercicio nao muito complicado em Pascal ? Se nao começava ja a visitar um pouco da wikipedia de C++ .. ou até tentava fazer alguma coisa em BRainF**k 🙂 YOU SHALL NOT PASS !!! Link to comment Share on other sites More sharing options...
nunopicado Posted May 3, 2012 Report Share Posted May 3, 2012 Na indentação, falta-te meter para dentro o resto. Todos os comendos dentro do repeat têm de chegar-se à frente (o case e os outros antes do case também). Queres um exercicio? Faz uma agenda. Nome, Morada, telemove, email, data nascimento e sexo são os campos (podes por mais se quiseres). O programa deverá poder guardar pelo menos 50 nomes. Se fizeres esse, já aprenderás alguns conceitos importantes, para mais tarde poderes começar a trabalhar com ficheiros, que é onde "a diversão" começa a sério! 🙂 "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
LagMaster Posted May 4, 2012 Author Report Share Posted May 4, 2012 Na indentação, falta-te meter para dentro o resto. Todos os comendos dentro do repeat têm de chegar-se à frente (o case e os outros antes do case também). Queres um exercicio? Faz uma agenda. Nome, Morada, telemove, email, data nascimento e sexo são os campos (podes por mais se quiseres). O programa deverá poder guardar pelo menos 50 nomes. Se fizeres esse, já aprenderás alguns conceitos importantes, para mais tarde poderes começar a trabalhar com ficheiros, que é onde "a diversão" começa a sério! 😉 Nao estou a ver como fazer isso da agenda ? Hoje de manha irei ler mais um pouco da wiki para ver se arranjo alguma ideia. Pois para isso penso que teria de usar um base de dados e nao sei como isso é .. Daqui a umas horas verei, por que agora vou mas é dormir 😛 YOU SHALL NOT PASS !!! Link to comment Share on other sites More sharing options...
nunopicado Posted May 4, 2012 Report Share Posted May 4, 2012 Uma dica: Estuda a estrutura Record e a estrutura Array! São as bases para fazer isto... 😉 "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum. Link to comment Share on other sites More sharing options...
thoga31 Posted May 4, 2012 Report Share Posted May 4, 2012 Como disse o @nunopicado, basta os Records e os Arrays - a informação está no tutorial da Wiki. Uma BD para este caso não se justifica, e é só complicar deveras o exercício que até é relativamente simples. 😉 Knowledge is free! Link to comment Share on other sites More sharing options...
LagMaster Posted May 4, 2012 Author Report Share Posted May 4, 2012 Bem vou criar outro topico para esta duvida 😉 YOU SHALL NOT PASS !!! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now