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

 
BlogBlogs.Com.Br