Buscar

Aula14 - Programação (VBA)

Prévia do material em texto

Introdução à Computação
Para Ciências Humanas
10 semestre de 2017
Renata Wassermann
renata@ime.usp.br
Ordenação: Método Bolha
Marco A. Gerosa 2 IME / USP
Sub ordena_bolha(vet() As Integer, _
                 tam As Integer)
    Dim i As Integer
    Dim j As Integer
    i = 1
    While i < tam
         For j = 1 To tam ­ 1
            If vet(j) > vet(j + 1) Then
                Call troca(vet, j, j + 1)
            End If
         Next
         tam = tam ­ 1
    Wend
End Sub
Método Bolha com Aviso de Troca
Marco A. Gerosa 3 IME / USP
Sub ordena_bolha(vet() As Integer, _
                 tam As Integer)
    Dim j As Integer
    Dim trocou As Boolean
    trocou = True
    While trocou
         trocou = False
         For j = 1 To tam ­ 1
            If vet(j) > vet(j + 1) Then
                Call troca(vet, j, j + 1)
                trocou = True
            End If
         Next
    Wend
End Sub
Ordenação: Selection Sort
Marco A. Gerosa 4 IME / USP
Sub ordena_selection(vet() As Integer, _
                     tam As Integer)
   Dim i As Integer
   Dim j As Integer
   Dim pos As Integer
   i = 1
   While i < tam
        pos = 1
        For j = 1 To tam ­ 1
           If vet(j + 1) > vet(pos) Then: _
               pos = j + 1
        Next
        Call troca(vet, tam, pos)
        tam = tam ­ 1
   Wend
End Sub
posição é inicializada
posição do maior 
valor é guardada
A troca é feita 
uma única vez
Exercício 1
Crie um vetor de inteiros aleatórios e organize-os 
em ordem crescente. Leia da Célula A1 o número 
de elementos n do vetor e depois coloque na linha 
2 os elementos antes da ordenação e na linha 3 
depois de ordenados.
num = Cint(Math.Floor(n * Rnd())) + 1
Marco A. Gerosa 5 IME / USP
Exercício 2
Faça uma macro que calcula o dígito verificador do 
RG, utilizando um vetor para guardar os dígitos 
(considere que a identidade tem no máximo 8 dígitos)
Marco A. Gerosa 6 IME / USP
O DV corresponde ao resto da divisão por 11 da soma ponderada 
dos dígitos com peso 2, 3, 4, 5, 6, 7, 8 e 9, a partir da unidade. 
 
 9 + 16 + 0 + 18 + 0 + 0 + 0 + 2 = 45 →DV=1
Nota: Se o resto for 10, o DV será a letra "X".
1 2 0 3 0 0 0 1
* * * * * * * *
9 8 7 6 5 4 3 2
Exercício 3
Faça uma função que verifica se uma matriz é 
simétrica e uma macro para testá-la.
Marco A. Gerosa 7 IME / USP
	Slide 1
	Ordenação: Método Bolha
	Slide 3
	Slide 4
	Slide 5
	Exercício 3
	Slide 7

Continue navegando