segunda-feira, 3 de março de 2008

Algoritmos II - exemplificando

Anteriormente falamos sobre algoritmos, neste artigo pretendo exemplificar como resolver, em algumas linguagens, alguns deles.

Antes, veremos um pouco mais da parte teórica:

1 - Comentando linhas de um Algoritmo:

Podemos inserir em um Algoritmo comentários para aumentar a compreensão do mesmo, para isso basta que o texto fique entre Chaves (“{}”).

Exemplo:

LER (RAIO); {ENTRADA, recebendo valor para a variável “RAIO”}


2 - Literais:

Valores que devem possuir significado literal para o usuário, portanto o processador não deve processá-los.
Quando queremos exibir uma mensagem para a tela ou impressora ela deve estar contida entre aspas simples, caso contrário, o computador irá identificar a mensagem como variável que não foi definida (Identificador não definido).
Exemplo:
ESCREVER (‘AREA OBTIDA =’, AREA) {COMANDO DE SAÍDA, exibindo o valor da variável “AREA” formatada pela concatenação com o literal ‘AREA OBTIDA =’}


3 - Estruturas de Decisão:

Executa uma seqüência de comandos de acordo com o resultado de um teste. A estrutura de decisão pode ser Simples ou Composta, baseada em um resultado lógico.
As estruturas de decisão também são conhecidas como “desvio condicional”. A partir de uma expressão lógica, testa-se o resultado: Se verdadeiro, segue um fluxo de comandos. Caso falso, segue um outro fluxo alternativo.
Exemplo:
3.1) Estrutura de decisão simples:

Se <<condição >> Então
<<Comando1>>;

3.2) Estrutura de decisão composta:

Se <<condição>> Então
<<ComandoX1>>
Senão
<<ComandoY1>>;

4 - Exemplo de construção de algoritmo: exemplificando o que falamos acima.

Versão 1 - Algoritmo que lê dois números e escreve o maior.

PROGRAMA ACHA_MAIOR;
VAR A, B : INTEIRO;
INICIO
Leia (A);
Leia (B);
SE (A > B) ENTÃO
Escreva(A)
SENÃO
Escreva(B);
FIM.



Versão 2 - Algoritmo que lê dois números e escreve o maior.

PROGRAMA ACHA_MAIOR;
VAR A, B : INTEIRO;
INICIO
{Solicitando a entrada do primeiro valor}
Escreva(‘Digite o primeiro número:’);
Leia (A); {Recebendo na variável “A” o valor digitado}

{Solicitando a entrada do segundo valor}

Escreva(‘Digite o Segundo número:’);
Leia (B); {Recebendo na variável “B” o valor digitado}

{Exibindo mensagem lieral}
Escreva(‘O Maior valor digitado foi: ’)

{testando qual das duas variáveis recebeu o maior valor}
SE (A > B) ENTÃO
Escreva(A);
SENÃO
Escreva(B);
FIM.


5 - Passando o algoritmo para a linguagem de programação Delphi:
Inicie uma nova aplicação no Delphi, selecionado no menu “File” ▶ “New” ▶ “Application”.



Adicione um TButton (da Palheta “Standard”) no Form1. Na Propriedade “Caption” do Form1 digite: Programa ACHA MAIOR.



Na propriedade “Caption” do Button1, digite: Iniciar Programa



Aumente também a largura. Propriedade “width” para 104.
Para acessar as propriedade dos componentes mencionados acima selecione o componente,
no Object Inspector, na aba “Properties” você pode alterar a propriedade desejada.



No evento OnClick do Button1, digite o código abaixo:

procedure TForm1.Button1Click(Sender: TObject);
var
NumA_Zn, NumB_Zn, Zn_Maior: Integer;
StrNumA_Zn, StrNumB_Zn: String;
begin
(*Garantindo que o Button1 não atrapalhe a saída do nosso programa. hehehe ...*)
Button1.Top := 12;
Button1.Left := 12;

(* Início do Algoritmo *)
Self.Canvas.TextOut(12, 120, 'Iniciando o Programa - Estação ZN');

(* Entrada de Dados *)

{A través da função "InputBox" solicito a entrada do valor e atribui o valor
digitado para variável do tipo "String"}
StrNumA_Zn := InputBox('Digite o Primeiro valor que irá ser testado', ' Valor: ',
'0');
StrNumB_Zn := InputBox('Digite o Segundo valor que irá ser testado', ' Valor: ',
'0');

(* Processamento *)
NumA_Zn := StrToInt(StrNumA_Zn); // Convertendo o dado para um tipo númerico
NumB_Zn := StrToInt(StrNumB_Zn); // Convertendo o dado para um tipo númerico

