Possível resolução

Propaganda
EISnt
Centro de Formação em Tecnologia
Possível resolução
(Fundamentos de Programação – Exercícios por resolver)
1)
Sub area()
'Variáveis consideradas como sendo do tipo Integer (números inteiros)
Dim area As Integer
Dim comprimento As Integer
Dim altura As Integer
'Assumindo que o utilizador insere valores inteiros nas InputBoxes...
comprimento = InputBox("Qual o comprimento?")
altura = InputBox("Qual a altura?")
area = (comprimento * altura) / 2
MsgBox "A área é igual a " & area
End Sub
2)
Sub Megabytes_para_GigaBytes()
'Variável de entrada considerada como sendo do tipo Integer (número inteiro)
'Variável de saída considerada como sendo do tipo Single (número decimal)
Dim megabytes As Integer
Dim gigabytes As Single
'Assumindo que o utilizador insere um número inteiro compreendido entre 0 e 10000...
megabytes = InputBox("Qual o valor em MB?")
gigabytes = megabytes / 1024
MsgBox megabytes & " MB correspondem a " & gigabytes & " GB"
End Sub
Financiado pelo FSE
Pág: 1
EISnt
Centro de Formação em Tecnologia
3)
Sub Inteiro_ou_Decimal()
'Variável de entrada considerada como sendo do tipo Single (número inteiro ou decimal)
Dim valor As Single
Dim parte_inteira As Integer
Dim resultado As String
'Assumindo que o utilizador insere um número compreendido entre 1 e 100...
valor = InputBox("Introduza um valor numérico compreendido entre 1 e 100")
parte_inteira = valor \ 1
If parte_inteira = valor Then resultado = "inteiro" Else resultado = "decimal"
MsgBox "O número que introduziu é um número " & resultado
End Sub
4)
Sub Decimal_para_Inteiro()
'Variável de entrada considerada como sendo do tipo Single (número decimal)
'Variável de saída considerada como sendo do tipo Integer (número inteiro)
Dim valor_decimal As Single
Dim valor_inteiro As Integer
'Assumindo que o utilizador insere um valor decimal válido...
valor_decimal = InputBox("Introduza um número decimal")
valor_inteiro = valor_decimal \ 1
'Para que, por exemplo, 12,5 seja arredondado para 13 e não para 12...
If valor_decimal - valor_inteiro = 0.5 Then valor_inteiro = valor_inteiro + 1
MsgBox "O arredondamento origina " & valor_inteiro
End Sub
Financiado pelo FSE
Pág: 2
EISnt
Centro de Formação em Tecnologia
5)
Sub tarifa()
'Variáveis 'espaco' e 'utilizacao' consideradas como sendo do tipo Integer (números inteiros)
'Variável de saída 'valor' considerada como sendo do tipo Integer (número inteiro)
Dim espaco As Integer
Dim utilizacao As Integer
Dim email As Boolean 'Como indicado no enunciado
Dim valor As Integer
'Assumindo que o utilizador insere valores válidos
espaco = InputBox("Qual o espaço em disco (valores em MB)")
utilizacao = InputBox("Qual a utilização mensal (valores em horas)")
mail = InputBox("O cliente possui conta de e-mail? Escreva True para Sim e False para Não")
If utilizacao < 120 Then valor = 25
If utilizacao >= 120 And espaco < 10 Then valor = 30
If utilizacao >= 120 And espaco >= 10 Then
If email = True Then valor = 60 Else valor = 50
End If
MsgBox "Valor a pagar>>> " & valor & "€"
End Sub
6)
Sub produto()
'Variáveis consideradas como sendo do tipo Integer (números inteiros)
Dim num1 As Integer
Dim num2 As Integer
Dim resultado As Integer
'Assumindo que o utilizador insere valores válidos
num1 = InputBox("Introduza o primeiro número inteiro")
num2 = InputBox("Introduza o segundo número inteiro")
For a = num1 To 1 Step -1
resultado = resultado + num2
Next a
MsgBox "O produto é igual a " & resultado
End Sub
Financiado pelo FSE
Pág: 3
EISnt
Centro de Formação em Tecnologia
7)
Sub decimal_para_hexadecimal()
'Variável de entrada considerada como sendo do tipo Integer (número inteiros)
'Variável de saída considerada como sendo do tipo String (cadeia alfanumérica)
Dim num As Integer
Dim hex As String
'Assumindo que o utilizador insere valores válidos
num = InputBox("Introduza um número inteiro entre 0 e 1000")
'Método das divisões sucessivas
hex = ""
Dim dividir As Boolean
dividir = True
dividendo = num
Do While dividir = True
quociente = dividendo \ 16
resto = num Mod 16
If resto >= 0 And resto <= 9 Then a_transportar = resto
If resto = 10 Then a_transportar = "A"
If resto = 11 Then a_transportar = "B"
If resto = 12 Then a_transportar = "C"
If resto = 13 Then a_transportar = "D"
If resto = 14 Then a_transportar = "E"
If resto = 15 Then a_transportar = "F"
hex = a_transportar & hex
dividendo = quociente
If dividendo < 16 Then
hex = dividendo & hex
dividir = False
End If
Loop
MsgBox "O hexadecimal é " & hex
End Sub
Financiado pelo FSE
Pág: 4
EISnt
Centro de Formação em Tecnologia
8)
Sub Quantos_dias_faltam_ate_ao_fim_do_ano()
'Variáveis do tipo Integer (números inteiros)
Dim dia As Integer
Dim mes As Integer
Dim ano As Integer
Dim num_dias_que_faltam As Integer
Dim total_dias_num_mes As Integer
'Assumindo que o utilizador insere valores válidos
dia = InputBox("Introduza o dia")
mes = InputBox("Introduza o mês")
ano = InputBox("Introduza o ano")
'Saber se o ano é bissexto
bissexto = False
If ano Mod 4 = 0 And ano Mod 100 <> 0 Or ano Mod 400 = 0 Then bissexto = True
num_dias_que_faltam = 0
'mês inicial
'Saber o número de dias que o mês tem
Select Case mes
Case 1, 3, 5, 7, 8, 10, 12
total_dias_num_mes = 31
Case 4, 6, 9, 11
total_dias_num_mes = 30
End Select
If mes = 2 And bissexto = True Then total_dias_num_mes = 29
If mes = 2 And bissexto = False Then total_dias_num_mes = 28
num_dias_que_faltam = total_dias_num_mes - dia
mes = mes + 1
For a = mes To 12 'Do mês actual até Dezembro
'Saber o número de dias que o mês tem
Select Case mes
Case 1, 3, 5, 7, 8, 10, 12
total_dias_num_mes = 31
Case 4, 6, 9, 11
total_dias_num_mes = 30
End Select
If mes = 2 And bissexto = True Then total_dias_num_mes = 29
If mes = 2 And bissexto = False Then total_dias_num_mes = 28
num_dias_que_faltam = num_dias_que_faltam + total_dias_num_mes
mes = mes + 1
Next a
MsgBox "Falta(m) " & num_dias_que_faltam & " dia(s)"
End Sub
Financiado pelo FSE
Pág: 5
EISnt
Centro de Formação em Tecnologia
9)
Sub Dia_da_semana()
'Variáveis do tipo Integer (números inteiros)
Dim dia As Integer
Dim mes As Integer
Dim ano As Integer
Dim diasemana As Integer
Dim total_dias_num_mes As Integer
'Assumindo que o utilizador insere valores válidos
dia = InputBox("Introduza o dia")
mes = InputBox("Introduza o mês")
ano = InputBox("Introduza o ano")
'A referência é o dia 1 de Janeiro de 1900, um Domingo
diasemana = 1
For a = 1900 To ano
'Saber se o ano é bissexto
bissexto = False
If a Mod 4 = 0 And a Mod 100 <> 0 Or a Mod 400 = 0 Then bissexto = True
If a = ano Then mesf = mes Else mesf = 12
For m = 1 To mesf
'Saber o número de dias que o mês tem
Select Case m
Case 1, 3, 5, 7, 8, 10, 12
total_dias_num_mes = 31
Case 4, 6, 9, 11
total_dias_num_mes = 30
End Select
If m = 2 And bissexto = True Then total_dias_num_mes = 29
If m = 2 And bissexto = False Then total_dias_num_mes = 28
If a = ano And m = mes Then diaf = dia Else diaf = total_dias_num_mes
For d = 1 To diaf
diasemana = diasemana + 1
Financiado pelo FSE
Pág: 6
EISnt
Centro de Formação em Tecnologia
If diasemana > 7 Then diasemana = 1
Next d
Next m
Next a
Select Case diasemana
Case 1
resultado = "Domingo"
Case 2, 3, 4, 5, 6
resultado = diasemana & "ª feira"
Case 7
resultado = "Sábado"
End Select
MsgBox "Nasceu num(a) " & resultado
End Sub
10)
Sub Chave_ordenada()
'Variáveis do tipo Integer (números inteiros) e chave do tipo String (texto)
Dim bola1 As Integer
Dim bola2 As Integer
Dim bola3 As Integer
Dim bola4 As Integer
Dim bola5 As Integer
Dim bola6 As Integer
Dim chave As String
'Assumindo que o utilizador insere valores válidos e diferentes
bola1 = InputBox("Introduza o número da bola 1")
bola2 = InputBox("Introduza o número da bola 2")
bola3 = InputBox("Introduza o número da bola 3")
bola4 = InputBox("Introduza o número da bola 4")
bola5 = InputBox("Introduza o número da bola 5")
bola6 = InputBox("Introduza o número da bola 6")
Financiado pelo FSE
Pág: 7
EISnt
Centro de Formação em Tecnologia
'Primeira bola na chave
For a = 1 To 49
If a = bola1 Or a = bola2 Or a = bola3 Or a = bola4 Or a = bola5 Or a = bola6 Then
pos1 = a
a = 50
End If
Next
'Segunda bola na chave
For a = pos1 + 1 To 49
If a = bola1 Or a = bola2 Or a = bola3 Or a = bola4 Or a = bola5 Or a = bola6 Then
pos2 = a
a = 50
End If
Next
'Terceira bola na chave
For a = pos2 + 1 To 49
If a = bola1 Or a = bola2 Or a = bola3 Or a = bola4 Or a = bola5 Or a = bola6 Then
pos3 = a
a = 50
End If
Next
'Quarta bola na chave
For a = pos3 + 1 To 49
If a = bola1 Or a = bola2 Or a = bola3 Or a = bola4 Or a = bola5 Or a = bola6 Then
pos4 = a
a = 50
End If
Next
'Quinta bola na chave
For a = pos4 + 1 To 49
If a = bola1 Or a = bola2 Or a = bola3 Or a = bola4 Or a = bola5 Or a = bola6 Then
pos5 = a
a = 50
End If
Next
'Sexta bola na chave
For a = pos5 + 1 To 49
If a = bola1 Or a = bola2 Or a = bola3 Or a = bola4 Or a = bola5 Or a = bola6 Then
pos6 = a
a = 50
End If
Next
'Chave completa e ordenada
chave = pos1 & "-" & pos2 & "-" & pos3 & "-" & pos4 & "-" & pos5 & "-" & pos6
MsgBox chave
End Sub
Financiado pelo FSE
Pág: 8
EISnt
Centro de Formação em Tecnologia
Financiado pelo FSE
Pág: 9
Download