(A10) LabMM3 - JavaScript - Subalgoritmos

674 views
611 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
674
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
100
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

(A10) LabMM3 - JavaScript - Subalgoritmos

  1. 1. JavaScript: SubalgoritmosCarlos SantosLabMM 3 - NTC - DeCA - UAAula 10, 19-10-2012
  2. 2. Subalgoritmos• Porque não devemos repetir o mesmo algoritmo/código em diferentes locais do programa? • quantidade de código escrito aumenta; • alterações ao algoritmo implicam uma manutenção mais complexa.• Porque é uma boa prática centralizar rotinas em subalgoritmos? • cada algoritmo só é escrito uma vez; • diminui a dimensão da aplicação; • facilita operações de alteração e/ou manutenção do código; • pode minimizar alguns erros de programação.
  3. 3. Subalgoritmos - O que são?• Subalgoritmos são algoritmos dentro de algoritmos que compreendem um conjunto de instruções dedicadas à resolução de uma tarefa ou problema. • são identificados por um nome único que é definido na sua declaração; • são invocados através do seu nome único;• Conceptualmente, podem-se distinguir dois tipos de subalgoritmos: • procedimentos: definem um conjunto de instruções a executar; • funções: definem um conjunto de instruções a executar e retornam um valor final.
  4. 4. Subalgoritmos: declaração em Javascript identificador único lista de parâmetros necessários do subalgoritmo/ para a execução do subalgoritmo/ função função (pode não existir) function nomeFunção ([arg0, arg1,..., argN]) { // código a executar [return valor;] } valor a retornar pela função (opcional)
  5. 5. Subalgoritmos: ordem de execução
  6. 6. Subalgoritmos: caixa preta! invocação subalgoritmo retorno da execução
  7. 7. Subalgoritmos e estratégias de programação• Sem recurso a subalgoritmos – Programação convencional linear • Cada processo é executado após o anterior; • Não se distinguem alterações à linearidade do fluxo exceto pela utilização de estruturas de decisão e repetição.• Com recurso a subalgoritmos – Programação estruturada ou modular • Programação por módulos baseada na divisão do problema em sub- problemas; • Cada módulo pensado para invocação a partir de múltiplos locais do programa.
  8. 8. Subalgoritmos: mais quais? A aplicação dos subalgoritmos é facilitada se adotada a estratégia Top- Down. • O programador deve: • Identificar as principais tarefas do programa; • Desenvolver o programa principal e os métodos de controlo das sub- rotinas; • Desenvolver os algoritmos para as sub-rotinas: • Identificar o nível de detalhe e divisão em sub-rotinas (ex. rotinas só para a entrada de dados, ...) • Validar a execução; • Otimizar para reutilização; • Qual a possibilidade de divisão de tarefas entre programadores?
  9. 9. Subalgoritmos: exemplo
  10. 10. Tipos de subalgoritmos• Intrínsecos • nativos da própria linguagem de programação.• Extrínsecos • criados pelo programador• NOTA: as frameworks disponibilizam bibliotecas de funções que permitem ampliar as funções nativas de uma linguagem de programação.• NOTA 2: apesar das diferenças conceptuais, a partir deste ponto irei utilizar apenas a designação “função” para todos os tipos de subalgoritmos.
  11. 11. Funções: exemplo 1 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Funções: Exemplo 1</title> <script language="javascript" type="application/javascript"> <!-- function helloWorld() //Declaração da função { alert("Hello World!"); } //--> </script> </head> <body> <script language="javascript" type="application/javascript"> helloWorld(); //Invocação da função </script> </body> </html>
  12. 12. Como invocar• Uma instrução direta no código • helloWorld();• Associar a um evento • onload="iniciarQuadroJogo(); //evento de sistema • onclick="clicarObjeto(); //eventos de ações do utilizador • timerID = setInterval(“limparQuadroJogo()”, 2000); //eventos periódicos gerados por timers • clearInterval(timerID); //para terminar com um timer específico• Callback • uma função é invocada assincronamente quando uma determinada operação terminar...
  13. 13. JavaScript: Subalgoritmos, parâmetros evisibilidadeCarlos SantosLabMM 3 - NTC - DeCA - UAAula 10, 19-10-2012
  14. 14. Parâmetros de uma função• Parâmetros de entrada • definem o “protocolo” de comunicação com uma função, ou seja, explicitam os dados que a função precisa para que possa atingir o seu objetivo; • não há um limite formal ao número de parâmetros de uma função; • na declaração são separados por vírgula; • podem ser de qualquer tipo de dados.• Parâmetro de saída • é o valor devolvido pela função no final da sua execução; • return valorDevolvido; • após um return, o código seguinte da função não é executado!
  15. 15. Funções: exemplo 2 <head> <script language="javascript" type="application/javascript"> function helloWorld() //Declaração da função { return true; //Qual o resultado da execução desta função? alert("Hello World!"); } </script> </head> <body> <script language="javascript" type="application/javascript"> helloWorld(); </script> </body>
  16. 16. Funções: exemplo 3 <head> <script language="javascript" type="application/javascript"> function helloPeople(name) //Declaração da função { alert(name); } </script> </head> <body> <script language="javascript" type="application/javascript"> helloPeople(“Manel”); </script> </body>
  17. 17. Parâmetros: como funcionam? // Na invocação das funções temos valores, // ou seja, a lista dos valores que queremos passar para a função nomeFunção (valor0, valor1,..., valorN); // Na declaração da função definimos os parâmetros. // Na sua execução, os parâmetros são transformados em variáveis da função. // Cada parâmetro é inicializado com o valor passado na respetiva posição. function nomeFunção(param0, param1,..., paramN) { // código da função // por exemplo, aqui, “param0” é uma variável cujo valor inicial é “valor0” }
  18. 18. Funções: exemplo 3 - passagem de parâmetros <head> <script language="javascript" type="application/javascript"> function helloPeople(name) //Declaração da função { alert(name); } nesta invocação da função, ao parâmetro </script> “name” é atribuído o valor inicial “Manel” </head> <body> <script language="javascript" type="application/javascript"> helloPeople(“Manel”); </script> </body>
  19. 19. Funções: exemplo 4 - qual o resultado? <head> <script language="javascript" type="application/javascript"> function incValores(x, y) //Declaração da função { x++; y++; alert(x + “ “ + y); // ?? } </script> </head> <body> <script language="javascript" type="application/javascript"> var a = 4; var b = 8; alert(a + “ “ + b); // ?? incValores(a, b); alert(a + “ “ + b); // ?? </script> </body>

×