21.05.2020 Views

EXERCICIOS_VB6

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.



1 Entradas e Saídas __________________________________________________1

2 Estruturas de Selecção Simples________________________________________8

3 Estruturas de Selecção Embutidas_____________________________________12

4 Estruturas de Repetição Condicionais Simples I __________________________17

5 Estruturas de Repetição Condicionais Simples II __________________________21

6 Estruturas de Repetição Contadas Simples ______________________________25

7 Estruturas de Repetição Embutidas I ___________________________________29

8 Estruturas de Repetição Embutidas II __________________________________33

9 Anexos __________________________________________________________38



Capítulo 1

Entradas e Saídas

Exercícios Resolvidos

1.1 Elabore um programa em Visual Basic que permita escrever ou apagar a mensagem, “Este é o meu

primeiro programa em VB”, consoante o botão de comando que seja premido. Como modelo

sugere-se a seguinte interface:

Objecto Propriedade Valor

Form1

Label1

Label2

Command1

Command2

Command3

Caption

Name

Caption

Font

Alignment

BorderStyle

Caption

Font

Name

Caption

Name

Caption

Name

Caption

Name

Mensagem

FrmMensagem

Clique sobre cada um dos botões

Ms Sans Serif; Bold; 8

Center

1-Fixed Single

(vazio, isto é, eliminar Label2)

Times New Roman; Bold Italic; 10

LblMsg

Escrever

CmdEscrever

Apagar

CmdApagar

Sair

CmdSair

Programação do Botão Escrever:

1. Algoritmo (Fluxograma e Pseudo-código):

Início

Fim

Escrever(“Este é o meu primeiro programa em VB”)

Visual Basic 1


Capítulo 1

Entradas e Saídas

2. Codificação em Visual Basic:

Private Sub CmdEscrever_Click()

LblMsg.Caption = “Este é o meu primeiro programa em VB”

End Sub

Programação do Botão Apagar:

1. Algoritmo (Fluxograma e Pseudo-código):

Início

Fim

Escrever(“”)

2. Codificação em Visual Basic:

Private Sub CmdApagar_Click()

LblMsg.Caption = “”

End Sub

Programação do Botão Sair:

1. Algoritmo (Fluxograma e Pseudo-código):

Início

Fim

Terminar

2. Codificação em Visual Basic:

Private Sub CmdSair_Click()

End

End Sub

Visual Basic 2


Capítulo 1

Entradas e Saídas

1.2 Elabore um programa em Visual Basic que permita efectuar a conversão de graus centígrados (C)

para graus fahrenheit (F), sabendo que a fórmula de conversão é a seguinte: F = 1.8*C + 32.

Sugere-se o seguinte modelo para a interface:

Objecto Propriedade Valor

Form1

Label1

Label2

Label3

Text1

Command1

Command2

Caption

Name

Caption

Font

Caption

Font

Alignment

BorderStyle

Caption

Font

Name

Alignment

Font

Name

Text

Caption

Name

Font

Caption

Name

Font

Conversões Centigrados – Fahrenheit

FrmConverte

Centígrados

Ms Sans Serif; Bold; 10

Fahrenheit

Ms Sans Serif; Bold; 10

1 – Right Justify

1- Fixed Single

(vazio)

Ms Sans Serif; Regular; 10

LblFahr

1 – Right Justify

Ms Sans Serif; Regular; 10

TxtCentigr

(vazio)

Converter

CmdConverte

Times New Roman; Bold Italic; 12

Sair

CmdSair

Times New Roman; Bold Italic; 12

Programação do Botão Converter:

1. Algoritmo (Fluxograma e Pseudo-código):

Início

[ Leitura de Dados ]

Escrever(“Indique os graus centígrados”)

Ler(Centig)

[ Processamento ]

Fahr Centig * 1.8 + 32

[ Saída de Resultados ]

Escrever(“Fahrenheit=”, Fahr)

Fim

Visual Basic 3


Capítulo 1

Entradas e Saídas

2. Codificação em Visual Basic:

Private Sub CmdConverter_Click()

Dim Centig As Double, Fahr As Double

Centig = val(TxtCentigr.Text)

Fahr = Centig * 1.8 + 32

LblFahr.Caption = Fahr

End Sub

Exercícios Propostos

1.3 Elaborar uma aplicação em Visual Basic que permita estimar o custo de combustível que gastará

um automóvel numa dada viagem de N Km, sabendo o preço por litro do combustível usado e o

consumo do automóvel aos 100 Km.

Sugere-se o seguinte modelo para a interface:

Objecto Propriedade Valor

Form1

Label1

Text1

Label2

Text2

Caption

Name

Caption

Font

Alignment

Font

Name

Text

Caption

Font

Alignment

Font

Name

Text

Consumo em Viagem

FrmConsumo

Preço do Combustível (Euros/Litro):

Ms Sans Serif; Bold; 10

1 – Right Justify

Ms Sans Serif; Bold; 12

TxtPrecoLitro

(vazio)

Consumo do Automóvel (Litros/100 Km):

Ms Sans Serif; Bold; 10

1 – Right Justify

Ms Sans Serif; Bold; 12

TxtConsumo100

(vazio)

Visual Basic 4


Capítulo 1

Entradas e Saídas

Label3

Caption

Font

Distância da Viagem (Km):

Ms Sans Serif; Bold; 10

Text3

Alignment

Font

Name

Text

1 – Right Justify

Ms Sans Serif; Bold; 12

TxtDistancia

(vazio)

