Este material diz respeito às edições da cadeira anteriores a 2009-2010 (os enunciados podem no entanto ser utilizados para treino)

Software necessário


Caso pretendam dispôr do Ambiente de Desenvolvimento Integrado do Visual Basic 5.0 CCE podem fazer aqui o seu download (7,13 MB). Após o download, devem gravar no disco e instalar.

Para quem apenas disponha do Windows Vista, sugere-se a instalação do
Visual Basic 2005 contido no pacote Visual Studio Express. Deverá aceder ao link e fazer a descarga do Visual Basic 2005.


Exercícios propostos
[compilados por Ângelo Martins]

Nesta página são apresentados enunciados dos exercícios das aulas práticas bem como de outros exercícios propostos. São ainda sugeridas algumas resoluções. A distribuição por aulas pode não ser exactamente esta.


Programas Básicos e Estruturas de Decisão

Enunciado da aula prática nº1

Exercícios Complementares (extra aula)

1 - Elabore um programa que permita converter metros em centímetros.
2 - Elabore um programa que permita calcular a área de um rectângulo dado o seu comprimento e largura em cm.
3 - Elabore um programa que efectue a conversão entre temperaturas expressas em graus Celsius e Fahrenheit.
4 - Elabore um programa que leia um número inteiro e indique se ele é par ou ímpar.
5
 - Elabore um programa que permita saber quantos tijolos são necessários para erguer uma parede rectangular de comprimento e altura, em cm, introduzidos pelo utilizador. A dimensão de cada tijolo é de (30x20 cm);

Estruturas de Decisão

Enunciado da aula prática nº2

Exercícios Complementares (extra aula)
1
- Uma das regras de uma Empresa de Engenharia Civil é a realização de obras somente quando estas se encontram a uma distância igual ou inferior a 200 Km do Porto. Para tal é pedido ao utilizador que introduza a distância da obra ao Porto. Caso esta seja inferior a 200 Km é visualizada a mensagem “Aceite”, caso contrário “Não Aceite”.
2 - Uma Empresa de Engenharia Civil chegou à conclusão que só era viável do ponto de vista económico a realização de obras que obedecessem a determinadas regras:
  • Se a obra se situar a uma distância inferior a 200 Km do Porto ;
  • Se a obra se situar a uma distância entre os 200 e os 500Km e o valor da obra for de pelo menos 250000€;
  • Para distâncias superiores se o valor da obra superior a 300000€.
Elabore um programa que leia a distância a que se encontra uma obra e o respectivo valor e indique se a empresa deve aceitar a obra.
3 - Elabore um programa que leia as três componentes de um intervalo de tempo (horas, minutos e segundos) e apresente numa caixa de texto o seu valor em segundos. (O intervalo de tempo deve ser validado.)
4 - Elabore um programa que permita saber quantas paletes de tijolos de dimensões (30x20 cm) são necessárias para construir as paredes exteriores de uma casa (formato rectangular). Para tal, é pedido ao utilizador o comprimento, altura e largura, em cm, da casa a construir. Nota: Cada palete é composta por 160 tijolos, não sendo permitida a venda de tijolos individualmente.
5 - Altere o programa anterior de modo a saber-se também o custo total de material, sabendo que cada palete de tijolos custa 30€.
6 - Elabore um programa que leia as três componentes de uma data (ano, mês e dia) e indique se esta é válida. (Note que um ano só é bissexto se for múltiplo de 4 e não for múltiplo de 100, ou se for múltiplo de 400)
7 - Elabore um programa que permita classificar um triângulo dados três pontos (equilátero, isósceles ou escaleno).

Ciclos (I)

Enunciado da aula prática nº3

Exercícios Complementares (extra aula)
1
- Elabore um programa que leia um número inteiro longo e apresente os seus algarismos numa ListBox.
2 - Elabore um programa que permita ler uma sequência de números até que seja lido o valor 0 (zero). No final deve ser visualizado quantos números foram lidos, bem como o maior e o menor valor lido.
3 - Elabore um programa que leia uma sequência de números inteiros longos e apresente o que tiver a maior soma dos seus algarismos. O número de elementos da sequência é dado pelo utilizador.
4 - Elabore um programa que leia dois números e calcule o respectivo Máximo Divisor Comum (mdc).
5 - Elabore um programa que leia dois números e calcule o respectivo Mínimo Múltiplo Comum (mmc).
6 - Uma empresa de Eng. Civil pretende um programa que lhe permita calcular quantas paletes de tijolos de dimensões (30x20 cm) são necessárias para construir as paredes exteriores de n casas (formato rectangular). Para tal, é pedido ao utilizador o comprimento, altura e largura, em cm, de cada casa a construir. Os resultados devem ser visualizados numa ListBox.
7 -  Elabore um programa que permita ler números positivos, terminando quando o somatório dos números pares ou dos números impares for superior aos limites definidos pelo utilizador para cada um deles. No final deve ser visualizado o somatório dos nºs pares e dos nºs impares.

 
Ciclos (II)

