Dicas para iniciantes em algoritmos
Vanessa taynara Soares
você vai aprender
Roteiro para a criação de um algoritmo.
pré-requisitos
Lógica de programação básica com C#
primeira dica
Faça o máximo de exercícios que o seu tempo permitir.
A prática é fundamental para aprender algoritmos. Através da prática você desenvolve a capacidade de raciocinar em curto tempo e adquire experiência para solucionar novos problemas. Dito isso, vamos as dicas para identificar as necessidades do programa antes de começar a programar.
descrição narrativa
Esboce uma sequência de passos que atenda todas as necessidades da aplicação.
Abuse do uso de verbos, eles indicam ação.
Por exemplo:
Preencher a matriz com as notas
Imprimir a matriz preenchida
Somar todas as notas da matriz
Mostrar o resultado da soma
Ainda no passo da descrição, aproveite e se pergunte:
Como (realizar a ação)?
Quando (realizar a ação)?
Onde (realizar a ação)?
variáveis e nomeação
Tenha em mente quais variáveis terão valores temporários, quais serão somatórios (acumuladores), contadores (incrementadores), índices (referenciadores de posição), etc.
Escolha um nome sugestivo para a variável, isso facilita o entendimento do código.
Por exemplo:
int auxiliar; //temporário para troca de valores
int somatorio = 0; //sempre inicie o somatório
int contador = 0; //sempre inicie o contador
int linha, coluna; //índices para uma matriz
int posicao; //índice para um vetor
leituras e escritas
Faça perguntas claras ao usuário que informem o que precisa ser armazenado naquele instante.
Por exemplo:
Console.WriteLine("Digite a nota do aluno nº " + (contador + 1) + ": ");
Apresente de forma clara: valores, cálculos e resultados.
Imagine quando escrever: durante e/ou após laços de repetição.
Por exemplo:
Console.WriteLine("Somatório de notas: " + somatorio); //após a repetição
Console.WriteLine("Contador valendo: " + contador); //dentro da repetição
repetições
Tenha em mente a quantidade de repetições, se existe obrigatoriedade, e qual é a condição de saída, ou parada.
FOR
Utilize para preencher vetores e matrizes e quando souber a quantidade de repetições.
Como a condição de repetição do for determina seu ponto de parada, utilize-a quando já conhecer o número de repetições necessárias.
Por exemplo:
for (int i = 0; i < vetorNotas.Length; i++) { vetorNotas[i] = i;
DO-WHILE
Utilize quando quiser repetir no mínimo uma vez.
Como a condição do do-while vem no final da repetição, pense em utilizá-lo quando, a operação dentro da repetição influenciará numa nova repetição, ou seja, o que acontecer durante a repetição pode ocasionar o encerramento da repetição, ou início de uma nova repetição.
Por exemplo:
Console.WriteLine("Quantidade de repetições feitas: " + contRepeticoes);
op = string.Parse(Console.ReadLine()); } while (op != "NÃO" || contRepeticoes < 10);
WHILE
Utilize para verificar se irá, ou não, entrar numa repetição.
Como a condição do while vem no início da repetição, pense em utilizá-la quando, para entrar na repetição, precise atender uma condição.
Por exemplo:
bool teste = false; while (teste != true){ contRepeticoes++; Console.WriteLine("Pare a repetição digitando true: ");
teste = bool.Parse(Console.ReadLine()); } Console.WriteLine("Quantidade de repetições feitas: " + contRepeticoes);
vetores
Utilizamos vetores para agrupar valores diversos que compartilham de um mesmo
rótulo
(notas, pesos, códigos, nomes)
e tipo
(int, double, char, string).
Por exemplo:
int[] notas = new int[10]; //inteiros
double[] pesos = new double[10];//com ponto flutuante
char[] codigos = new char[10]; //apenas um caractere
string[] nomes = new string[10]; //literais
matrizes
Utilize quando conceber uma solução através de linhas e colunas (tabelas).
Em algumas situações, as colunas podem ser entendidas como cabeçalhos (rótulos), e as linhas como registros (valores, dados).
Por exemplo:
Cabeçalho: Nota 1, Nota 2, Nota 3, Nota 4.
Linhas: 0: 5, 6, 2, 10 | 1: 2, 5, 8, 9
O texto do cabeçalho deve ser escrito em outro tipo, pois a matriz não pode ser de mais do que um tipo. No exemplo, a matriz é do tipo inteira (int), e o cabeçalho do tipo literal (string). O cabeçalho poderia ser armazenado num vetor de 4 posições, por exemplo.
Representação:
int[,] notas = new int[2, 4] { { 5, 6, 2, 10 }, { 2, 5, 8, 9 } };
string[] rotulos = new string[4] { "Nota 1", "Nota 2", "Nota 3", "Nota 4" };
funções ou métodos
Pense em modularização (divisão, ou separação, em partes, módulos) e na possibilidade de reaproveitamento de código.
Por exemplo:
public static int[,] leituraRotulos() { string[] rotulos = new string[4]; for(int i = 0; i < rotulos.Length; i++) { Console.WriteLine("Digite o nome do rótulo: ");
rotulos[i] = Console.ReadLine(); } return rotulos; } public static void escritaRotulos(string[,] rotulos) { for(int i = 0; i < rotulos.Length; i++) { Console.WriteLine(rotulos[i]); } }
public static int operacaoSoma(int a, int b) { return a + b; } public static bool teste(int nota) { bool resposta = false; if(nota > 10) { resposta = true; } return resposta; }
links úteis
Este tutorial foi adaptado do tutorial "Dicas para iniciantes em algoritmos" desenvolvido por "Luis Silva"".
Tem alguma dica pra compartilhar?
Comente neste tutorial. :)
Comentários