Label4

Caption

Font

Consumo da Viagem (Litros):

Ms Sans Serif; Bold; 10

Label5

Alignment

BorderStyle

Caption

Font

Name

1 – Right Justify

1- Fixed Single

(vazio)

Ms Sans Serif; Bold; 12

LblConsumoViag

Label6

Caption

Font

Custo da Viagem (Euros):

Ms Sans Serif; Bold; 10

Label7

Alignment

BorderStyle

Caption

Font

Name

1 – Right Justify

1- Fixed Single

(vazio)

Ms Sans Serif; Bold; 12

LblCustoViag

Command1

Caption

Name

Font

&Calcular

CmdCalcular

Ms Sans Serif; Bold; 10

Command2

Caption

Name

Font

&Sair

CmdSair

Ms Sans Serif; Bold; 10

1.4 Tendo como modelo a interface apresentada em baixo, elabore um programa em Visual Basic que

permita visualizar o resultado de qualquer uma das seguintes operações aritméticas elementares

entre dois números: adição, subtracção, multiplicação e divisão real. O programa deve ainda

apresentar o sinal aritmético entre os dois operandos, reflectindo a operação realizada.

Objecto Propriedade Valor

Form1

Text1

Caption

Name

Alignment

Name

Text

Operações Aritméticas

FrmOperAritm

1 - Rigth Justify

TxtNumero1

(vazio)

Visual Basic 5


Capítulo 1

Entradas e Saídas

Text2

Alignment

Name

Text

1 - Rigth Justify

TxtNumero2

(vazio)

Label1

Alignment

Caption

Name

Label2 Caption =

Label3

Command1

Command2

Command3

Command4

Command8

Alignment

BorderStyle

Caption

Name

Caption

Name

Caption

Name

Caption

Name

Caption

Name

Caption

Name

Center

(vazio)

LblOperacao

1 - Rigth Justify

Fixed Single

(vazio)

LblResultado

+

CmdAdicionar

-

CmdSubtrair

X

CmdMultiplicar

/

CmdDividir

&Sair

CmdSair

Exercício Suplementar

1.5 Elabore um programa em Visual Basic para calcular a área de um polígono regular (A) (ver figura

abaixo), que é dada pela seguinte fórmula:

o

n 2 360

A = R sen( ) ,

2 n

sendo n o número de lados e R o raio circunscrito.

Sugere-se a interface seguinte, em que a figura do polígono é construída utilizando a ferramenta

line.

Objecto Propriedade Valor

Form1

Caption

Name

Área de Polígonos Regulares

FrmAreaPoligReg

Visual Basic 6


Capítulo 1

Entradas e Saídas

Label1 Caption Número de lados =

Label2 Caption Raio circunscrito (R) =

Label3 Caption Área =

Text1

Text2

Label4

Command1

Command2

Name

Text

Name

Text

BorderStyle

Caption

Name

Caption

Name

Caption

Name

TxtNumLados

(vazio)

TxtRaioCircun

(vazio)

1 - Fixed Single

(vazio)

LblArea

&Calcular

CmdCalc

&Sair

CmdSair

Visual Basic 7


Capítulo 2

Estruturas de Selecção Simples

Exercício Resolvido

2.1 Elabore um jogo em Visual Basic chamado Sete da Sorte. O jogo consiste na geração aleatória de

um número inteiro entre 0 e 9, inclusivé, e o jogador só ganha se sair o número 7. Para a interface

sugere-se o seguinte modelo:

Depois do utilizador accionar o botão Iniciar, o programa deve gerar aleatoriamente um número

inteiro pertencente ao intervalo [ 0, 9]

. Se o número gerado for 7, deve ser apresentada uma

imagem com moedas, senão, deve ser apresentada a mensagem “Tente Outra Vez …”

Programação do Botão Iniciar:

1. Algoritmo (Fluxograma e Pseudo-código):

Início

N int (aleatorio() * 10)

Escrever(N)

Se N=7 Então

Mostrar(imagem)

Senão

Escrever(“Tente Outra Vez ...”)

Fim Se

Fim

Visual Basic 8


Capítulo 2

Estruturas de Selecção Simples

2. Codificação em Visual Basic:

Private Sub CmdIniciar_Click()

Dim N As Integer

Randomize

N = Int(Rnd * 10)

LblN.Caption = N

If N = 7 Then

LblMsg.Caption = “”

PicMoedas.Visible = True

Else

PicMoedas.Visible = False

LblMsg.Caption = “Tente Outra Vez …”

End If

End Sub

Exercícios Propostos

2.2 Escreva um programa em Visual Basic para calcular o imposto automóvel (IA) aplicado aos

veículos ligeiros de passageiros novos. Este imposto é calculado multiplicando a cilindrada pela

taxa por cc e subtraindo a parcela a abater, de acordo com a seguinte tabela:

Cilindrada Taxa por CC A abater

<= 1250 cc 3,60 € 2323,69 €

>= 1250 cc 8,52 € 8470,99 €

Por exemplo, o IA aplicado a um veículo de 1242 cc é calculado da seguinte forma:

(1242 x 3,60) – 2323,69 = 2147,51 €

Para a interface sugere-se o seguinte modelo:

(continua)

Visual Basic 9


Capítulo 2

Estruturas de Selecção Simples

2.3 Crie uma nova versão do exercício 2.1, em que são gerados aleatoriamente 3 números inteiros

entre 0 e 9, inclusivé, e o jogador ganha quando sai pelo menos um 7.

