Curso de Algoritmos - Aulas 1 a 11

Curso de Algoritmos - Aulas 1 a 11

(Parte 1 de 10)

Curso de Algoritmo - Aula I Por: Jorge Luiz E. de Souza ( 2/05/2001 )

Introdução

Olá, comunidade!

Nossa primeira aula será sobre PORTUGOL, uma forma de escrita estruturada, cuja finalidade é: descrever em uma sequência lógica os passos para a resolução de um problema. Um detalhe importante do portugol é que todas as linhas devem conter uma única instrução iniciada por verbos no imperativo.

O que é Algorítmo?

É uma forma estruturada de resolver problemas numa sequência lógica, passo a passo até obter o resultado desejado.

Todo tipo de problema que temos no dia a dia, resolvemos através de algoritmos naturais, que muitas vezes não são nem percebidos como tal.

Um exemplo: Quando você chega em sua casa a noite. O que você faz para entrar em sua casa? Você deve estar pensando: "O que isto tem a ver com programação?". A resposta é: TUDO. Vejamos: Sob o ponto de vista atual (isto é, sem conhecer algoritmos estruturados) você diria:

Pense na sua resposta!

Sob o ponto de vista de algorítmo estruturado:

Abrir o portão Passar para o lado de dentro do terreno Fechar o portão Dirigir-se à porta Pegar a chave da porta Abrir a porta da casa Passar para o lado de dentro da casa Fechar a porta da casa

Pronto! Você está dentro de casa.

Exemplo 1. Sequência entrar em casa

Analisando os passos sequenciais seguidos pelo exemplo 1, vemos que em 8 passos simples podemos demonstrar através de instruções simples e bem definidas, uma SOLUÇÃO GENÉRICA para o PROBLEMA: ENTRAR EM CASA. Isto é, QUALQUER pessoa que olhar para estas

Copyright (C) 1999-2000 Linux Solutions. 1 instruções e seguí-las CONSEGUIRÁ ENTRAR EM CASA. Observe que todo início de linha contém um IMPERATIVO. Não é por acaso!

O computador atende a COMANDOS (instruções diretas que geram uma resposta previsível e objetiva). Então, todas as linhas de um PORTUGOL, linguagem básica para entender os algorítmos devem iniciar com IMPERATIVOS.

Tente descrever EM PORTUGOL (sequência de linhas lógicas para resolver um problema, com linhas iniciadas por imperativos) os seguintes problemas (faça algorítmos contínuos, ignore os problemas mais detalhados. Por enquanto!):

Trocar o pneu de um carro. Levantar demanhã em uma segunda-feira. Dançar ao som de uma música (suponha que o aparelho de som está desligado). Ligar um computador. (se você não sabe! pesquise!) Acender uma luz em um quarto escuro. (Isto pode ser divertido!) Tomar um banho de piscina em um dia muito quente. (Suponha que a piscina está em um clube e você na sua casa). Abrir um programa de computador. (Suponha que o computador já está ligado) Escovar os dentes. Colocar um CD no aparelho de som. Ler um livro.

Conclusão

O PORTUGOL é uma linguagem simples que não possui muitas regras para sua escrita. Por isto é elucidativa a sua utilização. De forma clara, podemos enxergar que a partir de sequências de instruções genéricas podemos criar uma solução para um problema. E esta solução (reutilizável) poderia ser usada quantas vezes quizermos, desde que as condições sejam as mesmas.

Na aula que vem veremos estruturação do pensamento, desvios condicionais e refinamento de código. Até lá! Aguardo críticas e sugestões.

Curso de Algoritmo - Aula I Por: Jorge Luiz E. de Souza ( 05/06/2001 )

Introdução

A aula de hoje é sobre estruturação do pensamento. Em primeiro lugar, estruturação do pensamento nada mais é do que saber definir qual a ordem de precedência entre os comandos a serem executados. Noção muito importante na programação. Isto será útil quando estivermos falando em ESCOPO de variáveis e do próprio código. Boa aula!

Estruturação do pensamento

Até agora, não pensamos em DETALHES, como por exemplo:

•Condições: para fazer algo; isto é, antes de fazer uma coisa, tenho que verificar se outra já foi feita; •Desvio: se uma coisa já foi feita, não faça isto, faça aquilo.

No pensamento estruturado existem FERRAMENTAS que auxiliam a escrita lógica para tais condições, são elas: SE [CONDIÇÃO] ENTÃO [COMANDO|LISTA DE COMANDOS]

Copyright (C) 1999-2000 Linux Solutions. 2

Nota: mais a frente, entraremos em detalhes sobre SINTAXE (forma correta de se escrever comandos).

Exemplo 1: Problema ENTRAR EM CASA, refinado. A instrução: Abrir o portão

Poderíamos REFINAR para:

ENTAO Procurar na bolsa
SE encontrou chave na bolsa então
ENTAO Abrir o portão
SENÃO Desesperar-se você está para
SENÃO Abir o portão

Pegar chave do portão no bolso SE chave não está no bolso fora por tempo indeterminado

Exemplo 2: REFINAMENTO da instrução Abrir Portão do problema ENTRAR EM CASA

Nota: Para ler o algoritmo, entenda que: cada SE tem duas condições a serem TESTADAS, a primeira é o ENTÃO. Caso o ENTÃO SEJA SATISFEITO, isto é, se você optar pela condição do ENTÂO, deve ignorar o SENÃO correspondente do SE do mesmo nível.

Por exemplo: no caso da instrução "SE chave não está no bolso", você deve optar por "Procurar na bolsa" (ENTÃO) a condição SENÃO correspondente seria "Abrir o portão".

"Ai meu Deusdanou-se..."

Nada disso! Entendendo:

A condição estabelecida é: "chave não está no bolso". O ENTÃO correspondente são instruções a serem seguidas caso ela (a condição) seja VERDADEIRA (chave não está no bolso). E O SENÃO correspondente, são instruções a serem seguidas quando ela (a condição) for FALSA, isto é, chave está no bolso. Entendeu?

Creio que com isto, já dá para você ler o resto do Algoritmo.

Com este exemplo, temos dois conceitos novos: DESVIO CONDICIONAL e REFINAMENTO DE CÓDIGO.

Refinamento de código

No pensamento estruturado, existe a preocupação de chegar a um resultado a partir de GENERALIZAÇÃO/ESPECIALIZAÇÃO. Isto é, a partir de uma visão MACRO de um problema, chegar aos detalhes e, enfim, resolver o problema.

Isto é bem mais simples e eficaz do que tentar visualizar todos os detalhes de um problema, a medida que vamos escrevendo o código para resolvê-lo.

Um exemplo:

No refinamento do Exemplo 2, a instrução "Desesperar-se", se pensarmos bem, poderia resultar em "Ligar para a esposa".

ENTAO Procurar na bolsa

O algorítmo ficaria assim: Pegar chave do portão no bolso SE chave não está no bolso Copyright (C) 1999-2000 Linux Solutions. 3

ENTAO Abrir o portão
SENÃO Ligar para a esposa
SENÃO Abir o portão

SE encontrou chave na bolsa então

Ou então:

ENTÃO Ligar para Esposa
SENÃO Desesperar-se

SE você é casado

O algorítmo ficaria assim:

(Parte 1 de 10)

Comentários