Roteiro para criar algoritmos
- #TypeScript
Um algoritmo é entendido como uma sequência de passos que ao serem executados realizam alguma tarefa. Escrever algoritmos é resolver problemas.
Mas como solucionar um problema a partir de um enunciado?
Esse post traz um roteiro que organiza os nossos pensamentos em etapas para resolver problemas. É um método que ajuda em problemas menores e que pode ser intercalado com outras ações para resolver problemas mais complexos.
Roteiro: entrada, processamento e saída
Com esse roteiro simplificamos o que está sendo pedido no enunciado em dados de entrada, processamento e saída.
Ou seja, dividimos o problema em dados que serão lidos (entrada), em cálculos usando variáveis (processamento) e, por fim, na exibição da resposta (saída).
Vamos aplicar esse roteiro de forma prática para escrever o algoritmo do problema a seguir.
a) Elabore um programa para calcular e exibir a área s de um triângulo de base b e altura h.
Seguindo as etapas do roteiro teremos o seguinte:
- Entrada: base (b) e altura (h)
- Processamento: Cálculo da área (s)
- Saída: Exibir a área (s) do triângulo
A partir desse roteiro podemos desenvolver um algoritmo que realize essa tarefa para nós. Observe o código em TypeScript para esse algoritmo em questão.
const b: number = 10; //base do triângulo
const h: number = 5; //altura do triângulo
const s: number = (b * h) / 2; //cálculo da área do triângulo é base * altura / 2
//console.log(s); //imprime a área
Outro exemplo:
b)Elabore um programa que obtenha somente os números que são par de um vetor e em seguida calcule e exiba o dobro desses números.
Seguindo o roteiro:
- Entrada: vetor.
- Processamento: selecionar os números par do vetor e calcular o dobro de cada um.
- Saída: exibir o dobro dos números par.
O código para esse algoritmo pode ser visto a seguir.
const numbersVector: number[] = [8, 13, 20, 10, 4, 15]; //vetor de números
const evenNumbers: number[] = numbersVector.filter(num => num % 2 == 0); //seleciona números par do vetor
const double = evenNumbers.map(num => num * 2); //calcula o dobro cada número
console.log(double); //imprimi o dobro
Podemos aplicar a entrada, processamento e saída para problemas ainda mais complexos, pois nos ajuda nas fases de análise e síntese da resolução de um enunciado. Experimente usá-lo.
Ressaltando que é importante que a solução apresentada pelo algoritmo deve ser consistente, ou seja, se o resultado esperado foi obtido. Fazemos isso executando o algoritmo inteiro e verificando a saída.
Por fim, deixo uma indicação de livro que inspirou a escrita deste artigo. Se chama Lógica de Programação e Algoritmos com JavaScript da editora Novatec. Nele você encontra exemplos e exercícios de lógica de programação na qual usamos justamente esse roteiro.