quinta-feira, 1 de fevereiro de 2007

2 - DESENVOLVENDO ALGORITMOS

Mais um da série ...


2.1. PSEUDOCÓDIGO

Os algoritmos são descritos em uma linguagem chamada pseudocódigo. Este nome é uma alusão à posterior implementação em uma linguagem de programação, ou seja, quando formos programar em uma linguagem, por exemplo Visual Basic, estaremos gerando código em Visual Basic. Por isso os algoritmos são independentes das linguagens de programação. Ao contrário de uma linguagem de programação não existe um formalismo rígido de como deve ser escrito o algoritmo.

O algoritmo deve ser fácil de se interpretar e fácil de codificar. Ou seja, ele deve ser o intermediário entre a linguagem falada e a linguagem de programação.


2.2. REGRAS PARA A CONSTRUÇÃO DO ALGORÍTMO

Para escrever um algoritmo precisamos descrever a seqüência de instruções, de maneira simples e objetiva. Para isso utilizaremos algumas técnicas:

-Usar somente um verbo por frase
-Imaginar que você está desenvolvendo um algoritmo para pessoas que não trabalham com informática
-Usar frases curtas e simples
-Ser objetivo
-Procurar usar palavras que não tenham sentido dúbio

2.3. FASES

Ok, no parágrafo anterior vimos que ALGORITMO é uma seqüência lógica de instruções que podem ser executadas.

É importante ressaltar que qualquer tarefa que siga determinado padrão pode ser descrita por um algoritmo, como por exemplo:

COMO FAZER PARA ESTACIONAR O CARRO

ou então

CALCULAR A MÉDIA PARA APROVAÇÃO DOS ALUNOS NO CURSO DE INFORMÁTICA

Entretanto, ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em três fases fundamentais.

ENTRADA ----> PROCESSAMENTO ---> SAÍDA

ENTRADA: São os dados de entrada do algoritmo.
PROCESSAMENTO: São os procedimentos usados para chegar ao resultado final.
SAÍDA: São os dados já processados.

2.4. EXEMPLO DE ALGORÍTMO

Imagine o seguinte problema: Calcular a média final dos alunos da 3 Série. Os alunos realizarão quatro provas: P1, P2, P3 e P4.

Onde:

Média Final = (P1 + P2 + P3 + P4) / 4

Para montar o algoritmo proposto, faremos três perguntas:

a) Quais são os dados de entrada?

R: Os dados de entrada são P1, P2, P3 e P4

b) Qual será o processamento a ser utilizado?

R: O procedimento será somar todos os dados de entrada e dividi-los por 4 (quatro)

(P1 + P2 + P3 + P4) / 4

c) Quais serão os dados de saída?

R: O dado de saída será a média final


Algoritmo


Receba a nota da prova1
Receba a nota de prova2
Receba a nota de prova3
Receba a nota da prova4
Some todas as notas e divida o resultado por 4
Mostre o resultado da divisão



Exemplo em Pseudocódigo:

PROGRAMA MEDIA_FINAL;

VAR NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: INTEIRO;
NOME : CARACTERE [35];

INICIO

LER (NOME);
LER (NOTA1, NOTA2, NOTA3, NOTA4);
MEDIA := (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4;
ESCREVER (NOME, MEDIA);

FIM.

Exemplo em Pascal

Program media_final;

uses wincrt; {faz uso da biblioteca wincrt, que executa o programa em janela no windows}

{Declaração de variáveis}
var

nota1, nota2, nota3, nota4, media:real; {variaveis do tipo real, admitem casas decimais}
nome: string[30]; {cadeia de caracteres}

Begin {Principal}

write('Entre com o nome do aluno: '); {escreve na tela}
readln(nome); {le a sequencia de caracteres e pula pra linha de baixo}

write('Entre com as 4 notas do aluno: '); {escreve na tela}
readln(nota1, nota2, nota3, nota4); {le as 4 notas, separadas por espaços e pula linha}

media:= (nota1 + nota2 + nota3 + nota4) / 4; {calcula a media e atribui valor à variavel media}

writeln('O aluno ',nome,' obteve media ',media:2:2); {escreve na tela}
{o valor de media tera 2 casa antes e 2 casa após o ponto}

writeln('');
write('Aperte qualquer tecla para sair.');

readkey; {espera qualquer tecla ser apertada}
donewincrt; {fecha janela}


End. {Principal}