Upload
ngotuyen
View
218
Download
4
Embed Size (px)
Citation preview
Resolução ficha de trabalho VBA nº. 8 1
Resolução de exercícios da ficha de trabalho nº. 8 de VBA
Option Explicit 'Exercicio 1 Sub hipotenusa() Dim cat1 As Single Dim cat2 As Single Dim hip As Single
cat1 = val(InputBox("Escreva o valor do cateto 1:", "Cateto 1")) cat2 = val(InputBox(val("Escreva o valor do cateto 2:", "Cateto 2")) hip = Sqr(cat1 ^ 2 + cat2 ^ 2) MsgBox "A medida da hipotenusa é : " & hip
End Sub 'Exercicio 2 Sub Dobro_triplo() Dim num As Integer
num = val(InputBox("Escreva um número inteiro positivo", "Número")) If num > 100 Then
MsgBox " Calculo do dobro: " & num * 2 Else
MsgBox " Calculo do triplo: " & num * 3 End If
End Sub 'Exercicio 3 Sub maior_tres() Dim a As Integer, b As Integer, c As Integer Dim maior As Integer
a = val(InputBox("Escreva um número inteiro positivo", "Número a")) b = val(InputBox("Escreva um número inteiro positivo", "Número b")) c = val(InputBox("Escreva um número inteiro positivo", "Número c")) maior = a If maior < b Then maior = b If maior < c Then maior = c MsgBox " O maior é: " & maior
End Sub 'Exercicio 4 Sub nomes() Dim p1 As String Dim p2 As String
p1 = InputBox("Escreva o primeiro nome:", "Primeiro nome") p2 = InputBox("Escreva o último nome:", "Último nome") MsgBox "Trocar os nomes: " & p2 & " " & p1
End Sub
Resolução ficha de trabalho VBA nº. 8 2
'Exercicio 5 Sub numeros_linhas() Dim n1 As Integer Dim n2 As Integer
n1 = cint(InputBox("Escreva um número inteiro:", "Número 1")) n2 = cint(InputBox("Escreva outro número inteiro:", "Número 2")) MsgBox "Escrever os números em linhas separadas: " & Chr(13) & n1 & Chr(13) & n2
End Sub 'Exercicio 6 Sub par_impar() Dim n As Integer
n = cint(InputBox("Escreva um número inteiro positivo", "Número")) If (n Mod 2) = 0 Then
MsgBox "O número " & n & " é par" Else
MsgBox "O número " & n & " é ímpar" End If
End Sub 'Exercício 7 Function f(x As Single) As Single
If x <> 0 Then f = Sin(x) / x
Else f = 1
End If End Function Sub funcao() Dim x As Single
x = val(InputBox("Escreva um número para calcular a funçao f(x)", "Número"))
MsgBox "O resultado de f(“ &x &”) é " & f(x) End Sub 'Exercicio 8 Sub soma_n() Dim num As Integer Dim cont As Integer Dim soma As Integer
num = cint(InputBox("Escreva o limite para calcular a soma:")) cont = 0 soma = 0 If num > 0 Then
Do cont = cont + 1 soma = soma + cont
Loop Until (cont = num) Else
soma = 0 End If MsgBox "A soma dos nuemros inteiros ate " & num & " é " & soma
End Sub 'Exercicio 9 Sub quadrados_x1_x2() Dim x1 As Integer Dim x2 As Integer Dim cont As Integer
x1 = val(InputBox("escreva um valor inicial: ")) x2 = val(InputBox("escreva um valor final: "))
Resolução ficha de trabalho VBA nº. 8 3
For cont = x1 To x2 MsgBox "O quadrado de " & cont & " : " & cont ^ 2
Next cont End Sub 'Exercicio 10 Sub soma_impares() Dim num As Integer Dim i As Integer, cont As Integer Dim soma As Integer
cont = 0 soma = 0 Do
num = cint(InputBox("escreva um valor inteiro positivo: negativo para terminar")) If num > 0 Then
If (num Mod 2) <> 0 Then soma = soma + num i = i + 1 cont = cont + 1
Else soma = soma cont = cont + 1
End If End If
Loop Until (num < 0) MsgBox "introduziu " & cont & " numeros" MsgBox "introduziu " & i & " numeros impares" MsgBox "a soma dos numeros ímpares é " & soma
End Sub 'Exercicio 11 Sub potencia() Dim exp As Integer, cont As Integer Dim base As Single, pot As Single
base = val(InputBox("Indique a base:")) exp = val(InputBox("Indique o expoente:")) pot = 1 For cont = 1 To exp
pot = pot * base Next cont MsgBox "A potencia de " & base & "^" & exp & " é: " & pot
End Sub
Resolução ficha de trabalho VBA nº. 8 4
'outra versao para o exercicio 11 Function calc_pot(base As Single, exp As Integer) As Single Dim cont As Integer
calc_pot = 1 For cont = 1 To exp
calc_pot = calc_pot * base Next cont
End Function 'chamada da funçao no programa principal - utilizar a funcao que calcula potencia Sub cpotencia() Dim exp As Integer Dim base As Single
base = val(InputBox("Indique a base:")) exp = val(InputBox("Indique o expoente:")) MsgBox "A potencia de " & base & "^" & exp & " é: " & calc_pot(base, exp)
End Sub 'Exercicio 12 Sub divisores() Dim num As Integer, cont As Integer Dim n_div As Integer
num = cint(InputBox("Escreva um numero:")) n_div = 0 For cont = 1 To num
If (num Mod cont) = 0 Then MsgBox cont & " é divisor de " & num n_div = n_div + 1
End If Next cont MsgBox “O número “ &num &” tem “ &n_div &” divisors.”, Title:=num
End Sub 'Exercicio 13 Sub multiplos() Dim x As Integer, n As Integer, mult As Integer, cont As Integer
x = cint(InputBox("Escreva o número do qual pretende determinar os seus múltiplos:")) n = cint(InputBox("QuanTos múltiplos pretende determinar?")) cont = 0 Do While cont <> n
mult = cont * x MsgBox mult & " é multiplo de " & x cont = cont + 1
Loop End Sub
Resolução ficha de trabalho VBA nº. 8 5
'Exercicio 14 Sub media() Dim soma As Single, cont As Single, media As Single, n As Single
soma = 0 cont = 0 Do
n = val(InputBox("escreva um valor inteiro positivo: negativo para terminar"))
If n > 0 Then soma = soma + n cont = cont + 1
End If Loop Until (n < 0) media = soma / cont MsgBox " A media dos valores introduzidos é: " & media
End Sub 'Exercicio 15 – Implementação 1 Sub dia_semana() Dim num As Integer, dia As String, resp As Integer
Do num = InputBox("Escreva um número de 1 até 7:") Select Case num
Case 1 dia = "Domingo" MsgBox ("o número " & num & " corresponde ao dia da semana " & dia)
Case 2 dia = "Segunda" MsgBox ("o número " & num & " corresponde ao dia da semana " & dia)
Case 3 dia = "Terça" MsgBox ("o número " & num & " corresponde ao dia da semana "
& dia) Case 4
dia = "Quarta" MsgBox ("o número " & num & " corresponde ao dia da semana "
& dia) Case 5
dia = "Quinta" MsgBox ("o número " & num & " corresponde ao dia da semana "
& dia) Case 6
dia = "Sexta" MsgBox ("o número " & num & " corresponde ao dia da semana " & dia)
Case 7 dia = "Sabado" MsgBox ("o número " & num & " corresponde ao dia da semana " & dia)
Case Else MsgBox ("Número invalido!")
End Select MsgBox "o número " & num & " corresponde ao dia da semana " & dia resp = MsgBox("Pretende continuar? ", vbYesNo) Loop Until resp = 7
End Sub 'Exercicio 15 – Implementação 2 Function dia_semana(ByVal num As Integer) As String Select Case num Case 1 dia_semana = "Domingo" Case 2 dia_semana = "Segunda-Feira"
Resolução ficha de trabalho VBA nº. 8 6
Case 3 dia = "Terça-Feira" Case 4 dia_semana = "Quarta-Feira" Case 5 dia_semana = "Quinta-Feira" Case 6 dia_semana = "Sexta-Feira" Case 7 dia_semana = "Sabado" Case Else dia_semana = "Dia Inválido" End Select End Function Sub Num_Dia_Semana() Dim num_dia As Integer num_dia = CInt(InputBox("Escreva um número de 1 até 7:")) MsgBox "O número " & num_dia & " corresponde ao dia da semana " & dia_semana(num_dia) & ".", Title:="Dia da Semana" End Sub 'Exercicio 16 Function factorial(ByVal num As Integer) As Integer
factorial = 1 Do While num > 1
factorial = factorial * num num = num - 1
Loop End Function Sub calc_fact() Dim num As Integer
num = InputBox("escreva um numero inteiro: ", "Calculo factorial") MsgBox "O factorial de " & num & " é: " factorial(num),Title:="Resultado do cálculo Do Factorial"
End Sub
Resolução ficha de trabalho VBA nº. 8 7
'Exercicio 17 – Implementação 1 Function serie(ByVal x As Integer) As Double
If (x Mod 2) = 0 Then serie = 1 / (2 * x)
Else serie = -1 / (2 * x)
End If End Function Sub funcao_serie() Dim n As Integer, resp As Integer, i As Integer, soma As Double
Do Do
n = CInt(InputBox("Quantos termos pretende somar?")) Loop Until n > 0 soma = 0 For i = 1 To n
soma = soma + serie(i) Next MsgBox "A soma dos " & n & " termos é: " & soma resp = MsgBox("Pretende continuar?", vbYesNo)
Loop Until resp = 7 End Sub 'Exercicio 17 – Implementação 2 Function serie(ByVal n As Integer) As Double Dim i As Integer serie = 0 For i = 1 To n serie = serie + 1 / (2 * i) * (-1) ^ i Next i End Function Sub Calc_serie() Dim n As Integer, opcao As Integer, i As Integer opcao = 1 Do Do n = CInt(InputBox("Quantos termos pretende somar? [n >0]")) Loop Until n > 0 MsgBox "A soma dos " & n & " termos é: " & serie(n) opcao = CInt(InputBox("Pretende continuar? [Sim-1, Não-0]")) Loop Until opcao = 0 End Sub
Resolução ficha de trabalho VBA nº. 8 8
'exercicio 18 Sub numero() Dim n As Integer, num As Integer, resp As Integer Dim contar As Integer, soma As Integer, inv As Integer Dim txt1 As String, txt2 As String, txt3 As String, txt4 As String
Do n = Val(InputBox("Escreva um número inteiro positivo: ")) num = n contar = 0 soma = 0 inv = 0 Do While n > 0
contar = contar + 1 soma = soma + n Mod 10 inv = inv * 10 + n Mod 10 n = n \ 10
Loop txt1 = "O número introduzido foi: " & num & " tem " & contar & " digitos." & Chr(13) txt2 = "A soma dos seus dígitos é : " & soma & Chr(13) txt3 = "O inverso do número é: " & inv & Chr(13) If num = inv Then
txt4 = "O número: " & num & " é igual ao inverso: " & inv & " logo o número é CAPICUA" Else
txt4 = "O número: " & num & " é diferente do inverso: " & inv & " logo o número NÃO É CAPICUA" End If MsgBox txt1 & txt2 & txt3 & txt4, Title:="Resultado" resp = MsgBox("Pretende continuar?", vbYesNo)
Loop Until (resp = 7) End Sub 'Exercicio 19 Sub contar_num() Dim n As Integer, n1 As Integer, contar As Integer, resp As Integer Dim seq As String
contar = 0 n1 = CInt(InputBox("Qual o número que pretende contabilizar na sequência?")) Do
n = CInt (InputBox("escreva um numero inteiro positivo [0 para terminar]"))
seq = seq & n & " " If n1 = n Then contar = contar + 1 Else contar = contar
Loop Until n = 0 MsgBox "A sequencia introduzida foi: " & seq & Chr(13) & "foram encontradas " & contar & " ocorrencias do número " & n1
End Sub
Resolução ficha de trabalho VBA nº. 8 9
'exercicio 20 Sub contar_seq() Dim contar As Integer, n As Integer, seq As String
contar = 0 Do
n = CInt (InputBox("Escreva um número inteiro positivo [0 para terminar]"))
seq = seq & n & " " contar = contar + n
Loop Until n = 0 MsgBox "A sequencia introduzida foi: " & seq & Chr(13) & "A soma dos
números é: " & contar End Sub 'Exercicio 21 Sub palavras() Dim palavra As String, texto As String
Do palavra = InputBox("escreva uma palavra [FIM para terminar]",
"Palavras") If (palavra = "fim") Or (palavra = "FIM") Then
texto = texto Else
texto = texto & " " & palavra End If
Loop Until (palavra = "FIM") Or (palavra = "fim") MsgBox "A frase final é: " & texto
End Sub