Ir ao conteúdo

Posts recomendados

Postado

Pessoal, sou iniciante em programação.

Já estudei pelo portugol e agoora estou estudando Lógica de programação através do javaScript.

 

Quem puder me ajudar, estou com dificuldade nos laços de repetição. Não consigo concluir a segunda parte da questão que é: Acrescente uma mensagem 'NOVO CÁLCULO (S/N)?'. Se for respondido 'S' deve retornar e executar um novo cálculo, caso contrário deverá encerrar o algoritmo.

 

A questão é a seguinte:

 

Escreva um algoritmo para ler as notas da 1a. e 2a. avaliações de um aluno, calcule e imprima a média (simples) desse aluno. Só devem ser aceitos valores válidos durante a leitura (0 a 10) para cada nota. 
Acrescente uma mensagem 'NOVO CÁLCULO (S/N)?'. Se for respondido 'S' deve retornar e executar um novo cálculo, caso contrário deverá encerrar o algoritmo.

 

<meta charset="UTF-8">

<script>
/* Escreva um algoritmo para ler as notas da 1a. e 2a. avaliações de um aluno, calcule e imprima a média (simples) desse aluno. Só devem ser aceitos valores válidos durante a leitura (0 a 10) para cada nota. 
Acrescente uma mensagem 'NOVO CÁLCULO (S/N)?'. Se for respondido 'S' deve retornar e executar um novo cálculo, caso contrário deverá encerrar o algoritmo.

*/

function pulaLinha() {
    document.write("<br>");
}

function mostra(texto) {
    document.write(texto);
    pulaLinha();
}

mostra("<h3>Resolução</h3>");


var nota1, nota2 = -1; 
    
    while (nota1 < 0 || nota1 > 10) {
        var nota1 = parseInt(prompt("Entre com a primeira nota do aluno"));
            if (nota1 < 0 || nota1 > 10) {
            alert("NOTA INVÁLIDA! Entre com uma nota entre 0 e 10")
        }
        }

    while (nota2 < 0 || nota2 > 10) {
        var nota2 = parseInt(prompt("Entre com a segunda nota do aluno"));
            if (nota2 < 0 || nota2 > 10) {
            alert("NOTA INVÁLIDA! Entre com uma nota entre 0 e 10");
    }            
    }

    mostra("MÉDIA: " + ((nota1+nota2)/2));
</script>

duvida1.png

  • Membro VIP
Postado

@Camila Cavalcante, uma observação inicial:

 

1 hora atrás, Camila Cavalcante disse:

Já estudei pelo Portugol e agora estou estudando Lógica de programação através do javaScript.

 

 

Tanto lá, tanto cá, está estudando "Lógica de Programação". Apenas está utilizando uma outra linguagem* e, a depender, o paradigma envolvido (não se preocupe com isso por enquanto, vá primeiro se acostumando com o ambiente). (obs.: por questões técnicas, o Portugol no VisualG é um Pseudo-linguagem.. mas dá na mesma). 

 

Em relação ao código, divida por etapas... primeiro faça funcionar apenas com um... eu testei aqui e não funcionou. Acho que faltou inicializar a nota1 (inicializei e funcionou). Sugestão: mude de while para do/while, assim não precisaria nem inicializar as variáveis. (no VisualG mudaria de enquanto para repita)

 

Após está rodando com um única vez, aí insere a questão de perguntar se quer repetir... não tem mistério... por sinal, toda a lógica que está sendo utilizada aqui é igual a lógica que seria utilizada lá no VisualG, só muda as sintaxes. Veja: estruturas de repetição você já saber utilizar, basta apenas analisar o que está sendo pedido (o que vai repetir) para ver quais os parâmetros que vai fica no while (ou do/while) e

 

 

 

 

 

  • Curtir 1
  • Membro VIP
Postado

