Lógica de programação


Apresentação

Este é um manual de ajuda oferecido gratuitamente para aqueles que querem aprender o básico da lógica de programação, escrito por Daniel Bonifácio de Oliveira. A reprodução deste conteúdo em qualquer outra plataforma e/ou circunstância é moral e legalmente proibida.
O Manual: Lógica de programação está dividido em seções e IDs, que contêm uma série de atividades práticas e informações teóricas sobre lógica de programação.
Algumas dicas para obter o melhor rendimento possível em seu estudo:
  • Leia todos os itens com atenção, pois encontrará sempre informações úteis para a realização de atividades;
  • Faça apenas o indicado e só execute uma sequência após ter lido a respectiva instrução;
  • Foque no texto. Pressionando a tecla F11 você deixa a página em modo "tela cheia", impedido parte da distração.

Exercícios propostos

Além de uma representação em fluxogramas das atividades do Manual: Lógica de programação, no arquivo baixado você terá uma lista de exercícios propostos para exercitar os conteúdos abordados em cada atividade, juntamente com suas soluções.
  1. Faça o download deste arquivo.
  2. Após o término do download, crie uma pasta chamada "LogicaProgramacao" no seu ambiente de trabalho (ou local de sua preferência).
  3. Copie para dentro desta pasta o arquivo baixado.
  4. Descompacte ele.
Agora que você já sabe como utilizar o material de estudo, inicie seu aprendizado gratuito de lógica de programação, começando da introdução. Não se esqueça: leia com atenção e siga todos os passos para obter o melhor rendimento possível em seu aprendizado.
Boa sorte!

Introdução

Conceitos iniciais

Desde os primórdios o ser humano vem tentando solucionar seus problemas com maior rapidez e eficácia possíveis, procurando sempre automatizar as tarefas de rotina. Isso possibilitou o aparecimento de alguns instrumentos como roda, roldana, alavanca, carro, e até o computador.
Entretanto, as tarefas que são realizadas pelo computador de forma automática, têm que ser previamente pensadas e colocadas em uma sequência correta e lógica, para que, posteriormente, o computador as processe. Essa sequência de ações se chama Programa e a fase de pensar, posicionar e formular as soluções do programa, chama-se Lógica de programação.
O Hardware nada mais é do que a parte física de qualquer aparelho eletrônico. Podemos denominar de Hardware: Placa Mãe, Memória RAM, Disco Rígido, etc.
Já o software é um programa que se utiliza de determinado hardware para operar. Podemos denominar de Software: Navegadores, Sistema Operacional e qualquer outro programa.
Nosso computador, bem resumidamente, dessa forma:
Entrada de dados Processamento de dados Saída de dados

Lógica de programação e suas representações

Lógica

As pessoas utilizam a lógica no cotidiano sem perceber; chegam mesmo a citá-la, sem entender o seu significado.
Segundo o dicionário Aurélio, "lógica é a coerência de raciocínio, de ideias", ou ainda a "sequência coerente, regular e necessária de acontecimentos de coisas". Você pode perceber isso nos exemplos:
  1. O número 4 é menor que o número 6.
    O número 9 é maior que o número 6.
    Logo, o número 3 é menor que os números 6 e 9.
  2. Quando chove, não é necessário regas as plantas no jardim.
    Hoje choveu.
    Logo, hoje não é necessário regar as plantas no jardim.
  3. Os portugueses moram em Portugal.
    Portugal fica na europa.
    Logo, os portugueses são europeus.
Outro exemplo aplicado em nosso cotidiano, é o simples fato de abrir e fechar uma porta. Quando descrevemos esse ato, é normal parecer algo simples, pois nosso cérebro já tem essa informação armazenada nele. Pare por uns instantes e pense nos passos para escrever um programa capaz de abrir uma porta.
Provavelmente você encontrou algo entre 2 a 3 passos. Se sim, você errou no seu programa de abrir uma porta.
Na verdade há uma grande sequência de comandos, apenas para realizar essa tarefa simples.
  1. Ande em linha reta em direção a porta.
  2. Verifique se sua mão alcança a maçaneta.
  3. Se sim, prossiga. Se não, Repita os passos anteriores.
  4. Segure a maçaneta.
  5. Gire 45 graus sentido horário.
  6. Puxe a porta.
  7. Solte a maçaneta.
  8. Entre no local.
  9. Vire-se 180 graus.
  10. Procure pela maçaneta.
  11. Segure a maçaneta.
  12. Puxe a porta até que ela não esteja mais aberta.
  13. Vire-se 180 graus.
  14. Prossiga o caminho

Lógica de programação

Falar em lógica de programação significa apenas contextualizar a lógica (mesma usada no nosso cotidiano) em uma linguagem de programação de computadores, solucionando nossos problemas se postos na sequência correta.
Basicamente teremos que inserir comandos para nosso computador realizá-los da maneira correta e sequencial. Essa sequência denomina-se de algoritmo.
O refinamento do nosso algoritmo é algo imprescindível para nosso programa dar certo.

Formas de representação de um algoritmo

Até agora os nossos algoritmos eram representados por palavras, porém, há mais maneiras de representá-los. Vamos falar sobre duas dessas representações.

Pseudocódigo

Foi a maneira utilizada para representar nossos algoritmos até aqui, ou seja, por meio de comando escritos na língua portuguesa. Essa representação é conhecida como pseudocódigo, português estruturado ou Portugol. Iremos adotar ele como a nova linguagem intermédia entre nós e o computador. Ele é parecido com uma linguagem de programação real, então, ele é o método perfeito para iniciar.
Em pseudocódigo
início do programa "ola_mundo"
    escreva("Olá, mundo.")
