Algoritmo para Iniciantes

Thalita Sylvia Marques

você vai aprender

Dicas de como pensar em seus primeiros programas

Exemplo de solução de um problema em C#

pré-requisitos

Estar aprendendo Lógica de Programação

características

Dentre os conceitos que você já deve ter visto, atente principalmente às seguintes características
ou termos relacionados aos algoritmos:


Solução de Problemas

Sequência de Passos

Finito

Definido

Genérico

programa

Um programa é um algoritmo em código. Se precisar defini-lo em três palavras, aposte sem medo em dizer: Entrada, Processamento e Saída. É nessa ordem que as coisas acontecem durante a execução.

programa


Durante o aprendizado de lógica de programação, consideramos o seguinte:

Entrada: dados fornecidos pelo usuário.

Processamento: cálculos efetuados no computador (operam sobre os dados fornecidos).

Saída: resposta dos cálculos e processamentos (a saída é o que o usuário espera ver).

PENSANDO EM SOLUÇÃO

Sempre pense na solução antes do código. Sabemos que a ordem de acontecimentos no programa será o padrão Entrada, Processamento e Saída. Porém, a melhor dica para quem está aprendendo a pensar logicamente é:
treine pensando "de trás pra frente".

Primeiro saiba a Saída, depois o Processamento e, por último, a(s) Entrada(s).

Saída: Começar pela saída é definir, antes de qualquer outra coisa, o objetivo do programa, o que o usuário espera ver na tela. Ponha-se no lugar dele, se for preciso. Anote o que observou.

Processamento: Depois de saber qual será a resposta final (saída), pense em como chegará à esta resposta. Quais cálculos serão necessários? O que será preciso operar/executar? Anote.

Entrada(s): Por último, que informação o programa deve receber para que consiga efetuar os cálculos/processamentos identificados como necessários? Estas informações serão as entradas, inseridas pelo usuário. Anote-as.

ÁREA DO TRIÂNGULO

Dado o problema de calcular a área de um triângulo, devemos encontrar um algoritmo que o resolva. Ou seja, definir uma sequência de passos que funcione de forma genérica, entregando a resposta esperada independente do triângulo tomado como base.

Vamos treinar pensando de trás pra frente...


Saída: O que o usuário espera que apareça na tela deste programa? Qual a resposta do problema dele?


Processamento: Como fazemos para chegar a esta resposta?


Entrada(s): O que é preciso para o cálculo?


DEFINIÇÃO DO ALGORITMO

Já que é uma sequência de passos, o algoritmo é definido na ordem cronológica de acontecimento desses passos. Primeiro a Entrada, depois o Processamento e por último a Saída. Aqui está uma possível definição detalhada para este exemplo:

Passo 1: Solicitar o valor da Base

Passo 2: Ler o valor da Base

Passo 3: Solicitar o valor da Altura

Passo 4: Ler o valor da Altura (até aqui, refere-se às Entradas)

Passo 5: Multiplicar a Base pela Altura

Passo 6: Reservar o resultado da multiplicação 

Passo 7: Dividir por 2 o resultado reservado 

Passo 8: Reservar o resultado da divisão (até aqui, refere-se ao Processamento)

Passo 9: Apresentar o resultado da divisão como sendo o valor da Área (aqui está a Saída)


O algoritmo foi definido acima em linguagem natural. Ou seja, totalmente humana, dependente de uma interpretação subjetiva. Por este motivo, se você fez essa definição de passos enumerados ou um parágrafo que descrevesse o algoritmo e ficou diferente, não significa que há algo errado.
Lembre-se que o importante é solucionar o problema! 

DEFINIÇÃO DO CÓDIGO

A seguir, confira o código de um programa em C# criado com base nos passos do slide anterior.

namespace areatriangulo
{
    class Program
    {
        static void Main(string[] args)
        {
            int b, h, mult;
            double div;

            Console.WriteLine("Informe a Base:");
            b = int.Parse(Console.ReadLine());

            Console.WriteLine("Informe a Altura:");
            h = int.Parse(Console.ReadLine());

            mult = b * h;

            div = mult / 2;

            Console.WriteLine("A área do triângulo é: " + div);

            Console.ReadKey();
        }
    }
}

Considerações:

1. Volte ao início do código e declare suas variáveis à medida em que identificar a necessidade.

2. Com "reservar" um valor quis dizer guardá-lo em uma variável.

3. Variável "div" é do tipo real, já que não há garantia de que o resultado de uma divisão será sempre um valor inteiro.

4. Fiz detalhadamente para que ficassem explícitos todos os passos. Entretanto, se os passos fossem definidos mais sucintamente o código também poderia ficar mais simples.

Por exemplo, este processamento poderia ser feito em uma linha:

double result = (b * h) / 2;

Ou até calculado na mesma linha em que se mostra na tela, como mostrado a seguir: 

Console.WriteLine("A área do triângulo é: " + ((b * h) / 2)); 

Quanto mais sucinto, menos variáveis são necessárias.

LINKS ÚTEIS

Se você está aprendendo lógica de programação agora, sugiro ler também o tutorial
"Dados Primitivos, Variáveis e Atribuições (C#)"
que escrevi com o objetivo de ajudar iniciantes em algoritmos a entenderem o funcionamento dos dados.

Ir para o tutorial Dados Primitivos, Variáveis e Atribuições (C#) (Eitas!)

Curso de Lógica de Programação - Curso em Vídeo - Gustava Guanabara (YouTube)

Programação com C# - Bóson Treinamentos - Fábio dos Reis (YouTube)

Voltar