Para a interface sugere-se o modelo apresentado na página seguinte.

2.4 Altere o programa anterior por forma a que o jogador ganhe quando sairem pelo menos dois 7. Para

a interface sugere-se o seguinte modelo:

Visual Basic 10


Capítulo 2

Estruturas de Selecção Simples

Exercício Suplementar

2.5 Elabore um programa em Visual Basic para auxiliar a contabilidade duma empresa a calcular o

vencimento dum empregado. O cálculo é baseado no número de horas que trabalhou e no seu

salário por hora. Para além das 40 horas de trabalho, a hora é acrescida de um suplemento de 25%.

Para a interface sugere-se o seguinte modelo:

2.6 O programa das Operações Aritméticas (exercício 1.4) gera um erro de execução na operação de

divisão, quando é introduzido um divisor igual a zero. Trata-se de uma situação indesejável, e como

tal, altere o programa para que em tais circunstâncias, em vez de gerar o erro de execução, o

programa mostre ao utilizador uma informação apropriada numa caixa de mensagem. Deve ainda

acrescentar ao programa as seguintes operações: exponenciação, divisão inteira e resto da divisão

inteira.

Visual Basic 11


Capítulo 3

Estruturas de Selecção Embutidas

Exercício Resolvido

3.1 Elabore um programa em Visual Basic para o auxiliar a cambiar Euros, sabendo que: €1 = 0.9796

Dólares (USA), €1 = 0.6274 Libras (GB) e €1 = 120.22 Ienes (Japão). O valor de câmbio deve ser

apresentado formatado com duas casas decimais, e no caso de ser um valor superior ou igual a

1000, deve ser mostrado com separadores de milhares. Para a interface sugere-se o seguinte

modelo:

Programação do Botão Cambiar:

1. Algoritmo (Fluxograma e Pseudo-código):

Visual Basic 12


Capítulo 3

Estruturas de Selecção Embutidas

Início

Escrever( “Indique o valor em euros a cambiar” )

Ler( Euros )

Escrever( “Indique a opção (Dólar, Libra ou Iene)” )

Ler( Opcao )

Se (Opcao = “Dolar”) Então

Cambio Euros * 0.9796

Escrever( “Dólares= ”, Cambio )

Senão Se (Opcao = “Libra”) Então

Cambio Euros * 0.6274

Escrever( “Libras= ”, Cambio)

Senão

Cambio Euros * 120.22

Escrever( “Ienes= ”, Cambio )

Fim Se

Fim Se

Fim

2. Codificação em Visual Basic:

Private Sub CmdCambiar_Click()

Dim Euros As Single, Cambio As Single

Euros = val(TxtEuros.Text)

If (OptDolar.Value = True) Then

Cambio = Euros * 0.9796

LblCambio.Caption = Format(Cambio, "#,##0.#0")

LblMoeda.Caption = "Dólares"

ElseIf (OptLibra.Value = True) Then

Cambio = Euros * 0.6274

LblCambio.Caption = Format(Cambio, "#,##0.#0")

LblMoeda.Caption = "Libras"

Else

Cambio = Euros * 120.22

LblCambio.Caption = Format(Cambio, "#,##0.#0")

LblMoeda.Caption = "Ienes"

End If

End Sub

Visual Basic 13


Capítulo 3

Estruturas de Selecção Embutidas

Exercício Proposto

3.2 Elabore um programa em Visual Basic que permita determinar o custo do combustível adquirido

numa gasolineira. Considere que os preços dos diversos combustíveis são os seguintes: gasolina s/

chumbo 95 octanas – 1.05 €, gasolina s/ chumbo 98 octanas – 1.15€ e gasóleo – 0,80€.

O custo deve ser apresentado formatado com duas casas decimais e, no caso de ser um valor

superior ou igual a 1000, deve ser mostrado com separadores de milhares. Sugere-se a interface

indicada seguidamente:

Exercícios Suplementares

3.3 Elabore um programa em Visual Basic que determine se um dado ano é ou não bissexto. No caso

de não o ser, pretende-se que indique o(s) ano(s) bissexto(s) mais próximo(s). Como modelo,

apresenta-se a seguinte interface:

Visual Basic 14


Capítulo 3

Estruturas de Selecção Embutidas

3.4 Elabore um programa em Visual Basic para o auxiliar a localizar o quadrante dum ponto, dadas as

suas coordenadas. Para a interface sugere-se o modelo da figura apresentada, em que os eixos XY

podem ser construídos usando a ferramenta line.

3.5 Elabore um programa em Visual Basic para determinar as soluções de uma equação do 2º grau

(ax 2 +bx+c=0), reais ou complexas. As soluções devem apresentar, no máximo, 3 casas decimais.

Para a interface sugere -se o seguinte modelo:

Visual Basic 15


Capítulo 3

Estruturas de Selecção Embutidas

3.6 Elabore um programa em Visual Basic para auxiliar um aluno a determinar a nota final a uma

disciplina, cujo método de avaliação é o seguinte: a nota final tem duas componentes, teórica e

prática, e os seus pesos são respectivamente de 60 e 40 %. A nota teórica é dada pela média

aritmética das duas melhores classificações obtidas em 3 testes, e a nota prática é a classificação

de um trabalho laboratorial.

O programa tem de permitir ao utilizador introduzir as 4 notas obtidas, 3 teóricas e 1 prática, e tem

de validar todas as notas introduzidas, aceitando apenas valores numéricos entre 0 e 20, inclusivé.

