Simulado de Prova (P2)

 

Este é um simulado de P2 para a disciplina Algoritmos e Técnicas de Programação:


Comece pensando:

-Como processar cada elemento dentro de um vetor?

-Como processar cada elemento de uma matriz?

-Como processar elementos que seguem um determinado critério?


1) Crie uma função em python que receba por parâmetro dois vetores (listas) de números reais; a função deve calcular a chamada distância quadrática de dois vetores. Este cálculo soma os quadrados das diferenças dos valores correspondentes dos dois vetores, ou seja, (A[0] - B[0])² + (A[1] - B[1])² + (A[2] - B[2])² + … + (A[10] - B[10])². Pronto! A assinatura da função é assim: def distanciaQuadratica (A, B):

Exemplo:



0

1

2

3

4

5

6

7

8

9

10




A

0

3

-2

7

9

11

15

0

0

0

0




















0

1

2

3

4

5

6

7

8

9

10




B

0

4

0

7

9

11

15

0

1

0

1





No exemplo acima, o resultado seria: (0-0)² + (3-4)² + (-2-0)² + (7-7)² + (9-9)² + (11-11)² + (15-15)² + (0-0)² + (0-1)² + (0-0)² + (0-1)² = 7

OBS.: USE COMANDOS DE REPETIÇÃO, POIS OS VETORES PODEM SER DE TAMANHO ARBITRÁRIO (O ACIMA É SÓ UM EXEMPLO).


2) Dado um vetor de números inteiros, deseja-se vasculhá-lo em busca do elemento mais próximo possível de um dado número procurado. Crie uma função em python que receba como parâmetros o vetor e o número procurado, e retorne o índice do elemento que mais se aproxima do procurado.

Sua assinatura seria: def procuraAproximada (vet, procurado):

Exemplo:


índices

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14


vet

58

34

29

12

-6

4

15

26

2

8

9

7

4

-2

30



Dado o vetor acima, caso procurasse o número 14, o retorno do método seria 6, isto é, o índice relativo ao elemento 15, que é o que mais se aproxima de 14.

Caso procurasse o 29, o retorno seria 2, pois o próprio número foi achado neste índice.

Caso procurasse o 60, o retorno seria 0, isto é, o índice relativo ao elemento 58, que é o que mais se aproxima de 60.


Dica 1: Talvez o exercício fique facilitado se você criar um vetor auxiliar contendo a diferença, em módulo, do número procurado para cada elemento do vetor original (isso não é obrigatório!!). Para o exemplo acima, caso procurasse o número 14, esse vetor auxiliar ficaria assim:


índices

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14


vetAux

44

20

15

2

20

10

1

12

12

6

5

7

10

16

16



Dica 2: para calcular o módulo de um número, você pode usar a função abs(número) ou criar uma lógica para isso com if/else.


3) Dadas duas sequências (vetores) com n números inteiros entre 0 e 9, interpretadas como dois números inteiros de n algarismos, calcular a sequência de números que representa a soma dos dois inteiros.

Exemplo: n = 8,

1ª sequência (vetor)

8 2 4 3 4 2 5 1

2ª sequência

+ 3 3 7 5 2 3 3 7



1 1 6 1 8 6 5 8 8

O protótipo da função é: def soma (seq1, seq2):

DICA: o vetor resposta terá dimensão N+1 por causa do possível vai-um.


4) Crie uma função que receba um vetor de números reais e retornar a média geométrica dos N elementos do vetor:

A média geométrica dos números reais positivos x0,…,xn-1 é definida como sendo a raiz n-ésima do produto destes números, como segue, ou este produto elevado a 1/n:

O protótipo da função é: def mediaGeometrica ( vet ):

DICA: Não se esqueça de usar repetição (loop)!


5) Crie uma função em python para calcular e retornar a soma dos elementos que não estão na borda de uma matriz. Exemplo: dada a matriz abaixo, a função retornará: 6 + 7 + 10 + 11 = 34.




0

1

2

3



0

1

2

3

4



1

5

6

7

8



2

9

10

11

12



3

13

14

15

16



O protótipo da função é: def somaCentro ( mat ):

Use repetição para criar seu código. Lembre-se que a função deverá funcionar para matrizes de quaisquer tamanhos.


6) Crie uma função em python para calcular e retornar a soma dos elementos da borda de uma matriz. Exemplo: dada a matriz abaixo,




