Documentos de Académico
Documentos de Profesional
Documentos de Cultura
I. Pesquisa Linear
Dado um vector (array a[0...n-1]), pretende-se saber se um determinado valor X é um dos seu elementos.
Exemplo: int vector [ ] = {10,9,45,6,20,7,3,220; X=25.
1. Elabore um função Pesquisa (), em C, que permita calcular quantas vezes é que a comparação X
== vector[ i ] é executada?
2. Quando o valor X existe repetido no vector, exemplo: int vector2 [ ] = {10,20, 9,6,20,7,3,20};
a) Indicar a posição da primeira ocorrência;
b) Indicar a posição da última ocorrência;
Exemplo:
3. Elabore uma função em C que permita verificar se determinado valor X, dado pelo utilizador
consta do vector ou não?
6. Deverá refazer este exercício, pedindo ao utilizador os valores a carregar no array, pela ordem
que este indicar e proceder de seguida à sua ordenação. Utilize para tal uma das funções
desenvolvidas na secção seguinte (B – Métodos de Ordenação de Arrays).
Objectivo: Neste método percorre-se o vector sequencialmente a partir do segundo elemento e inserem-se
os elementos na posição correcta em relação aos elementos já ordenados, isto é, considerando um sub-
vector ordenado a partir do inicio aonde se vai acrescentando mais um elemento até chegar ao fim do
vector. Para inserir um elemento na sua posição correcta deslocam-se os elementos que são maiores do
que ele.
Para i = 1 até dimensão
Faz
elemento = numeros[ i ]
j=i
Enquanto ((j > 0) e (numeros[ j - 1] > elemento))
Faz
numeros[ j ] = numeros[ j - 1]
j=j-1
Fimfaz
numeros[ j ] = elemento
Fimfaz
Objectivo: Este método consiste em encontrar repetidamente o menor elemento e colocá-lo na sua devida
posição percorrendo o vector a partir dos elementos ainda não ordenados. Selecciona-se o elemento de
menor valor e troca-se pelo primeiro. Faz-se o mesmo com os elementos restantes, executando-se o
processo tantas vezes quanto o número de elementos no vector menos um.
Objectivo: A ideia básica do Bubble Sort é percorrer o vector sequencialmente várias vezes. Em cada
passagem deve comparar cada elemento com o seu sucessor e se os elementos não estão ordenados deve
trocá-los de posição.
Nota: Existem outras formas de trabalhar com arrays multidimencionais em C (“objectos”) bem como outros
métodos de pesquisa e de ordenação de vectores e matrizes, mas esses ficam para mais tarde (em
C#).
/* Exemplo - ordenar nomes num array estático de Uma dimensão utiliza o método de ordenação da
bolha ("Bubble Sort") */
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>