No caso de serem introduzidas notas inválidas, o programa deve mostrar uma mensagem

apropriada, numa caixa de mensagem. A nota final deve ser apresentada com apenas 1 casa

decimal.

Construa uma interface adequada.

Visual Basic 16


Capítulo 4

Estruturas de Repetição Condicionais Simples I

Exercício Resolvido

4.1 Elabore um programa em Visual Basic que gere números aleatórios inteiros no intervalo [1, 60], até

sair o número 11. O programa deve listar todos os números gerados (11 incluído) e apresentar o

total dos mesmos.

Para a interface sugere-se o seguinte modelo:

Programação do Botão Gerar:

1. Algoritmo (Fluxograma e Pseudo-código):

Início

Total 0

Repetir

N Int(Aleatorio( ) * 60) + 1

Escrever(N)

Total Total +1

Até N = 11

Escrever(“Total de Números=” , Total)

Fim

Visual Basic 17


Capítulo 4

Estruturas de Repetição Condicionais Simples I

2. Codificação em Visual Basic:

Private Sub CmdGerar_Click()

Dim N As Integer, Total as Integer

LstNumeros.Clear

Randomize

Total = 0

Do

N = Int(Rnd * 60) + 1

LstNumeros.AddItem N

Total = Total + 1

Loop Until N=11

LblTotal.Caption = Total

End Sub

Exercícios Propostos

4.2 Elabore um programa em Visual Basic que gere números aleatórios inteiros, no intervalo [1, 200],

até sairem 10 números pares. O programa deve listar apenas os números pares gerados e

apresentar o maior deles.

Para a interface sugere-se o seguinte modelo:

4.3 Elabore um programa em Visual Basic que permita gerir a atribuição de lugares num avião. Ao ser

iniciado o Check-In, o funcionário deve introduzir para cada passageiro, através de uma inputbox, o

seu tipo de tarifa: 1 ou 2 (1ª ou 2ª classe). A seguir, o programa deve mostrar uma mensagem,

através de uma msgbox, com o número do lugar atribuído sabendo que:

• aos bilhetes com a tarifa 1 são atribuídos os lugares com os números 1, 2, .., 10 e aos de

tarifa 2, os lugares com os números 11, 12, .., 94;

• A atribuição de lugares deve ser sequencial;

Visual Basic 18


Capítulo 4

Estruturas de Repetição Condicionais Simples I

• Em cada uma das classes não existem mais reservas que lugares disponíveis.

A introdução de dados deve terminar assim que se verifique uma das seguintes condições:

• o número máximo de lugares é atingido (94);

• O funcionário introduziu o valor 0 (fecho do Check-In).

No final, o programa deve apresentar o número de passageiros que fizeram o Check-In (no conjunto

das duas tarifas).

Para a interface sugere-se o seguinte modelo:

Exercícios Suplementares

4.4 Elabore um programa em Visual Basic que determine se um dado número inteiro positivo é ou não

primo. Considera-se que um número é primo quando apenas é divisível por si e pela unidade.

Para a interface sugere-se o seguinte modelo:

Visual Basic 19


Capítulo 4

Estruturas de Repetição Condicionais Simples I

4.5 Elabore um programa em Visual Basic que lhe permita jogar à adivinha com o computador. O

utilizador tem que adivinhar o número que o computador gera aleatoriamente entre 0 e 100 ou 0 e

1000 de acordo com a opção que escolheu. Para cada palpite errado deve-lhe ser dada uma

indicação do género “Palpite Baixo” ou “Palpite Alto”. No final pretende-se que o programa

apresente o número de tentativas efectuadas até ter acertado no número mistério.

Considere o seguinte exemplo:

Visual Basic 20


Capítulo 5

Estruturas de Repetição Condicionais Simples II

Exercício Resolvido

5.1 Elabore um programa em Visual Basic que permita determinar a média de um conjunto de números

inteiros positivos. A introdução dos números deve ser realizada através de uma inputBox e só deve

terminar quando o utilizador introduzir um valor negativo. Pretende-se que o programa apresente a

média dos números (com 1 casa decimal) e a totalidade dos mesmos, conforme é ilustrado na

interface seguinte sugerida:

Programação do Botão Iniciar:

1. Algoritmo (Fluxograma e Pseudo-código):

!

%) *+ ,

-*

-

! !#

#

%) *+ ,

-*

"

$%

!&

$'% ($%