Enunciado da aula prática nº4

Exercícios Complementares (extra aula)
1
- Elabore um programa que leia um número entre 1 e 10 e visualize a respectiva tabuada (1 a 10). A tabuada deve se visualizada numa Listbox.
2 - Elabore um programa que apresente numa ListBox todos os múltiplos de dois números que existam num dado intervalo. Os números e o intervalo são dados pelo utilizador e devem ser validados.
3 - Elabore um programa que permita saber se um determinado número é primo.
4 - Elabore um programa que permita achar o quociente e o resto da divisão de dois números positivos, sem utilizar os operadores de divisão e mod.
5 - Elabore um programa que permita gerar todos os nºs primos até um determinado limite dado pelo utilizador.
6 - Elabore um programa que apresente numa ListBox todos os números primos existentes num intervalo dado pelo utilizador. (Resolução)
7 - A construtora Faz & Desfaz, SA resolveu implementar um sistema de controlo da qualidade para cada uma das suas obras, tendo contratado os alunos de INTC de Civil para realizar um programa para analisar o grau de ineficiência nas obras. Assim, o programa em Visual Basic deve ler o número de vezes que cada uma das diversas tarefas da obra foi executada, sendo o número de tarefas dado pelo utilizador. Como resultado, o programa deve indicar o número médio de vezes que as tarefas são executadas, a tarefa que teve que ser executada mais vezes e a que teve que ser executada menos vezes. Deve ainda ser dada ao utilizador, numa caixa de texto, uma informação qualitativa sobre a obra de acordo com a média de repetições:
[1, 3] – “Excelente Controlo.”
]3, 5] – “Controlo Mediano.”
]5, ...[ – “O que estava o Eng. Civil lá a fazer?”

(Resolução)

 
Ciclos (III)

Enunciado da aula prática nº5

Exercícios Complementares (extra aula)
1
- Elabore um programa que leia dois números e verifique se estes são primos entre si. Dois números são primos entre si se o único divisor comum for a unidade.
2 - Elabore um programa que apresente numa ListBox todos os números compostos exclusivamente por algarismos pares que existam numa sequência de valores dada pelo utilizador. A sequência é composta exclusivamente por números positivos e o número de elementos da sequência não é conhecido, terminando a introdução de valores quando for inserido -99 pelo utilizador.
3 - Elabore um programa que apresente numa ListBox todos os números de um intervalo com 2 ou mais algarismos ímpares consecutivos. O programa deve também apresentar os números com mais algarismos ímpares (no caso de haver mais do que um) e validar o intervalo dado. Casos os limites do intervalo estejam trocados o programa deve efectuar a respectiva correcção.

 
Funções e Subrotinas

Enunciado da aula prática nº6

Exercícios Complementares (extra aula)
1 - Elabore uma função que recebe um número inteiro longo e retorna o número de algarismos pares que este contém. Utilizando a função, elabore um programa que leia um conjunto de números e apresente em duas TextBox o número com mais algarismos pares e a percentagem de números formados exclusivamente por algarismos ímpares. Deve ainda visualizar todos os elementos lidos numa ListBox. O número de elementos a ler é dado pelo utilizador.

2 - Elabore uma função que recebe um número inteiro longo como parâmetro e retorne o seu "simétrico", isto é, o número lido da direita para esquerda. Utilizando a função, elabore um programa que permita visualizar todas as capicuas dentro de um intervalo definido pelo utilizador. Desenhe o respectivo formulário, identificando todos os objectos.
3 - Elabore uma subrotina que recebe um número inteiro longo como parâmetro e transforme no seu "simétrico", isto é, o número lido da direita para esquerda. Utilizando a subrotina, elabore um programa que permita visualizar todas as capicuas dentro de um intervalo definido pelo utilizador. Desenhe o respectivo formulário, identificando todos os objectos.
4 - Elabore uma função que permita saber se um determinado número é perfeito. Utilizando a função, elabore um programa que permita visualizar todos os números perfeitos entre um e o limite definido pelo utilizador, chamando a função. Desenhe o respectivo formulário, identificando todos os objectos.
Nota: Número perfeito é aquele cuja soma dos seus divisores é igual ao próprio número. Exemplo: 6->1,2,3=6

 
Vectores (I)

Enunciado da aula prática nº7

Exercícios Complementares (extra aula)
1 - Elabore um programa que leia um conjunto de notas (entre 0 e 20) e apresente numa ListBox todos elementos superiores à média do conjunto. O número de notas a ler é dado pelo utilizador e limitado a 100 unidades.
2 - Altere o exercício anterior de forma a que a leitura das notas termine quando for introduzido o valor –1. O número de alunos não é fornecido pelo utilizador, mas está ainda limitado às 100 unidades.
3 - Elabore uma subrotina que liste os elementos de um vector numa ListBox. O vector e a ListBox são passados como parâmetros. Teste a subrotina no programa do exercício anterior.
 
Vectores (II)

Enunciado da aula prática nº8

Exercícios Complementares (extra aula)
1 - Elabore uma função que retorne o número de números pares contidos num vector.
2 - Elabore uma subrotina que inverta a sequência dos elementos de um vector passado como parâmetro. Elabore um programa para testar a subrotina.
3 - Elabore uma função que retorne o número de algarismos pares de um número inteiro longo e uma outra função que, utilizando a primeira, retorne a média de algarismos pares dos elementos de um vector de números inteiros longos. Utilizando a função anterior, elabore um programa que leia um conjunto de valores e apresente numa ListBox todos os elementos com um número de algarismos pares igual ou superior à média do conjunto de valores lidos.
 
Matrizes

Enunciado da aula prática nº 10

Exercícios Complementares (extra aula)
1 - Elabore um programa que permita ler o número e as notas de cada aluno de uma turma às diversas disciplinas e apresente a matriz das notas, a média de cada aluno e a média da disciplina. O programa deve também indicar qual é o melhor aluno (melhor média das disciplinas com aprovação, para um maior número de disciplinas com aprovação) e a melhor disciplina (maior número de aprovações e melhor média). O número máximo de alunos por turma é 60 e o de disciplinas 6. Utilize rotinas para a leitura e visualização dos dados (a ListBox deve ser passada como parâmetro da subrotina) e para as tarefas repetitivas. 2 - Elabore uma subrotina que recebe uma matriz e dois números e substitua todas as ocorrências do primeiro dos números na matriz pelo segundo número. Elabore um programa para testar a matriz, que apresente a matriz antes e depois da substituição.
3 - Elabore duas subrotinas, uma que preencha um vector com os elementos da diagonal principal de uma matriz e outra que faça o mesmo quanto à diagonal não principal. Elabore um programa que leia uma matriz de números inteiros, quadrada, e apresente os elementos das duas diagonais da matriz.

 
Strings (matéria dada nas Teóricas)

Enunciado da aula

Exercícios Complementares (extra aula)
1
- Elabore um programa que leia uma string e apresente numa ListBox cada um dos caracteres que a constituem.
2 - Elabore uma função recebe como parâmetro uma string e retorne uma string semelhante à primeira com os caracteres por ordem inversa. Elabore um programa que lei uma string contendo uma palavra e, utilizando a função, verifique se esta é simétrica.
3 - Elabore uma função recebe como parâmetro uma string contendo uma frase e retorne uma string semelhante à primeira com as palavras por ordem inversa. Elabore um programa que lei uma string contendo uma frase e, utilizando a função, verifique se esta é simétrica.
4 - Elabore uma função que recebe uma string como parâmetro e retorne o número de caracteres do alfabeto que esta contém (Não considere as vogais acentuadas como letras do alfabeto). Elabore depois uma subrotina que recebe uma frase (string) como parâmetro e retorne um vector com as palavras da primeira compostas exclusivamente por letras do alfabeto. Elabore finalmente um programa que leia uma frase e apresente numa ListBox as palavras compostas exclusivamente por letras do alfabeto.
5 - Elabore uma função que recebe uma string como parâmetro e retorne o número de caracteres do alfabeto que esta contém. Não considere as vogais acentuadas como letras do alfabeto.
6 - Elabore uma função que recebe uma frase como parâmetro e retorne a percentagem de ocorrência de números nas palavras da frase.
7 - Elabore uma função que recebe uma frase como parâmetro e retorne a palavra mais curta que esta contém.
8 - Elabore uma subrotina que ordene um vector de strings por ordem alfabeta, não distinguindo entre caracteres maiúsculos e minúsculos e não afectando o formato das strings do vector.