Eduzz, resolvendo desafios básicos em Javascript

09/12/2021 17:39

Fernando Araujo

Fernando Araujo

Brasil

Graduado em Engenharia Elétrica (e Especialista) e em Ciências da Computação, direcionando a carreira para Ciência de Dados e IA, mas me atualizando em Frontend e Kotlin

Eduzz, resolvendo desafios básicos em Javascript
  • #Informática Básica
  • #Lógica de Programação

Olá, devs!

Este artigo trata da análise da lógica de dois desafios do curso “Resolvendo Desafios Básicos em JavaScript”, do bootcamp “Eduzz Fullstack developer #2”, no qual estou matriculado.

Alguns problemas dos desafios de código são muito difíceis para que o dev iniciante chegue à sua lógica de resolução com facilidade, mas outros são bem fáceis e sua resolução pode parecer óbvia para os devs experientes, não para os iniciantes.

O objetivo é ajudar os devs iniciantes a entenderem como resolver um problema com programação, chegando à lógica computacional necessária para transformar um enunciado em um algoritmo, que deve ser codificado para implementar a sua resolução.

Neste artigo, eu vou analisar a lógica da resolução de dois desafios de código, partindo do enunciado e dos exemplos dados até chegar a um algoritmo para a solução.

Eu só vou chegar até o algoritmo básico, sem sugerir ou analisar um possível código-fonte, pois isso é tarefa do aluno. Ele é quem deve buscar, nos seus conhecimentos aprendidos nas aulas da plataforma, a sintaxe e estruturas da linguagem de programação pedida, a codificação adequada para resolver o problema.

 

1 - Introdução

No artigo anterior (Desafios de Código, o Guia Definitivo), eu analisei um desafio de código do curso “Resolvendo Desafios Básicos em JavaScript”, do bootcamp “Eduzz Fullstack developer #2”, no qual estou matriculado.

Nele, eu parti do enunciado, exemplos e código-fonte inicial, oferecido pela plataforma, e fiz a análise do problema, expliquei a lógica da solução, escrevi um algoritmo, dei sugestões de código-fonte, analisei a execução deste código nos testes abertos e fechados, fiz as correções necessárias no código até concluir o desafio, com a aprovação do código final em todos os testes abertos e fechados. Finalmente, dei várias dicas sobre entrada e saída de dados para os desafios de código e como obter ajuda na plataforma e com os devs da DIO.

O desafio analisado no artigo anterior foi: Múltiplos (1/3).

 

Para este novo artigo, eu escolhi analisar os desafios de código 2 e 3 do mesmo curso do artigo anterior, “Resolvendo Desafios Básicos em JavaScript”, do bootcamp “Eduzz Fullstack developer #2”.

E vou analisar agora os dois desafios restantes daquele curso.

 

2 – Análise do desafio de código Teste de Seleção 1 (2/3)

3 – Enunciado do desafio “Teste de Seleção 1”

Basicamente, o problema espera a entrada de 4 valores inteiros (A, B, C e D) e lista várias condições de aceitação para estes valores. Se todos os valores passarem nos testes, serão aceitos, do contrário, não serão aceitos. O programa deve escrever uma mensagem no final indicando um destes dois resultados.

As condições de aceitação para os números lidos são: o valor de B deve ser maior do que o de C, e D deve ser maior do que A, e a soma de C com D deve ser maior que a soma de A e B, e tanto C quanto D devem ser positivos, e A deve ser par.

 

4 - Exemplos

Na parte dos exemplos, são mostrados exemplos de entradas para dois casos (respectivamente, A, B, C e D do enunciado):

  • 5, 6, 7 e 8     Valores nao aceitos
  • 2, 3, 2 e 6      Valores nao aceitos

 

5 - O Algoritmo

O algoritmo para a solução é muito óbvio e já está dado pelo código já escrito, oferecido pela plataforma. Ele é composto apenas da entrada de dados, um teste (comando IF) e dois comandos de saída.

  1. Leia A
  2. Leia B
  3. Leia C
  4. Leia D
  5. Se a condição de aceitação for verdadeira
  6. Escreva uma mensagem de aceitação dos valores lidos
  7. Senão
  8. Escreva uma mensagem de não aceitação

 

6 - Análise da lógica do problema

Como o código já está quase pronto, as únicas coisas que faltam para concluir o código são a condição do IF e as mensagens de saída.

A condição do comando IF é uma condição múltipla, formada por várias condições individuais, dadas no enunciado. Os valores de entrada só serão aceitos se TODAS estas condições forem satisfeitas ao mesmo tempo:

SE

  • B > C e;
  • D > A e;
  • (C+D) > (A+B) e;
  • C>0 e;
  • D>0 e;
  • A é par.

ENTÃO os valores são aceitos

SENÃO os valores não são aceitos

Analisando os exemplos de entrada e saída esperada dados, temos:

E as mensagens de saída devem refletir o resultado do comando IF. Atenção! A sua mensagem de saída deve ser exatamente igual à mensagem esperada pelo problema, ou seja, a palavra nao sem o til e valores com inicial maiúscula.

 

Agora, use seus conhecimentos de Javascript aprendidos nas aulas e codifique o que falta, com base nesta análise.

 

Depois, execute seu código para os testes abertos, usando o botão “Executar Testes”:

  • Se ele não for aprovado em todos os testes abertos, ele tem algum erro. Corrija seu código e repita o processo com os testes abertos;
  • Se for aprovado em todos os testes abertos, é preciso testá-lo para os testes fechados.

Agora, execute seu código para os testes fechados, usando o botão “Entregar Desafio”:

  • Se seu código não for aprovado em todos os testes fechados, ele tem algum erro. Corrija seu código e repita o processo com os testes abertos novamente.
  • Se for aprovado em todos os testes fechados, está finalizado seu desafio e seu código foi aprovado!!

 

7 – Análise do desafio de código Folha de Pagamento (3/3)

8 – Enunciado do desafio de código “Folha de Pagamento”

Basicamente, o enunciado do problema pede que sejam lidos os seguintes dados: o número de um colaborador de uma empresa, o número de horas trabalhadas e o valor que ele recebe por hora trabalhada. Com base nestes dados, pede para calcular o salário dele e apresentar o número do trabalhador e o salário dele, com duas casas decimais.

Os dois primeiros dados de entrada são inteiros e o último é um número decimal, com duas casas decimais.

A saída deve ser composta de duas mensagens, uma para o número do trabalhador e, na linha seguinte, o seu salário, conforme os exemplos dados na próxima seção.

OBS: há um espaço em branco entes e depois de cada símbolo de igualdade, bem como após o símbolo $.

 

9 - Exemplos

Na parte dos exemplos, são mostrados exemplos de entradas para dois casos (respectivamente, variáveis valor1, valor2 e valor3 do código):