{testando qual das duas variáveis recebeu o maior valor}
if (NumA_Zn > NumB_Zn) then
Zn_Maior := NumA_Zn
else
Zn_Maior := NumB_Zn;

(* Saída *)
Self.Canvas.TextOut(12, 140, Format('O Maior Valor Digitado foi: %d',
[Zn_Maior]));
Self.Canvas.TextOut(12, 160, 'Final do Programa - Estação ZN');

end;





Palheta de Componentes:



Palheta Standard:



Quem é o TButton na Palheta??





6 - Versão em JavaScript:

Você pode codificar o exemplo abaixo no Notepad. Para testar, salve o arquivo com estenção html (.html) e poderá abri-lo no próprio browser.



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> Estação ZN </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
document.write("<br> Iniciando o Programa - Estação ZN - Implementando Algoritmo <br> ");
var NumA_Zn = prompt ("Digite o Primeiro valor que irá ser testado","0");
var NumB_Zn = prompt ("Digite o Segundo valor que irá ser testado","0");

document.write(" *********************** ");

document.write("<br> Primeiro valor: " + NumA_Zn);
document.write("<br> Segundo valor: " + NumB_Zn);

if (NumA_Zn > NumB_Zn){
ZNMaior = NumA_Zn;
}
else {
ZNMaior = NumB_Zn;
};

alert (" O Maior Valor Digitado foi: " + ZNMaior);
document.write("<br> Final do Programa JavaScript -- Estação ZN");
// -->
</script>
</head>
<body>
</body>
</html>




Uma versão em Java do algoritmo, rola?

/*
/*
* Este é um exemplo de implementação
* de uma algoritmo.
* www.estacaozn.blogspot.com
*/

package verificamaiorzn;

import javax.swing.JOptionPane; // Importando pacote de extenção Java API

/**
*
* @author GMottaZn
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String strNum1Zn, strNum2Zn, msgSaida;
int intNum1Zn, intNum2Zn, ZnMaior;
boolean saoIguais;
// Entrada de dados
strNum1Zn = JOptionPane.showInputDialog("Digite o primeiro número");
strNum2Zn = JOptionPane.showInputDialog("Digite o segundo número");

// processamento
intNum1Zn = Integer.parseInt(strNum1Zn); // convertendo de string para integer
intNum2Zn = Integer.parseInt(strNum2Zn); // convertendo de string para integer
// Comparando para encontrar o maior
saoIguais = (intNum1Zn == intNum2Zn);
if (saoIguais){
msgSaida = "Os números são iguais - ";
ZnMaior = intNum1Zn;
}
else {
msgSaida = "O maior número é: ";
if (intNum1Zn > intNum2Zn){
ZnMaior = intNum1Zn;
}
else {
ZnMaior = intNum2Zn;
};
};
// Saída de dados
JOptionPane.showMessageDialog(null, " Estação Zn - " + msgSaida + ZnMaior,
"www.estacaozn.blogspot.com", JOptionPane.INFORMATION_MESSAGE);

// Finaliza programa
System.exit(0);

}
}


Se Você esta procurando uma boa ferramenta para programar para web, uma que seja free , teste o Notepad ++: http://notepad-plus.sourceforge.net/br/site.htm
Dê um confere no Notepad ++.

Uma opção excelente, alternativa também Free, OJEdit é mais do que você imagina, vai ultrapassar suas espectativas: http://www.jedit.org/

  • Syntax highlighting para mais de 70 tipos de arquivos.
  • Suporte para indentação inteligente para códigos Java, C e Python.
  • Suporte a "Regular Expressions".
  • Faz verificação de bracket ("{}", "( )" e "[ ]");
  • Gravação de Macros;

O Felipe tem usado bastante essa ferramenta ultimanente. Ele destacou o suporte a Plugins como um grande diferencial do JEdit. Através desse recurso você pode aumentar a capacidade do editor, adicionando diversas funcionalidades de grande valia no dia a dia de trabalho. Os exemplos vão desde a edição do código fonte até operações como compilação, gerenciamento e edição de arquivos via FTP, integração com CVS, Visual Source Safe, Jakarta Ant, Tomcat e não para por ai, dezenas de outras funcionalidades podem ser incorporadas. Veja users group do JEdit.

Mais sobre JavaScript:
http://en.wikipedia.org/wiki/JavaScript_syntax
www.deitel.com/ResourceCenters/Programming/JavaScript/tabid/1038/Default
No Estação ZN

Nenhum comentário:

Postar um comentário