Programação @ Informática Web
UC 11095 - Ficha 6
Universidade da Beira Interior, 2015/2016
Exercícios — Funções e Arrays
Sempre que nesta ficha seja pedido para criar/escrever/fazer um programa, significa que queremos que
seja implementado um programa em linguagem Java.
1.
Pretendemos criar um programa para calcular o coseno do ângulo formado por dois vetores. Esta
função recebe dois vetores de dimensão n e devolve como resultado um valor real em [-1, 1], sendo
que: 1 significa que os vetores têm a mesma direção; -1 significa que estes têm direções opostas; 0
significa que os vetores são perpendiculares. A função define-se da seguinte forma:
cos(⃗
u ,⃗v )=
⃗⋅⃗v
u
‖⃗
u‖∗‖⃗v‖
Comece por criar uma função para o cálculo da norma e outra para o cálculo do produto interno.
Depois crie uma função (double) cosAngulo(double[] u, double v[]). Experimente esta função, com
diferentes vetores.
2.
Escreva uma função para calcular o máximo divisor comum entre dois números inteiros.
3.
Escreva uma função que verifique se um inteiro positivo é um número primo.
4.
Escreva um programa que apresente os números primos entre
valores a, b, são pedidos ao utilizador.
5.
Sabe-se que devem existir números inteiros positivos, a ≤ b ≤ 1000, de tal modo que a o resultado
da expressão mostrada a seguir é também um número inteiro. Escreva um programa para descobrir
todos esse números.
2
2
a e b, usando a função anterior. Os
a +b +1
a∗b
6.
Um método numérico rápido para o cálculo da raiz quadrada de um número x consiste em utilizar o
seguinte processo iterativo:
1
x
y n= ( y n−1 +
)
2
y n−1
√
podendo
y 0 ser uma aproximação grosseira a
x , por exemplo y 0← x /2 . Escreva uma
função para calcular a raiz quadrada por este processo. Não esquecer que o processo para quando
y n− y n−1< erro , sendo este erro introduzido pelo utilizador.
7.
Escreva a função int[] matrixLinha(int i, int[][] A) {...} que devolve um array com a
linha i da matriz A. De igual modo, crie uma função para ler a coluna j de uma matriz.
8.
Escreva a função boolean matrixMultiplicavel(int[][] A, int[][] B)
matrizes são ou não multiplicáveis.
9.
Usando as funções de 6 e 7, crie uma função para multiplicar duas matrizes de números inteiros.
Teste a função criando um programa com pelo menos três matrizes pré-inseridas. Duas destas
devem obviamente ser multiplicáveis. A multiplicação de uma linha por uma coluna deve ser feita
usando a função do produto interno, implementada no exercício 1.
que verifica se duas
10. Altere o programa anterior, de modo que as duas matrizes multiplicáveis sejam carregadas a partir
de dois ficheiros: “A.txt” e “B.txt”. A matriz produto deve ser gravada no ficheiro “AB.txt”.
UBI/DI/IW/Programação — 26 de Novembro de 2015
Download

Ficha 6 - Departamento de Informática da Universidade da Beira