-
Posts
3.940 -
Cadastrado em
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que Simon Viegas postou
-
Caro usuário, Seja bem-vindo ao Fórum do Clube do Hardware. No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware. Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício. Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal. Esperamos que compreenda. Atenciosamente, Equipe Clube do Hardware
-
achar os 3 maiores números utilizando a estrutura enquanto
Simon Viegas respondeu ao tópico de ET Bilu em Programação - iniciantes
Caro usuário, Seja bem-vindo ao Fórum do Clube do Hardware. No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware. Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício. Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal. Esperamos que compreenda. Atenciosamente, Equipe Clube do Hardware adicionado 7 minutos depois *** @ET Bilu, uma forma prática seria utilizando vetor... daí ordena ele e pega o 3 primeiros... mas tem outras formas, vai também depender do enunciado. Se não puder usar vetores e/ou métodos de ordenação, algo como ter que ir recebendo e atualizando os 3 maiores, tente achar uma solução manual, ou seja, como se você tivesse que fazer o papel... alguém iria ditando números e você precisando seguir uma lógica para ir atualizando... Por favor, poste o enunciado completo, e depois qual(is) lógica(s) conseguiu imaginar e onde está com dificuldades. No aguardo. -
Visualg- erro no algoritmo calculadora
Simon Viegas respondeu ao tópico de mateus costa r em Programação - iniciantes
Olá @mateus costa r. Creio que a sintaxe esteja incorreta. 1) Creio que não seja possível usar essa "formatação" usando ":1:0" durante a conta, ou seja, a formatação vem depois do resultado. 2) Após você está fazendo "(/2*A)", creio que também não seja válido, pois o numerador não está sendo informado... seria algo como "abre parênteses dividido por 2*A". Para tentar ajudar, creio que a conta seria algo assim: (-B+j)/(2*A) "menos b mais raiz de delta, sobre dois a" obs.: lembrando que várias possibilidades de respostas: nenhuma raiz, única raiz ou duas raízes reais (depende do valor do Delta) Tem alguns outros detalhes que precisariam ser revisto no código, como: Seria "formula" do que? Veja, a 'fórmula de Bhaskara' não é essa, isso seria apenas uma parte: o valor do Delta. Por ai vai. No aguardo. -
VisuAlg Algoritmo em VisualG
Simon Viegas respondeu ao tópico de Allyson Cardoso em Programação - iniciantes
Olá. É creio que tem maneiras mais práticas: 1- Baseando no seu código atual, utilizar um vetor para armazenar essas informações. Ou seja, a medida que encontrar um hotel com as características em questão, armazenaria seu "nome" e "distância". Ao final, exibiria esses dados. (usaria uma matriz de N por 2*) 2- Utilizando a matriz como antes, e ai era só processar os dados. Ou seja, como os dados estão cadastrados, verificaria quais hotéis se encaixam ao critério, e exibiria. Como de praxe, sugiro tentar fazer das duas formas... estamos aqui para ajudar. * Esse N por 2, seria tipo hoteis : vetor[1..10,1..2] de caractere //até 10 hoteis, com nome e distância do centro para cada um No aguardo. -
VisuAlg Algoritmo em VisualG
Simon Viegas respondeu ao tópico de Allyson Cardoso em Programação - iniciantes
Olá @Allyson Cardoso. O comando caracpnum() é uma função que servirá para "converter" um dado do tipo caractere para o tipo numérico. Pode ser útil quando for efetuar "contas". Como o dado está como caractere, o suposto número estará como um texto, para comparar seria algo assim: se hoteis[a,2] >= "15" ENTÃO Aqui funcionou! Ou seja, talvez nem seja preciso a conversão... Mas se for necessário, poderia ser algo assim: se caracpnum(hoteis[b,2]) >= 15 ENTÃO Perceba que o 15 está agora sem as ""... ou seja, o "texto" (caractere) que está em hoteis[a,2] é enviado para a função através do parâmetro, que retornará, se tudo ocorrer bem, o valor correspondente em inteiro... como é uma FUNÇÃO, o próprio procedimento funciona como uma espécie variável, logo, podendo usar diretamente no SE. ADENDO No caso, os dados do hotel estão armazenados numa mesma matriz, onde cada linha representa um hotel diferente, e cada coluna representa um dado do respectivo hotel (algo como: nome, distância, visitantes e acesso), correto? Todos esses dados estão sendo armazenados como caractere lá na matriz, pois "caractere" aceita dados alfanuméricos (números e letras) , mas a distância (e número de visitantes também) são dados do tipo numéricos. O computador entende esses dos tipos de formas diferentes... um número quando armazenado como caractere é considero como um caractere em si... como um "texto". Daí, para "trabalhar com esses dados", como efetuar "contas", as vezes é necessário converter antes para número. No exemplo lá de cima, vemos que o VisuAlg também consegue verificar que, por exemplo, o texto "20" é maior igual ao texto "15". Seria verificar que "GGG" é maior que "DDD". No aguardo. -
Delphi ajuda calculadora comando case
Simon Viegas respondeu ao tópico de JUnior Ferrarezi em Programação - outros
Olá @JUnior Ferrarezi. 1) SINTAXE DO CASE Esse writeln() deve ficar depois do end; que fecha o case, por isso que está dando erro: Ou seja, como está "dentro do case" ele diz que está esperando uma constante (um outro número de opção). Basta ajustar, algo assim: 4: begin result := primeiro_numero / segundo_numero; End; End; //fim case writeln ('O resultado e:',result:2:2); readln; 2) CONFIGURAÇÃO DO "MENU" No seu código você está lendo escolha várias vezes, mas só precisa de uma. Algo como sugerido por @Est3gma 3) NOMENCLATURA DAS OPERAÇÕES O correto seria: Adição, Subtração, Divisão e Subtração. "Soma" é outra coisa. 4) USO DO BEGIN/END Para vínculo uma instrução, não é necessário begin/end, ex.: program calculadora_comando_case; //faltou ";" {$APPTYPE CONSOLE} uses SysUtils; var escolha:integer; result:real; primeiro_numero,segundo_numero:integer; begin writeln('Digite 1 para soma'); readln(escolha); writeln('Digite 2 para subtração'); readln(escolha); writeln('Digite 3 para multiplicação'); readln(escolha); writeln('Digite 4 para divisao'); readln(escolha); writeln('Digite o primeiro numero'); readln(primeiro_numero); writeln('Digite o segundo numero'); readln(segundo_numero); case escolha of 1:result:=primeiro_numero + segundo_numero; 2:result:=primeiro_numero - segundo_numero; 3:result:=primeiro_numero * segundo_numero; 4:result:=primeiro_numero / segundo_numero; end; //fim case writeln ('O resultado e:',result:2:2); readln; end. 5) MELHORIAS / SUGESTÕES Alguns pontos podem ser revistos, como por exemplo: - Deixar o operador como segunda informação, ou seja, ler um número, depois o operador e o segundo número; - Deixar a calculadora em um laço de repetição, para possibilitar efetuar novos cálculos; - Configurar para tratar as divisões por zero (já que será indefinida ou indeterminada) - Etc *** No aguardo. -
Olá @anonymouatour. Quem sou eu para discordar..., mas para mim está mais para Bubble Sort, entendo assim: A cada loop do laço externo o menor (por que usou "<") valor irá "flutuar como uma BOLHA" para o fim do vetor. Vai sendo comparado de dois em dois ("posição atual com a posição posterior"), daí, o menor entre eles ficará a direita, e o menor a esquerda (troca quando necessário)... no final, por consequência, o menor valor de todos estará na extrema direita (pois a cada comparação, o menor ficará a direita, e como é comparada com o próximo, continuará ficando a direita até chegar na última posição). Pelo que eu entendi também, esse algoritmo está incompleto (para não dizer falho), pois como a cada loop as últimas posições ficaram ordenadas, não fará mais sentido continuar comparando lá... ou seja, após o primeiro loop, a último posição estará ordenada, na próxima a penúltima, na próxima a antepenúltima... já no código do jeito que está, ele continuará comparando (sem necessidade) essas posições que já estão ordenadas! Já no Insert Sort, pelo que eu entendi, a cada loop, é selecionado uma posição (seu valor), e vai verificando e "empurrando os valores para o lado" para assim INSERIR, esse valor selecionado, na posição específica. RESUMINDO: Tomando-se como base uma ordenação em ordem decrescente: No Bubble Sort, os menores flutuam como uma bolha para o fim a cada loop. O foco aqui é flutuar como uma bolha os menores valores para o fim. No Insert Sort, a cada posição do vetor, todas as posições anteriores e que são menores que ele (posição atual) são "jogados" para direita, após isso, a posição atual é inserida na posição que sobrou (última a ser jogada para direita), ou seja, a base lógica aqui é ir inserindo as maiores posições a esquerda. Para mim, o código que foi postado se assemelha ao Bubble Sort! Mas a depender, qualquer coisa peça para explicar o funcionamento e qual seria a justificativa para ser o Insert... ou qualquer outra coisa pertinente. No aguardo.
-
Olá @Joaocstro. Poste o que já conseguiu fazer e onde está com dúvidas.
-
2 Variáveis em uma mesma condição PYTHON!
Simon Viegas respondeu ao tópico de Matheus D. em Programação - outros
Olá. Acho que tem que fazer as sentenças individualmente, algo assim: if escolha == 'soma' or escolha == 'adição' or escolha == 'mais': obs.: não conheço bem a linguagem ainda, pode ser que exista outra forma em que não se precise repetir... No aguardo. -
Caro usuário, Seja bem-vindo ao Fórum do Clube do Hardware. No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware. Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício. Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal. Esperamos que compreenda. Atenciosamente, Equipe Clube do Hardware
-
Pascal Arquivos no Pascalzim
Simon Viegas respondeu ao tópico de Lukas Allegretti em Programação - outros
Olá @Lukas Allegretti. É feito normalmente... dá mesma forma que seria feito se fosse um arquivo só. Basta na hora de ler ou escrever, passar como parâmetro o arquivo correspondente. Algo assim: read(arqEmpresas,dadosEmpresa); writeln(arqRentavel,dadosEmpresa.cnpj) (adendo: não lembro se usa read ou readln, nem se é write ou writeln) Veja, isso é só um exemplo... mas a ideia é que antes de ler ou escrever você pode escolher qual arquivo trabalhar. Os dados dos arquivos não necessariamente precisam ser iguais... aí, para cada arquivo terá que usar o tipo de arquivo que declarou. Dessa forma que sugeri acima, o primeiro arquivo teria os dados da empresa, e o segundo apenas um "código" para identificar ela, ai os dados puxaria do primeiro arquivo. Mas, a depende, poderia deixar os arquivos iguais, e apenas escreve dadosEmpresa nele. Minha sugestão: Faça inicialmente um programa com apenas um arquivo, ou seja, que consiga cadastrar empresas e ler os dados também. Após faça a parte do segundo arquivo. Por favor, poste o que já conseguiu fazer e onde está com dúvidas. obs.: para postar um código, favor usar a tag CODE. Um pouco sobre: No aguardo. -
VisuAlg Jogo a senha no Visualg
Simon Viegas respondeu ao tópico de Johannfer em Programação - iniciantes
Olá @Johannfer. Para tentarmos alinhar os raciocínios, por favor, tente seguir (ou não) cada um dos item abaixo, daí responde cada um dizendo se vai seguir ou não, contra-argumentando ou onde está com dúvidas, ok? 1) USO DE MENUS (Urgente!) No seu código, você está usando o procedimento Menu1 para chamar o procedimento jogar, e dentro de jogar está chamado novamente Menu1. Você NÃO PODE FAZER ISSO. O correto é deixar o jogar terminar para voltar para o Menu1. Veja, os procedimentos no VisuAlg são como sub-programas... Cada vez que um procedimento ou função é chamada, ele é empilhado na "pilha de processos", algo assim: *** Ao iniciar, o "processo principal" é aberto no Windows. Ai, ao chamar o Menu1, é aberto um sub-processo que fica em cima do programa anterior... Ao chamar Jogar, ele ficará em cima de Menu1... Daí, o "correto" seria deixar o Jogar terminar para voltar para o Menu1, e aí poder selecionar outro opção de menu para abrir um novo sub-processo ou finalizar (tem que ser "uso, fecho e volto, uso fecho e volto)... do jeito que está sendo feito, o jogar está iniciando um novo Menu1, entende? Ficando algo assim: Pilha de processos MENU1 JOGAR MENU1 PROGRAMA_PRINCIPAL Ao continuar, o Menu1 lá de cima (onde estará rodando no momento) iria chamado um novo Jogar, aumentado a pilha de processos... tá dando para entender? Isso está conceitualmente errado!!! Não pode! Para corrigir isso, veja o item 4) da minha postagem anterior. De lá, você pode adaptar ao seu novo código... ou seja, deixando o repita/ate dentro do menu. Entenda que ao finalizar um sub-programa, a execução do programa volta para a próximo linha após onde ele foi chamado!!! 2) INDENTAÇÃO Seu código lá no docx para mim ainda está bagunçado, por favor, verifique o item 1 da minha postagem anterior. Para melhor entendimento do algoritmo é necessário que o código esteja indentado corretamente. Organize o seu código e poste ele diretamente na postagem (sem anexo)... basta clicar no botão <>, cola o código texto e inserir. Resumindo: indente seu código e poste ela usando a tag CODE (botão <>). 3) GERAÇÃO DE NÚMEROS ALEATÓRIOS No seu código você está usando: Mas veja, o vetor cores vai de 0 a 5, ou seja, são 6 posições!! Dessa forma só está sorteando 5 números: 0 a 4. E o 5? Se tiver dúvidas, pouco sobre o Randi() aqui: http://www.apoioinformatica.inf.br/produtos/item/30-as-funcoes-do-visualg-versao-2-0 Qualquer coisa dá um Google. 4) VARIÁVEIS "MENU" Para que servem essa variáveis menu1, menu2, menu3? Onde estão ou deveriam está sendo usadas.. na minha postagem anterior cheguei a comentar sobre elas: 5) VARIÁVEL CONT Pelo que eu vi, a variável cont é desnecessária, apenas use: jogador_atual<-jogador_atual+1 6) GERAÇÃO DA SENHA Dá para juntar e deixar um para só... após sortear, exibe o número. **** Lembrando: todos os pontos são importantes!!! Não dá para pular etapas, senão embola tudo!! Quanto maior o programa, mais difícil fica identificar os erros e tentar corrigir... o algoritmo já deve ir iniciando com os conceitos "certos".. Antes de qualquer coisa coisa... corrija o item 1 desta postagem! Aproveita já fazendo com item 2. Só após isso, tente corrigir os outros aos poucos! No aguardo. -
Caro usuário, Seja bem-vindo ao Fórum do Clube do Hardware. No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware. Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício. Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal. Esperamos que compreenda. Atenciosamente, Equipe Clube do Hardware
-
VisuAlg Criar algoritmo divisíveis por 7 e pares ao mesmo tempo.
Simon Viegas respondeu ao tópico de Atailson Silva em Programação - iniciantes
Olá @Atailson Silva. Seja bem vindo ao Fórum do Clube do Hardware. Tem pelo menos essas duas formas: 1- Fazendo a verificação utilizando 14, como sugerido por @Imakuni, já que todo número dividido por 7, e que ao mesmo tempo é par, necessariamente é dividido por 14. Entretanto, acho que seria interessante demonstrar isso de alguma forma, ou seja, provando essa equivalência. Entendo que enunciado está especificando uma forma de "calcular". Ao "simplificar" essas duas condições em uma, seria necessário demonstrar que de fato são equivalentes... entende? Talvez essa equivalência seja trivial para gente... mas para outros pode não ser tão clara.. pior, pode ser que não seja verdadeiro. Poderia por exemplo deixar um comentário no código explicando essa equivalência, e a partir daí usar o 14. 2- Fazendo a verificação como imaginou, ou seja, verificando se o número é divisível por 7 e também de se é par. A paridade pode ser feita com o mod mesmo. Para esse caso, tente primeiro apenas verificar se é par ou não. Depois de entender o processo, junto com a condição de ser divisível por 7. A minha sugestão seria fazer nas duas formas. Faz com uma... deixa pronto.. depois faz a outra. No aguardo. -
visualg Trabalho de Algoritmo (Matriz ou Vetor - Visualg)
Simon Viegas respondeu ao tópico de Pablo Nascimento barbosa em Programação - iniciantes
Olá @Pablo Nascimento barbosa. Seja bem vindo ao Fórum do Clube do Hardware. Podemos ajudar... em qual parte está com dúvidas? adicionado 30 minutos depois Para ajudar, alguns pontos: 1- você inverteu as coordenadas. São "100 posições por 10 atributos cada", pelo menos está lendo os dados assim. (e não 10 por 100, ou então ajuste o código) 2- o programa deve está em laço de repetição, pois ao escolher uma opção e finalizar, deve voltar para o menu para poder escolher outra... até que selecione sair; Esses dois ponto já adianto: algoritmo "agenda de endereços" var {Agenda :vetor [1..10,1..100] de caractere} //você invertou as coordenadas Agenda :vetor [1..100,1..10] de caractere tipo_op:inteiro inicio repita escreval("Qual operação deseja fazer?:") escreval("1-Adicionar") escreval("2-Consultar") escreval("3-Remover") escreval("4-Listar") escreval("5-Finalizar") leia(tipo_op) se tipo_op = 1 ENTÃO escreval ("Informe o nome:") leia (Agenda[1,1]) escreval("Informe o endereço:") leia (Agenda[1,2]) escreval("Informe o número:") leia(Agenda[1,3]) escreval("Informe o complemento:") leia(Agenda[1,4]) escreval("Informe o bairro:") leia(Agenda[1,5]) escreval("Informe o Cep:") leia(Agenda[1,6]) escreval("Informe a Cidade:") leia(Agenda[1,7]) escreval("Informe o Estado:") leia(Agenda[1,8]) escreval("Informe o Telefone:") leia(Agenda[1,9]) escreval("Informe o e-mail para contato:") leia(Agenda[1,10]) fimse se tipo_op = 2 ENTÃO escreval("") fimse se tipo_op = 3 ENTÃO fimse se tipo_op = 4 ENTÃO escreval("Os contatos da agenda são:") {escreval(Agenda[1..10,1..100])} //faz sentido, mas não é assim que funciona fimse se tipo_op = 5 ENTÃO fimse ate tipo_op=5 fimalgoritmo Daí é preciso fazer outros ajustes... como: 3- Usar um "controlador" para "controlar" a posição do novo cadastro, ou seja, a cada novo cadastro, atualizar esse contador para quando for cadastro o próximo não cadastrar por cima. Declara uma variável, como por exemplo: pos_cadastro: inteiro; 4- Na hora de listar, você precisar percorrer as posição do vetor... indo de 1 até o total de cadastros já feitos.. isso para primeira coordenada. Assim como seus respectivos dados que deseja mostrar lá na segunda. Por ai vai. No aguardo. -
Criar Banco e tabelas com o MYSQL Workbench
Simon Viegas respondeu ao tópico de Lamarck Souza em Programação - iniciantes
Caro usuário, Seja bem-vindo ao Fórum do Clube do Hardware. No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware. Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício. Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal. Esperamos que compreenda. Atenciosamente, Equipe Clube do Hardware -
Exercício com Matriz- Portugol
Simon Viegas respondeu ao tópico de Rafael M. Pessoa em Programação - iniciantes
Caro usuário, Seja bem-vindo ao Fórum do Clube do Hardware. No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware. Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício. Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal. Esperamos que compreenda. Atenciosamente, Equipe Clube do Hardware -
Caro usuário, Seja bem-vindo ao Fórum do Clube do Hardware. No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware. Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício. Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal. Esperamos que compreenda. Atenciosamente, Equipe Clube do Hardware
-
Um dos pontos que também é importante verificar se a regra dos primos é apenas para números naturais ou se vale também para números negativos!!! O Wikipedia mesmo fala de negativos: https://pt.wikipedia.org/wiki/Número_primo Se números negativos também são válidos, o algoritmo terá que ser adaptado!!! Existem outras melhoras possíveis... consegui imaginar essas agora: 1- se for par não é primo; (não precisa fazer conta, apenas se for o 2, é claro). 2- ao encontrar o terceiro divisor para de fazer as contas (lembrando que SEMPRE já começa com 2: 1 e ele mesmo); 3- começar as divisões a partir do 3; 4- fazer divisões usando apenas números ímpares (pois o número é ímpar!. obs.: ideal seria primos, mas.....)
-
VisuAlg Jogo a senha no Visualg
Simon Viegas respondeu ao tópico de Johannfer em Programação - iniciantes
Olá @Johannfer. Primeiramente creio que precisa ajustar alguns conceitos aplicados no código. 1) INDENTAÇÃO DE CÓDIGO Seu código até que está parcialmente indentado, mas alguns espaçamentos estão fora do compasso... a minha sugestão seria usar 3, e somente 3, espaços para cada "dente". Para facilitar tente configurar a tabulação do VisuAlg. - Vá no Menu "Manutenção/Configurações" - Na guia "Editor", desmarque a opção "Usar tabulação inteligente", e deixe a "largura de tabulação" em 3. 2) DECLARAÇÃO DE PROCEDIMENTO Você está declarando o procedimento dentro do corpo do programa principal... o VisuAlg até está aceitando, só não sei se é por bug ou se é um funcionalidade... Enfim... a mais "normal" seria declarar antes do INICIO do programa principal... algo assim: Algoritmo "trab" Var menu, menu1, menu2, menu3, contador1, jogador_atual, contador2, jogada, i, erro, identificador, identificar, certos, x, contador3, j, aux: inteiro cores: vetor [0..5] de inteiro //numero que identifica as cores senha: vetor [1..4] de inteiro // senha sorteada pela maquina jogadas: vetor[1..10, 1..4] de inteiro // matriz que armazena todas as 10 jogadas pontos_jogadores: vetor [1..10] de inteiro // ranking houveTroca: logico Procedimento Menu1 inicio Escreval("") Escreval("O que você deseja fazer no jogo?") Escreval("") Escreval("1- Definir jogador") Escreval("2- Jogar") Escreval("3- Ranking") Escreval("4- Sair") Leia (menu) FimProcedimento Inicio cores[0] <- 1 cores[1] <- 2 ... 3) ESTRUTURA DE SELEÇÃO No seu código, você está lendo a opção do menu antes de cada verificação de condição, mas deveria "entrar no menu" uma vez só... ou seja, verifica qual opção ele escolheu, daí usa os se para "selecionar" a opção ele fez. Mais abaixo complemento quando falar de menus... 4) USO DE MENUS Menu é um conceito... é uma abstração de como é utilizado na vida real.. basicamente é constituído de um laço de repetição, lista de opções, variável para obter a opção escolhida e uma estrutura de seleção (se ou caso) para selecionar qual parte do código será executada. Resumidamente, o código poderia ficar algo assim: Algoritmo "trab" Var menu, menu1, menu2, menu3, contador1, jogador_atual, contador2, jogada, i, erro, identificador, identificar, certos, x, contador3, j, aux: inteiro cores: vetor [0..5] de inteiro //numero que identifica as cores senha: vetor [1..4] de inteiro // senha sorteada pela maquina jogadas: vetor[1..10, 1..4] de inteiro // matriz que armazena todas as 10 jogadas pontos_jogadores: vetor [1..10] de inteiro // ranking houveTroca: logico Procedimento Menu1 inicio Escreval("") Escreval("O que você deseja fazer no jogo?") Escreval("") Escreval("1- Definir jogador") Escreval("2- Jogar") Escreval("3- Ranking") Escreval("4- Sair") Leia (menu) FimProcedimento Inicio cores[0] <- 1 cores[1] <- 2 cores[2] <- 3 cores[3] <- 4 cores[4] <- 5 cores[5] <- 6 repita {LimpaTela} //limpa a tela Escreval("=================================================================") Escreval("===========================JOGO SENHA============================") Escreval("=================================================================") Escreval(" Autores: Laura Johann, Douglas Madruga e Henrique Dahlem.") Escreval("=================================================================") Escreval("") Menu1 SE (menu = 1) ENTÃO //DEFINIR QUEM VAI JOGAR FimSE SE (menu = 2) ENTÃO // JOGO FimSE SE (menu = 3) ENTÃO //RANKING FimSE SE (menu = 4) ENTÃO FimSE ate menu=4 FimAlgoritmo obs.: pelo que eu vi as variáveis menu1, menu2 e menu3 não estão sendo usadas, logo não devem ser declaradas. *** Tente corrigir esses pontos, daí partimos para questão do ranking. Faça o jogo completar normalmente algumas vezes numa mesma execução... Tente imaginar (sem implementar ainda) que ao fim de cada jogo o programa irá armazenar os dados da partida.. no momento oportuno irá tratar esses dados para exibir como um ranking. RESUMINDO: faça o programa rodar como se não existisse ranking! o que importa antes é o jogo. No aguardo. -
Olá, alguns pontos: 1- Teoricamente o if v > 0 then dentro do for não tem utilidade, pois se o for foi executado é porquê v é maior ou igual a 1, logo nunca a condição dele será falsa. Talvez poderia inverter, ou seja, deixar o for dentro desse if, mas acho que é desnecessário pois o for já verifica (seria bom fazer testes). 2- Ao executar o programa, o mesmo não apresenta qual a sua finalidade e nem, de certo modo, qual foi a resposta, ou seja, apenas está solicitando um número e retornado uma resposta em inglês... (true ou false). Sugestão: peça para outra pessoa executar esse código sem que ela saiba do que se trata. (seria bom ter um apresentação e exibir uma resposta mais específica) 3- Em relação a resposta, poderia ser algo como "O número 'X' é primo" ou simplesmente "Primo". (e os casos contrários, é claro). Ai tem várias formas como tratar, ex.: if primo(valor) then //observe que "primo()" já retorna true ou false, logo não precisa igualar a "true" writeln('xxxxxxx') else writeln('yyyyyy') Qualquer coisa posta o "novo" código para analisarmos ou apenas um feedback. No aguardo.
-
Converter números de 1 a 100 para binário Scratch
Simon Viegas respondeu ao tópico de wesley gavassa em Programação - iniciantes
Caro usuário, Seja bem-vindo ao Fórum do Clube do Hardware. No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware. Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício. Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal. Esperamos que compreenda. Atenciosamente, Equipe Clube do Hardware -
Caro usuário, Seja bem-vindo ao Fórum do Clube do Hardware. No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware. Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício. Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal. Esperamos que compreenda. Atenciosamente, Equipe Clube do Hardware
-
Pascal Como fazer vetores em pascal?
Simon Viegas respondeu ao tópico de Whillis em Programação - outros
Você declarou o vetor com 4 posições, mas está tentando usar 5. -
Pascal Como fazer vetores em pascal?
Simon Viegas respondeu ao tópico de Whillis em Programação - outros
Qual o compilador que está utilizando? estou utilizando o Free Pascal Compiler 2.6.4 e aqui funcionou normalmente! obs.: favor se atentar no item 1) da minha postagem anterior. Não consegui identificar nada no código que possa levar a essa "falha". Pode ser alguma coisa relacionada com o seu compilador... Aqui está funcionando normalmente... veja, alguns compiladores necessitam que salve o código antes de compilar, ou seja, pode está utilizando um arquivo antigo. Não tem problema... esses valores de i e j podem ser reutilizados quantas vezes quiser... a ideia é que eles sirvam como base do for, e que esses valores não precisam ficar armazenados... veja, o seu m e p são reutilizados no seu código... isso não tem problema, pois o valores deles "não são dados", ou seja, podem ser perdidos. tipo, você utilizou lá no primeiro for, após o fim dos laços, o valor de m não importa, a variável pode ser reutilizada depois, entende? Daí vem a "convenção".. se é para controlar uma laço, use i, se for um laço dentro do outro, use i e j. Poderíamos dizer que esses identificadores seriam utilizados nesses contexto de "auxiliares". Fazendo uma analogia, por quê utilizamos "x" nas equações do segundo grau? por quê na física utilizamos "t" para tempo, "f" para força etc? é apenas uma convenção, poderia ser qualquer letra! mas assim ajudar a padronizar. resumindo: pode utilizar i e j sem problema. obs.: isso é apenas uma "conversão", ou seja, é uma recomendação.. a não ser que o contexto permita usar outras letras, por exemplo, quando está trabalhando com matrizes... lá na matemática, é também "convencionado" utilizar MxN para linhas e colunas, daí ficaria sensato utilizar M e N como controladores no programa... as letras fazem sentido com o contexto... ou seja, seria interessante tanto usar i e j, tanto m e n. (eu usaria m e n). Por ai vai No aguardo.
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