%.+(

Visual Basic 21


Capítulo 5

Estruturas de Repetição Condicionais Simples II

Início

Soma 0

TotNum 0

Escrever(“Introduza um nº inteiro positivo (<0 para terminar)”)

Ler(N)

Repetir até N < 0

Soma Soma + N

TotNum TotNum + 1

Escrever(“Introduza um nº inteiro positivo (<0 para terminar)”)

Ler(N)

Fim Repetir

Se TotNum > 0 Então

Media Soma / TotNum

Escrever(“Média = ”, Media)

Fim Se

Escrever(“Total de números =” , TotNum)

Fim

2. Codificação em Visual Basic:

Private Sub CmdIniciar_Click()

Dim N As Long, Soma as Long, TotNum As Integer

Dim Media as Single

Soma = 0

TotNum = 0

N = val(inputbox ( “Introduza um número inteiro:” , “Leitura de dados” ))

Do Until N<0

Soma = Soma + N

TotNum = TotNum + 1

N = val(inputbox ( “Introduza um número inteiro:” , “Leitura de dados” ))

Loop

If TotNum >0 Then

Media = Soma/TotNum

LblMedia.Caption = format(Media,”0.0”)

End if

LblTotNum.Caption = TotNum

End Sub

Visual Basic 22


Capítulo 5

Estruturas de Repetição Condicionais Simples II

Exercícios Propostos

5.2 Um fabricante de resistências eléctricas pretende uma aplicação informática para o ajudar a analisar

a qualidade de uma amostra de resistências de 25 / (valor nominal). Nesse sentido, elabore um

programa em Visual Basic que satisfaça os seguintes requisitos:

• Leia o valor de cada uma das resistências da amostra. A leitura deve terminar quando for

lido um valor negativo.

• Apresente o valor médio da amostra (com duas casas decimais) e a percentagem de

resistências com valor inferior ao nominal (com uma casa decimal).

Para a interface sugere-se o seguinte modelo:

5.3 Elabore um programa em Visual Basic que leia o nome e a nota de um conjunto de alunos que

realizaram o exame de Introdução à Computação. A introdução dos dados deve ser feita utilizando

uma InputBox e terminar quando se digitar o nome ZZZ. Pretende-se ainda que o programa

apresente a média das notas e o nome e nota do melhor aluno.

Considere o seguinte exemplo:

Visual Basic 23


Capítulo 5

Estruturas de Repetição Condicionais Simples II

Exercícios Suplementares

5.4 Elabore um programa em Visual Basic que calcule a soma dos pesos de um grupo de pessoas que

pretende entrar num elevador. A introdução dos pesos deverá ser feita utilizando uma InputBox e

terminar quando for digitado o valor 0 ou se tenha atingido um máximo de 6 pessoas ou a soma dos

pesos exceda os 450 Kgs. Nesta última situação deverá surgir uma caixa de diálogo com a

mensagem “Peso Excessivo”.

Como modelo sugere-se a interface seguinte.

5.5 Elabore um programa em Visual Basic que permita determinar o máximo divisor comum entre dois

números inteiros positivos. Como modelo sugere-se a seguinte interface:

5.6 Elabore um programa em Visual Basic para mostrar o número mínimo de termos necessários para

1 3 5 7

que o valor da série S = + + + + ... , seja superior a 10,

3 3 3 3

20 ou 30, consoante a escolha feita pelo utilizador. Para além

desse valor, o programa também tem de apresentar o valor da

série com esse número mínimo de termos.

Para a interface sugere-se o modelo apresentado ao lado.

Visual Basic 24


Capítulo 6

Estruturas de Repetição Contadas Simples

Exercício Resolvido

6.1 Elabore um programa em Visual Basic para gerar 10 números aleatórios inteiros pertencentes ao

intervalo [ 1, 50]

. Para a interface sugere-se o seguinte modelo:

Programação do Botão Mostrar:

1. Algoritmo (Fluxograma e Pseudo-código):

Início

Repetir Para C 1 até 10

N int( aleatorio( ) * 50) + 1

Escrever(N)

Fim Repetir

Fim

2. Codificação em Visual Basic:

Private Sub CmdMostrar_Click()

Dim C As Integer, N As Integer

LstNumeros.Clear

Randomize

For C= 1 To 10

N = Int(Rnd * 50) + 1

LstNumeros.AddItem N

Next C

End Sub

Visual Basic 25


Capítulo 6

Estruturas de Repetição Contadas Simples

Exercícios Propostos

6.2 Elabore um programa em Visual Basic para listar a tabuada da multiplicação de um número inteiro N

fornecido pelo utilizador. Para a interface sugere-se o seguinte modelo:

6.3 Elabore um programa em Visual Basic para listar todos os números inteiros entre -100 e 50. Para a

interface sugere-se o seguinte modelo:

6.4 Modifique o programa anterior para listar todos os números pares entre 1 e N, inclusive, sendo N

definido pelo utilizador. Para a interface sugere-se o seguinte modelo:

6.5 Elabore um programa em Visual Basic que efectue a geração aleatória de uma chave do totoloto. O

programa deve permitir ao utilizador que especifique o total de números ( [6,12] ) que a chave

deverá conter e ainda, como opção, que esses números sejam inferiores a 25 ( [1,24] ). No caso de

ser introduzido um total de números inválido, deve aparecer uma caixa de mensagem apropriada.

Como modelo, considere a interface apresentada na página seguinte.

Visual Basic 26


Capítulo 6

Estruturas de Repetição Contadas Simples

Exercícios Suplementares

6.6 Elabore um programa em Visual Basic para listagem dos números inteiros pares ou impares,

pertencentes a um dado intervalo (limites incluídos). Este intervalo deve ser definido pelo utilizador,

e no caso de serem fornecidos limites inválidos ( limite inferior > superior ), deve aparecer uma

caixa de mensagem apropriada para avisar o utilizador.

Para a interface sugere-se o seguinte modelo:

Visual Basic 27


Capítulo 6

Estruturas de Repetição Contadas Simples

6.7 Elabore um programa em Visual Basic que permita listar todos os números impares de um dado

intervalo (limites incluídos), ou então, apenas os ímpares que sejam divisíveis por três, ou por cinco,

ou simultaneamente por três e cinco, de acordo com as opções do utilizador. Considere o seguinte

exemplo:

1 1 1

1 + + + ... +

2 3 N

6.8 Elabore um programa em Visual Basic para calcular o valor da seguinte série:

1 1 1

1 + + + ... +

2 3 N

O número de termos da série (N) deve ser fornecido pelo utilizador. Para valores de N inválidos, o

programa deve apresentar ao utilizador uma caixa de mensagem apropriada. O valor da série deve

apresentar, no máximo, quatro casas decimais. Para a interface sugere-se o seguinte modelo:

6.9 Modifique o programa anterior, para calcular o valor da seguinte série:

1 1 1

1 + + + + ...

3 5 7

O número de termos da série também deve ser fornecido pelo utilizador.

Visual Basic 28


Capítulo 7

Estruturas de Repetição Embutidas I

Exercício Resolvido

7.1 Elabore um programa em Visual Basic que permita tabelar a seguinte função:

Os valores a assumir pela variável x são: 2, 3, 4 e 5.

Para cada valor de x, a variável y assumirá valores entre 2 e 20 com passo 2 ou 3, consoante a

escolha feita pelo utilizador através dos botões de opção apresentados no modelo de interface

proposto a seguir.

2 2

x + y

f(x, y) =

2

y

Exemplo: Caso seja escolhido o passo 3, os valores a assumir pelas variáveis x e y assim como

os diversos valores de f(x, y) serão:

x y f(x, y)

2 2 2

5 1,16

8 1,0625

11 1,033058

14 1,020408

17 1,013841

20 1,01

3 2 3,25

5 1,36

8 1,140625

11 1,07438

14 1,045918

17 1,031142

20 1,0225

4 2 5

5 1,64

. . . . . . . . .

17 1,055363

4 20 1,04

5 2 7,25

5 2

. . . . . . . . .

17 1,086505

20 1,0625

Visual Basic 29


Capítulo 7

Estruturas de Repetição Embutidas I

Programação do Botão Tabelar Função:

1. Algoritmo (Fluxograma e Pseudo-código):

%5*++%+,+%13&6

0++1

2 3

Início

2"4

1 3

1"3

F ← (X ↑ 2 + Y ↑ 2)/(Y ↑ 2)

Escrever(“Indique o passo dos valores de Y (2/3)”)

Ler(PassoY)

Repetir para X 2 até 5

Repetir para Y 2 até 20 passo PassoY

F (X↑2 + Y↑2) / (Y↑2)

Escrever(“X=”, X, “Y=”, Y, “F=”, F)

Fim Repetir

Fim Repetir

2(2(1 (1( (

Fim

1 1#0++1

2 2#

2. Codificação em Visual Basic:

Private Sub CmdTabelarFuncao_Click()

Dim X As integer, Y as integer, PassoY as integer, F As double

LstNumeros.Clear

If OptPasso2.Value = True Then

PassoY = 2

Else

PassoY = 3

End If

For X = 2 To 5

For Y = 2 To 20 Step PassoY

F = (X^2 + Y^2) / (Y^2)

LstFuncao.AddItem str(X) & “ ” & str(Y) & “ ” & str(F)

Next Y

Next X

End Sub

Visual Basic 30


Capítulo 7

Estruturas de Repetição Embutidas I

Exercícios Propostos

7.2 Na qualificação, para uma determinada prova automobilística, participam um conjunto de

concorrentes (numerados de 1 a n). Cada concorrente dá 6 voltas ao circuito, com o objectivo de

fazer o melhor tempo possível em qualquer uma das voltas. A grelha de partida será posteriormente

elaborada, tendo por base o menor tempo realizado por cada concorrente.

Crie um programa em Visual Basic, cuja interface é sugerida na figura abaixo apresentada, que leia

para cada concorrente, o tempo efectuado (em segundos) em cada uma das seis voltas. O número

total de concorrentes é definido pelo utilizador na caixa de texto intitulada N. de Concorrentes.

No final, pretende-se que seja apresentado o pior tempo, assim como, o número do concorrente que

o realizou, uma vez que este será desclassificado.

7.3 A administração de um casino pretende simular informaticamente o funcionamento de uma das suas

slot machines, para efeitos estatísticos. Fisicamente, esta é constituida por 3 roldanas, cada uma

com números entre 0 e 9. Um jogador só ganha, quando os números nas 3 roldanas forem iguais.

Elabore um programa em Visual Basic que permita simular um certo número de jogos, a definir pelo

utilizador. Cada jogo é constituído por tantas tentativas quanto as necessárias para se obter 3

números iguais. Cada tentativa consiste na geração de 3 números aleatórios.

Pretende-se que o programa apresente:

• Para cada jogo, o número de tentativas que o programa teve que efectuar até acertar,

representando os resultados numa caixa de listagem;

• A média das tentativas por jogo até conseguir um acerto, obtida ao longo dos vários jogos.

(continua)

Visual Basic 31


Capítulo 7

Estruturas de Repetição Embutidas I

Para interface sugere-se o seguinte modelo:

Exercícios Suplementares

7.4 Uma instituição bancária possibilita aos seus clientes a constituição de um depósito a prazo que

vence juros diários em função do montante depositado, de acordo com o especificado na seguinte

tabela:

Montante Depositado Taxa de Juro (diária)

valor < 500 contos 0.003%

500 ≤ valor < 2000 contos 0.007%

2000 ≤ valor < 5000 contos 0.01%

valor ≥ 5000 contos 0.02%

Elabore um programa em Visual Basic que simule a evolução de um dado depósito ao longo de N

anos. Pretende-se que este apresente o saldo da conta no final de cada ano. Para a interface

sugere-se o modelo seguinte.

Nota: Considere que um ano é sempre composto por 365 dias.

7.5 Elabore um programa em Visual Basic que permita listar todos os números primos que se

encontram num dado intervalo definido pelo utilizador. Como modelo a considerar, sugere-se a

seguinte interface:

Visual Basic 32


Capítulo 8

Estruturas de Repetição Embutidas II

!

Exercício Resolvido

8.1 A Federação de Golfe decidiu adquirir um programa em Visual Basic de modo a facilitar-lhes o

processamento dos dados durante as diversas provas realizadas e que lhes permita:

• Ler o número N de buracos da prova;

• Ler o nome dos participantes, assim como, o total de tacadas que cada atleta necessitou

para cada um dos N buracos existentes na prova. A introdução de dados deve terminar

quando for digitado FFF;

• Mostrar o nome do vencedor da prova (atleta que obteve o menor número de tacadas no

total dos N buracos).

Para a interface sugere-se o seguinte modelo:

Programação do Botão Iniciar:

1. Algoritmo (Pseudo-código e Fluxograma):

Início

Fim

Escrever( “Introduza o nº de buracos”)

Ler(N)

Menor 5000

Vencedor “”

Escrever( “Indique o nome do jogador”)

Ler(Nome)

Repetir Até Nome = “FFF”

TotTacadas 0

Repetir Para Buraco 1 Até N

Escrever( “Indique o número de tacadas no buraco nº ”, Buraco)

Ler(Tacadas)

TotTacadas TotTacadas + Tacadas

Fim Repetir

Se TotTacadas < Menor Então

Menor TotTacadas

Vencedor Nome

Fim Se

Escrever( “Indique o nome do jogador”)

Ler(Nome)

Fim Repetir

Escrever(“O vencedor é ”, Vencedor)

Visual Basic 33


Capítulo 8

Estruturas de Repetição Embutidas II

Visual Basic 34


Capítulo 8

Estruturas de Repetição Embutidas II

2. Codificação em Visual Basic:

Private Sub CmdIniciar_Click()

Dim N as integer, Menor as integer, TotTacadas as integer, Tacadas as integer

Dim Buraco as integer, Nome as string, Vencedor as string

N = val(TxtN.Text)

Menor = 5000

Vencedor = “”

Nome = inputBox (“Introduza o nome dum jogador: ”, “Introdução de Dados”)

Nome = format(Nome , “>”)

Do Until Nome = “FFF”

TotTacadas = 0

For Buraco = 1 To N

tacadas = val(inputBox(“Introduza o nº de tacadas no buraco “ & str(buraco), “Introdução de Dados”))

TotTacadas = TotTacadas + Tacadas

Next Buraco

If TotTacadas < Menor Then

Menor = TotTacadas

Vencedor = Nome

End If

Nome = inputBox (“Introduza o nome dum jogador: ”, “Introdução de Dados”)

Nome = format(Nome , “>”)

Loop

lblVencedor.Caption = Vencedor

End Sub

Exercícios Propostos

8.2 Uma livraria pretende adquirir uma aplicação desenvolvida em Visual Basic que lhes possibilite

consultar rapidamente a quantidade de livros por editora que existem em stock na firma. Sabendo

que a mesma editora pode ter editado livros em vários áreas, elabore um programa que lhes

permita:

• Ler o total de áreas existentes actualmente na loja;

• Ler, para cada editora, o seu nome e o número de livros por área. A leitura dos nomes das

editoras deve terminar quando for lido o nome “TT”;

• Apresentar numa lista a quantidade de livros existentes por editora;

(continua)

Visual Basic 35


Capítulo 8

Estruturas de Repetição Embutidas II

• Apresentar no final a editora com maior quantidade de livros em stock.

Para a interface sugere-se o seguinte modelo:

8.3 Num supermercado de uma cooperativa está a decorrer uma promoção cujo objectivo é premiar os

sócios que ultrapassem os 75,00€ em compras através da oferta de um vale de desconto. Elabore

um programa em Visual Basic que:

• Leia o número de cada sócio, assim como, o preço de cada produto que o mesmo adquiriu.

A introdução de dados relativos aos bens adquiridos deve terminar quando for introduzido o

preço 0 (zero) num artigo, e o atendimento dos sócios terminará quando for introduzido o

número 999;

• Apresente o total de vales oferecidos;

• Mostre o número de clientes atendidos.

Para a interface sugere-se o seguinte modelo:

Visual Basic 36


Capítulo 8

Estruturas de Repetição Embutidas II

Exercício Suplementar

8.4 A Federação de Atletismo pretende comprar uma aplicação que lhes permita gerir mais facilmente

os resultados obtidos pelos atletas participantes na prova do Pentatlo (composta por 5 provas

distintas). Elabore um programa em Visual Basic que:

• Leia o nome e o número de pontos conseguidos por cada atleta em cada uma das 5 provas.

A introdução de dados deve terminar quando for digitado o nome FFF.

• Apresente o nome do vencedor e o total de pontos obtidos (maior número de pontos).

Visual Basic 37


Anexos

Fluxogramas

" #$

"%

&$'

Símbolo

Função

Início / Fim

Entrada

Processamento

Decisão

Saída

Conector

Fluxo de dados

Visual Basic 38


Anexos

Visual Basic – O Fundamental da Matéria Abordada

"%

'()*'

Tipo Operação Casos Observações

Operadores

Atribuição

+, -, *, /, resto, divInt

Exponenciação

> < ≥

= ≠

e , ou , não

&

Concatenação de strings

Entrada ler ... ... valor Ex: ler(x, y, p)

Saída

escrever ... ... valor Ex: escrever(“Pares=”, p)

... “mensagem”

mostrar ...

... imagem

Selecção de

Alternativas

Estruturas

de

Repetição

(Ciclos)

Funções

se condição então

acção

fim se

se condição então

acção

senão

acção

fim se

repetir para c ← início até fim [passo n]

acção

fim repetir

repetir enquanto condição

acção

fim repetir

repetir

acção

enquanto condição

repetir até condição

acção

fim repetir

repetir

acção

até condição

seno(x), cos(x), tg(x)

comp(st)

aleatorio()

val(st)

int(x)

Passo é opcional no caso

de ser +1

Devolve o nº de carateres

de st

Gera número aleatório

real no intervalo [0 ; 1[

Converte em numérico os

carateres de st reconhecidos

como tal.

Devolve a parte inteira de

X

Raíz quadrada

Início do algoritmo

Fim do algoritmo

raízQ(x)

Outros

Início

Fim

Verdadeiro, Falso

Def

Declaração de dados

[ …….. ] Comentário

Variáveis Nomes devem ser

significativos

Visual Basic 39


Anexos

Visual Basic – O Fundamental da Matéria Abordada

"%

OBJECTOS

+,)-& . /#

• Forms

• Controls

Label

TextBox

Command Button

PictureBox

Frame

Option Button

Check Box

ListBox

• Propriedades Utilizadas

Name

Alignment

Border Style

Caption

Column

Font

Height

List

MaxLength

Text

Value

Visible

Width

EVENTOS

• Click

(continua)

Visual Basic 40


Anexos

Visual Basic – O Fundamental da Matéria Abordada

CÓDIGO

• Tipo de Dados

• Simples: Integer Long Single Double Boolean String

• Indexados: Array( nº_de_elementos ) Array( nº_de_linhas , nº_de_colunas )

• Variáveis

• Simples: Dim Nome As . .

• Indexadas: Dim Nome_do_vector( nº_elementos) As . .

Dim Nome_da_matriz( nº_de_linhas, nº_de_colunas) As . .

• Contantes

Const Nome As . .

• Funções Standard

Abs( ) Cos( ) Exp( ) Fix( ) Format( ) InputBox( )

Int( ) Len( ) Log( ) MsgBox( ) Randomize Rnd( )

Sin( ) Sqr( ) Str( ) Tan( ) Val( )

• Operadores

Atribuição: =

Comparação: > < >= <= < >

Aritméticos: + - * / \ ^ Mod

Concatenação:

&

Lógicos: And Or Not

• Estruturas de Decisão ( simples / embutidas )

If . . Then

If . . Then . . Else

If . . Then . . ElseIf

End If

• Estrututras Repetitivas - Ciclos ( simples / embutidas )

Contados:

For . . Next

Condicionais (Ciclos controlados por Contador ou por Sentinela):

Do While . . Loop ou Do . . Loop While

Do Until . . Loop ou Do . . Loop Until

Visual Basic 41


Anexos

Visual Basic – Mensagens de Erro mais Comuns

"%

+,). '

Mensagens de Erro Significado Motivo

Block If without End If Block If sem End If • Intrução If que não se encontra

convenientemente terminada com End

If. Não foi respeitada a sintaxe:

If condição(ões) Then

Bloco de Instruções

[ Else

Bloco de Instruções ]

End If

Division by zero Divisão por zero • Divisão real ou inteira pelo valor zero.

Do without Loop Do sem Loop • Instrução Do {While | Until} não se

encontra convenientemente terminada

com Loop. Não foi respeitada a

sintaxe:

Do { While | Until } Condição(ões)

Bloco de Instruções

Loop

Else without If Else sem If • Cláusula Else sem correspondência

com qualquer If anterior.

End If without block If End If sem block If • End If que não pertence a qualquer

bloco If anterior.

For without Next For sem Next • Instrução For que não se encontra

convenientemente terminada com Next.

Não foi respeitada a sintaxe:

For var = inicio To fim [Step Inc]

Bloco de Instruções

Next [var]

Invalid Next control

variable reference

Referência inválida à

variável de controlo do

Next

• A variável de controlo de ciclo não é a

mesma nas instruções For e Next.

Loop without Do Loop sem Do • Instrução Loop sem o correspondente

Do.

Normalmente este erro é causado por

não se ter terminado uma outra

estrutura de controlo (condicional ou

repetitiva) imbricada naquela.

Next without For Next sem For • Instrução Next sem o correspondente

For.

Normalmente este erro é causado por

não se ter terminado uma outra

estrutura de controlo (condicional ou

repetitiva) imbricada naquela.

(continua)

Visual Basic 42


Anexos

Visual Basic – Mensagens de Erro mais Comuns

Object required Objecto obrigatório • Utilização duma propriedade num

controlo cujo nome é desconhecido

pelo Visual Basic.

Overflow Valor não suportado • Valor que não é susceptível de ser

suportado pelo tipo de dados da

variável. Este género de erro ocorre

quando por exemplo, se tenta

armazenar um valor superior a 32767

numa variável do tipo Integer.

Type mismatch Tipos incompatíveis • Operação que envolve tipos de dados

Incompatíveis. Este género de erro

ocorre por exemplo, quando se tenta

efectuar uma operação aritmética com

uma variável não numérica.

Variable not defined Variável não definida • A variável em questão não foi

devidamente declarada através de uma

instrução Dim.

• Não existe qualquer controlo com nome

igual aquele que foi introduzido na

janela de código.

Visual Basic 43

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!