Vous êtes sur la page 1sur 1

7.

5 Escreva uma funo int min_vet(float v[], int n) receba um vetor e retorne o ndice
do menor elemento deste vetor.
7.6 Escreva uma funo int remove_dup(float v[], int n) receba um vetor e verifique a
existncia de elementos duplicados. Caso no existam elementos duplicados retorne 0. Caso
existam, remova estes elementos (deixando apenas um) e retorne o nmero de elementos removidos.
7.7 Escreva uma funo void insert(float v[], int n, float valor, int pos)
que faa a insero de valor na posio pos do vetor v, deslocando os demais elementos.
7.8 Transforme o programa do exemplo e0705.cpp em uma funo void ordem(int v, int
n) que ordene os elementos de um vetor v de n elementos inteiros.
7.9 Escreva uma funo int merge(float r[], float s[], float v[], int n, int
m) receba um vetor r de n elementos e outro vetor s de m elementos e construa um vetor v com os
elementos de r e s, ordenado e no duplicado. A funo deve retornar o tamanho do vetor v
construdo. Sugesto: Utilize as funes dos exerccios 7.6, 7.7 e 7.8.
7.10 A funo do exerccio 7.9 pode ser entendida como uma funo que retorna a unio entre dois
conjuntos. Escreva uma funo int intersec(float r[], float s[], float v[],
int n, int m) que construa um vetor v com a interseo entre r e s, ordenados. A funo
deve retornar o tamanho do vetor v construdo.
7.11 Escreva uma funo void desordem(int v, int n) que desordene os elementos de um
vetor v (no necessariamente ordenado) de n elementos inteiros. Sugesto: use o seguinte algoritmo:
para i de n-1 at 0 faa
j valor aleatrio entre 0 e i
v[i] v[j]
fim faa
Observao: Esta rotina pode ser usada para simular o processo de embaralhar as cartas de um
baralho.
7.12 Escreva uma funo int find(char v[], char t[], int m, int n) que receba um
vetor v de m elementos e um vetor t de n elementos (n < m). Esta funo deve verificar a
ocorrncia do padro t em v ou no. Se houver, deve retornar a posio inicial da primeira
ocorrncia. Por exemplo: se v={As bananas do Panam so bacanas} e p={anas}
deve retornar 6. Caso no haja ocorrncia, retorne -1. Observao: Algoritmos como esses so
usados em editores de texto4.
n

r r
7.13 O produto escalar entre dois vetores pode ser definido como: e = u v = ui v i , onde ui e vi so
5

i=0

os elementos do vetor. Escreva uma funo float prod_esc(float u, float v, int


n) que receba dois vetores u e v de n elementos reais e retorne o valor do produto escalar entre eles.
7.14 O cdigo Morse foi muito usado no tempo do telgrafo para transmitir mensagens. Neste sistema
cada smbolo (letra, numero ou sinal de pontuao) enviado por fio em uma serie de pulsos
eltricos curtos ou longos (pontos ou traos) conforme a tabela abaixo:
a .b -...
c -.-.
d -..
e .
f ..-.
g --.
h ....
i ..
j .--k -.l .-..
m -n -.
o --p .--.
q --.r .-.
s ...
t u ..v ...w .-x -..4
5

Ver o algoritmo de Knuth-Morris-Pratt em SMITH (op. Cit.), p 294


Ver SPIEGEL, M. R., Anlise Vetorial, So Paulo: McGraw-Hill. 1976, p. 23.
v

Vous aimerez peut-être aussi