0

1

2

3



0

1

2

3

4



1

5

6

7

8



2

9

10

11

12



3

13

14

15

16



a função retornará: 1 + 2 + 3 + 4 + 5 + 8 + 9 + 12 + 13 + 14 + 15 + 16 = 102.

O protótipo da função é: def somaBorda ( mat ):

Use repetição para criar seu código. Lembre-se que a função deverá funcionar para matrizes de quaisquer tamanhos.


7) Crie uma função em C para calcular e retornar a soma dos elementos da diagonal secundária de uma matriz quadrada, de dimensão arbitrária N, ou seja, ela é NxN. Exemplo:




0

1

2

3



0

1

2

3

4



1

5

6

7

8



2

9

10

11

12



3

13

14

15

16



Para a matriz acima, a função retornará: 4 + 7 + 10 + 13 = 34.

O protótipo da função é: def somaDiagonalSec ( mat ):

Use repetição para criar seu código. Lembre-se que a função deverá funcionar para matrizes de quaisquer tamanhos.


8) Crie uma função para calcular e retornar a soma dos elementos pares de uma matriz que estão em linhas de índices pares. A função deve realizar esta operação para uma matriz de tamanho qualquer (não vale resolver somente para uma matriz pequena, ou seja, USE REPETIÇÕES!!!). Exemplo: dada a matriz abaixo,



0

1

2

3


0

2

7

5

9


1

13

6

2

-1


2

9

4

14

5


3

13

1

5

16



a função retornará: 2 + 4 + 14 = 20. O protótipo da função é: def soma ( mat ):


9) Crie uma função para calcular e retornar a soma dos elementos ímpares de uma matriz que estão em linhas de índices ímpares. A função deve realizar esta operação para uma matriz de tamanho qualquer (não vale resolver somente para uma matriz pequena, ou seja, USE REPETIÇÕES!!!). Exemplo: dada a matriz abaixo,



0

1

2

3


0

2

7

5

9


1

13

6

2

-1


2

9

4

14

5


3

13

1

5

16



a função retornará: 13 + (-1) + 13 + 1 + 5 = 31. O protótipo da função é: def soma ( mat )


10) Crie um programa em Python que leia um número e imprima a tabuada deste número:

Exemplo: De qual número eu mostrarei a tabuada? 7

Tabuada do 7

1 X 7 = 7

2 X 7 = 14

9 X 7 = 63

10 X 7 = 70


11) Crie uma função que receba um valor N e retorne o valor da expressão abaixo:




Dicas: Para N=1 ou menos, o programa calcularia e mostraria simplesmente 1

Para N=3, o programa calcularia e mostraria 1 + 3 = 4

Para N=5, o programa calcularia e mostraria 1 + 3 + 5 = 9

Para N=6 (ou qualquer valor par), o programa calcularia e mostraria até o N-1, ou seja, 1 + 3 + 5 = 9



12) Crie uma função que retorne o quanto dois vetores (recebidos como parâmetro) são idênticos,

com a resposta em porcentagem. Veja os exemplos, para vetores de tamanho N = 5:



Exemplos:



0

1

2

3

4



2)


0

1

2

3

4




A

2

4

3

7

9




C

1

2

3

4

5























0

1

2

3

4





0

1

2

3

4




B

2

4

3

7

9




D

1

7

3

4

8























semelhanca(A, B) = 100





semelhanca(C, D) = 60




No primeiro exemplo acima, os vetores A e B são idênticos 100%, ou seja, dos 5 elementos,

5 são iguais entre eles, considerando as mesmas posições.


No segundo exemplo acima, os vetores C e D são idênticos 60%, ou seja, dos 5 elementos,

3 são iguais entre eles, considerando as mesmas posições.




OBS.: USE COMANDOS DE REPETIÇÃO, POIS OS VETORES PODEM SER DE TAMANHO

 QUALQUER (O ACIMA É SÓ UM EXEMPLO).


13) Crie uma função em Python que inverta uma string, sem usar a função reverseque já está

pronta. Exemplos:


inverter(“ABC”) → “CBA”

inverter(“XYZ”) → “ZYX”



*Gabarito de algumas das questões acima


Comentários

Postagens mais visitadas deste blog

Vídeos do Youtube sobre Ciência de Dados