/exercicios_de_logica

Compilado de exercícios de lógica de programação utilizando Javascript | Compiled of programming logic exercises using Javascript.

Primary LanguageCSS

🪶 Objetivo

O objetivo deste repositório é reunir um conjunto de exercícios de lógica de programação utilizando Javascript para aprimorar as habilidades em resolução de problemas do cotidiano profissional de forma rápida e assertiva.

Dentre as subpastas é possível encontrar os sequintes exercícios:

  1. Gerar uma sequência de Fibonacci utilizando JS
  2. Trocar os valores entre as variáveis A e B
  3. Média de idades
  4. Efetuar operações matemáticas
  5. Conversor de medidas
  6. Var, let, const (diferenças na prática)
  7. Recursividade com função Fibonacci
  8. Destructuring assignment
  9. Troca de valores com destructuring assignment
  10. Passando um objeto como parâmetros de uma função
  11. Operações com vetores
  12. Loops em Loops
  13. Condicionais 1.1
  14. Condicionais 1.2
  15. Estrutura de Repetição - For
  16. Estrutura de Repetição - Filtrando itens de um array

Ao decorrer do tempo este repositório será preenchido com mais exercícios que considero relevante para exercitar essa parte crucial da programação que é a lógica. É através do desenvolvimento de uma lógica de programação sólida e àgil que conseguimos absorver de forma eficáz qualquer linguagem de programação.

Sequência de Fibonacci - Utilizando JS

A sequência de Fibonacci é uma sequência de números onde o número 1 é o primeiro e segundo termo da ordem, e os demais são originados pela soma de seus antecessores. Fibonacci foi um dos mais importantes matemáticos da idade média, a 'sequência de fiboancci' criada a partir dos estudos sobre reprodução de coelhos, hoje é um dos pilares das operações do mercado financeiro. Suas contribuições surtiram efeito nas mais variadas áreas partindo da biologia até a tecnologia.

Gerando uma sequência com o loop for

Com esta solução é necessário definir dois valores iniciais e a partir disso, será iniciado um loop que irá gerar o resto dos valores adicionando dois valores anteriores da sequência. Com uma function é possível pré-determinar o número de valores que queremos gerar para a função que irá gerar a sequência.

Trocar os valores entre as variáveis A e B

Escopo: Ler os valores A e B e trocar os valores entre as duas variáveis; a variável A passa a possuir o valor de B e a variável B passa a possuir o valor de A.

  • Utilizei neste projeto o DOM (Document Object Model) para fazer a interação com os arquivos HTML e CSS.

  • Optei por um HTML simples e funcional, utilizando inputs para inserir os números que irão posteriormente ser armazenados nas variáveis A e B. E um button Enviar para posteriormente "mandar" os valores para o Javascript.

  • No Javascript será criado uma variável adicional que será a responsável por proporcionar a mudança entre os valores A e B. Como poder ser observado no código abaixo:

  • var c = b;
    var b = a;
    var a = c;
    console.log('Variável A: ' + a);
    console.log('Variável B: ' + b);

Média de Idades

Escopo: Leia as idades de duas crianças, calcule e mostre sua soma e média.

Efetuar operações matemáticas

Escopo: Leia 2 números, efetue as 4 operações matemáticas e mostre os resultados.

Conversor de medidas

Leia uma temperatura em graus Celsius e mostre a mesma em graus Fahrenheit. Exercício solucionado com Javascript.

Var, let, const (diferenças na prática)

Compreendendo que as constantes: constnão podem ter seus valores reatribuidos troque os valores do array declarado para [2, 5, 7]. Obs. Não pode alterar o tipo const para let. Pense em uma solução que não haja essa troca.


Código base do desafio citado:

const s = [5, 7, 2];
function editInPlace() {
}
editInPlace();

Recursividade com função Fibonacci

