-
Posts
3.940 -
Cadastrado em
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que Simon Viegas postou
-
Olá @Gustavo Zamboni. Em relação ao seu segundo código, e tomando como base o jogo original, segue algumas sugestões: 1- Seria mais dinâmico fazer o programa ler a tecla e já tratar, ou seja, tirando a necessidade de pressionar ENTER para cada número pressionado; 2- A mensagem de "Parabéns" achei desnecessária e cansativa, ou seja, além do citado no item 1, é necessário outro ENTER para continuar (percebe quantos ENTER são necessários?)... não precisa. Basta seguir! continuar é inerente a ter acertado... apenas daria uma resposta quando errar ou passar de nível; 3- A verificação do erro é a cada número inserido, e não a toda a sequência. 4- Sobre: Essa funcionalidade não vai ser mais necessária? PS: segue um exemplo do jogo Genius: http://passatempo.ig.com.br/jogos/siga-o-som/ No aguardo.
-
C Problema com gravação de arquivo em c
Simon Viegas respondeu ao tópico de Paula_Fabiana em C/C#/C++
@Paula_Fabiana, por favor, poste novamente o seu código utilizando a tag CODE (botão <>), para podermos analisar. No aguardo. -
C Problema com gravação de arquivo em c
Simon Viegas respondeu ao tópico de Paula_Fabiana em C/C#/C++
Olá @Paula_Fabiana. X é uma vetor? isso muda toda a interpretação! Veja, seu código está "desconfigurado", por favor, poste novamente o código utilizando a tag CODE. Basta clicar antes no botão <>. No aguardo. -
adicionado 28 minutos depois Olá a todos. @VictorFreitasKing, e Acho que você estava se referindo a esse trecho: Correto? se for, o código está correto! (pelo menos no sentido de compilar e funcionar. Não sei se é uma "boa prática", ou seja, se é a maneira correta de fazer um "vetor de tamanho dinâmico"). Está apenas definindo o tamanho do vetor usando o valor lido. @AnaTrinity Seria necessário ter interações com o usuário, ou seja, ao executar o programa apenas ficou uma tela preta com o cursor piscando... poderia fazer algo assim: Abaixo como ficaria a tela: Qual o tamanho de cada vetor? 4 Informe os 4 números do vetor A 1 2 3 4 Informe os 4 números do vetor B 4 2 6 7 Listando vetor C: 4, 4, 18, 28 O maior número do vetor C é 28 Obrigado por usar meu programa! Quero um real! Entende? Por favor, poste seu código atual para analisarmos. PS: ao postar um código, antes pressione o botão <>, para o código ficar na tag CODE. No aguardo.
-
Olá @victornunes139. Creio que inicialmente trata-se de um problema matemático... ou seja, a programação entra para automatizar o processo. Tente encontrar metodologias para manualmente. Algo como tentar fazer isso no papel... aqui na Bahia chamamos de "fazer na tora", rs. Tendo em mente o que se precisa fazer, ai cria-se um algoritmo para implementar numa linguagem, para assim automatizar o processo. Como demonstração, supondo que foi pedido que fizesse o cálculo de potências sem utilizar fórmulas prontas... daí, como poderia ser feito? Por exemplo, como calcular 2 elevado a 4? Analisando, vemos que x^y, é o mesmo que x multiplicado por ele mesmo y vezes. Logo, faço, 2 * 2 * 2 * 2. E encontro o meu resultado. No seu caso, você precisar saber como calcular, por exemplo a raiz quadrada de 81. Como faria isso no papel? Lembrando que tem que ser abrangente, por exemplo, como faria para calcular a raiz quadrada de 50, que não é exata ? Entende? tem que achar, ou criar, os possíveis métodos! (obs.: foque no achar, não tente reinventar a roda) Obs.: achar o método de cálculo, não o código pronto Por ai vai.
-
Olá @Pedro Joao. Seja bem vindo ao Fórum do Clube do Hardware. Primeiramente, por favor, edite sua postagem, apague o código e insira novamente utilizando o botão CODE <>. O código está compilando e rodando normalmente? tente comparar os valores do programa com os supostos valores reais Se não estiver correspondendo, tem algum erro. Se estiver, ainda si é necessário analisar se os passos estão corretos. Fico no aguardo de você repostar o código.
-
VisualG Exercício de repetição com mostra de valores.
Simon Viegas respondeu ao tópico de Kaio Lukas em Programação - iniciantes
Olá @Kaio Lukas. Seja bem vindo ao Fórum do Clube do Hardware. A lógica para o maior e menor são análogas... pode funcionar mais ou menos assim: - Inicializa as variáveis MV e NV... OU com o primeiro valor; OU com o menor e maior valor respectivamente. - Para cada novo número analisado, compara com o MV e NV, caso seja maior ou menor respectivamente, atualiza a variável correspondente. Ao final, MV vai está com o maior valor, e NV vai está com o menor valor. Sobre: Eu parte sim (não analisei o restante), primeiro porque o número a ser comparado é o "V", não o "N"; segundo que você está comparando com "=", onde na verdade deveria ser "<". No aguardo. -
C Armanezar um resultado dentro do vetor
Simon Viegas respondeu ao tópico de Igor Vargas em C/C#/C++
Posta o código aqui para analisarmos. No aguardo. -
Olá a todos. @VictorFreitasKing, eu não manjo muito de C e C++, mas testei o seu código aqui, e não funcionou corretamente... ficou repetindo "infinitamente"... Dei uma pesquisada sobre o for, e vi que em vários lugares fala de fato em "condição de parada", mas pelo que analisei, na verdade é "uma condição para continuar repetindo", ou seja, é o oposto. (quando a condição resulta em true, o programa repete. Dizer que é "parada", o true deveria parar.) Abaixo um exemplo: Obs.: usei o C++, pois não tenho compilador do C... Mas acho que é a mesma coisa, pelo menos em relação ao for. #include<stdio.h> int main() { int i, final; for (i=0; i<5; i++){ printf("\nteste");} } Seria algo como: for(valor_inicial; condição_para_continuar_repetindo; valor_de_incremento) { instruções; } Ou seja, "(i começa com 0; o for continuará repetindo ENQUANTO (while) i for menor que 5; i vai incrementando de 1 em 1)" O i começa com 0, como 0<5, imprime "teste". Após i vai ser incrementado em 1, passando a valer 1; O i vale 1, como 1<5, imprime teste. Após i vai ser incrementado em 1, passando a valer 2; O i vale 2, como 2<5, imprime teste. Após i vai ser incrementado em 1, passando a valer 3; O i vale 3, como 3<5, imprime teste. Após i vai ser incrementado em 1, passando a valer 4; O i vale 4, como 4<5, imprime teste. Após i vai ser incrementado em 1, passando a valer 5; O i vale 5, como 1 não é <5, o for para! Serão exibidos 5 respostas (de 0 a 4). No aguardo.
-
C Nao consigo fazer essa questao em C.
Simon Viegas respondeu ao tópico de Fabio Sampaio em C/C#/C++
Olá @Fabio Sampaio. Pronto... agora já temos uma base. Dando uma olhada na parte que deveria exibir os resultados: Na segunda linha temos um: scanf("%i", &qntpesmais50); Ou seja, você está tentando ler o valor da variável, onda na verdade deveria imprimir! o qntpesmais50 deveria ficar dentro do printf() ou qualquer outra estrutura de impressão. -
C Nao consigo fazer essa questao em C.
Simon Viegas respondeu ao tópico de Fabio Sampaio em C/C#/C++
Olá. Então o quê que não está certo? Primeiro entenda e localize o que está errado, e tente corrigir... entende? Tente resolver, caso não consiga, nos indique o que não está conseguindo que ai tentamos ajudar. No aguardo, -
Portugol Empréstimo Bancário (Onde está o erro?)
Simon Viegas respondeu ao tópico de Túlio Estrela Marques em Programação - iniciantes
Estou tentando baixar o PS, mas está demorando muito, rs. 1) FÓRMULA DA MENSALIDADE Então, tomando que a sintaxe (está compilando) está tudo ok, seria isso que @devair1010 citou, mas faria algumas ressalvas: Usar assim: mensalidade=valor/(ano/12) 1) deixa loga a nomenclatura mais completa...; 2) colocar o "()" pois ficará implícito que você está "convertendo ano em mês". Vejam, matematicamente é a mesma coisa, pois o Portugol se baseia no PEMDAS... Logo, como a divisão tem prioridade igual a divisão, antes ele iria fazer da esquerda para direita... Já ao usar o parênteses, vai fazer primeiro a divisão do parênteses, para depois pegar o valor e dividir pelo resultado... Nesse caso, a conta terá o mesmo resultado, massss, como sugerido no início, os parênteses estariam formalizando a parada. 2) FÓRMULA DO PC Primeiramente: o que significa pc? então, é por essas e outras que é recomendado utilizar nomenclaturas mais sugestíveis, ou seja, que já remetem a funcionalidade da variável. Ou deixar comentários explicando... ex.: real valor //valor do produto a ser adiquirido real sal //salario do cliente obs.: melhor usar logo "salario" real mens //valor da mensalidade que o cliente irá pagar obs.: melhor usar logo "mensalidade" real pc //Personal Computer... rs Brincadeira as parte, vamos analisar a conta: Supondo salário de 2000. pc=2000 + 2000*30/100 pc=2000 + 2000*30/100 pc=2000 + 60000/100 pc=2000 + 600 pc=2600 Certo? *obs.: seguindo o mesmo princípio acima, poderia ficar assim: Ai você faz: O cara pode ter uma mensalidade de até que 2599,99? ou seja, de até praticamente 130% do seu salário? Veja que são quase 2600 POR MÊS!!!! Tem algo erro aí! 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
-
C++ jogo genius - menu para dois jogadores
Simon Viegas respondeu ao tópico de devair1010 em C/C#/C++
Olá. 1) SOBRE O ITEM 3 DO POST ANTERIOR Então, de boa. 2) ENUNCIADO DO PROBLEMA Esse "o" se refere as quais características do jogo? se possível poste o enunciado para primeiro analisarmos se está seguindo os requisitos dele, pois é melhor antes deixar o "Single Player" já "pronto", para só depois inserir o "Multiplayer". Não adianta fazer para 2 jogadores, se o jogo estiver "errado". 3) NOME DO JOGO Entendo que "parecido" não é "igual"... se de fato você mesmo entende como "sendo algo diferente", acho que não seria uma boa ideia usar o mesmo nome... entende? Um mesmo nome deve (ou deveria, na minha opinião) remeter a mesma coisa. Poderia usar algo que como "Genius Evolution" ou algo do tipo. Não "desvirtuar" o nome do jogo.. Seria como tentar respeitar a identidade da coisa. O jogo Genius que entendo funciona assim: "existe 4 cores". A cada rodada é sorteado uma nova cor, e inserido em sequência, ou seja, a ordem das cores é sempre a mesma e vai crescendo a cada rodada... a, ab, abc, abcd, abcde... etc Já o seu jogo é diferente. Nele, é necessário repetir uma sequência de números aleatórios, sendo que cada rodada vai aumentado a quantidade de números aleatórios, ou seja, não necessariamente a sequência se repete, apenas é focado em aumentar a quantidade de números que deve repetir. x, xx, xxx, xxxx... etc. *sendo cada x um número aleatório. ou poderia representar assim: a, bc, def, ghij... etc. São 2 pontos diferentes, sendo GENIUS x "SEU JOGO" 1- A quantidade de possibilidades (4 cores X 10 números) 2- A sequência das possibilidades (incremental x aleatório, sem correlação com o que já foi sorteado nas rodadas anteriores) 4) SOBRE O ITEM 1 DO POST ANTERIOR As 3 possibilidades são possíveis: 1) um joga até errar. Daí um outro joga. Mas dessa forma NÃO será multi player, seria apenas o mesmo que fazer jogar novamente... 2) intercalar as jogadas. O Player 1 joga. Se acertar, vai para o Player 2. Se acertar, volta para o Player 1, só que "no nível 2". Se acertar, volta para o Player 2, só que "no nível 2"... etc. Até que um erre, decretando o outro como vencedor. 3) mapear outras teclas para o outro jogador. Faria uma múltipla estrutura seleção, ou seja, cada combinação de teclas seria respondida para seu respectivo jogador. Se pressionou de 0 a 9, vai atualizando o jogador 1. Se pressionou, por exemplo, "q,w,e,a,s,f,z,c,v,\" vai para o outro... vai dar mais trabalho, mas acho que seria possível. Sugiro tentar fazer primeiro da segunda forma... *** No aguardo. -
Pascal Algoritmo para somar um conjunto numero e se digitar zero encerrar.
Simon Viegas respondeu ao tópico de iGodD em Programação - outros
Olá @Alan Matos Lourenço. Justamente... cada tipo de repetição tem as suas características... mas é possível adaptar... (ou algo como "não usar o tipo de laço mais adequado") Para esse contexto, na minha atual interpretação, o for não se encaixaria tão bem.. como já explicado no outro post. Exemplos de possibilidade: 1) Enquanto não encontrar o 0, ficaria reiniciando o valor do i para 1 novamente, ou seja, ficaria num loop infinito, pois o i nunca chegaria no valor final. Ao informar 0, faria o i ter um valor maior que o limite do for. Daí o for iria terminar. 2) Fazer o fazer o for ir de 1 até um número bem alto (ex.: 32767). Ao identificar o "0", executa o comando break. *Conhecem o comando break? senão, dê uma pesquisa para tentar entender o seu funcionamento e características. *** Sugiro que tentem fazer das duas formas. Qualquer coisa é só postar. No aguardo. -
C Armanezar um resultado dentro do vetor
Simon Viegas respondeu ao tópico de Igor Vargas em C/C#/C++
Olá @Igor Vargas. Alguns pontos: Pelo que eu entendi, você solicita "um número qualquer" e gera a tabuada dele, ou seja, recebe um número de 0 a 9, e multiplica esse número por 0 a 9. Terá sempre 10 resultados! Daí, vai armazenando os resultados da tabuada gerada num vetor, ou seja, "tabuada" seria o vetor resposta, não o vetor com os números que serão tabuarizados... entende? O vetor é para armazenar as respostas, não os números que serão usados para gerar as respostas. Seria algo assim: - Ler o número que será tabuarizado; (de 0 a 9) - Gera a tabuada armazenando cada resposta no vetor tabuada[] (ou resultado[]), ou seja, posição 0 terá o número vezes 0, posição 1 terá o número vezes 1... etc. - Após, exibe os números que estão no vetor. Qualquer coisa posta o código para analisarmos e, caso necessário, onde está com dúvidas. No aguardo. adicionado 5 minutos depois ADENDO: Apenas para efeito de demonstração, percebe que seu vetor não seria necessário, pois o valor contido numa posição é justamente o valor da posição (posição x, tem o valor x, ex.: posição 3 tem o valor 3). Ou seja, Em vez de: calc=tabuada[x]*y; Poderia simplesmente fazer assim: calc=x*y; Entende? -
C Problema de passagem de Vetor char à função
Simon Viegas respondeu ao tópico de Alberto Estenio em C/C#/C++
Certo, mas o que tentou fazer e o que não está funcionando? Qualquer coisa posta o código completo e onde está com erro ou dúvida. -
VisualG Resolução de Exercício - Passeio do Cavalo Desgovernado
Simon Viegas respondeu ao tópico de masantiagos em Programação - iniciantes
Olá. Vixe! Então estou mal, rs Creio que fazer o cavalo andar seja justamente o problema. Dando uma pesquisada rápida vi que tem várias bons artigos sobre o tema (Passeio do Cavalo), mas não parei para analisar. Deixo essa tarefa para ti. De certo modo não tenho uma base para te nortear especificamente. Sugiro que tente verificar quais os fundamentos necessários para esse problema... tipo algo como relacionado à buscas, ou recursividade... etc. Acho que por hora eu possa te ajudar mais em relação a implementação para o Visualg. do que em relação à resolução do "jogo" em si. -
C++ jogo genius - menu para dois jogadores
Simon Viegas respondeu ao tópico de devair1010 em C/C#/C++
Olá @devair1010, Inicialmente, conheço esse Genius de forma diferente. Assim: http://passatempo.ig.com.br/jogos/siga-o-som/ Ou seja, parte do do princípio do jogo é o mesmo, mas teoricamente seria outro jogo. Poderia chamar de outro nome, por exemplo de DEVAIR GAME, pois GENIUS já tem dono, por sinal é apenas uma forma diferente desse nome: CLIQUE QUI. Brincadeiras as parte: 1) FUNCIONAMENTO DO MULTIPLAYER Como você quer que funcione o segundo jogador? um joga e após errar vai o outro, ou vai intercalando até um dos dois errar? (ou de outra forma?) 2) QUAIS AS NOVIDADES? Qual a diferença do primeiro código para o segundo código? crie um log de mudanças para identificar o que foi mudado... pois cada mudança pode ter impactos futuros. Obs.: tem um pequeno erro de digitação. Seria: int main() { em vez de: int main()( 3) DÊ NOME AOS BOIS Tente especificar qual erro ou tipo de erro.. se foi o de compilação, foi apenas o citado no item 2. *** No aguardo. -
C++ Soma de termos obtidos dentro do while .
Simon Viegas respondeu ao tópico de GustavoMdancers em C/C#/C++
Olá @GustavoMdancers. Alguns pontos: 1) INDENTAÇÃO DE CÓDIGO Faltou indentar parte do código... basicamente em relação ao primeiro if. Abaixo seu código reindentado: #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <conio.h> #include <math.h> main () { setlocale (LC_ALL, "Portuguese"); float MF, n1, n2, n3, matricula, soma_apv, soma_rpv; int cont_apv=0, cont_rpv=0; printf ("Calculadora de média final de turmas.\n"); do { printf ("\n Insira a matrícula do estudante (Ex. 2130): "); scanf ("%f", &matricula); if (matricula != 9999) { printf ("\n Insira a primeira nota: "); scanf ("%f", &n1); printf ("\n Insira a segunda nota: "); scanf ("%f", &n2); printf ("\n Insira a terceira nota: "); scanf ("%f", &n3); MF = ((2 * n1) + (3 * n2) + (4 * n3)) / 9; if (MF >= 5) { printf ("\n O aluno de matrícula %1.0f, obteve a média %0.2f e está Aprovado!\n", matricula, MF); cont_apv +=1; } if (MF < 5) { printf ("\n O aluno de matrícula %1.0f, obtece a média %0.2f e está Reprovado!\n", matricula, MF); cont_rpv +=1; } } } while (matricula != 9999); printf ("\n A quantidade de alunos aprovados é de: %1.0d.", cont_apv); printf ("\n A quantidade de alunos reprovados é de: %1.0d.", cont_rpv); getch (); } Obs.: tirei os espaços entre as linhas apenas para efeitos demonstrativo. 2) CONDIÇÕES MUTUAMENTE EXCLUDENTES Todo número que não é "maior igual a um outro número" necessariamente será "menor que esse outro número". Logo, o segundo if é desnecessário, basta usar o else. (todo aluno que não foi aprovado, foi reprovado! é binário!) Na pior da hipóteses, é necessário o else antes do segundo if, pois se for o primeiro if, nunca será o segundo. (mas lembrando que ele não é necessário) 3) INTERAÇÃO COM USUÁRIO Sem ter lido o código, como o usuário vai "adivinhar" que precisar inserir 9999 na matrícula para sair? Sugestão: solicita alguém da casa utilizar o algoritmo. É uma boa forma de identificar o que pode ser melhorado. *** No aguardo. -
VisualG Resolução de Exercício - Passeio do Cavalo Desgovernado
Simon Viegas respondeu ao tópico de masantiagos em Programação - iniciantes
Olá @masantiagos. Trabalho de faculdade? Creio eu que não seja uma tarefa muito trivial... mas acho que dá para fazer. Qual o seu nível de experiência com programação? -
VisualG Separar uma variavel por espaço automaticamente
Simon Viegas respondeu ao tópico de William Endrew em Programação - iniciantes
Olá @William Endrew. Primeiramente, sugiro que baixe o novo Visualg 3.0.6.5, a não se que seja obrigado usar o 2.5. Então, faz parte ter dificuldades... a ideia é você se esforçar e aprender a pesquisar. Isso já é uma fatiada boa no filé: Falta só mastigar e engolir!!!! Dê uma olhas nas funções... veja como cada uma funciona e ache* as funções que podem ser úteis. *ache por que com certeza tem funções úteis. Tente fazer algo, vá fazendo testes... e poste aqui o código na forma de texto! O objetivo do professor não é que você entregue uma resposta, mas que você procure uma! Vai aprender tanto sobre pesquisar sobre algo novo, tanto quanto ganhar experiência sobre problemas semelhantes. Entregar uma resposta é só uma consequência do seu aprendizado. Obs.: cada função já tem a sua descrição, caso não entenda ou tenha dúvidas, dê uma pesquisada sobre ela no Google... ou seja, ao fazer esse exercício, você praticamente dominará todas as funções do Visualg.. (após aprendê-las veras que são funcionalidades simples, e você nem precisa "decorar", pois existe o Google para te dar a relação. E esse princípio valerá para qualquer linguagem) No aguardo -
Como pesquisar em páginas ou intervalo específico num PDF?
Simon Viegas respondeu ao tópico de Frank2942 em Programas
@Frank2942. Uma medida paliativa seria "gerar um novo PDF só com as páginas desejadas"... Algo como usar o pdfCreator ou doPDF, ou a depender do aplicativo, manda ele mesmo "salvar como" ou "imprimir em pdf" as páginas que você precisa.. etc. Manda "imprimir" só as páginas que quer, ai abre o arquivo e faz a pesquisa! Tem o PDFsam tb, esse serve para dividir o PDF, ai poderia tentar pegar só as páginas que você quer... e fazer o mesmo. No aguardo. adicionado 20 minutos depois PS: acho que no PDFsam dá para extrair em lote... ou seja, extrair as mesmas páginas de arquivos diferentes... sei lá, como se num Diário Oficial determinadas páginas fossem padronizadas, aí só pega aquelas páginas ou faixa de páginas... (retirando o que com certeza não interessa) -
Pascal Estrutura de repetição (for)
Simon Viegas respondeu ao tópico de Alan Matos Lourenço em Programação - outros
beleza. Qualquer coisa posta o código aqui para analisarmos e/ou onde tem dúvidas. -
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
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