fim do programa
Em portugol
algoritmo "ola_mundo"
// Função : exibir uma mensagem ao usuário
// Autor : Daniel Bonifacio
// Data : 13/04/2016
// Seção de Declarações 
var

inicio
// Seção de Comandos
escreva("Olá, mundo!")
fimalgoritmo

Fluxograma

Um fluxograma é uma representação gráfica de nosso algoritmo. Ele é de fácil interpretação e suas formas ajudam a entender sua estrutura, sem ter que ficar escrevendo comandos. Ótimo para criação de algoritmos que necessitam de ser escritos em mais de uma plataforma/linguagem.

reprodução/Daniel Bonifácio

Sintaxe

Uma coisa importante é saber que há uma sintaxe para cada tipo de linguagem. Por mais que as diferenças sejam mínimas, sempre haverá uma mudança, e é isso que precisamos entender. Ela será aplicada desde o início, para ir se acostumando com sua leitura.
A sintaxe usada aqui é a pseudo-linguagem Portugol, que é mais fácil para compreender, visto que seus comandos são em português.

Comandos

  • inicio - é o comando que dá início ao nosso algoritmo. Nós não acentuamos comandos, pois esses caracteres são considerados "especiais" e não são permitidos na hora de definir comandos.
  • fimalgoritmo - comando responsável por dar fim ao nosso algoritmo, se só. Existem algumas variações deste comando que vamos falar mais pra frente.
  • " " - geralmente usamos aspas para definir um valor literal.
  • <- strong=""> - esses dois caracteres, juntos, vão representar a palavra "recebe".
    Exemplo: nome <- aniel="" code="">
  • escreva - exibe tudo que estiver contido dentro do comando.
    Exemplo: escreva("Bananada é feita de banana.")
  • escreval - mesma coisa que anterior, porém, seguido de uma quebra de linha.
  • leia - armazena em uma variável um valor inserido pelo usuário.

Aplicação da sintaxe em diferentes linguagens

É importante lembrar que, em toda linguagem de programação, a lógica será a mesma. As únicas diferenças são a forma como você irá aplicar isso. Ao decorrer do Manual de Ajuda: Lógica de programação veremos apenas 1 tipo de sintaxe.
Alguns exemplos podem ser dados. Vamos mostrar agora a aplicação do "Hello, World!" em Portugol e em C, respectivamente.
algoritmo "ola_mundo"
// Função : exibir uma mensagem ao usuário
// Autor : Daniel Bonifacio
// Data : 13/04/2016
// Seção de Declarações 
var

inicio
// Seção de Comandos
escreva("Olá, mundo!")
fimalgoritmo
#include <stdio.h>

int main (void) {
 printf("Ola, mundo!");
 return 0;
}
reprodução/Daniel Bonifácio

Variáveis e constantes

Constantes

As constantes, como seu nome já diz, são valores que não mudam. Dentro de nosso algoritmo, uma constante é um valor que permanecerá o mesmo do início ao fim. Um exemplo é o número 1. Ele irá sempre corresponder com a unidade qualquer de algum item. As constantes sã inseridas e carregadas dentro de um espaço separado na memória do computador, e podem ter 3 tipos:
  1. Numéricas São números positivos ou negativos. Exemplo: 4 90 321 2*6² 0,95 0,0052 2.332.545 -5.774
  2. Literais Também conhecidas como alfanuméricas, constantes literais são um conjunto de caracteres que variam de letras, números ou símbolos especiais (-, +, %, #, etc.). Esses conjuntos devem ser colocados entre aspas para não serem confundidos com outros dados. Exemplo: "Daniel" "VASP" "Y44#CS" "01/04/1999"
  3. Lógicas
  4. Valores que representam respostas para condições lógicas e são compostas apenas pelos valores verdadeiro e falso (que devem ser sublinhados para não serem confundidos com outros tipos de dados, como constantes literais).
As variáveis e as constantes são 2 tipos diferentes de dados que o programa armazena. Elas são representadas de maneiras diferentes, mesmo que seu comportamento, por vezes, seja igual. Vamos partir de um programa simples que exibe a frase "Bananada é feita de banana."
Um programa como esse pode ser representado assim:
  1. início do programa
        escreva("Bananada é feita de banana.")
    fim do programa
    
O exemplo acima utiliza uma constante. Nós pedimos para o nosso computador escrever na tela a frase entre aspas.
  1. início do programa
        a <- a="" anana="" b="" da="" de="" do="" escreva="" feita="" fim="" pre="" programa="">
Já neste exemplo, nós fizemos um programa que exibe a mesma mensagem, porem utilizando variáveis. Vamos entender com a ajuda desta tabela:
inicio a b escreva
1 [Banana] ? ?
2 [Banana] [da] ?
3 [Banana] [da] a + b + " é feita de" + a
4 [Banana] [da] "Banana" + b + " é feita de" + a
5
[Banana]
[da]
"Bananada é feita de " + a
6
[Banana]
[da]
"Bananada é feita de Banana"

A lógica da tabela é a seguinte: cada linha executa uma ação que o computador fará. Seja a de atribuir um valor à determinada variável, ou a concatenar valores.
Lógica de programação Lógica de programação Reviewed by Daniel Bonifacio on 15:31 Rating: 5