1 Entradas e Saídas 1. 2 Estruturas de Selecção Simples 8. 3 Estruturas de Selecção Embutidas Estruturas de Repetição Condicionais Simples I 17

Documentos relacionados
Introdução à Computação Visual Basic. Sebenta Prática

ISEP Introdução à Computação

Introdução à Computação

Introdução à Computação

Estruturas de Repetição Embutidas. APROG (Civil) Aula 11

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

APROG. Civil. Programas Básicos. ISEP DEI, Angelo Martins 2006 ISEP DEI, António Silva Programas Básicos

Fundamentos Programação

Exercícios Data Modeling

Este Exame é individual, sem consulta e com a duração de 90 minutos. Responda às questões no próprio teste, no espaço próprio.

TÉCNICO DE INFORMÁTICA - SISTEMAS

Um algoritmo deve conter passos não ambíguos, executáveis e que sejam terminados quando seguidos.

Introdução à Computação. Programas Básicos. ISEP DEI, Angelo Martins 2006 Programas Básicos - 1

APROG Civil. Estruturas de Decisão. Angelo Martins Dep. Eng. Informática - ISEP. Aula 2. ISEP DEI, Angelo Martins 2006 ISEP-DEI, António Silva, 2007

Informática II Cap. 4-2

Exercícios: Comandos de Repetição

Estruturas de Controlo Repetitivo. APROG (Civil) Aula 8

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

Páginas seleccionadas

Instituto Superior de Engenharia do Porto Programação (SEE)

Programação. Folha Prática 5. Lab. 5. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.

Variáveis indexadas Vectores e Matrizes. APROG (Civil) Aula 12

O que é um programa em Visual Basic?

Sequencial Estrutura de controlo mais simples. As instruções são executadas sequencialmente.

Ficha 1 Noções de sequência e decisão em algoritmia

Módulo 1a: Introdução ao Visual Basic for Applications (VBA)

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo

Instituto Federal de Minas Gerais - Campus avançado de Ponte Nova - IFMG Disciplina: Introdução a programação Professor: Saulo Henrique Cabral Silva

Exercícios Repetição

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python

ESTRUTURA CONDICIONAL E SELEÇÃO

Introdução à Programação 2006/07. Algoritmos

Parte I - Expressões lógicas e operadores

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

Introdução à Computação

Execução de instruções. Aula nº4

Fundamentos de Programação Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte 15 de maio de 2018.

PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO 11ºANO

INSTITUTO SUPERIOR DE ENGENHARIA DO PORTO

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2006/2007

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Introdução à Computação. Estruturas de Decisão. ISEP DEI, Angelo Martins 2006 Estruturas de Decisão - 1

Algoritmos e Programação (While Do While - Do) Prof. Me. Adelson Felipe Dias Nogueira

Oficina de Python Prof. Me. José Carlos Perini

Exercícios de VBA. Paulo Melo Joana Dias Óscar Lourenço 17 de Maio de 2006

CAPÍTULO IV. Estruturas Condicionais CAPÍTULO IV ESTRUTURAS CONDICIONAIS ESTRUTURA CONDICIONAL SIMPLES

Elementos Básicos de Programação

Questão 1 Analise o trecho do código abaixo, escrito na linguagem C#:

Algoritmos e Programação

Sistemas Operacionais e Introdução à Programação. Introdução à Lógica de Programação: estruturas de repetição

Objectivos. Introdução à programação Macros em Microsoft Excel Introdução ao Visual Basic para Aplicações (VBA)

LISTA DE ATIVIDADES ...

Exercícios: comandos condicionais

Oficina de Python Prof. Me. José Carlos Perini

LISTA DE EXERCÍCIOS: 1ª Unidade

Programação de Computadores III

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia

01/08/2011. Tipos de dados Numéricos Alfanuméricos Lógicos. Numéricos. Tipos de dados. Dados Numéricos Inteiros. Dados Numéricos Reais.

MCG114 Programação de Computadores I. Comandos de condição 3/26/18. Comando if. Comando if. Até agora... Comandos de Condição! Comandos de Condição

Variáveis Tipos de Dados

1ª LISTA DE EXERCÍCIOS

I1, I2 e In são instruções simples ou estruturadas da linguagem Pascal.

