LagMaster Posted March 30, 2012 at 12:47 AM Report #446520 Posted March 30, 2012 at 12:47 AM 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 !!!
mjamado Posted March 30, 2012 at 01:16 AM Report #446522 Posted March 30, 2012 at 01:16 AM 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.
nunopicado Posted March 30, 2012 at 07:46 AM Report #446530 Posted March 30, 2012 at 07:46 AM 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.
LagMaster Posted March 30, 2012 at 09:00 AM Author Report #446536 Posted March 30, 2012 at 09:00 AM 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 !!!
bsccara Posted March 30, 2012 at 12:19 PM Report #446578 Posted March 30, 2012 at 12:19 PM 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.
nunopicado Posted March 30, 2012 at 12:40 PM Report #446581 Posted March 30, 2012 at 12:40 PM 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.
LagMaster Posted May 3, 2012 at 10:07 AM Author Report #452876 Posted May 3, 2012 at 10:07 AM 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 !!!
LagMaster Posted May 3, 2012 at 09:22 PM Author Report #452968 Posted May 3, 2012 at 09:22 PM 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 !!!
thoga31 Posted May 3, 2012 at 09:36 PM Report #452974 Posted May 3, 2012 at 09:36 PM 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!
nunopicado Posted May 3, 2012 at 09:59 PM Report #452986 Posted May 3, 2012 at 09:59 PM É 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.
thoga31 Posted May 3, 2012 at 10:03 PM Report #452988 Posted May 3, 2012 at 10:03 PM 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!
LagMaster Posted May 3, 2012 at 10:31 PM Author Report #452992 Posted May 3, 2012 at 10:31 PM 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 !!!
nunopicado Posted May 3, 2012 at 10:45 PM Report #452995 Posted May 3, 2012 at 10:45 PM 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.
LagMaster Posted May 3, 2012 at 10:54 PM Author Report #452996 Posted May 3, 2012 at 10:54 PM 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 !!!
nunopicado Posted May 3, 2012 at 11:28 PM Report #453005 Posted May 3, 2012 at 11:28 PM 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.
LagMaster Posted May 4, 2012 at 12:20 AM Author Report #453008 Posted May 4, 2012 at 12:20 AM 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 !!!
nunopicado Posted May 4, 2012 at 01:51 PM Report #453069 Posted May 4, 2012 at 01:51 PM 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.
thoga31 Posted May 4, 2012 at 02:15 PM Report #453086 Posted May 4, 2012 at 02:15 PM 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!
LagMaster Posted May 4, 2012 at 11:47 PM Author Report #453218 Posted May 4, 2012 at 11:47 PM Bem vou criar outro topico para esta duvida 😉 YOU SHALL NOT PASS !!!
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