Ir ao conteúdo
  • Cadastre-se

Simon Viegas

Membro VIP
  • Posts

    3.940
  • Cadastrado em

Tudo que Simon Viegas postou

  1. Olá... Vou tentar resumir também: 1) COM VAR = se alterar dentro procedimento, altera também na variável original. (funciona como um "link" para variável original) 2) SEM VAR = alterando ou não dentro do procedimento, a variável original ficará intacta. (funciona como uma cópia apenas do(s) valor(es) da variável original) Simples assim... COMPLEMENTANDO (clique no botão abaixo): Observe que para ler a matrix, você está alterando a variável "A" e "gostaria" que essa alteração permaneça, logo usa-se o “var”. Já coordenadas dessa matrix não precisam (e nem deveriam) ser alteradas, logo ficam “sem o var”. (mas se tivesse com o "var" iria funcionar da mesma forma, a questão é que "sem o var" você garante que não vai mudar!!!) Ou seja... vide resumo!! No aguardo
  2. Vou tentar resumir minhas sugestões: 1) IMPORTÂNCIA DE UMA BOA INDENTAÇÃO Antes de qualquer coisa, você precisar manter o seu código sempre bem indentado.... apesar de aparentar está organizado, creio que não está seguindo corretamente um critério de indentação. Sugiro que corrija e atente-se a isso... é de suma importância; # 2) ORGANIZAÇÃO DAS VARIÁVEIS * 2.1) Discriminação de variáveis Como uma boa prática, você não deve usar uma mesma variável para duas (ou mais) funções, ou seja, se é "i" está sendo (foi) usado como "parte da estrutura de for", você não deve usar ela para outra coisa... no máximo poderia usar em outro for.. ou estrutura semelhante... O que está em jogo aqui são dois principais detalhes:: a) organização do programa, proporcionando uma melhor clareza. E o uso indevido de variáveis, o que pode proporcionar perdas de dados armazenados e inconsistências. Como é fácil perceber, uma coisa de certo modo leva a outra. Sempre tente usar nomes de variáveis sugestivas... como por exemplo para ler as poltronas usar poltronas. O "i" também, como já comentei, já sugere que é um "contador" ou "controlador". * 2.2) Armazenamento de dados Em relação ao que disse o "Math.PI", creio que você não precisa de um array, pois, como o código sugere, a própria posição do cliente sugere/determina qual é a respectiva poltrona dele. # No aguardo.
  3. Olá. Antes de qualquer coisa, já queria dizer que o joguinho está bem legal... parabéns pelo belo trabalho.. Vamos lá.. vou tentar resumir como entendo o funcionamento. Pelo que entendi e conheço do jogo, o rabo da cobra não se trata de algo fixo (no sentido de desenhado), mas sim de algo relacionado ao tamanho, ou seja, baseado em QUANTIDADE (valor)... Cada vez que a cobra come um alimento, aumenta "um quadrado" (na quantidade)... EM RELAÇÂO A ANDAR Veja, analisando aqui com meus botões, imaginei que poderia usar, para o corpo, uma "lista de posições"... À medida que ia andando, as coordenadas da cabeça seria inserida no início da lista (será a primeira posição), e ao mesmo tempo, já removia a última posição desta lista (a penúltima passa a ser a última). EM RELAÇÃO A COMER Simplesmente inserirá a nova posição da cabeça no topo da lista (como se tivesse andando), mas NÃO IRÁ REMOVER A ÚLTIMA POSIÇÃO, desta forma, o corpo crescerá em um... DESENHAR A COBRA Basta inserir a cabeça na coordenada que tem na primeira posição da lista, e a as restantes inserir o símbolo que representa o corpo... *** Obs.: Veja, com esse “mapa de posições”, você já ponde incluir a “colisão com o próprio corpo”... mas deixa isso para depois. Obs. 2: Um problema secundário seria justamente gerenciar essa lista, pois é preciso "inserir no início" e "remover o último" e creio que isso por si só não é uma tarefa trivial... (caso não queria ou não consiga fazer, existem "listas" prontas na net). No aguardo.
  4. Creio que a configuração do Win8 seja igual do Win7... Testei aqui no Win7 o tutorial e funcionou.. Lembre-se que após configurar, tem que abrir um novo CMD... Para testar, simplesmente digite: javac e teste.
  5. Olá. Eng. Helder, acho que estou com problemas.. Pelo que vejo, a tinha preta do meu acabou! O nível de tinta está no mínimo e quando vai imprimir ele pede para apertar o botão "Continuar" e imprimir utilizando as coloridas. Então como devo proceder? RESUMO - A tinta preta acabou; - Tenho um bulk para usar nos cartuchos originais; QUESTÕES - Se eu comprar um bulk com os cartucho preciso comprar mesmo assim um preto original novo? - Temo como corrigir a questão de não imprimir mais em preto? - Quais são as minhas opções? Att
  6. Olá. Pelo que o vi total de coloridos está bem maior... daí, além dos gastos da coloridas em si, pode ter ocorrido a mistura mesmo como Eng. Helder comentou: Eu tenho uma 8100 (é a mesma série, só que "mais simples", rs) e creio que estou com o mesmo problema... Por sinal, ontem eu fiz uma impressão de relatório, e pelo que eu lembro de fato quase não tem impressão colorida... (vou olhar de novo em casa). Pelo que observei, boa parte parece que está sendo "usurpada" ao ligar e desligar mesmo... . Não tem condições um 'negoço' deste... apesar da tinta preta ser maior, a colorida desceu muito rápido e sem ter usado... Por sinal, a própria preta desceu também nesse processo. Em fim, comprei um bulk ontem... Só estava esperando a tinta descer, pois vou utilizar o cartucho original nele. Aproveitando: - Tem alguma forma de deixar só o cartucho preto? (para que deixar o colorido lá? rs) - Funciona se deixar um cartucho vazio no lugar do colorido? (sai mais barato comprar um vazio e colocaria um cheio só quando precisar por exemplo). - Utilizando bulk, eu posso deixar o colorido vazio e usar só o preto? (apesar de ser bem mais econômico, não deixa de ser desperdício). Abraços Comigo o problema é o mesmo...
  7. 1) Sobre o erro no segundo código O símbolo para divisão é "/", mas você usou "\" . (poderia ter dito logo isso né? rs) 2) Sobre a "Dica" Está aplicando ela como? O problema do primeiro código é que os comandos não aceitam números reais. Ai entra a questão... o que que o DIV e o MOD fazem? Como faz para ter o mesmo resultado que eles promovem? *** No aguardo
  8. Olá... Nem Div e nem Mod aceitam números reais, somente inteiros. E no segundo código, você inverteu o lado da "barra" da divisão. DICA: Mas no VisuAlg existe um comando que "pega a parte inteira" de uma fração. No aguardo.
  9. Essa adaptador geralmente vem junto com a placa de vídeo... é capaz de você mesmo ter um... qualquer coisa pede a um amigo!!! (sempre fica sobrando, tenho uns 3 )
  10. UP Efetuado testes com versão mais recente do NotePad++ (v6.2.2). Os passos são os mesmo do tutorial... e inserido imagens demonstrando como configurar o "autocompletar" e "tabulação (uso do tab)"
  11. De fato, essa opção não funciona. Infelizmente eu não sei como faz para o NotePad++ executar diretamente. Eu tenho o costume de sempre editar o mesmo arquivo, ou seja, tenho um arquivo chamado _FCH.pas. Deixo na pasta do programa mesmo... daí quando vou testar, simplesmente colo o novo código nele. Uso esse "_" para o arquivo ficar em cima e logo mais fácil de achar na pasta. PS: Você pode usar normalmente a configuração para 32 bits. Funcionará da mesma forma para ambos os SO (32 e 64 bits). PS2: Aqui uso o Avast!, como uso o mesmo nome, facilita também pois eu adiciono as "exceções" do antivírus e do SandBox.
  12. Olá... Edite sua postagem acima, poste o seu código novo e onde acha que está o problema. No aguardo. Abraços.
  13. Então... compile, traduza as mensagens de erros, analise se são coerentes ao caso (nem sempre são, mas geralmente bate com o erro real) e corrija o código. Vá repetindo o processo até que esteja tudo certo. Ex.: Ao compilar, deu os seguintes erros: Nesse caso o meu compilador está acusando que existe uma "duplicidade de identificação" com o termo bissexto" na linha 5, coluna 4, ou seja, tem duas "coisas" diferentes que estão com o mesmo nome para um mesmo escopo. (no caso, tem uma variável "bissexto" na passagem do parâmetro da procedure e tem outra variável declarada dentro da procedure com o mesmo nome.) Obs.: Erro de compilação se refere a sintaxe, ou seja, não necessariamente a lógica referente ao seu problema vai está certa. No aguardo. Abraços.
  14. Eu me confundi... postei como se fosse especificadamente para Pascal/Delphi... Pela sintaxe, já vi que não tenho muito conhecimento.. Qual a linguagem de programação está se referindo? Abraços
  15. Olá, seja bem vindo ao Fórum do Clube do Hardware. Provavelmente nenhum número. Deve ter somente letras! Pelo que eu entendi, o programa deve fazer simplesmente "trocar cada letra de uma palavra pelo seu respectivo valor numérico". Não é isso? Então, você pode usar uma String para receber o "nome". Para acessar um caractere da letra, basta informar a posição através de "[]". Ex.: nome:='Pascal'; writeln(nome[3]); //exibirá a letra "s" (posição 3) Ou seja, usando o "[]" você tem acesso a cada letra da string, da mesma forma que se acessa uma posição de um array, ou seja, uma string se comporta mais ou menos como se fosse um array[1..255] of char. Daí vai verificando letra por letra e traduzindo para o numeral correspondente. Obs.: Como dif sugeriu, tente fazer algo e poste aqui seu código e onde está com dúvidas. PS: - Você precisará de um laço de repetição para percorrer as letras - Você pode usar uma sequência de if/else para comparar as letras. Fica mais fácil e elegante usando um case. No aguardo. Abraços
  16. Olá Rosberguedes 1) Identação Antes, corrigindo a identação (pequeno errinho): Obs.: Não muda a "sintaxe" nem a "lógica", é uma questão visual. Obs2.: De certo modo, a identação faz parte do critério de correção. program Q2L1; uses crt; var e:real; n,fat,i,x:integer; BEGIN e:=1;n:=1; writeln('Informe o denominador'); readln(x); if(x>0) then while (n<=x) do begin fat:=1; for i:= n downto 1 do fat:=fat*n; e:=e+(1 div fat); N:=N + 1; end else writeln('Valor nao permitido'); writeln('O Valor gerado pela expressao é ',e:2:2); readln; END. Vejam que o e:=e+(1 div fat); e N := N + 1; estavam fora do lugar, dando a impressão que estão dentro do for, mas eles não estão!!! Tem também o else, mas ai dependo do padrão. No meu, ele fica na mesma lida do if... 2) Algoritmo A resposta aqui não está batendo... Sugestão: Faça um teste de mesa... Faça alguns cálculos na calculadora e outros pelo programa. As respostas tem que dar sempre igual respectivamente. Ex. te tabela: *** A minha sugestão da postagem anterior está de pé ainda! No aguardo Abraços
  17. Olá Rosberguedes Antes de somar, você precisa saber calcular os "X!"... Ja sabe o que é esse "!" significa?? Somar é uma etapa posterior. São duas etapas distintas: 1) Calcular os resultados de 1! a N!; 2) Somar o inverso (1/X) de cada um desses resultados para achar o valor de E (seguindo a fórmula). O que ocorre é que no programa você pode fazer a soma a medida que vai achando uma resposta. (Não precisa calcular tudo de uma vez e depois dividir 1 por cada resultado e ir somando) Então, primeiramente você precisa saber calcular esses 1! a N!. Tente fazer da seguinte forma: 1) Faça um programa que leia um valor "N" e calcule o N! e exiba o resultado na tela; 2) Faça um programa que leia um valor "N" e calcule os valores de 1!,2!,3!.. a N! e exiba o resultado de cada conta na tela. 3) Faça um programa que leia um valor "N" e calcule os valores de 1!,2!,3!.. a N!, some os resultado e exiba o resultado da soma. Poste aqui casa um dos programas. ... O seu programa será simplesmente o 3) com a diferença que em vez de somar os resultados diretamente, você deverá somar 1/(resultado). No aguardo Abraços
  18. Está com dificuldades em que? Mas vamos lá, o que você precisa fazer é achar uma forma de calcular esse 1!, 2!, 3! etc. Primeiramente o mais óbvio: o que é essa "!"? Descobrindo isso, basta criar um algoritmo que calcule os valores para cada caso (de 1! a N!), ao final de cada cálculo, divida 1 por esse valor e some ao total em "E". PS: "N" é um valor inteiro, logo pode usar integer em vez de real. No aguardo. Abraços
  19. Vou dar uma olhada aqui.... ai a gente vê o que pode ser corrigido.. Até breve... Abraços
  20. Olá a todos... Pessoal, cuidado!!! A nomeclatura para Bytes e Bites são diferentes!!!! A velocidade medida pelos sites, como RJ Net e SpeedTest já estão em bits (kbps ou Mbps). A fórmula de cálculo no tutorial está cometendo esse "pequeno" erro... (precisa ser corrigida) Correto seria assim: Medido em byte por segundo = kBps; Medido em bit por segundo = kbps. Na verdade, ambas as velocidades "são reais", apenas está se convertendo para uma medida mais convencional (fazendo analogia ao tamanho de arquivos, que são em bytes, já a internet é em bits) Outro exemplo: Não, 2 MEGA = 2 MEGAbits (e não 2028). Que dar 2048 kilobits (o mesmo que 2048 kbps), que 256 kBps. 256 kbps (em bits) seria igual a 32 kBps (em bytes) A tabela está assim: Mas deveria ficar assim: Em fim... um link de 512 kbps será de 512 kbps e pronto!!! Não existe essa divisão. Só devemos dividir por 8 caso queira encontrar o valor em bytes (kBps). "Minha internet de 10 Mega, equivale a 10x1024 bits = 10240 kbps. Transformando em bytes, dá 10240/8 = 1280 kBps, que dar "um arquivo de 1.25 MB por segundo". Ou seja, 10 Mega (bits) de internet é igual a 10/8 = 1,25 MB. Por ai vai Abraços
  21. Coloque o teclado que funciona e configure o Windows 7 para logar automaticamente. Passos caso não saiba: - Pressione as teclas "Win+R" para abrir o executar, lá digite "control userpasswords2" (sem aspas) para abrir as "Contas de Usuário". - Clique num usuário com acesso administrativo (que está no grupo "Administradores") e desmarque a opção "Os usuários devem digitar um nome de usuário e uma senha para este computador". - Dê OK. E digite a senha do usuário e confirme. Desligue o computador, coloque o teclado ruim e ligue. O SO logará automaticamente (se senha estiver correta) e deverá identificar o seu teclado... PS: Uma forma, que não testei e não sei se funciona, é você logar com o teclado bom, esperar terminar de logar... e muda o teclado. Como são USB, acho que funciona, mas não tenho certeza. No aguardo. Abraços.
  22. Certo... é que essa questão de salvar daria erro também, mas o erro realmente é outro... Veja: Você comenta: E o erro dado foi: 1) Você está usando o nome do arquivo incorreto na hora de compilar. Se você está usando o compilador 64bits (ppcorssx64.exe), logo, o nome do arquivo tem que ser o do 64bits também. 2) Lembrando: Toda vez que for compilar, será preciso salvar o arquivo antes. 3) Você pode utilizar o compilador 32bits no Win 64bits sem problemas. Tanto um quanto outro compilador funciona no Win64bits. Inclusive sugiro que instale a 32bists mesmo, já que o executável gerado roda em ambos SOs. Com o 64bits só vai rodar no 64bits. No aguardo Abraços
  23. Você tem sempre que salvar o arquivo ".pas" antes de compilar...
  24. Olá vampyagamy Ele não está encontrando a pasta units. É dentro desta pasta que fica a unit system. O problema está nas sub-pastas. Qualquer coisa dê uma reanalisada no item 3) Integração NotePad++ com o Free Pascal do tutorial. RESUMIDAMENTE Repare que o caminho do seu compilador está assim: \Compiladores\2.6.0\ppc386.exe Deixa o compilador no seguinte caminho: [COLOR="Red"]\Compiladores\FPC\2.6.0\bin\i386-win32[/COLOR]\ppc386.exe E a pasta units neste: [COLOR="Red"]\Compiladores\FPC\2.6.0[/COLOR]\units Dai o script vai ficar mais ou menos assim: C:\Program Files\Notepad++\Compiladores\FPC\2.6.0\bin\i386-win32\ppc386.exe "$(FULL_CURRENT_PATH)" Qualquer dúvida, releia o tutorial. Se precisar de ajudar estamos aqui. No aguardo Abraços

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!