Algoritmos – Conceitos, Características e Estruturas –Parte 1
- INTRODUÇÃO -
No estudo da informática o algoritmo e como o alicerce de uma casa, sem ele não se pode construir as paredes e o telhado, ou seja, sem o algoritmo não se pode criar um estudo sistematizado em nenhum campo da informática.
No mundo atual praticamente todas as tarefas podem ser automatizadas, e para isso fazemos o uso de computadores. E os computadores precisam de receberem ordens para funcionarem, daí a necessidade de algoritmos.
Para aprendermos a criar algoritmos não basta estudar ou copiar algoritmos, para se aprender como manipular situações e codificá-las em forma de algoritmo precisamos de escrever e criar algoritmos, pegar exercícios, e praticar.
- DEFINIÇÃO -
O algoritmo se define por uma seqüência lógica de passos que o computador executara fielmente para que se obtenha um resultado satisfatório. Estas seqüências podem ou não ser executadas dependendo do andamento do algoritmo, porém estes passos sempre serão alcançados em algum momento do algoritmo.
- CONCEITO -
O conceito de algoritmo é utilizado em praticamente todas as áreas do conhecimento, mesmo sem utilizar o nome algoritmo. Por exemplo na administração e contabilidade um plano de ação é um algoritmo, pois nele são listados passos para que se chegue a um resultado satisfatório.
Coloquemos isto em nosso dia a dia. Você acaba de acordar e sabe que tem que ir ao trabalho, quais os passos que você executa para que o resultado satisfatório (ir ao trabalho) aconteça.
Vejamos:
1º Passo - Levanta da cama
2º Passo - Vai ao banheiro
3º Passo - Veste a roupa
4º Passo - Sai de casa
Quando dizemos que este passos tem que ser uma seqüência queremos dizer que, este passos tem que ser executados um após o outro, porque ninguém vai ao banheiro pela manhã sem levantar da cama ou ninguém sai de casa primeiro antes de se vestir.
Para o estudo da informática o raciocínio lógico e fundamental, primário e essencial na evolução acadêmica de quem quer seguir este ramo de atividade.
- CARACTERISTICAS -
Todo algoritmo tem por padrão apresentar algumas características básicas:
- Partir de um ponto inicial e chegar a um ponto final;
- Não ser ambíguo (ter dupla interpretação);
- Poder receber dados externos e ser capaz de retornar resultados aos mesmos;
- Ter todas suas etapas alcançáveis em algum momento do programa.
- FORMAS DE REPRESENTAÇÃO -
Podemos representar um algoritmo de 3 formas distintas:
1ª Forma: Descrição narrativa
Fazemos uso da descrição narrativa, quando queremos descrever um algoritmo de forma que o receptor da informação entenda do assunto mesmo não conhecendo de algoritmos, porém neste tipo de descrição temos uma imprecisão e uma falta de confiabilidade no entendimento do algoritmo além de termos um descrição muito grande para dizer pouca coisa.
Exemplo: Dobro de um número
- Digitar um número;
- Gravar em uma variável;
- Pegar o número e multiplicar por 2;
- Gravar o resultado em outra variável;
- Mostrar o resultado da operação.
Obs: O conceito de variável será visto mais adiante neste curso.
2ª Forma: Fluxograma
Desta forma faremos o uso de símbolos universais que nos ajudaram a compreender o que o algoritmo quer dizer. Este é mais utilizado, pois se trata de um padrão mundial, além de termos símbolos dizerem muito mais que palavras, porém este complica-se a medida que o algoritmo cresce. Levando-se em consideração o exemplo anterior temos:
Legenda:
Calculo
Decisão
Entrada
Saída
Inicio/Fim
3ª Forma: Linguagem Algorítmica
Consiste na representação em linguagem de programação. Lembrando que utilizaremos como linguagem de estudo de algoritmos o Turbo Pascal 7.0. Seguindo o mesmo exemplo:
- Código:
Program Calcula_Dobro;
Uses crt;
Var
NUM: integer;
DOBRO: integer;
Begin
Write (‘Digite um número:’);
Read (NUM);
DOBRO:= 2 * NUM;
Write (‘O dobro de ‘, NUM, ‘ e ‘, DOBRO);
Readkey;
End.
(Outro)
- Código:
program Calcula_Dobro;
uses wincrt;
var
num,dobro: integer;
begin
write ('Digite um número:');
read (num);
if num=1
then dobro:=1
else dobro:= 2 * num;
write ('O dobro de ', num, ' e ', dobro);
readkey;
end.
- Linguagens -
Como a visão deste curso e desenvolver futuros programadores, iremos exemplificar aqui as linguagens de programação (baixo e alto nível) para que saibamos como funciona estes tipos de linguagens.
Peguemos como exemplo o seguinte fato. Você esta viajando e de repente o pneu do carro fura e você precisa trocá-lo, já que não tem nenhum posto por perto e você esta viajando sozinho. Qual a seqüência que você realiza para se trocar um pneu.
1 – Desce do carro;
2 - Pega o estepe;
3 – Troca o Pneu;
4 – Volta a viajar;
Com esta seqüência é possivel se trocar o pneu do carro. Porém estamos considerando que a pessoa que ira trocar o pneu sabe como executar esta atividade. Este exemplo nos mostra uma linguagem de alto nível pois com comandos reduzidos já conseguimos executar uma tarefa com resultado satisfatório. Agora iremos exibir o mesmo problema em uma linguagem de baixo nível.
1 – Estacionar o carro no acostamento;
2 – Desligar o carro;
3 – Ligar a pisca alerta;
4 – Retirar o cinto de segurança;
5 – Abrir a porta;
6 – Colocar as pernas para fora do carro;
7 – Sair do veículo;
8 – Abrir o porta malas;
9 – Pegar o triângulo de sinalização;
10 – Montar o triângulo;
11 – Colocar o triângulo no asfalto para fazer a sinalização;
12 – Retirar o macaco do porta malas;
13 – Colocar o macaco ao lado do carro;
14 – Retirar o estepe do porta malas;
15 – Colocar o estepe ao lado do carro;
16 – Colocar o macaco sob o carro;
17 – Girar a manivela para levantar o carro;
18 – Pegar a chave;
19 – Retirar os parafusos;
20 – Retirar o pneu;
21 – Colocar o estepe;
22 – Parafusar o estepe;
23 – Girar a manivela do macaco ao contrario;
24 – Colocar o pneu no porta malas;
25 – Colocar o macaco no porta malas;
26 – Guardar o triângulo;
27 – Fechar o porta malas;
28 – Abrir a porta do carro;
29 – Sentar no banco;
30 – Colocar as pernas para dentro;
31 – Colocar o cinto de segurança;
32 – Ligar o carro;
33 – Continuar a viagem;
Alto Nível
1 – Desce do carro
2 - Pega o estepe
3 - Troca o Pneu
4 – Volta a viajar
Baixo Nível
1 – Desce do carro
1 – Estacionar o carro no acostamento;
2 – Desligar o carro;
3 – Ligar a pisca alerta;
4 – Retirar o cinto de segurança;
5 – Abrir a porta;
6 – Colocar as pernas para fora do carro;
7 – Sair do veículo;
2 - Pega o estepe
8 – Abrir o porta malas;
9 – Pegar o triângulo de sinalização;
10 – Montar o triângulo;
11 – Colocar o triângulo no asfalto para fazer a sinalização;
12 – Retirar o macaco do porta malas;
13 – Colocar o macaco ao lado do carro;
14 – Retirar o estepe do porta malas;
15 – Colocar o estepe ao lado do carro;
3 – Troca o Pneu
16 – Colocar o macaco sob o carro;
17 – Girar a manivela para levantar o carro;
18 – Pegar a chave;
19 – Retirar os parafusos;
20 – Retirar o pneu;
21 – Colocar o estepe;
22 – Parafusar o pneu;
23 – Girar a manivela do macaco ao contrario;
24 – Colocar o pneu no porta malas;
25 – Colocar o macaco no porta malas;
26 – Guardar o triângulo;
27 – Fechar o porta malas;
4 – Volta a viajar
28 – Abrir a porta do carro;
29 – Sentar no banco;
30 – Colocar as pernas para dentro;
31 – Colocar o cinto de segurança;
32 – Ligar o carro;
33 – Continuar a viagem;
Na linguagem de alto nível, o entendimento fica mais fácil, pois um comando em uma linguagem de alto nível corresponde a vários comandos em uma linguagem de baixo nível, porém o programador fica limitado, já que se algum passo contido em um comando de alto nível não pode ser alterado; Por exemplo no comando 4 da linguagem de alto nível “Voltar a viajar” se eu quiser ligar o carro primeiro para depois colocar o cinto de segurança será impossível já que a linguagem de alto nível não me permite, liberdade esta que o programador tem quando programa em linguagem de baixo nível.
Mas visualizando todos os comandos listados tem por objetivo trocar o pneu do carro. Se partirmos do ponto em que o carro esta com o pneu furado e chagar ao final com o problema resolvido, “pneu trocado”, isto quer dizer que meu algoritmo funcionou, tanto em uma linguagem de alto nível quanto uma linguagem de baixo nível.
Mas na prática a linguagem de alto nível simplifica a vida do programador já que vários detalhes da programação são desconsideráveis nesta linguagem. Exemplo: Para se fazer menus no Clipper gastá-se muita programação, já no Delphi e no Visual Basic basta clicar e arrastar, a programação já esta por baixo ou seja linguagem de baixo nível. Toda a programação já esta embutida no Comando Menu do Delphi ou do vb.
- CONCLUSÃO -
Neste tutorial falamos sobre definição e conceito dos algoritmos bem como suas características e formas de representação, além de exemplificarmos linguagens de alto e baixo nível. No próximo tutorial falaremos sobre variáveis, tipos de variáveis e suas definições
Juton e Julio Battisti
Última edição por Juton em Ter Out 04, 2011 10:20 pm, editado 1 vez(es)