2. Vetores – Estruturas de Dados Homogêneos
1)
Algoritmo Pesquisa;
vet_nomes: Vetor[1..10] de Caracteres;
nome: caracteres;
i: inteiro;
inicio
para i de 1 até 10 faça
Ler(vet_nomes[i]);
fimPara;
Ler(nome);
i = 0;
Enquanto ((i <= 10) E (nome <> vet_nomes[i])) faça
i := i + 1;
fimEnquanto;
Se (i <= 10) Então //saiu do laço porque achou o nome, e não porque chegou a 10
Escrever("ACHEI");
Senão
Escrever("NÃO ACHEI");
FimSe;
Fim.
3. Vetores – Estruturas de Dados Homogêneos
2)
Algoritmo Maior;
Q: Vetor[1..20] de Inteiro;
maior, posicao: inteiro;
Inicio
para i de 1 até 20 faça
Ler(Q[i]);
fimPara;
maior := Q[1];
posicao := 1;
para i de 2 até 20 faça
Se (Q[i] > maior) Então
maior := Q[i];
posicao := i;
FimSe;
fimPara;
Escrever(maior,posicao);
Fim.
4. Vetores – Estruturas de Dados Homogêneos
3)
Algoritmo Maior;
Q: Vetor[1..20] de Inteiro;
menor, posicao: inteiro;
Inicio
para i de 1 até 20 faça
Ler(Q[i]);
fimPara;
menor := Q[1];
posicao := 1;
para i de 2 até 20 faça
Se (Q[i] < menor) Então
menor := Q[i];
posicao := i;
FimSe;
fimPara;
Escrever(menor,posicao);
Fim.
5. Vetores – Estruturas de Dados Homogêneos
4)
Algoritmo Multiplica_Vetor;
A,M: Vetor[1..10] de Inteiro;
int X;
Inicio
para i de 1 até 10 faça
Ler(A[i],M[i]);
fimPara;
Ler(X);
para i de 1 até 10 faça
M[i] = A[i] * X;
Escrever(M[i]);
fimPara;
Fim.
6. Vetores – Estruturas de Dados Homogêneos
5)
Algoritmo Inverso;
vet: Vetor[1..20] de Inteiro;
inicio
para i de 1 até 20 faça
Ler(vet[i]);
fimPara;
{imprimir na tela em ordem inversa}
para i de 20 até 1 faça
{
Escrever(vet[i]);
}
}
7. Vetores – Estruturas de Dados Homogêneos
6)
Algoritmo Temperatura;
temperaturas: Vetor[1..12] de Real;
maior, menor, soma: Real;
mes_maior, mes_menor:inteiro;
Inicio
para i de 1 até 12 faça
Ler(temperaturas[i]);
fimPara;
{ buscar a maior e menor temperaturas, somar as temperaturas }
soma := 0;
mes_maior := 1;
mes_menor := 1;
para i de 1 até 12 faça
soma := soma + temperaturas[i];
Se (temperaturas[i] > maior) Então
maior := temperaturas[i];
mes_maior := i;
FimSe;
Se (temperaturas[i] < menor) Então
menor = temperaturas[i];
mes_menor = i;
FimSe;
FimPara;
Escrever(mes_maior, mes_menor, soma/12);
Fim.
8. Vetores – Estruturas de Dados Homogêneos
7)
static void Main(string[] args)
{
string[] nomes = new string[10];
string[] nomes_ordenados = new string[10];
string menor;
int indice_menor, proximo;
for (int i = 0; i < 10; i++)
{
Console.Write("Digite o " + (i + 1) + "º nome:");
nomes[i] = Console.ReadLine();
// após ler, transformar para letra maiúscula
nomes[i] = nomes[i].ToUpper();
}
9. Vetores – Estruturas de Dados Homogêneos
7) Continuação ...
// carregar o vetor ordenado
proximo = 0;
while (proximo < 10) // enquanto não gravou todos os valores no vetor ordenado
{
// acha o primeiro candidato a menor
indice_menor = 0;
while (nomes[indice_menor] == "")
{
indice_menor++;
}
menor = nomes[indice_menor];
// descobre quem é o menor no momento, apaga o conteúdo deste índice
for (int i = 0; i < 10; i++)
{
if ((nomes[i] != "") && (nomes[i].CompareTo(menor) == -1))
{
menor = nomes[i];
indice_menor = i;
}
}
nomes_ordenados[proximo] = menor;
nomes[indice_menor] = "";
proximo++;
}
for (int i = 0; i < 10; i++)
{
Console.WriteLine(nomes_ordenados[i]);
}
}
10. Vetores – Estruturas de Dados Homogêneos
8)
Algoritmo Comparativo;
V1,V2: Vetor[1..15] de Inteiro;
contador: Inteiro;
Inicio
contador := 0;
para i de 1 até 15 faça
Ler(V1[i],V2[i]);
se (V1[i] = V2[i]) então
contador := contador + 1;
fimSe;
fimPara;
Escrever(contador);
Fim.
11. Vetores – Estruturas de Dados Homogêneos
9)
Algoritmo Procura;
vet: Vetor[1..30] de Inteiro;
contador, numero:inteiro;
Inicio
Para i de 1 até 30 faça
Ler(vet[i]);
FimPara;
contador := 0;
Ler(numero);
para i de 1 até 30 faça
Se (vet[i] = numero) Então
contador := contador + 1;
FimSe;
FimPara;
Escrever(contador);
Fim.
12. Vetores – Estruturas de Dados Homogêneos
10)
Algoritmo Ordenar;
vet: Vetor[1..10] de Inteiro;
i1, i2, aux, posicao_menor: Inteiro;
Inicio
para i de 1 até 10 faça
Ler(vet[i]);
fimPara;
{ ordenar o vetor }
para i1 de 1 até 10 faça
posicao_menor = i1; { descobrir onde está o menor número da posição i1 pra frente }
para i2 de i1 até 10 faça
Se (vet[i2] < vet[posicao_menor]) Então
posicao_menor = i2;
fimSe;
FimPara;
{ posicao_menor indica o índice do menor do vetor de i1 pra frente }
{ trocar o valor que está em posicao_menor com o valor que está em i1 }
Se (i1 <> posicao_menor) Então
aux = vet[i1];
vet[i1] = vet[posicao_menor];
vet[posicao_menor] = aux;
FimSe;
{ à medida em que i1 é incrementado, o vetor vai ficando ordenado de i1 pra trás }
FimPara;
para i de 1 até 10 faça
{
Escrever(vet[i]);
}
}
13. Vetores – Estruturas de Dados Homogêneos
Exercícios 11 ao 14, sobre matrizes,
serão feitos em sala de aula;