Algoritmos e programação
No dia a dia nos deparamos com diversos problemas que podem ser expressos na forma de algoritmos, alguns simples rotinas como escovar os dentes, ir a faculdade, preparar um suco de frutas, uma receita para fazer salada de batatas, as regras para calcular uma equação de primeiro grau e muitos outros.
Em todos os algoritmos são identificadas características comuns, que são séries finitas e bem definidas de passos ou regras que, quando realizadas, produzem um determinado resultado.
Exemplo:
Imagine que uma dona de casa deseja fazer um jantar para alguns convidados. Como o prato a ser preparado inclui batatas, ela necessita de batatas descascadas. Para resolver esse problema, a dona de casa elaborou e entregou a sua secretária uma folha de papel com o seguinte conteúdo:
// Instruções para descascar batatas para o jantar.
Inicio
Pegue a cesta de batatas no armário;
Pegue uma bacia para colocar as batatas;
Pegue uma faca na gaveta;
Descasque uma batata; coloque a batata descascada na bacia;
Descasque uma batata; coloque a batata descascada na bacia;
Descasque uma batata; coloque a batata descascada na bacia;
Descasque uma batata; coloque a batata descascada na bacia;
Fim.
A secretária percebeu imediatamente que as instruções têm inicio e fim. Chegou também a conclusão que deveria começar pelo inicio e que a primeira ação a ser realizada deveria ser, “pegue a cesta de batatas no armário”. Após realizar esta primeira ação, percebeu que deveria seguir executando as ações encontradas linha após linha.
Parece lógico e natural, mas ao chegar à quarta linha, a secretária percebe que existem duas ações na mesma linha: 1. Descasque a batata; 2. Coloque a batata descascada na bacia;
Qual delas realizar primeiro? Lendo as duas ações, a secretária concluiu que não poderia colocar a batata descascada na bacia antes de descasca-la e desta forma deveria fazer primeiro a ação “descasque uma batata”.
Todavia, a secretária se dá conta de