Desenho de algoritmos

3ª Lista de Exercícios de Programação I

Variáveis Tipos de Dados. APROG (Civil) Aula 2

Programação Estruturada

Instruções condicionais

INFORMÁTICA PARA ENGENHARIA

ALGORITMOS E PROGRAMAÇÃO DE COMPUTADORES I. Trabalho 1 (T1)

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Início Enquanto - GABARITO Professor: Danilo Giacobo

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

1 - Ambiente de desenvolvimento

CAPÍTULO 3 INSTRUÇÕES BÁSICAS

Programação de Computadores III

Algoritmos II prof. Daniel Oliveira

Estruturas de Decisão. APROG (Civil) Aula 6

LISTA DE EXERCÍCIOS 5 Algoritmos Estruturas de Controle - Seleção

Computação 1 - Python Aula 3 - Teórica: Tipos de dados, Strings, Estrutura Condicional 1/ 28

Programação de Computadores:

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;

Para instalar o Visual Basic 2010 Express.

Algoritmos e Lógica de Programação. Prof. Marcos Antonio Estremoe. 1 - Faça um programa que imprima a frase: Bem Vindo à Engenharia Firb 2014.

9. imprimir o fatorial do número 10. imprimir o sucessor e o anterior de um número lido 11. Imprimir se um número é primo ou não 12. Imprimir os 100 p

Linguagem de programação: Pascal

Prof. Tiago Alves de Oliveira. Tiago Alves de Oliveira - 1

Laboratório 5 Estruturas de Selecção

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

Maratona de Programação

Disciplina: Algoritmos e Programação Professor: Paulo César Fernandes de Oliveira, BSc, PhD

Comandos de desvio de fluxo. Expressões lógicas.

Conceitos Básicos. Professor: Juliano Lucas Gonçalves.

CADERNO DE EXERCÍCIOS ALGORITMOS

Estruturas de Repetição. Leonardo Murta

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Transcrição:

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 Font Alignment BorderStyle Font 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. = 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. = 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 Font Font Alignment BorderStyle Font Alignment Font Text Font 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. = 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 Font Alignment Font Text Font Alignment Font 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 Font Distância da Viagem (Km): Ms Sans Serif; Bold; 10 Text3 Alignment Font Text 1 Right Justify Ms Sans Serif; Bold; 12 TxtDistancia (vazio) Label4 Font Consumo da Viagem (Litros): Ms Sans Serif; Bold; 10 Label5 Alignment BorderStyle Font 1 Right Justify 1- Fixed Single (vazio) Ms Sans Serif; Bold; 12 LblConsumoViag Label6 Font Custo da Viagem (Euros): Ms Sans Serif; Bold; 10 Label7 Alignment BorderStyle Font 1 Right Justify 1- Fixed Single (vazio) Ms Sans Serif; Bold; 12 LblCustoViag Command1 Font &Calcular CmdCalcular Ms Sans Serif; Bold; 10 Command2 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 Alignment Text Operações Aritméticas FrmOperAritm 1 - Rigth Justify TxtNumero1 (vazio) Visual Basic 5

Capítulo 1 Entradas e Saídas Text2 Alignment Text 1 - Rigth Justify TxtNumero2 (vazio) Label1 Alignment Label2 = Label3 Command1 Command2 Command3 Command4 Command8 Alignment BorderStyle 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 Área de Polígonos Regulares FrmAreaPoligReg Visual Basic 6

Capítulo 1 Entradas e Saídas Label1 Número de lados = Label2 Raio circunscrito (R) = Label3 Área = Text1 Text2 Label4 Command1 Command2 Text Text BorderStyle 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. = N If N = 7 Then LblMsg. = PicMoedas.Visible = True Else PicMoedas.Visible = False LblMsg. = 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. = Format(Cambio, "#,##0.#0") LblMoeda. = "Dólares" ElseIf (OptLibra.Value = True) Then Cambio = Euros * 0.6274 LblCambio. = Format(Cambio, "#,##0.#0") LblMoeda. = "Libras" Else Cambio = Euros * 120.22 LblCambio. = Format(Cambio, "#,##0.#0") LblMoeda. = "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. = 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. = format(media, 0.0 ) End if LblTotNum. = 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. = 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 Alignment Border Style 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