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.

Imagen

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 = registro
nome: literal
nota: vetor [1..3] de reais
media: real
Fim_registro

Declare alunos: vetor [1..20] de aluno
aux: aluno
i, 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.

Imagen
Imagen
Imagen
Imagen
Imagen
Imagen
Imagen

Entradas relacionadas: