Ir ao conteúdo
  • Cadastre-se

Simon Viegas

Membro VIP
  • Posts

    3.944
  • Cadastrado em

Tudo que Simon Viegas postou

  1. Olá, o incidente já foi resolvido?
  2. Olá. Quais erros? Por favor, poste o seu código e onde está com dificuldades. Abraços
  3. Olá renatocrb e renatocrb. Tentem fazer algo e postem aqui o que já conseguiram... Então, para o 1), creio que a primeira coisa seria cria uma Function que calcule e retorne o valor fatorial de um número inteiro. Essa seria a base do programa. Seria até interessante apenas fazer um programa que faça isso, depois inseriria a rotina principal que faz o cálculo. Para o 2), vocês poderiam criar uma Function que retorna os divisores do número e a partir dai efetuar os cálculos... etc No aguardo
  4. Olá Geraldo Fernandes, Ainda precisa de ajuda? Então, creio que o prazo já passou né? mas caso queira tentar fazer o programa apenas para aprendizagem (e também até poder demonstrar interesse para o professor etc), é só postar o que já conseguiu fazer e/ou onde está com dúvidas. No aguardo.
  5. Olá HellBlazer, Tente fazer algo, e poste o que já conseguiu fazer e onde está com dúvidas... Sugiro fazer por etapas, ex.: Utilizando 0s: (n=5) 0000000000000000000000000 Utilizando 0s e 1s 0101010101010101010101010 Então, imagino algumas formas diferentes para desenhar esse tabuleiro... a depender da sua criatividade vou passando também algumas dicas. No aguardo.
  6. Olá. Seu incidente está relacionado a "compra/venda".. "fornecedor/cliente". Esse fórum não trata de tipo de questão. Em relação a uma possível "senha", ninguém está autorizado a passar aqui, já que pode está violando alguma lei e possivelmente será responsabilizado por isso. Nesse caso, sugiro que tente contactar fornecedor de alguma forma.. ou a depender, por exemplo, se comprou no MercadoLivre ou algo do gênero, entrar em contato com o suporte do site. Ou até mesmo sites como "ReclameAqui" e afins... Abraços
  7. Entre em contato com o revendedor e solicite informações sobre o uso. Se tem senha, somente os responsáveis devem repassar para os seus clientes.
  8. Olá a todos... Só uns comentários: 1) Declaração de variáveis: Além da declaração típica: var vetor1:array[1..10] of integer; vetor2:array[1..10] of integer; vetor3:array[1..10] of integer; É possível também separar as variáveis por vírgulas. var vetor1, vetor2, vetor3 :array[1..10] of integer; ou como gosto: var vetor1, vetor2, vetor3 :array[1..10] of integer; (essa separação por linha, é apenas estética... não influencia no código, ou seja, esse dois exemplos são exatamente iguais) Separando por vírgulas, você, por exemplo, só precisaria editar o "tipo" uma vez. (como mudar de 1..10, para 1..4). 2) Modo de teste Para efetuar os testes, nesse contexto, basta apenas ajustar a quantidade nos laços de repetição (for), ou seja, vai funcionar normalmente deixando o array maior, "apenas" vai meio que esbarrar num desperdício, o que pode ser considerado um erro de lógica... mas que para fins de testes, não irá impactar em nada. 2.1) Uso de constantes (é apenas um conceito, se dificuldades pode ignorar) Já pegando esse gancho de efetuar testes, para facilitar a troca do tamanho, poderia usar do conceito de constante, ex.: Nas variáveis const //constantes é análogo a variável, só que o valor é fixo, e tem também a vantagem de ser "pre-definida" MAX = 10; //quantidade máxima de entradasvar vetor1:array[1..MAX] of integer; vetor2:array[1..MAX] of integer; vetor3:array[1..MAX] of integer; ou no caso: const MAX = 10;var vetor1, vetor2, vetor3 :array[1..MAX] of integer; e nos laços, ex.: for i := 1 to MAX doBegin writeln('Digite o ', i , ' valor para ser armazenado no PIRMEIRO vetor'); readln(vetor1[i]); end; for i := 1 to MAX doBegin writeln('Digite o ', i , ' valor para ser armazenado no SEGUNDO vetor'); readln(vetor2[i]);end; for i := 1 to MAX doBegin vetor3[i] := vetor1[i] + vetor2[i];end; Ou seja, bastaria mudar o valor de MAX para o desejado, no caso 4 ou 10... ou o valor que desejar... A ideia é bem simples, o compilador apenas vai pegar o valor que está na constante e vai jogar no lugar, logo ficando mais prático a edição. Obs.: O seu primeiro código não está errado. Pelo que observei, a conta está sendo feita corretamente, faltava apenas exibir o resultado. Mas como comentado por Math.Pi, fica melhor separando a leitura individualmente...
  9. Olá Flavio Maidl, Pode ficar sossegado, creio eu que ninguém ficou ofendido, acho que nem teria por que ficar.. Sobre "caminho mais difícil", creio que seja relativo, pois depende de metodologia, como por exemplo focar no desenvolvimento de lógica, ou seja, entender COMO FUNCIONA o mecanismo, e não apenas SABER USAR UM MECANISMO PRONTO. Etc. Talvez para o professor/facilitador, essa etapa seja importante ou necessária. Obrigado pelo Feedback. Abraços
  10. Olá varjal, Existem diferenças entre Read e ReadLN (e que NÃO É ANÁLOGO ao Write x Writeln). Na prática, use sempre READLN, "não use" read. Para saber mais sobre, sugiro esta postagem: Qual a diferença entre READ e READLN ???
  11. Olá Flavio Maidl, Antes tudo, obrigado pela sua crítica construtiva. Você é o cara! Então, a linguagem abordada na referida postagem é o Pascal "puro", e não Delphi... Tanto que utilizou o PascalZim... e o foco foi "a aprendizagem/entendimento" dos conceitos envolvidos no exercício, ou seja, ao se pedir «identificar o maior valor», não está se tratando em apenas "dar uma resposta correta", mas sim "no processo utilizado para encontrar essa uma resposta". Está implícito! Não faria nem sentido usar um simples "método/função" para aquele contexto. Por exemplo, ele chegou a uma conclusão: «Na 1ª questao eu coloquei um var antes dos parametros(por referencia) e deu certo. O código ficou assim:», ou seja, além de entender a falha inicial (variável com valor fixo), utilizou de outro conceito interessante de "referência/valor" para chegar "numa solução". Resumindo: o que importava em si era o desenvolvimento, e não só uma resposta. No aguardo.
  12. Olá. Está com dificuldade em qual parte? Faça algo... Por exemplo, crie um programa que apenas ler um número em binário e exiba os seus dígitos, ex.: Entrada --> 10010 Saída --> 1 0 0 1 0 Em fim, poste o que já conseguiu fazer e onde está com dúvidas. No aguardo.
  13. Olá. Está verificação da condição ser igual a zero ou não deve ser feita antes da próxima etapa. Repare, logo depois da leitura da idade, o código já pergunta a opinião, independente do valor da idade (até mesmo se for negativa), ou seja, deve ter uma estrutura de seleção (if) antes da próxima etapa (só ler a opinião se a idade for válida)... PS: cuidado com a identação, ela também é critério de avaliação: Pelo que avaliei, tem dois trechos que não estão identados... (coloquei um comentário acima de cada um) package fixacao;import java.util.Scanner;public class Ex05 { //esse método está dentro da classe, logo vai um "dente" pra frente public static void main(String[] args) { Scanner entrada = new Scanner(System.in); int soma,id,optA,optB,optC,optD,optE,i; double media,pctA,pctB,pctC,pctD,pctE; String op; i=-1; id=-1; soma=0; optA=0; optB=0; optC=0; optD=0; optE=0; media=0; pctA=0; pctB=0; pctC=0; pctD=0; pctE=0; op=null; while(id!=0){ System.out.println("Insira a idade"); id=entrada.nextInt(); i++; soma=soma+id; do{ System.out.println("Insira a opinião"); op=entrada.next(); if (op.equalsIgnoreCase("A")){ optA++; }else if (op.equalsIgnoreCase("B")){ optB++; }else if (op.equalsIgnoreCase("C")){ optC++; }else if (op.equalsIgnoreCase("D")){ optD++; }else if (op.equalsIgnoreCase("E")){ optD++; }else{ System.out.println("Escolha uma opinião válida"); } } while((! op.equalsIgnoreCase("A")) && (! op.equalsIgnoreCase("B")) && (! op.equalsIgnoreCase("C")) && (! op.equalsIgnoreCase("D")) && (! op.equalsIgnoreCase("E"))); } if (i!=0){ media=soma/i; pctA=(double)optA/i; pctB=(double)optB/i; pctC=(double)optC/i; pctD=(double)optD/i; pctE=(double)optE/i; } //esse trecho está fora do if, logo fica um "dente" para trás. System.out.println("Quantidade de pessoas que responderam a pesquisa: "+i); System.out.println("Média de idade das pessoas que responderam a pesquisa: "+media); System.out.println("Porcentagem de opinião A: "+pctA); System.out.println("Porcentagem de opinião B: "+pctB); System.out.println("Porcentagem de opinião C: "+pctC); System.out.println("Porcentagem de opinião D: "+pctD); System.out.println("Porcentagem de opinião E: "+pctE); entrada.close(); }} No aguardo.
  14. Olá,Zowberg, por favor, poste o que já conseguiu fazer e onde está com dúvidas. No aguardo.
  15. Em relação ao código, ok. O tópico será dado como solucionado... Em relação a "cursos", sugiro fazer pesquisas no fórum, existem diversos tópicos com o mesmo tema. Exemplo de consultas: curso pascal, tutorial, tutorias, etc.... qualquer coisa abre um novo tópico, já que se trata de outro tema... Abraços
  16. Olá. Se a sintaxe é "list.set(0,variável)", não seria algo como "listaPaciente.set(i,p);" ?
  17. Isso, só existem 10 representações diferentes, daí tem que criar outra para representar a 11ª. Assim como usam-se na base 16, você poderia usar o "A", ou seja, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A] Para tratar os dados, imaginei aqui duas formas: 1) tratar o número como caractere; daí precisa ver a forma para manipular o caractere para efetuar os cálculos, como gerar os dígitos e comparar com o antecessor. 2) tratar como número, mas exibir como caractere neste caso, quando o número for 10, converteria para "A". Ex.: vamos supor que gerou "4.7.1.10.7" (usei ponto só para distinguir o "dígitos"), o resultado seria "471A7", entendeu? *** Só para ver se eu entendi, gerei (de cabeça) um número de 11 dígitos: 194825A6037. Estaria de acordo com a regra? No aguardo.
  18. Olá, o quê que não está dando certo? apresentou algum erro? Mas vamos lá: Program media;var nota2, c_media: real;begin nota1 :=31; nota2 :=34; c_media:=(nota1+nota2)/2; writeln('mostrar media',c_media);end. Analisando superficialmente, vejo que você está usando as variáveis nota1 e nota2, mas só declarou a variável nota2, ou seja, falta declarar a variável nota1. Ex.: var nota1, note2, c_media: real; No aguardo.
  19. Olá. Qual a sua dúvida? Poste o que já conseguiu fazer, e em qual parte está precisando de ajuda. No aguardo.
  20. Olá. Isso está acontecendo, pois está incrimentando o "i" antes da soma, ou seja, está lendo um valor, mas está somando outro. Obs.1: o cálculo da média deve ser feito fora do laço, pois se tiver dentro, vai ficar calculando a cada loop. Obs.2: você precisa revisar seu código... tem alguns detalhes que precisam ser ajustados., veja o que você comentou: Então, acho que deve ser algo mais ou menos assim: primeiro você tem que saber a quantidade de alunos por sala, depois coletar "algo" desss alunos e calular a média geral desse "algo'. Depois exibir quantos alunos, por sala, estão acima desse média geral do "algo".
  21. Olá 1) Sobre a sentença (op = '+') or (op = '-') or (op = '*') or (op = '+'); Agora ficou certo, ou seja, "se for algum dos válidos, então sai do loop". Ou seja, utilzando o "or", como no nesse contexto, se "apenas um for verdadeiro, a sentença toda passa a ser verdadeira". E serve exatamente para o seu propósito... 1.1) Sugestão de implementação Antes, já cito que você poderia USAR QUALQUER LAÇO DE REPETIÇÂO, como while, repeat ou for... SEMPRE o que dá para fazer em um, dá para fazer em outro, beleza?... o que ocorre é que cada um é mais apropriado para determinados contextos, ou seja, é mais prático/conveniente etc, ou não... O uso de um laço ou outro, depende da lógica do programa... neste contexto, o While tem a vantagem de usar "duas perguntas diferentes", um normal, e outro sugerindo que houve falha na primeira. Já com o repeat, fica uma só, e também estaria relativamente correta, já que "sempre vai perguntar uma vez e só continuará após confirmar"... escolher um outro, vai depender da análise. Obs.: dá também para usar o for também, mas fugiria muito do escopo que geralmente é proposto para ele (o for). Sugiro que tente fazer também essa lógica com o While... como treinamento... DICA: A sentença usada no while é a "negação" da usada no until do repeat. (poderia colocar um "not" para toda a sentença, mas o que recomentado seria "negar a sentença em si", ou seja, trocar os operadores, de forma que a senteça "correspoda" a negação da utilizada no until). PS: A negação utilizando o Not, seria algo assim: while not ((op = '+') or (op = '-') or (op = '*') or (op = '+')) do begin end; Mas, como já comentado, não é isso estou sugerindo tentar... seria "nega a sentença em si". 2) Sobre o read x readln 2.1) "inversão de afirmativa" Só uma pequena correção: quando você relata "porque o readln em vez do somente read?", em vez disso, deveria ser algo como "porque somente o readln em vez do read?". Percebe a pequena diferênça? . É sutil, mas muda totalmente o sentido da frase... concorda? rs. 2.2) "sobre a iniciativa em perguntar o 'porque' " Essa justumente é a ideia, tenha curiosidade... é algo assim que se espera dos "estudantes" como nós... Então, sugiro que dê uma lida nesse tópico. Lá chegamos a tentar analisar o motivo... Obs.: A dica permance: nunca use read, use somente readln, ou seja, só use o read quando já tiver conhecimento sobre as suas característas... RESUMINDO: erroneamente alguns programadores confundem esse "ln" que é usado no writeln, que nesse caso serve para "descer uma linha após... como um ENTER"... só que para o read, ele não serve para isso... e no final das contas, o uso "indevido" do read, pode ocasionar um comportamento adverso no algoritmo... *** Qualquer dúvida é só postar.
  22. Olá. Primeiramente, uma dica: "Nunca" use read, use somente readln. O read só é usando em caso específicos (mais avançados) Então... Faça um "teste de mesa". Dê valores as variáveis e siga os passos que foi determinado pelo código... Ex.: while (op = '+') or (op = '-') or (op = '*') or (op = '+') do Supondo OP='2'. Teríamos: (False) or (False) or (False) or (False), o que resulta em "False", logo não entraria no laço. Deveria entrar, correto? Logo a combinação de sentenças está errada. Outro teste... Se OP='*' Teríamos: (False) or (False) or (True) or (False), o que resulta em "True", logo entraria no laço, mas não deveria entrar... Para o outro laço temos: until (op <> '+') or (op <> '-') or (op <> '*') or (op <> '+'); Supondo OP='h'. Teríamos: (True) or (True) or (True) or (True), o que resulta em "True", logo sairia do laço. Não era para sair, correto? Logo a combinação de sentenças está errada. Outro teste... Se OP='+' Teríamos: (False) or (True) or (True) or (True), o que resulta em "True", logo também sairia do laço, o que estaria correto para esse caso. ...se analisar bem, QUALQUER valor que "op" venha a ter, a sentença do until vai resultar em "True", o que obviamente está errado. Então, dê uma revisada na "tabela verdade" dos operadores lógicos... "or", "and", "not" (tem o "xor" também) que você consegue ajustar fácil... Qualquer dúvida é só postar.
  23. Olá. A estrutura básica da System é para "entrada e saída de dados", mas ela serve para outras funções também, como "cópia de arrays"... Dê ma pesquisa do no Google, por exemplo pelos termos "classe system java" (sem as aspas). Se tiver alguma dúvida específica, é só postar.
  24. Olá. Vou entrar mais no mérito do "como", e não pelo "por quê". ok? Em relação a poder usar o "System.out.println", é porque o objeto "out" está como "static", ou seja, em vez desse objeto pertencer a uma instância do objeto da classe System, ele pertence a classe System em si. Dessa forma, dá para acessar diretamente. Já no caso da classe Scanner, ela precisa instanciar um objeto, pois o objeto a ser utilizado é de uma instância deste, e ele não é Static. Outro detalhe é que a instância é "personalizada", ou seja, precisa de parâmetro para criação... que no caso, está usando o objeto "in" da classe System. Como in também é estático, não é preciso instaciá-lo... Sobre a questão do "por quê", por alto, eu acredito que seja uma devido a necessidade de "tratamento de dados", ou seja, ao utilizar o System.in, está sendo utilizado a classe Scanner para controlar esses dados que virão por ele... Espero ter ajudado. Qualquer coisa aguarda outras informações de alguém que entende mais do assunto.

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!