Complementando:

  1. sempre tenha uma super atenção a indentação do código. É a base de tudo!!! leve fé!
  2. você está declarando as variáveis 2 vezes. Por quê? obs.: perceba que uma das diferenças de sintaxe aqui é que você pode declarar as variáveis dentro do corpo. Lá no VisualG só dá lá na sessão de variáveis (depois do var);
  3. use let e vez de var. Dê uma pesquisada para ver as diferencias. Tente dar uma reforçada nesse conceito. É uma boa base para começar a entender o funcionamento do javascript (que é bem louca, rs. Perceba por exemplo que você declarou duas vezes a mesma variável e não deu erro... loucura!);
  4. seria preferível utilizar nomenclatura das funções no infinitivo.

Segue código para demonstração:

<meta charset="UTF-8">
<script>
    /*
    Escreva um algoritmo para ler as notas da 1a. e 2a. avaliações de um aluno, calcule e
    imprima a média (simples) desse aluno. Só devem ser aceitos valores válidos durante a
    leitura (0 a 10) para cada nota. Acrescente uma mensagem 'NOVO CÁLCULO (S/N)?'. Se
    for respondido 'S' deve retornar e executar um novo cálculo, caso contrário deverá
     encerrar o algoritmo.
    */

    function pularLinha() {
        document.write("<br>");
    }

    function escrever(texto) {
        document.write(texto);
        pularLinha();
    }

    escrever("<h3>Resolução</h3>");

    let nota1, nota2; 
        
    do {
        nota1 = parseInt(prompt("Entre com a primeira nota do aluno"));
        if (nota1 < 0 || nota1 > 10)
            alert("NOTA INVÁLIDA! Entre com uma nota entre 0 e 10")
    } while (nota1 < 0 || nota1 > 10)

    do {
        nota2 = parseInt(prompt("Entre com a segunda nota do aluno"));
        if (nota2 < 0 || nota2 > 10)
            alert("NOTA INVÁLIDA! Entre com uma nota entre 0 e 10");
    } while (nota2 < 0 || nota2 > 10)

    escrever("MÉDIA: " + ((nota1+nota2)/2));
</script>

 

  • Curtir 2
Postado

Obrigada, @Simon Viegas .

Refiz o código conforme suas instruções:

 

<meta charset="UTF-8">

<script>
/* Escreva um algoritmo para ler as notas da 1a. e 2a.
avaliações de um aluno, calcule e imprima a média (simples) desse aluno.
Só devem ser aceitos valores válidos durante a leitura (0 a 10) para cada nota. 
Acrescente uma mensagem 'NOVO CÁLCULO (S/N)?'. 
Se for respondido 'S' deve retornar e executar um novo cálculo,
caso contrário deverá encerrar o algoritmo.
*/

function pularLinha() {
	document.write("<br>");
}

function escrever(texto) {
	document.write(texto);
	pularLinha();
}

escrever("<h3>Resolução</h3>");

var nota1, nota2 = -1;
var novoCalculo = "N";

	
	 do {
	 	var nome = prompt("Informe o nome do aluno:");
		do {

			var nota1 = parseInt(prompt("Entre com a primeira de " + nome));
			if ((nota1 < 0 || nota1 > 10)) {
			alert("NOTA INVÁLIDA. Entre com uma nota de 0 a 10.");
			}		
			} while ((nota1 < 0 || nota1 > 10))

		do {

			var nota2 = parseInt(prompt("Entre com a segunda nota de "+ nome));
			if ((nota2 < 0 || nota2 > 10)) {
			alert("NOTA INVÁLIDA. Entre com uma nota de 0 a 10.")
		}		
		} while ((nota2 < 0 || nota2 > 10))	

		escrever (nome + ", sua MÉDIA é: " + ((nota1+nota2)/2));

		var novoCalculo = prompt("'Novo cálculo (S/N)?'");
		
		} while(novoCalculo == "S")	
		
		
</script>

 

Pronto, acrescentei o nome do aluno e consegui acrescentar a mensagem "'Novo cálculo (S/N)'".

Ah e conforme você sugeriu, vou estudar sobre o let.

 

Mais uma vez muito obrigada pela paciência. haha

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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