Alguns conceitos

  • A sequência de Fibonacci é uma sequência de números onde o número 1 é o primeiro e segundo termo da ordem, e os demais são originados pela soma de seus antecessores.

  • A função recursiva é uma função que é definida em termos de si mesma. Ou seja, uma função que "chama" a si mesma. Elas podem ser usadas para poder processar uma determinada operação e geralmente há condições internas para que a recursividades sejam aplicadas (uma vez que sem condições, ela chamaria a si mesmo eternamente, causando o que chamamos de loop infinito. Saiba mais nessa excelente discussão encontrada no stack overflow.

  • A estrutura de dados pilha diz que o primeiro elemento inserido é o último a ser removido e o último a ser inserido é o primeiro a ser removido. Saiba mais neste artigo.

  • Compreendendo o problema

    Desenvolver um algorítimo (n) que vai retornar o número em questão na sequência de fibonaci.

  • Exemplo: Se o n for 4 o que precisa ser retornado é o número 3, porque o valor 3 está na posição 4 na sequência Fibonacci
  • A função recursiva é composta por duas partes:

    1. O caso base; O caso base é o caso de parada. Sem ele a função seria um loop infinito. No problema o caso base é se n for menor ou igual a 2.
    2. Perceba os testes abaixo (lembrando que na Fibonacci é necessário a soma dos dois números anteriores):

      f(1) = 1 ↦ Cai na função recursiva
      f(2) = 1 ↦ Cai na função recursiva
      f(3) = f(2) + f(1) = 2 ↦ Porque o f(2) é 1 e o f(1) também é 1
      f(4) = f(3) + f(2) = 2 + 1 = 3 ↦ Porque o f(3) é igual a 2 e o f(2) é igual a 1

    A função recursiva então funciona como uma pilha de chamada (estrutura de dados pilha).

    Operações com vetores

    Contexto: A função abaixo receberá 2 parâmetros; um vetor com apenas valores numéricos e um número. Faça com que ela multiplique cada item do vetor pelo segundo parâmetro apenas se o item do vetor for maior que 5. Após isso, ele deverá retornar o novo vetor.


    Exemplo: Calcular Vetor ([1, 5, 10, 20], 2) retornará: [2, 5, 20, 40] pois só 10 e 20 são maiores que 5.


    Segundo exemplo: Calcular Vetor ([1, 3, 4, 5], 10) retornará [1, 3, 4, 5] pois nenhum é maior que 5.

    Loops em Loops

    Escopo: Complete a função abaixo de forma que ela receba uma variável como parâmetro e retorne um vetor no final. Essa variável passada por parâmetro terá as seguintes propriedades:

    • Ela também será um vetor
    • Cada um de seus valores serão vetores com números

    Condicionais 1.1

    Escopo: Você foi contratado por uma empresa de desenvolvimento de software que está modificando parte do código de cadastro de novos usuários. Neste cadstro está sendo colocado um limite no tamanho do arquivo da foto que o usuário envia. Caso a foto seja maior que 5MB, será exibida uma mnesagem de erro. Caso contrário, será exbilida uma mensagem de sucesso.

    Condicionais 1.2

    Escopo: Programe um identificador de estágios da vida, exemplo: Menores de 18 anos = Menor de idade; Entre 18 e 60 anos = Adulto; Maior de 60 anos = Idoso.

    Estrutura de Repetição For

    É indicado quando é necessário percorrer um array inteiro pra fazer um mesmo procedimento com cada item desse array, é recomendável que seja usado o for of.


  • Primeiro exercício: Criar um sistema que encontre a média de valores de um dado array; Segue o código na pasta.
  • Quantidade de notas vermelhas

  • Segundo exercício: Criar um sistema que exiba no console a quantidade de notas vermelha que um aluno possui.


  • Estrutura de Repetição - Filtrando itens de um array

    Crie um sistema que filtre e exiba todos os itens de um array que comece com a letra "a".



    🪶 Objective

    The purpose of this repository is to gather a set of programming logic exercises using Javascript to improve the skills in solving everyday professional problems quickly and assertively.

    Among the subfolders it is possible to find the following exercises:

    1. Generate a Fibonacci sequence using JS
    2. Swap the values between variables A and B
    3. Average ages
    4. Perform mathematical operations
    5. Measurement Converter
    6. Var, let, const (differences in practice)
    7. Recursion with Fibonacci function
    8. Destructuring assignment
    9. Swapping values with destructuring assignment
    10. Passing an object as parameters to a function
    11. Operations with vectors
    12. Loops on Loops
    13. Conditionals 1.1
    14. Condicionais 1.2
    15. For Repeat Structure
    16. Repeat Structure - Filtering items from an array

    Over time this repository will be filled with more exercises that I consider relevant to exercise that crucial part of programming that is logic. It is through the development of solid and agile programming logic that we can effectively absorb any programming language.

    Fibonacci Sequence - Using JS

    The Fibonacci sequence is a sequence of numbers where the number 1 is the first and second term of the order, and the others are originated by the sum of their predecessors. Fibonacci was one of the most important mathematicians of the Middle Ages, the 'fiboancci sequence' created from studies on rabbit reproduction, today is one of the pillars of financial market operations. His contributions have had an effect in the most varied areas from biology to technology.

    Generating a sequence with the for loop

    With this solution it is necessary to define two initial values and from that, a loop will be started that will generate the rest of the values adding two previous values of the sequence. With a function it is possible to predetermine the number of values we want to generate for the function that will generate the sequence.

    Swap the values between variables A and B

    Scope: Read values A and B and exchange values between the two variables; variable A takes on the value of B and variable B takes on the value of A.

    • In this project I used the DOM (Document Object Model) to interact with the HTML and CSS files.
    • I opted for a simple and functional HTML, using inputs to insert the numbers that will later be stored in variables A and B. And a button Send< /b> to later "send" the values to Javascript.
    • In Javascript an additional variable will be created that will be responsible for providing the change between the values A and B. As can be seen in the code below:

    • var c = b;
      var b = a;
      var a = c;
      console.log('Variable A: ' + a);
      console.log('Variable B: ' + b);

    Average Age

    Scope: Read the ages of two children, calculate and display their sum and average.

    Perform mathematical operations

    Scope: Read 2 numbers, perform 4 mathematical operations and display the results.

    Measurement Converter

    Read a temperature in degrees Celsius and display it in degrees Fahrenheit. Exercise solved with Javascript.

    Var, let, const (differences in practice)

    Understanding that constants: const cannot have their values reassigned change the declared array values to [2, 5, 7]. Obs. You cannot change the type const to let. Think of a solution that doesn't have this switch.


    Base code of the mentioned challenge:


    const s = [5, 7, 2];
    function editInPlace() {
    }
    editInPlace();

    Recursion with Fibonacci function

    Some concepts

  • The Fibonacci sequence is a sequence of numbers where the number 1 is the first and second term of the order, and the others are originated by the sum of their predecessors.
  • A recursive function is a function that is defined in terms of itself. That is, a function that "calls" itself. They can be used to be able to process a given operation and there are often built-in conditions for the recursion to be applied (since without conditions it would call itself forever, causing what we call an infinite loop. Learn more in this excellent discussion found on stack overflow.
  • The stack data structure says that the first element inserted is the last to be removed and the last element to be inserted is the first to be removed. Learn more in this article.
  • Understanding the problem

    Develop an algorithm (n) that will return the number in question in the fibonaci sequence.

  • Example: If n is 4 what needs to be returned is the number 3, because the value 3 is at position 4 in the Fibonacci sequence
  • The recursive function consists of two parts:

    1. The base case; The base case is the halting case. Without it the function would be an infinite loop. In the problem the base case is if n is less than or equal to 2.

    2. Understand the tests below (remembering that in Fibonacci the sum of the two previous numbers is necessary):

      f(1) = 1 ↦ Falls into the recursive function
      f(2) = 1 ↦ Falls into the recursive function
      f(3) = f(2) + f(1) = 2 ↦ Because f(2) is 1 and f(1) is also 1
      f(4) = f(3) + f(2) = 2 + 1 = 3 ↦ Because f(3) equals 2 and f(2) equals 1

    The recursive function then works like a call stack (stack data structure).

    Operations with vectors

    Context: The function below will receive 2 parameters; a vector with only numerical values and a number. Have it multiply each array item by the second parameter only if the array item is greater than 5. After that it should return the new array.


    Example: Calculate Vector ([1, 5, 10, 20], 2) will return: [2, 5, 20, 40] because only 10 and 20 are greater than 5.


    Second example: Calculate Vector ([1, 3, 4, 5], 10) will return [1, 3, 4, 5] as none is greater than 5.

    Loops on Loops

    Scope: Complete the function below so that it takes a variable as a parameter and returns a vector at the end. This variable passed as a parameter will have the following properties:

    • It will also be a vector
    • Each of your values will be vectors with numbers

    Conditionals 1.1

    Scope: You have been hired by a software development company that is modifying part of the new user registration code. In this register, a limit is being placed on the size of the photo file that the user sends. If the photo is larger than 5MB, an error message will be displayed. Otherwise, a success message will be displayed.

    Conditionals 1.2

    ScopeProgram a life stage identifier, example: Under 18 = Minor; Between 18 and 60 years = Adult; Over 60 years old = Elderly

    For Repeat Structure

    It is indicated when it is necessary to go through an entire array to perform the same procedure with each item of that array, it is recommended that for of be used.


  • First exercise: Create a system that finds the average of values of a given array; Follow the code in the folder.
  • Number of red banknotes

  • Second exercise: Create a system that displays on the console the number of red grades that a student has.
  • Repeating Structure - Filtering items from an array

    Create a system that filters and displays all items in an array that starts with the letter "a".