Ir ao conteúdo
  • Cadastre-se

XenoStory

Membro Pleno
  • Posts

    37
  • Cadastrado em

  • Última visita

  1. Boa tarde, @ZaaptBR Como os colegas acima comentaram, não é possível realizar esse tipo de funcionalidade apenas com o uso do HTML. Mas, como você comentou que está ok em usar PHP, por exemplo, acredito que não seja muito difícil... Segue uma ideia do que você pode fazer para construir esse tipo de aplicação: Quando o usuário clicasse no botão para solicitar a validação das respostas, você poderia enviar uma requisição para o backend (onde o seu PHP entrará). Como, pelo que comentou, você deseja fazer a validação das respostas, de forma assíncrona (mais detalhes sobre o conceito: aqui), utilize o ajax (mais detalhes sobre o conceito: aqui), para permitir que as validações sejam feitas sem a necessidade de que a página seja atualizada ou redirecionada. Para enviar as respostas para o server-side, você poderia criar um array com todas as respostas (pegando os valores dos selects utilizando o JS/jQuery), depois serializar o array e enviar para o servidor através do ajax. Do lado do servidor, as validações seriam feitas conforme sua necessidade. Com as validações feitas, você poderia criar um padrão de retorno, que mostrasse os dados necessários (quantidade de acertos/erros, flag aprovado ou não etc). Para esse tipo de resolução, você teria que ter conhecimento em JavaScript, PHP e HTML. Você já possui esse tipo de conhecimento ou precisa de ajuda com os conceitos também? Qualquer coisa, é só falar. Bons estudos.
  2. Bom dia, @Vinícius Nóbrega Conforme o diagrama, é de responsabilidade das classes filhas (Teórica e Prática) implementar o método de cálculo de média, onde cada classe filha possui uma implementação diferente desse método. Você deve declarar esse método, na classe pai de forma abstrata, e implementar nas classes filhas. Já estudou esses conceitos? Se não, dá uma lida nesse link aqui. A ideia é de cada classe filha implementar o método calcularMedia() da sua forma, conforme o diagrama. Qualquer dúvida, é só falar.
  3. @giu_d , me parece correta a estruturação da classe, só o @Vinícius Nóbrega seguir a mesma ideia para as outras classes e tudo deve funcionar conforme o diagrama. Só um adendo, se caso um dia precisar trabalhar com uma lista de objetos, onde não seja obrigatório o uso de vetor/matriz, aconselho o uso do List, que comentei anteriormente, pois com ele não é necessário alocar o tamanho da memória que será dedicado àquele vetor, diferente do array. Em outras palavras, você não precisa colocar uma constante ou valor fixo para o array, pois ele é dimensionado de forma dinâmica, tornando-se muito mais prático, evitando o problema de atingir o limite de memória do array. Qualquer dúvida, é só falar. Bons estudos.
  4. Boa noite, @Vinícius Nóbrega Você pode tratar como listas, você já estudou a respeito? Basicamente, a ideia é criar uma lista onde você irá inserir uma quantidade X de objetos, onde esta lista seria atributos das classes que possuem vetores. A sintaxe, pelo que me lembre, é essa aqui: List<Objeto> lista = new ArrayList<Objeto>(); Onde Objeto, seria a classe que você gostaria de armazenar em formato de lista (Aluno por exemplo). Para adicionar novos objetos nessa lista, você usa o método add, conforme exemplo abaixo: Aluno a = new Aluno(); lista.add(a); Aconselho você dar uma estudada com mais calma a respeito, pois é um conceito importante. Tente dar uma olhada nesse vídeo aqui, pode lhe ser útil. Se as dúvidas continuarem, é só postar. Bons estudos.
  5. Boa tarde, @edineudo castro Quais suas dificuldades exatamente? O que já tem feito? Posta aí, pra podermos te ajudar. Abraços.
  6. Bom dia, @Glouk Sim, é possível. Até onde eu sei, é possível realizar esse tipo de alteração sem envio de um submit através do uso de Ajax, você tem conhecimento em tal? A ideia é, de forma resumida, enviar uma requisição para o backend sem a necessidade de recarregar a página. O próprio jQuery pode te ajudar nesse tipo de requisição, segue um exemplo de requisição, utilizando o jQuery: var loginData = parent.find('input'); $.post('/user/home/', loginData, function(returnData) { if(!returnData.status) { parent.find('button').next().html(returnData['msg']); parent.find('button').next().addClass('error'); parent.find('button').next().show(); } else { $(location).attr('href', returnData.redirect_url+'?login=yes'); } }); No exemplo acima, estou pegando todos os inputs de uma determinada div e enviando para o backend na url /user/home/, através da variável loginData, onde o retorno dos dados no backend será atribuído à variável returnData. Se tiver alguma dúvida, consulta a documentação aqui. No seu caso, a ideia é realizar uma requisição ao backend, quando o valor do select for alterado, pelo qu entendi. Deixo o resto com você. Se mesmo assim não conseguir, é só postar aí. Valeu.
  7. Boa tarde, @Iking1 O erro está sendo causado, pois você deve completar com parenteses as expressões que estão validadas com o e, ficando assim: se (n1 >= 2) e (n2 <= 4) entao // Resto da lógica fimse De resto, me parece funcional. Porém, podemos melhorar o algoritmo utilizando o se/senao, onde evitaria validações desnecessárias, no seu caso. Supondo que a média digitada seja >= 9, não seria necessário executar todos os outros se, pois já encontramos qual o conceito em que a média se encaixa, portanto, seria interessante utilizar o senao com um se, onde os outros se seriam executados apenas se as condições dos anteriores não forem atingidas. A ideia é mais ou menos essa: se num >= 9.0 entao escreval("Conceito A", nome, " aprovado!") senao se (num >= 7.5) e (num < 9.0) entao escreval("Conceito B", nome, " aprovado!") fimse Da forma que você está fazendo, mesmo que uma das condições do se seja atingida, ele irá verificar todos os outros se de forma desnecessária. Com o exemplo acima, evitaríamos essas validações desnecessárias. Se tiver alguma dúvida em relação ao se, dá uma olhadinha nesse link aqui. Caso as dúvidas persistirem, é só postar. Bons estudos.
  8. Boa noite, @IceCube.sp Faz um bom tempo que não mexo com VisualG, mas pelo que olhei na documentação, a estrutura do seu ESCOLHA-CASO está inválida, onde o correto seria inicializar a validação de qual tipo de operação está sendo realizado, com o comando ESCOLHA, onde este diria qual é a variável em questão sendo validado nos CASOS, conforme exemplo abaixo: escolha(variavel) caso 1 escreval("Primeira opção...") caso 2 escreval("Segunda opção...") outrocaso escreval("Nenhum das opções cadastradas") fimescolha Note que o seu algoritmo irá realizar as duas primeiras comparação (caso 1 e caso 2), se a validação não coincidir com nenhuma das duas opções, será executado o outro caso. Mesmo assim, testei o seu código com sua atual comparação de strings (somar, substrair e multiplicar) e ele não as reconhece, por alguma razão. Como não tenho muito mais contato com a ferramenta, espero que alguém possa explicar a razão, pois eu realmente não sei. Uma solução, temporária, é alterar os valores recebidos na variável problema, pelos seus operadores (+, -, *). Testei dessa forma e funcionou aqui. Qualquer dúvida, é só falar. Bons estudos.
  9. Boa tarde, Nunca usei também o VS Code para desenvolvimento Java, porém acredito que esse erro esteja sendo causado porque você não configurou as variáveis do sistema para suportar o Java via command line. Não sei se já configurou o JAVA_HOME no seu Windows, se não dá uma olhada aqui, depois da figura 9. Depois de realizar o processo, tenta executar o mesmo processo que você está fazendo pelo console do VS Code (javac ...) pelo terminal do próprio Windows e vê se funciona. Se funcionar pelo Windows, deve funcionar pelo VS Code também. Qualquer coisa, posta aí.
  10. @Rafael V.F boa, a minha ideia era essa mesma. O que você pode fazer pra não precisar declarar essa variável z, é utilizar o resultado da expressão contida nele direto no if (talvez você tenha tentado fazer isso antes). Ficando assim: if(x%n == 0) divCount++; De resto, me parece tudo certo. Qualquer coisa, posta aí.
  11. Boa tarde, @Rafael V.F Sua lógica me parece um pouco errada, seguindo essa ideia de usar apenas um laço, pois no início do laço de repetição os valores inicias não serão divisíveis pelos números mais altos (pensando em números primos), então você deveria dividir pelos números menores ou iguais ao número em questão sendo consultado (seguindo a ordem do contador do laço de repetição). Pensei em uma solução, neste caso, utilizando dois laços de repetição, um deles responsáveis por percorrer os números de 2 até 10 e outro responsável por percorrer os valores dos números menores ou iguais aos valores do primeiro laço de repetição, dessa forma você dividiria apenas pelos valores menores ou iguais ao número sendo verificado. A ideia é mais ou menos a seguinte: int x; // Valor inicial da consulta do seu laço de repetição int num = 10; // Quantidade dos números que você deseja verificar se são primos ou não int divCount; for(x=2;x<=num;x++) { // Laço responsável por percorrer cada número no range que você determinou na variável num divCount = 0; // Reseta a quantidade de divisões a cada novo número sendo verificado for(int n=1;n<=x;n++) { // Laço responsável por percorrer os números entre 1 e o valor de x // Lógica para verificar se o número é primo ou não } } Basicamente a lógica para verificar seria quase a mesma que você estava realizando, porém ao invés de dividir por todos os números de forma fixa, você divide pelo valor de n, que é a variável que responsável por ser o divisor de x. Toda vez que um um número tiver o resultado da sua divisão igual a zero, isto é, n for == 0, use a variável divCount para saber quantos divisores aquele número (variável x) possui. Deixo o resto da lógica com você, qualquer dúvida é só postar aí. Bons estudos.
  12. Bom dia, @RaquelAmaral Você está no caminho, porém tem algumas coisas para serem ajustadas. A primeira dica seria não utilizar acentos ou caracteres especiais em nome de variáveis. O próximo passo, para o programa ficar mais "user friendly", seria colocar o comando ESCREVAL antes de receber o valor da variável em LEIA, para que o usuário entenda o que está sendo requisitado. O cálculo para calcular o salário me parece correto, o único problema é que você fez uma pequena confusão em relação ao Novo_Salario, onde você está executando o comando LEIA de forma desnecessária, onde vai acabar recebendo um segundo valor de salário que não será necessário. Portanto, você só precisa receber uma vez o salário, feito aqui: Salário <- Salário + (salário *0.10) e depois mostrar esse valor na tela. Não me lembro bem, pois faz muito tempo que não mexo com portugol, mas acho que o correto para mostrar o valor da variável seria: ESCREVAL("Valor total do novo salário: ", Salario) Na linha de comando acima, você está escrevendo um texto e concatenado o valor da sua variável com o texto, o resultado final seria (supondo que o salário informado foi 10): Valor total do novo salário: 11 Se tiver mais alguma dúvida, é só postar aí.
  13. Boa noite, Bom, pelo que dei uma olhada, sua lógica está estruturada em dois arquivos: um deles é responsável por receber os dados via input do usuário e gerar a requisição post, o outro por receber e tratar esses dados, é isso mesmo? Se sim e se sua lógica estiver estruturada na mesma ordem que você colocou lá, o arquivo/imagem estão sendo gerados antes mesmo de você validar os arquivos. O que você precisaria fazer nesse caso, é fazer toda aquela validação dos inputs antes da sua lógica de gerar .txt/imagem. Minha dica, nesse caso, seria você criar um array que teria como função armazenar os erros encontrados, com um índice de status, talvez. Então, ao invés de atribuir os erros à variáveis únicas, você atribuiria ao array de erros e no final, verificaria se o seu array de erros não possuir erros, ele executa a lógica de gerar o arquivo/imagem. Como vi que você está utilizando as variáveis únicas de cada tipo de erro para mostrar o erro no frontend, talvez seja interessante você criar índices para cada tipo de erro e no final só verificaria no frontend se o índice daquele tipo de erro possui erros ou não. Outra dica, para otimizar um pouco seu código, seria você criar um método que realiza as validações de se os dados estão vazios, para evitar repetição de código e realizaria as validações únicas de cada input (como e-mail, por exemplo) de forma isolada ou no próprio método também. Faz sentido isso que falei ou acabei viajando? Qualquer coisa, posta aí. Valeu! Edit: Olhei com mais calma e agora vi que é tudo em um arquivo só e você manda a requisição pra mesma página, mas as alterações devem ser as mesmas ainda.
  14. Bom dia, Pelo que me lembre, o file_put_contents não aceita array como parâmetro de conteúdo, nesse caso, talvez seja interessante você serializar os dados do $_POST e quando você consultar os dados novamente, poderia deserializar o conteúdo do arquivo. Acha que faz sentido? Você pode também criar alguma lógica que transforma cada índice do seu array em uma string e ir concatenando um por um. Se tiver alguma dúvida sobre os métodos de serialização, dá uma olhada na documentação: Serialize: http://php.net/manual/pt_BR/function.serialize.php Unserialize: http://php.net/manual/pt_BR/function.unserialize.php Valeu.
  15. Boa noite, Não tenho muita experiência com linguagem C, mas acredito que o erro causado esteja sendo o famoso division by zero, onde não é possível dividir um valor por zero, o que ocasiona um erro. Acredito que você já tenha conhecimento disso e exatamente por causa disso, queira tratar esse tipo de input. A sua lógica está correta, pelo que vi, em questão de tratar os números recebidos, o único problema é a ordem que você desenvolveu o algoritmo. Note que você está realizando a divisão e atribuindo seu valor na variável resultado, antes mesmo de realizar a validação dos dados, então seguindo essa lógica, é normal que o seu programa não funcione. Portanto, a solução seria realizar essa divisão apenas após validar os números, atribuindo o valor da divisão à variável no else. Acredito que a mesma coisa deva ser feito com a variável contador, para contabilizar apenas os inputs que realmente foram calculados, conforme suas regras. Outra coisa, o operador que você realiza a comparação dos números válidos, me parece inválido, você está usando >-. Não sei se existe algo na linguagem, pois dei uma breve pesquisada e não encontrei nada a respeito, então seria legal validar isso também. Se me permite uma última dica, lembre-se sempre de identar o seu código, fica muito mais legível e bem estruturado. Por último, lembre-se de colocar o seu código com o elemento de inserir código aqui do próprio fórum, ao invés de uma imagem, é muito mais fácil para o pessoal analisar e te dar uma força. Qualquer coisa, só postar.

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...