Linguagens e Ambientes de Programação (2022/2023)



Prática 10

Formulários HTML com JavaScript. Exercícios de 48 a 50.



  • 48 - Inspire-se no "Exemplo 1" da aula teórica 19 para produzir um formulário que permita ao utilizador testar se um número é primo. Na caixa da resposta deve aparecer a mensagem "Is a prime number" ou "Not a prime number". A função booleana que efetua o teste de primalidade é para escrever em JavaScript. Se tem dúvidas sobre se o número 1 é ou não primo, veja na Wikipédia.

    Ajuda: Comece por copiar o "Exemplo 1" da aula teórica 19 para dentro dum ficheiro chamado "ex48.html". Depois abra este ficheiro num browser e teste. Finalmente, modifique o ficheiro "ex48.html" de acordo com o que se pede neste enunciado. Por favor, separe a parte lógica do programa (a função isPrime: int -> bool), da parte de interação com o ambiente envolvente (função runForm : Form -> void).

    Depuração: Se existir algum erro no código JavaScript, a execução do programa bloqueia e nada mais acontece. Para aceder às mensagens de diagnóstico, é preciso abrir a "consola" do JavaScript dentro do browser. Na maioria dos browsers, isso pode ser feito usando a tecla F12 ou clicando na janela do browser com o botão da direita e escolhendo o item "Inspect". Depois, no painel seleciona-se o tab "Console". Ao testar a página Web com a consola Javascript aberta, as mensagens de erro tornam-se visíveis. (Se for utilizador do Safari, precisa primeiro de ativar o menu "Programação" em "Preferências > Avançadas", último item.)


  • 49 - Inspire-se no "Exemplo 3" da aula teórica 19 para criar um formulário para fazer pesquisas na WEB e para fazer traduções. O formulário deve ter uma única caixa de texto onde o utilizador introduz a string em Inglês a pesquisar ou a traduzir. Além disso deverá ter diversos botões para permitir que a pesquisa/tradução possa ser efetuada de forma flexível em diferentes sites da Web. Veja a imagem abaixo.

    Para pesquisar no Google, basta usar o prefixo "http://www.google.com/search?q=" e acrescentar o texto a pesquisar. Algo de semelhante se aplica aos outros sites, ou seja, para cada site há um prefixo diferente - tente descobrir esse prefixo. Para simplificar, o mais prático é chamar em cada botão a função runForm com dois argumentos: o primeiro argumento é a form, o segundo argumento é o prefixo associado ao site.

    As páginas WEB a considerar são as abaixo. Tente descobrir quais os prefixos a usar na pesquisa.

    As línguas para traduzir são as que estão abaixo e, neste caso, oferecemos já os prefixos prontos a usar.


  • 50 - O algoritmo mais antigo para determinar números primos chama-se "Crivo de Eratóstenes" e foi inventado há cerca de 2300 anos. O algoritmo costuma ser apresentado da seguinte forma: Inspire-se no "Exemplo 1" da aula teórica 19 para produzir um formulário que permita ao utilizador indicar um número N para obter todos os números primos menores ou iguais a N. Na caixa da resposta, os números primos devem aparecer separados por vírgulas.

    Ajuda: A parte lógica do problema deve ser programada numa função que recebe um inteiro e retorna um array de inteiros. Dentro da função, use um array de booleanos para implementar o crivo. Para criar o resultado da função, comece por definir um array vazio "let res = [] ;" e vá acrescentando os números primos usando "res.push(n) ;".


  • EXTRA - Leia os guiões de duas atividades da ExpoFCT que envolvem a criação de duas páginas Web dinâmicas. São dois excelentes exercícios, úteis para a fase corrente de LAP. Além disso, são bastante divertidos de executar.

    Repositório do código: https://bitbucket.org/cienciavivadifct/cienciavivadifct.bitbucket.io.



    Vídeos antigos

    Estes vídeos poderão estar um pouco desatualizados, pois foram feitos no contexto duma edição anterior do LAP. Contudo, partes dos vídeos poderão continuar a ter alguma utilidade.

    Nota: Esta aula prática foi gravada no ano letivo de 2019/20, com a designação de aula prática 11.

    (lap prática 10 parte2)