Exercícios de Algoritmos: Vetores e Método da Bolha
Classificado em Computação
Escrito em em
português com um tamanho de 690,5 KB
Método da Bolha e Manipulação de Vetores
Exercício 1: Manipulação de Vetores em Pascal
1)a) Faça um programa que preencha um vetor de 50 posições com números aleatórios entre 0 e 100. Para gerar números aleatórios em Pascal, use a função random(100). Depois de ter preenchido o vetor, exiba-o na tela de forma horizontal, usando caracteres para separar os elementos.
Ex.: [25, 98, 32, 66, ...]
1)b) Complemente o programa acima identificando:
- Qual o maior valor presente no vetor;
- Qual o menor valor presente no vetor;
- Qual a média aritmética dos elementos do vetor.
1)c) Complemente o programa 1)a) mostrando o vetor em ordem crescente de índice e depois em ordem decrescente de índice.
Exercício 2: Pesquisa e Alteração de Dados
2) Faça um programa que leia 10 valores inteiros diferentes e armazene-os em um vetor. Depois, faça uma pesquisa neste vetor identificando:
- O maior valor e o seu índice (posição no vetor);
- O menor valor e o seu índice (posição no vetor).
2)a) Complemente o programa acima perguntando ao usuário se ele deseja alterar alguma das posições do vetor. Se ele desejar, solicite o índice do elemento a ser alterado e o novo valor. Antes de alterar, exiba o vetor inteiro e o elemento que será modificado. Depois de alterar, exiba o vetor atualizado. Após isso, o programa deve executar novamente os cálculos do maior e menor valor.
PROGRAM EXE3;
USES CRT;
VAR vet: ARRAY[1..50] OF INTEGER;
i, j, aux, achou, soma, maior, i_maior, menor, i_menor: INTEGER;
BEGIN
randomize;
CLRSCR;
soma:=0;
achou:=0;
maior:=0;
menor:=0;
FOR i:=1 TO 50 DO
BEGIN
vet[i]:=random(100);
soma:=soma+vet[i];
END;
maior:=vet[1];
menor:=vet[1];
for i:=2 to 50 do
begin
if vet[i] > maior then
begin
maior:=vet[i];
i_maior:=i;
end;
if vet[i] < menor then
begin
menor:=vet[i];
i_menor:=i;
end;
end;
WRITE('[', vet[1]);
FOR i:=2 TO 50 DO
BEGIN
WRITE(', ', vet[i]);
END;
WRITELN(']');
WRITELN('');
WRITELN('Média dos elementos do vetor: ', (soma/50):4:2);
WRITELN('Soma dos elementos do vetor: ', soma);
WRITELN('Maior elemento do vetor: ', maior, ' na posição ', i_maior);
WRITELN('Menor elemento do vetor: ', menor, ' na posição ', i_menor);
WRITELN;
WRITELN('');
WRITELN('Vetor c/ índice crescente');
FOR i:=1 TO 50 DO WRITE(vet[i], ' ');
WRITELN('***');
WRITELN('Vetor c/ índice decrescente');
FOR i:=50 DOWNTO 1 DO WRITE(vet[i], ' ');
READLN;
END.
Exercício 3: Registro e Ordenação (Bubble Sort)
Faça um registro utilizando o método da bolha que contenha o nome de 20 alunos, 3 notas e suas médias.
Algoritmo Registro
Tipo aluno = registronome: literalnota: vetor [1..3] de reaismedia: realFim_registro
Declare alunos: vetor [1..20] de alunoaux: alunoi, j: inteiro
Início
Para i ← 1 até 20 faça
Início
Escreva ("Escreva o nome do aluno")
Leia (alunos[i].nome)
Escreva ("Escreva a nota 1:")
Leia (alunos[i].nota[1])
Escreva ("Escreva a nota 2:")
Leia (alunos[i].nota[2])
Escreva ("Escreva a nota 3:")
Leia (alunos[i].nota[3])
Alunos[i].media ← (alunos[i].nota[1] + alunos[i].nota[2] + alunos[i].nota[3])/3
Fim_para
Para i ← 19 até 1 faça
Para j ← 1 até i faça
Se (alunos[j].media > alunos[j+1].media) então
Início
Aux ← alunos[j]
alunos[j] ← alunos[j+1]
alunos[j+1] ← aux
Fim_se
Para i ← 1 até 20 faça
Escreva (alunos[i].nome, alunos[i].media)
Leia
Fim.