Introdução à programação - parte 6


Lógica de Programação
Logicamente torna-se trabalhoso trabalhar com dados de computador bit-a-bit. Como forma de manipular este fluxo
de estados elétricos e estruturá-lo de forma a permitir operações mais simplificadas e otimizadas sobre os bytes,
surgiu o conceito de programação. As linguagens de programação são geralmente em dois níveis:
• Linguagens de Baixo Nível: são linguagens de programação que tratam a informação na linguagem de máquina.
• Linguagens de Alto Nível: são linguagens de programação modeladas quase como a linguagem comum humana,
que quando compiladas são convertidas para linguagem de máquina. Cada linguagem deste tipo possui uma
sintaxe própria, que deve ser respeitada e aprendida para que possa ser corretamente processada por seu
compilador. Compilador é um programa que permite que determinada programação em uma linguagem específica
seja adaptada para linguagem de máquina.
No entanto, não é necessário que o programador aprenda todas as diversas linguagens disponíveis no mercado. Cada
linguagem é recomendada para determinadas aplicações, assim como possuem suas sintaxes próprias, mas todas são
estruturadas logicamente. Com aprendizado da Lógica de Programação o aluno entenderá os conceitos básicos da
programação poderá com menor ou maior dificuldade, dependendo da linguagem escolhida, aprender a linguagem
que quiser.
Algoritmo
As linguagens de programação tratam os dados de um computador através do uso de algoritmos. Um algoritmo é
uma estruturação passo-a-passo de como um determinado problema deve ser resolvido de forma não-ambigua (ou
como muitos comparam "uma receita de bolo") . Desta forma, para realizar esta estruturação é necessário o uso de
ferramentas e operações oriundas da Lógica, e principalmente da Lógica Matemática.
Antes de estruturar-se de forma lógica para programação, devemos saber qual o tipo de problema proposto, as
informações que serão imputadas e os passos a serem efetuados para atingir-se um fim específico. Por exemplo,
vamos ver um "algoritmo" sobre "tomar banho":
1.Tirar a roupa.
2.Abrir o registro.
3.Ensaboar-se.
4.Enxaguar o corpo.
5.Passar shampoo nos cabelos.
6.Enxaguar o cabelo.
7.Fechar o registro.
Vimos então um problema proposto (tomar banho) e os passos para solucionar o problema. Logicamente, que há
outras formas de estruturarmos este algoritmo de forma a adaptá-lo a atingir o mesmo fim. No entanto, o importante
é estruturá-lo de forma coerente, eficaz e simples, ou como muitos dizem de "forma elegante". Veremos na próxima
lição que podemos desenhar este algoritmo e aplicar conectivos lógicos que permitam manipular as informações
necessárias.
Algoritmos 19
Exercícios
Para complementar os estudos baixe alguns exercícios de algoritmos [2]. Faça esses exercícios até sua lógica de
programação ficar bem afiada.
Bibliografia
• Algoritmo, artigo na Wikipédia em português
• Bit, artigo na Wikipédia em português
Índice - Como programar | Lógica
Prefácio Programar, o que é a programação? Como programar: pensar como uma máquina Aprendizagem: o "padrão
eficaz" Linguagens de programação Estruturas de manipulação de dados Orientação a objectos Exercícios
Bibliografia e ligações externas
Referências
[1] http:/ / portugol. sites. uol. com. br
[2] http:/ / algoritmizando. com/ desenvolvimento/ 40-exercicios-de-algoritmos-resolvidos-para-estudo/
Estruturas de manipulação de dados
Como já foi referido e é lógico, as linguagens de programação têm coisas em comum. Uma delas são as estruturas de
controlo. Estruturas de Controlo são definidas como sendo a base da lógica da programação e podem ser de dois
níveis: directo ou indirecto (complexo). Para termos uma ideia da diferença entre um controlo directo e um controlo
indirecto, apresento a seguir dois diálogos representativos de duas situações do quotidiano:
Pedro - "Onde foste Miguel?"
Miguel - "Fui à loja comprar roupa."
Indivíduo - "Onde posso arranjar uma certidão A-R53?"
Inspector - "Tem que levar a sua identificação ao guiché, pedir um
impresso GHA NORMAL carimbado para 3 meses. Após a conclusão da
escritura terá que aguardar até que seja chamado pela sua vez."
Analisando os dois casos, rapidamente concluímos que a resposta obtida no primeiro é directa e bem mais simples
que no segundo. Ora, se quisesse converter estas situações para uma situação parecida no computador, poderíamos
constatar que bastava-nos uma página de um código sequenciado para o computador proceder a recriação do
conteúdo da primeira situação. O mesmo já não se verifica no segundo. Normalmente para este tipo de casos, o
programador utiliza peças fundamentais chamadas funções (do inglês function) que retratam cada um único
acontecimento da situação, havendo assim ligações entre eles dependendo dos resultados obtidos. Funções são
retratadas mais à frente. Penso que com estes dois exemplos o leitor já entende bem o que é um Algoritmo directo e
um Algoritmo complexo.
Estruturas de manipulação de dados 20
Estruturas básicas
Qualquer programa tem que fazer alguma coisa (nem que seja enviar um sinal bip) senão não é um programa, ou
seja, ele tem que apresentar conteúdo. Assim, como apresenta conteúdo, vai "alterar" estados dentro do computador,
sendo que, o estado de uma das peças que vai inevitavelmente se alterar é a memória interna. É inevitável um
programa não se "alojar" na memória do computador, assim, o programa precisa de um espaço físico na memória e
para isso terá que o requisitar. É disso que iremos falar a seguir.
Variáveis e constantes
Uma variável é uma expressão que varia e normalmente é representado por uma incógnita X, e uma constante é uma
expressão que não se altera (o número de Avogadro, o pi, o número de Neper) que pode ser representado por uma
letra. Nos programas, variáveis são todas as expressões que podem ou não variar, assim como também podem ser
constantes. Uma coisa é óbvia: Constantes não podem ser variáveis!
Na função seguinte Y assume o dobro de todos os valores de X:
Y = 2X --> Nesta função, X varia por isso Y é uma variável
Na seguinte função Y assume sempre o valor 2:
Y = 2 --> Nesta função Y não varia e por isso é constante.
Aqui está patente a diferença de uma função variável e uma função
constante em matemática.
Transportando a noção de Variável e Constante para a programação, apresento agora dois trechos de código em PHP
e C++:
//Estou a representar um texto como uma variável representada por p
(sintaxe de PHP):
<?php
$p = "Olá Mundo!";
//Agora vou apresentá-la no ecrã
echo $p;
?>
No caso acima, uma variável é um texto que foi guardado em memória, representado por p.
//Represento agora um "Olá Mundo!" como uma constante (sintaxe do C++):
#include <iostream.h>;
int main() {
cout << "Olá Mundo!";
return 0;
}
Não se assuste se não entendeu nada do que se passou ali em cima. Aqui "Olá Mundo!" foi uma constante e não uma
variável, pois ela não foi guardada em memória, mas imposta pela instrução cout directamente.
Estruturas de manipulação de dados 21
Instruções
As instruções são pequenos comandos que ditam ao programa o que fazer com determinado dado. Elas podem
guardar informação, apresentar informação, aguardar um input, etc. Aqui apresentamos algumas instruções que são
mais comuns assim como a sua implementação no C++ e PHP:


Comentários