Programação EXPRESS – Algoritmo (isso morde?!)

Programação EXPRESS – Algoritmo (isso morde?!)

Olá amigos, voltamos hoje no projeto Programação EXPRESS.

Hoje falaremos sobre ALGORITMO. Não querendo falar de História, algoritmo vem de uma linguagem chamada ALGOL. Pesquise no Google sobre isso. O que nos importa é que algoritmo (também chamado de pseudocódigo) é a forma de escrever um programa em linguagem nativa do programador (ou seja, no nosso caso, em português). Sim, escrevemos o programa EM PORTUGUÊS!

No algoritmo vamos indicar a estrutura básica do programa, sem nos preocuparmos com a linguagem de programação que iremos usar depois. A vantagem disso é que podemos passar o nosso pseudocódigo pra qualquer linguagem que quisermos depois. Geralmente o algoritmo é feito com base num Fluxograma ou outro tipo de Diagrama. E se você não leu o post anterior sobre Fluxograma e Lógica de Programação …. PARE AGORA E VÁ LER!

-> Tópico 1: Programação EXPRESS – Lógica e Fluxograma

Agora se você já leu, sabe que fazer o diagrama é MUITO importante.

Todo algoritmo usa VERBOS para indicar suas ações. Assim, se quisermos indicar que o programa deve ler um dado e armazenar numa variável, dizemos LER nome_da_variável. Pronto, fácil assim. Se queremos exibir esse dado armazenado na variável, podemos dizer IMPRIMIR ou EXIBIR nome_da_variável.

Se quisermos testar uma condição, podemos dizer SE (condiçãoENTÃO, que compõe a verificação da condição e depois do então colocamos o código do que devemos fazer se a condição for verdadeira. Mas se a condição for falsa, após o bloco do então, escrevemos SENÃO e indicamos o que o código deve fazer se a condição não for satisfeita.

Cada item em uma linha específica. Assim, seguindo o nosso fluxograma do post passado (abaixo) iremos criar o algoritmo próprio. Vejamos como fica:

fluxograma1

 

ALGORITMO assar_pao;
INICIO
Abrir forno;
SE (forno aceso?) ENTÃO
Botar lenha;
SENÃO
Acender fogo;
FIM_SE;
Assar pão;
FIM;
FIM.

Reparem que todas as palavras em laranja são palavras específicas do algoritmo, todo algoritmo começa com a palavra ALGORITMO e declara o nome do código que iremos usar. Esse também é o nome do programa (ou se tiver usando programação modular, será o nome do módulo). Depois falamos de programação MODULAR.

Após isso damos INICIO ao nosso algoritmo (repare que nessa linha não tem ponto e vírgula). Aliais, momento oportuno pra falar que SIM, usamos ponto e vírgula no algoritmo tal qual usaríamos no programa.

REGRA: SOMENTE A LINHA INICIO, ENTÃO, SENÃO, FAÇA NÃO POSSUEM PONTO E  VÍRGULA, TODAS AS OUTRAS POSSUEM.

Após isso iniciamos um processamento (abrir o forno) e testamos uma condição (forno aceso?). Então, se a condição for verdadeira, seguimos para o que deve ser feito logo após o ENTÃO. Mas caso a condição não seja verdadeira, seguimos para o que fazer após o SENÃO. Encerrado os testes lógicos (condição), devemos indicar que encerrou essa ESTRUTURA DE DECISÃO, para isso usamos FIM_SE; (alguns digitam junto, FIMSE, também está correto). Seguimos então com o fluxo do programa indicando que depois que já verificamos se o forno estava acesso e que tinha lenha pra assar o pão, então devemos por o pão para assar.

Como o objetivo do algoritmo foi alcançado, agora só precisamos encerrar o algoritmo. Fazemos isso indicando FIM; (para encerrar o inicio do processamento) e FIM. (ou FIM_ALGORITMO) que encerra o pseudocódigo em si.

Feito isso, temos o nosso algoritmo de assar pão.

Falei ali em cima sobre ESTRUTURA. Bom, vamos lá. Em programação nós temos o desenvolvimento ESTRUTURAL e MODULAR. Na programação ESTRUTURADA todo o bloco de código faz parte do programa principal, cada um separado em sua estrutura especifica e executando tarefas importantes do sistema. O Resultado é um código complexo, geralmente imenso, mas tudo está ali, você não tem que consultar diversos programas/páginas para encontrar os códigos do programa. Tudo está no mesmo lugar.

Na programação MODULAR cada parte do programa está separada em um módulo (ou programa/página separado). Assim se tivermos rotinas que se executam diversas vezes, ao invés de repeti-las exaustivamente no programa (o que acabaria sendo normal na programação estruturada, daí o código ser longo), nós separamos em um módulo responsável por executar aquela tarefa repetitiva. Daí, quando precisarmos dela, basta passar os valores a serem operados e chamar a FUNÇÃO modular que executa aquele processo e ponto. Complicou? Vou exemplificar.

Suponhamos que em um programa de lista de compras, você calcula o subtotal (quantidade x preço) dos produtos várias vezes. Numa programação estruturada você repetiria o cálculo da multiplicação várias vezes ao longo do código. Na programação modular você criaria uma função chamada SUBTOTAL que iria receber a quantidade do produto e seu preço e retornar ao programa principal o subtotal. Daí, cada vez que quiser calcular o subtotal basta dizer SUBTOTAL(quantidade, preço) e pronto. O resultado disso será o subtotal do produto.

Fácil? Sim! É muito mais simples de criar, os módulos são reaproveitáveis (podemos usá-los em qualquer programa que precise calcular subtotal) e fica rápido dar manutenção apenas nas rotinas de subtotal. O problema? Sim, tem, se houver um erro no módulo, ele irá aparecer no programa principal e se você não tiver feito um bom programa, perderá HORAS tentando achar de onde vem o erro (porque fatalmente irá pensar que o erro está no programa principal e não no módulo, erro de principiante, mas acontece até com os profissionais).

Só pra saber, é da programação MODULAR que nasce a Programação Orientada a Objetos (P.O.O.). E hoje em dia trabalhamos muito o conceito de reusabilidade de código. Todo código que, potencialmente, possa ser necessário usar em outros programas, é merecedor de virar um módulo.

Mas vamos manter o foco aqui que é a programação estruturada, por enquanto.

Ainda, dentro do pseudocódigo temos tipos de estruturas a serem usadas (essas ocorrem mesmo nos módulos, porque um módulo é módulo para o programa principal mas estrutura para seu próprio código/objetivo).

As principais estruturas são:

  • ESTRUTURA DE DECISÃO
  • ESTRUTURA DE ESCOLHA
  • ESTRUTURA DE REPETIÇÃO – ENQUANTO
  • ESTRUTURA DE REPETIÇÃO – FAÇA/ENQUANTO
  • ESTRUTURA DE REPETIÇÃO – PARA CADA

Nos próximos posts veremos cada uma dessas estruturas. Então até lá!