Fundação Minerva – Cultura – Ensino e Investigação Científica
Universidade Lusíada – Norte
Faculdade de Engenharia e Tecnologias
Algoritmia e Programação
Proposta de Exercícios
Índice
Conversão de Expressões ................................................................................................. 2
Algoritmos básicos ........................................................................................................... 3
Algoritmia: conceitos fundamentais sobre Decisões ........................................................ 5
Algoritmia: conceitos fundamentais sobre Repetições..................................................... 6
Programas Básicos ............................................................................................................ 8
Operadores Lógicos ........................................................................................................ 10
Estrutura de Decisão If...Then...Else: duas alternativas ................................................. 10
Estrutura de Decisão If...Then...Else: diversas alternativas ........................................... 11
Estrutura de Repetição For...Next .................................................................................. 11
Estrutura de Repetição Do While ................................................................................... 14
Estrutura de Decisão Select Case ................................................................................... 15
Subrotinas e Funções ...................................................................................................... 17
Vectores .......................................................................................................................... 18
Strings ............................................................................................................................. 20
Conversão de Expressões
1. Converta as seguintes expressões matemáticas em expressões computacionais
(Nota: use papel e lápis para converter as expressões, como ilustrado no primeiro
exemplo).
a
b6
9
b) F  C  32
5
a) 1 
Resultado: 1  a /(b  6)
c) A  r 2
1
d) y  3 x 3  x 2  7 x  10
3
C1  C 2  C 3
e) T 
2
f)
A  T (T  C1)(T  C 2)(T  C 3)
g) r 
 b  b 2  4ac
2a
2. Converta as seguintes expressões computacionais em expressões matemáticas.
a) 1+a/(b+6)
Resultado: 1 
a
b6
b) (-b+d)/2*a
c) x^y-z*t
d) Math.Sqrt(Math.Abs(valor))
e) (x/ y)^(n-1)
f) 3*a*b/c/d
g) Math.Log(Math.Sin(alfa*3.1415/180))
Vitor Pereira [[email protected]]
Página 2 de 20
Algoritmos básicos
3. Implemente um algoritmo que, dada a base e a altura de um triângulo, calcule a sua
área (Nota: area=(base*altura)/2).
4. Implemente um algoritmo que leia um diâmetro e de seguida calcule o perímetro da
circunferência e a área do círculo (Nota: perímetro=2r; área=r2).
5. Desenvolva um algoritmo que leia as notas relativas a um trabalho prático, a um
ponto escrito e a um exame final e calcule a média final ponderada de acordo com a
seguinte fórmula:
NotaFinal = 0.35*TrabalhoPrático + 0.25*PontoEscrito + 0.40*ExameFinal
6. O seguinte é a ementa do grupo “Pastelaria da Fonte”. Desenhe um algoritmo que
leia qual a quantidade comprada de cada item e calcule o valor a pagar pelo cliente.
PASTELARIA DA FONTE – Ementa
Café com Natas ......... €0,90
Sumo Natural ............ €1,00
Chocolate Quente ...... €0,75
Hambúrguer .............. €2,30
Cachorro Simples ...... €1,80
7. O Teorema de Pitágoras é provavelmente o mais célebre dos teoremas da
matemática. Crie um algoritmo para determinar a hipotenusa de um triângulo
rectângulo, dados os catetos (Se h designar o comprimento da hipotenusa e a e b os
comprimentos dos catetos, o teorema afirma que: h2 = a2 + b2).
8. Escreva um algoritmo que leia o comprimento dos lados de um triângulo (C1, C2 e
C3) e calcule a área do triângulo, sendo a área dada por:
A  T (T  C1)(T  C 2)(T  C 3)
sendo T 
C1  C 2  C 3
2
9. Uma aproximação à função factorial é dada pela fórmula de Stirling:
n
n! 2n ( ) n
e
Codifique um algoritmo que leia um número e de seguida use esta fórmula para
calcular o seu factorial aproximado ( e e são constantes matemáticas).
10. Implemente um algoritmo que leia um ângulo, em graus, e mostre o seno, co-seno e
tangente desse ângulo (Nota: as funções trigonométricas recebem um ângulo em
radianos. Converta o ângulo em graus para radianos, portanto).
Vitor Pereira [[email protected]]
Página 3 de 20
11. Um sistema de equações lineares da forma:
ax  by  c
dx  ey  f
pode ser resolvido através das seguintes fórmulas:
x
ce  bf
ae  bd
y
af  cd
ae  bd
Desenvolva um algoritmo que leia os dois conjuntos de coeficientes e mostre os dois
valores da solução (isto é, x e y).
12. Codifique um algoritmo que classifique uma nota (entre 0 e 20) numa de cinco
possibilidades: muito insuficiente, insuficiente, suficiente, bom e muito bom. Faça
as considerações que achar mais convenientes.
13. Codifique um algoritmo que leia duas notas e de seguida mostre a sua média
aritmética e a mensagem “Aprovado” ou “Reprovado”, de acordo com o facto de a
média ser igual ou superior a 10 ou não.
14. Codifique um algoritmo que leia três números e mostre aqueles que são maiores do
que a média.
15. Desenvolva um algoritmo que leia as notas relativas a um trabalho prático, a um
ponto escrito e a um exame final e calcule a média final ponderada de acordo com a
seguinte fórmula:
NotaFinal = 0.35*TrabalhoPrático + 0.25*PontoEscrito + 0.40*ExameFinal
No final apresente uma mensagem adequada indicando aprovação ou reprovação.
16. Codifique um algoritmo que leia n números e mostre a sua média aritmética.
17. Codifique um algoritmo que leia n números e mostre o maior e o menor.
18. Escreva um algoritmo que leia n números introduzidos pelo utilizador e mostre, para
cada número, uma mensagem a indicar se é negativo, positivo, ou zero.
19. Escreva um algoritmo que leia n números introduzidos pelo utilizador e mostre a
média e o número de ocorrências de negativos e positivos.
20. Codifique um algoritmo que leia n notas e mostre a quantidade e respectiva
percentagem de positivas e negativas.
Vitor Pereira [[email protected]]
Página 4 de 20
Algoritmia: conceitos fundamentais sobre Decisões
21. Para o algoritmo “maior de 3 valores”, apresente valores de teste que cumpram cada
uma das seguintes alíneas:
a) As duas condições (corrente > maior) são ambas falsas;
b) As duas condições são ambas verdadeiras;
c) A primeira condição é falsa e a segunda verdadeira;
d) A primeira condição é verdadeira e a segunda falsa;
22. Implemente um programa para calcular o menor de 4 valores.
23. Com base nos algoritmos de classificações, implemente um programa que:
a) Classifique uma nota do tipo double (ajuste os limites dos vários intervalos).
b) Leia dois números e mostre: “o 1º é maior” ou “o 2º é maior” ou “são iguais”.
c) Leia um valor representativo do pH e mostre que tipo de solução representa:
ácida (pH<7), neutra (pH=7) ou alcalina (pH>7).
d) Leia o número de lados de um polígono, compreendido entre 1 e 10, e indique
que polígono representa (1 ou 2 lados: não há polígono; 3 é um triângulo; 4 é um
quadrilátero; 5 é um pentágono; etc.).
e) Leia um mês (um valor entre 1 e 12) e de seguida mostre o número de dias desse
mês (para o mês 2 deverá mostrar “28 ou 29 dias”, para os meses 1, 3, 5, 7, 8,
10, 12 deverá mostrar “31 dias”, para os restantes a mensagem deverá ser “30
dias”).
f) Leia a magnitude de um sismo e mostre que tipo de sismo se trata (micro, muito
pequeno, pequeno, etc.) e a frequência diária associada (“~8000 por dia”,
“~1000 por dia” …). Ver http://pt.wikipedia.org/wiki/Escala_de_Richter.
Vitor Pereira [[email protected]]
Página 5 de 20
Algoritmia: conceitos fundamentais sobre Repetições
24. Ciclos realizados um número conhecido de vezes (for). Implemente o seguinte:
a) Leia n valores representativos do pH e mostre, para cada valor, que tipo de
solução representa: ácida (pH<7), neutra (pH=7) ou alcalina (pH>7).
b) Classifique todos os meses (ciclo entre 1 e 12) de acordo com o número de dias
que possui, ou seja, mostre “28 ou 29 dias”, “30 dias” ou “31 dias”.
c) Leia n valores e, no final, mostre quantos positivos, negativos e zeros foram
lidos.
d) Leia n valores representativos do pH e mostre o número de ocorrências de cada
tipo de solução (quantas ácidas, neutras e alcalinas).
e) Para todos os meses do ano, mostre quantos existem de cada grupo de acordo
com o número de dias que possuem. Isto é, quantos possuem 28 ou 29 dias,
quantos possuem 30 dias e quantos possuem 31 dias.
f) Leia n idades e mostre a média aritmética dessas idades.
g) Calcule a soma de todos os inteiros compreendidos entre dois quaisquer limites
inteiros. Por exemplo, para os valores 1 e 100 o programa deverá calcular a
soma de 1+2+3+...+98+99+100 e mostrar o resultado.
h) Leia os detalhes de n produtos: código, peso, preço e quantidade, e mostre a
média de cada um dos atributos numéricos (pesos, preços e quantidades).
i) Leia um valor inteiro, n, e calcule o somatório dos n termos das seguintes séries
convergentes:
1 1 1 1
1
1
+ + +
+
+
+⋯=
1 4 9 16 25 36
6
1 1 1 1 1
1
+ + + +
+
+⋯=2
1 2 4 8 16 32
1 1 1 1
1
1
+ + +
+
+
+⋯=2
1 3 6 10 15 21
1 1 1 1 1 1
− + − + −
+⋯=
1 3 5 7 9 11
4
j) Leia n valores e mostre o maior e menor valores lidos. Use o algoritmo “maior
de n valores (v2)”, ou seja, inicie as variáveis maior e menor com,
respetivamente, o menor e maior valores possíveis e leia os valores no ciclo.
k) Leia um valor n, inteiro, e calcule o seu fatorial.
l) Leia n valores representativos do pH e mostre a percentagem, com uma casa
decimal, do número de ocorrências de cada tipo de solução.
Vitor Pereira [[email protected]]
Página 6 de 20
m) Leia um valor n, inteiro, e mostre quantos divisores possui (use um ciclo entre 1
e n e, para cada valor, use o operador % para testar se o resto da divisão de n por
esse valor dá resto zero).
n) Leia um valor inteiro e mostre se esse número é primo ou não (isto é, se só
possui dois divisores, 1 e ele próprio, ou então mais).
o) Mostre quantos números primos existem entre 1 e 100.
p) Implemente o cálculo do fatorial através de um método e de seguida calcule o
seguinte somatório (teste o seu programa para x=1 e use 10 termos do somatório;
o resultado deverá ser aproximadamente igual a Math.E, ou seja, ~2,71828):
xi
x 2 x3
e    1  x    ...
2! 3!
i  0 i!
x

q) Leia n taxas de juro relativas ao rendimento anual de determinado investimento
e calcule o rendimento médio desse investimento. Use a média geométrica para
calcular o rendimento média (consulte a secção Exemplo do link
http://pt.wikipedia.org/wiki/M%C3%A9dia_geom%C3%A9trica). Por exemplo,
se um investimento rende 10% no primeiro ano e 20% no segundo ano, então o
rendimento médio é aproximadamente igual a 1,1489.
25. Ciclos realizados um número desconhecido de vezes (while):
a) Recorrendo ao algoritmo “maior de 3 valores”, implemente um programa que
mostre os valores mínimo e máximo (isto é, o menor e o maior valores) de um
número desconhecido de notas.
b) Leia o número de golos marcados por uma equipa de futebol e no final mostre a
média de golos por jogo.
c) Leia um número desconhecido de valores reais e mostre e média dos positivos e
a média dos negativos (ignorando todos os valores zero lidos).
d) Leia um valor real representativo do erro máximo permitido e de seguida calcule
o valor de  de acordo com o seguinte somatório. No final mostre o número de
termos usados de tal forma que o valor absoluto entre o valor calculado e o valor
real Math.PI não é superior ao erro máximo permitido. Por exemplo, se o valor
lido for 0,0001 então o programa deverá mostrar o número de termos usados no
somatório tal que | (valor  calculado) – Math.PI | < 0,0001.

 (i)

i 1
6
2
 6
6 6 6
6
 2  2  2  ...
2
2 3 4 5
Vitor Pereira [[email protected]]
Página 7 de 20
Programas Básicos
26. Codifique um programa que mostre a seguinte figura:
X
XXX
XXXXX
XXXXXXX
XXXXXXXXX
XXX
XXX
XXX
27. Codifique um programa que declare três variáveis: uma do tipo String, outra do tipo
Integer e uma terceira do tipo Double. Peça ao utilizador uma string, um inteiro e
um valor real, armazenando-os nas três variáveis. Mostre no ecrã os valores
introduzidos pelo utilizador.
28. Codifique um programa que leia dois valores e mostre a sua média.
29. Codifique um programa que leia dois números reais. Mostre no ecrã o resultado da
adição, subtracção, multiplicação e divisão desses valores.
30. Implemente um programa que, dada a base e a altura de um triângulo, calcule a sua
área (Nota: area=(base*altura)/2).
31. Implemente um programa que leia um diâmetro e de seguida calcule o perímetro da
circunferência e a área do círculo (Nota: perímetro=2r; área=r2).
32. Desenvolva um programa que leia as notas relativas a um trabalho prático, a um
ponto escrito e a um exame final e calcule a média final ponderada de acordo com a
seguinte fórmula:
NotaFinal = 0.35*TrabalhoPrático + 0.25*PontoEscrito + 0.40*ExameFinal
33. Elabore um programa que mostre se um número introduzido pelo utilizador é par ou
ímpar (use o operador Mod para calcular o resto da divisão do número lido por 2).
34. O Teorema de Pitágoras é provavelmente o mais célebre dos teoremas da
matemática. Crie um programa para determinar a hipotenusa de um triângulo
rectângulo, dados os catetos (Se h designar o comprimento da hipotenusa e a e b os
comprimentos dos catetos, o teorema afirma que: h2 = a2 + b2).
35. Implemente um programa que leia um ângulo, em graus, e mostre o seno, co-seno e
tangente desse ângulo (Nota: as funções trigonométricas recebem um ângulo em
radianos. Converta o ângulo em graus para radianos, portanto).
Vitor Pereira [[email protected]]
Página 8 de 20
36. Escreva um programa que leia o comprimento dos lados de um triângulo (C1, C2 e
C3) e calcule a área do triângulo, sendo a área dada por:
A  T (T  C1)(T  C 2)(T  C 3)
onde T 
C1  C 2  C 3
2
37. Crie um programa que leia dois valores e mostre o maior recorrendo à seguinte
fórmula:
Maior(A,B) =
A B  A B
2
38. Codifique um programa que leia dois números reais. Mostre no ecrã o resultado
formatado de forma adequada da adição, subtracção, multiplicação e divisão desses
valores. Por exemplo, para os valores 5 e 2 mostre:
5 + 2 = 7
5 - 2 = 3
5 * 2 = 10
5 / 2 = 2,5
39. Codifique um programa que leia um número inteiro e apresente a tabuada entre 1 e
10 desse valor. Mostre no ecrã a tabuada da seguinte forma (para o valor 5):
1 * 5 = 5
2 * 5 = 10
3 * 5 = 15
...
10 * 5 = 50
40. Um sistema de equações lineares da forma:
ax  by  c
dx  ey  f
pode ser resolvido através das seguintes fórmulas:
x
ce  bf
ae  bd
y
af  cd
ae  bd
Desenvolva um programa que leia os dois conjuntos de coeficientes e mostre os dois
valores da solução.
Vitor Pereira [[email protected]]
Página 9 de 20
Operadores Lógicos
41. Indique qual o resultado lógico (Verdadeiro ou Falso) das seguintes expressões
(NÃO codifique programas. Indique apenas qual o resultado lógico de cada alínea):
a) 7>=7
b) 10>=20 Or 10>=5
c) 12=13–1 And 1>0
d) 0>–10 Or –10>–20
e) Not (123=123)
f) Not(0=0 And 1=2)
g) 24>20 And 24<30
h) 4>8 Or 1=0 Or 2<>3
i) Not(1<>0 And 1>2)
j) Not(12<=11 Or 12 >=21)
Estrutura de Decisão If...Then...Else: duas alternativas
42. Crie um programa que leia um número e de seguida apresente o seu módulo (ou
valor absoluto). Considere que não dispõe de uma função com essa funcionalidade
(isto é, crie um programa que implemente a mesma funcionalidade de Math.Abs).
43. Elabore um programa que leia 3 números e apresente o respectivo produto se a soma
dos quadrados dos dois primeiros números for superior ao dobro do terceiro, ou a
respectiva soma, se a condição referida anteriormente for falsa.
44. Codifique um programa que leia o nome e o género de uma pessoa (“M” para
masculino e “F” para feminino) e de seguida apresente uma mensagem de
agradecimento incluindo “Sr.” ou “Sra.” (isto é, apresente qualquer coisa como
“Obrigado, Sra. Ana Beatriz” ou então “Obrigado, Sr. João Sousa”).
45. Codifique um programa que leia dois valores e de seguida mostre a sua média
aritmética e a mensagem “Aprovado” ou “Reprovado”, de acordo com o facto de a
média ser igual ou superior a 10 ou não.
46. Codifique um programa que leia três números e mostre aqueles que são maiores do
que a média.
47. Desenvolva um programa que leia as notas relativas a um trabalho prático, a um
ponto escrito e a um exame final e calcule a média final ponderada de acordo com a
seguinte fórmula:
NotaFinal = 0.35*TrabalhoPrático + 0.25*PontoEscrito + 0.40*ExameFinal
No final apresente uma mensagem adequada indicando aprovação ou reprovação.
Vitor Pereira [[email protected]]
Página 10 de 20
Estrutura de Decisão If...Then...Else: diversas alternativas
48. Implemente um programa que leia um valor e mostre se o valor é negativo, positivo
ou zero.
49. Implemente um programa que leia um valor representativo do pH e mostre que tipo
de solução representa: ácida, neutra ou alcalina.
50. Codifique um programa que leia dois números e mostre qual o maior (ou, no caso
dos números serem iguais, apresente uma mensagem a indicar este facto).
51. Implemente um programa que leia os três lados de um triângulo e mostre que tipo de
triângulo representam (três lados iguais = equilátero; dois lados iguais = isósceles;
três lados diferentes = escaleno).
52. Crie um programa que leia qual o mês (um valor entre 1 e 12) e de seguida mostre o
número de dias desse mês (para o mês 2 deverá mostrar “28 ou 29 dias”, para os
meses 1, 3, 5, 7, 8, 10, 12 deverá mostrar “31 dias”, para os restantes a mensagem
deverá ser “30 dias”).
53. Crie um programa que leia a magnitude de um sismo e mostre que tipo de sismo se
trata (micro, muito pequeno, pequeno, etc.), bem assim como a frequência diária
associada. (ver http://pt.wikipedia.org/wiki/Escala_de_Richter).
54. Implemente um programa que leia a temperatura média registada num dia e indique,
de acordo com a seguinte informação, se se tratou de um dia Muito Frio, Frio,
Ameno, Quente ou Muito Quente:
Menos de 8 ºC -> Muito Frio; Entre 8 e 16 ºC -> Frio; Entre 17 e 22 ºC -> Ameno;
Entre 23 e 27 ºC -> Quente; Mais de 27 ºC -> Muito Quente
Estrutura de Repetição For...Next
55. Codifique um programa que imprima as sequências de números indicadas (Nota: use
a cláusula Step do ciclo For...Next para produzir as sequências especificadas; dentro
do ciclo use a função Write com o valor da variável de ciclo concatenada com um
espaço).
1 2 3 4 5 6 7 8 9 10
0 2 4 6 8 10 12
11 22 33 44 55 66 77 88
–10 –9 –8 –7 –6 –5 –4 –3 –2 –1
20 19 18 17 15 14 13 12 11 10
–1 –2 –3 –4 –5 –6 –7 –8 –9 –10
1 4 9 16 25 36 49 64 81
35 24 15 8 3 0
Vitor Pereira [[email protected]]
Página 11 de 20
56. Escreva um programa que, utilizando um ciclo, leia 3 números introduzidos pelo
utilizador e mostre, para cada número, uma mensagem a indicar se é negativo,
positivo, ou zero.
57. Elabore um programa que, utilizando um ciclo, leia 3 números inteiros introduzidos
pelo utilizador e mostre, para cada número, uma mensagem a indicar se é par ou
ímpar.
58. Crie um programa que mostre as potências de base 2 para expoentes compreendidos
entre 0 e 10, como ilustrado de seguida:
2^0 = 1
2^1 = 2
…
2^10 = 1024
59. Implemente um programa que mostre uma tabela de conversão entre temperaturas
Celsius e Fahrenheit, para os valores múltiplos de 10 compreendidos entre 0 e 100.
9
A fórmula de conversão é F  C  32 . A tabela a mostrar deverá ser:
5
0 ºC = 32 ºF
10 ºC = 50 ºF
...
100 C = 212 ºF
60. Escreva um programa que mostre a seguinte tabela:
n
n^2
1
1
2
4
3
9
... ...
10 100
n^3
1
8
27
...
1000
61. Escreva um programa que, utilizando um ciclo, mostre a seguinte tabela:
n
2^n
1
2
2
4
3
8
... ...
10 1024
Vitor Pereira [[email protected]]
Página 12 de 20
62. Crie um programa que mostre o valor do co-seno para os ângulos 0º, 10º, 20º, …,
80º, 90º. A tabela a mostrar deverá ser (arredondado a 4 casas decimais):
cos(0º) = 1
cos(10º) = 0,9848
…
cos(90º) = 0
63. Implemente um programa que mostre a média aritmética de n valores.
64. Crie um programa que leia um número inteiro e mostre os seus divisores. Exemplo:
divisores de 6: 1, 2, 3, 6.
65. Codifique um programa que determine a amplitude térmica entre 5 temperaturas
registadas, isto é, mostre a diferença entre a maior e a menor dessas temperaturas.
66. Implemente um programa que calcule a soma de todos os inteiros compreendidos
entre dois limites. Por exemplo, dados os valores 1 e 100 o programa deverá
calcular a soma de 1+2+3+...+98+99+100 e mostrar o resultado.
67. Codifique um programa que mostre todos os números de quatro dígitos em que o
quadrado da soma das duas metades do número é igual ao próprio número. Exemplo
2025: duas metades 20 e 25. Soma das duas metades 20+25=45 ; 45 * 45 = 2025
68. Crie um programa que calcule a soma da seguinte série de 100 termos:
1 – 1/2 + 1/4 - 1/6 + 1/8 –1/10 + 1/12...
69. Implemente um programa que leia n valores representativos do pH e mostre o
número de ocorrências de soluções ácidas, neutras e alcalinas. Apresente ainda a
percentagem associada a cada um dos três tipos.
70. Implemente um programa que mostre uma tabela de conversão entre Celsius e
Fahrenheit cujos limites e incremento são introduzidos pelo utilizador. Isto é, deve
ler os valores mínimo, máximo e incremento, e mostrar a conversão para os valores
especificados.
71. Desenvolva um programa que leia um valor inteiro, n, e de seguida apresente o valor
do seguinte somatório:

3i
3
4
5
6 3 n
= 0  1  2  3 n
i
n
n
n
n
n
i 0 n
n
Vitor Pereira [[email protected]]
Página 13 de 20
72. Sem recorrer ao Visual Basic, indique qual o output do seguinte programa.
Confirme a sua resposta no Visual Basic.
Sub Main()
For i As Integer = 1 To 10
For j As Integer = 1 To i
Console.Write("X")
Next
Console.WriteLine()
Next
End Sub
73. Sem recorrer ao Visual Basic, indique qual o output do seguinte programa.
Confirme a sua resposta no Visual Basic.
Sub Main()
For i As Integer = 1 To 10
For j As Integer = 1 To 10
If i > 7 And j > 8 Then
Console.WriteLine("i=" & i & " j=" & j)
End If
Next
Next
End Sub
74. Crie um programa que mostre uma tabela com o volume do cilindro em função do
raio e da altura. O raio deverá variar entre 2 e 5 de 0,5 em 0,5 cm. A altura deverá
variar entre 1 e 5 de 1 em 1 cm. Mostre o volume arredondado a 3 casas decimais. A
fórmula de cálculo é r2a (r=raio; a=altura).
75. Codifique um programa que calcule o factorial de n números, pedidos ao utilizador
(Nota: n! = n(n-1)(n-2)...2.1).
Estrutura de Repetição Do While
76. Dado um país A, com 5.000.000 de habitantes e uma taxa de natalidade de 3% ao
ano, e um país B com 7.000.000 e uma taxa de natalidade de 2% ao ano, construa
um programa que calcula quantos anos serão necessários para que a população do
país A ultrapasse a população do país B. Confirme o resultado mostrando a
evolução da população dos dois países ao longo dos anos.
77. Crie um programa que leia um número desconhecido de inteiros e mostre, para cada
valor lido, os seus divisores (use -1 para terminar).
78. Implemente um programa que mostre a média aritmética de um número
indeterminado de valores.
Vitor Pereira [[email protected]]
Página 14 de 20
Estrutura de Decisão Select Case
79. Sem recorrer ao Visual Basic, indique qual o output do seguinte programa. De
seguida copie o programa para o Visual Basic e confirme a sua resposta.
Sub Main()
Dim op1, op2, op3, op4 As Integer
op1
op2
op3
op4
=
=
=
=
0
0
0
0
For i = 1 To 10
Select Case i
Case 1
op1 += 1
Case 2, 3
op2 += 1
Case 4 To 6
op3 += 1
Case Else
op4 += 1
End Select
Next
Console.WriteLine("op1=" & op1 & " op2=" & op2 &
" op3=" & op3 & " op4=" & op4)
End Sub
80. Sem recorrer ao Visual Basic, indique qual o output do seguinte programa. De
seguida copie o programa para o Visual Basic e confirme a sua resposta.
Sub Main()
Dim neg, zero, pos As Integer
neg = 0
pos = 0
zero = 0
For i = -5 To 5
Select Case i
Case Is < 0
neg += 1
Case 0
zero += 1
Case Is > 0
pos += 1
End Select
Next
Console.WriteLine("Negativos = " & neg & " Zero = " & zero &
" Positivos = " & pos)
End Sub
Vitor Pereira [[email protected]]
Página 15 de 20
81. Implemente um programa que dada a temperatura média registada num dia
classifique, de acordo com a seguinte tabela, se se tratou de um dia Muito Frio, Frio,
Ameno, Quente ou Muito Quente.
Menos de 9 ºC
Entre 9 e 14 ºC
Entre 15 e 19 ºC
Entre 20 e 26 ºC
Mais de 27 ºC
Muito Frio
Frio
Ameno
Quente
Muito Quente
82. Implemente um programa que leia dois valores (operandos) e um operador
aritmético (+,-,*,/) e calcule o resultado da operação sobre os valores lidos. Exemplo
de utilização (a linha a negrito é o resultado do programa):
Qual o primeiro valor? 12
Qual o segundo valor? 4
Qual a operação (+,-,*,/)? *
Resultado: 48
83. Implemente um programa que leia o número de lados de um polígono,
compreendido entre 1 e 10, e indique que polígono representa (1 ou 2 lados: não há
polígono; 3  triângulo; 4  quadrilátero; 5  pentágono; etc.). (consulte
http://pt.wikipedia.org/wiki/Polígono).
84. Codifique um programa que leia três notas (entre 0 e 20) e de seguida, para cada
nota, faça a reclassificação de acordo com os seguintes níveis (muito insuficiente,
insuficiente, suficiente, bom e muito bom). Faça as considerações que julgue mais
apropriadas.
85. A empresa IMAGINARIUM pretende distribuir um bónus pelos seus n
colaboradores. Implemente um programa que, para cada colaborador, leia o nome e
o salário actual e de seguida mostre o nome, salário actual e novo salário, de acordo
com os seguintes aumentos: Salário < 500  4%; 500 <= Salário < 750  3%; 750
<= Salário < 1000  2%; Salário >= 1000  1,5%.
Altere o programa para no final mostrar o valor da massa salarial antes e depois dos
aumentos (isto é, quanto é que a empresa pagava no total e quanto e que vai passar a
pagar por causa dos aumentos).
Vitor Pereira [[email protected]]
Página 16 de 20
Subrotinas e Funções
86. Implemente uma função chamada AreaTriangulo que receba a base e a altura de um
triângulo e retorne a sua área (Nota: area=base*altura/2).
87. Crie funções chamadas VolumeX (em que X é o nome do sólido) para calcular o
volume dos seguintes sólidos; ver fórmulas em http://pt.wikipedia.org/wiki/Volume:
a) Cubo
b) Paralelepípedo
c) Cilindro
d) Esfera
e) Elipsóide
88. Escreva uma função que receba um número inteiro não negativo e retorne o factorial
desse número.
89. Uma aproximação à função factorial é dada pela fórmula de Stirling:
n
n! 2n ( ) n
e
Codifique uma função que receba um número e de seguida use esta fórmula para
calcular o seu factorial.
90. Escreva uma função que receba o comprimento dos três lados de um triângulo (C1,
C2 e C3) e retorne a área do triângulo, sendo a área dada por:
A  T (T  C1)(T  C 2)(T  C 3)
onde T 
C1  C 2  C 3
2
91. O alcance (range, em inglês) de um projéctil lançado com uma velocidade v0
segundo um ângulo 0 com a horizontal é dado pela seguinte fórmula.
v sen(2 0 )
R 0
g
2
Codifique uma função que receba as duas variáveis, v0 e 0, e de seguida retorne o
alcance. (Nota: Assuma que o ângulo é em radianos. Constante g = 9,8 ms-2).
Vitor Pereira [[email protected]]
Página 17 de 20
92. Codifique uma função que receba dois parâmetros, x e n, e calcule o seguinte:
x n x n 2
x

n n2
se x  0
x n1 x n1

n 1 n 1
se x < 0

93. Uma grande parte de funções/constantes matemáticas importantes possuem séries
infinitas como aproximações. A aproximação é tanto maior quanto maior for o
número de termos utilizado. Desenvolva uma função para calcular o valor de , de
acordo com a seguinte série (receba como parâmetro um valor que representa o
número de termos a usar):

 (i )

i 1
6
2
 6
6
6
6
6
 2  2  2  ...
2
2
3
4
5
Vectores
94. Codifique um programa que declare um vector para armazenar cinco inteiros.
Armazene os valores 10, 20, 30, 40 e 50. Sem utilizar um ciclo, mostre os valores
armazenados no vector. De seguida altere o programa para, utilizando um ciclo,
mostrar os valores armazenados no vector.
95. Codifique um programa que declare um vector para armazenar cinco strings.
Armazene os valores “Um”, “Dois”, “Três”, “Quatro” e “Cinco”. Utilizando um
ciclo, mostre os valores armazenados no vector.
96. Codifique um programa que declare um vector para armazenar n números reais,
pedidos ao utilizador. Utilizando um ciclo, mostre os valores armazenados no
vector.
97. Codifique um programa que declare um vector para armazenar n números reais,
pedidos ao utilizador. Mostre a média aritmética dos valores inseridos.
98. Codifique um programa que declare um vector para armazenar n números reais,
pedidos ao utilizador. Mostre o menor e o maior valores inseridos.
Vitor Pereira [[email protected]]
Página 18 de 20
99. Codifique um programa que leia n números e mostre aqueles que são maiores do
que a média.
100.
Codifique um programa que leia n números e mostre-os pela ordem inversa.
101.
Desenvolva um programa que leia e armazene n notas inteiras num vector e de
seguida mostre as percentagens das positivas e negativas. Por exemplo, se ler 5
notas e, dessas, três forem positivas, o resultado deverá ser 60% positivas e 40%
negativas.
102.
Crie um programa que leia n valores representativos da intensidade do vento em
km/h (ver http://pt.wikipedia.org/wiki/Escala_de_Beaufort) e no final apresente o
número de ocorrências de cada grau da escala.
103.
Crie um programa que leia n valores representativos da classe de risco de
incêndio (ver http://www.meteo.pt/pt/ambiente/risco_incendio/) e no final apresente
a classe de risco com maior número de ocorrências.
104.
Crie uma função chamada MediaVector que retorne a média dos valores de um
105.
Crie uma função chamada MaximoVector que retorne o maior valor existente
106.
Crie uma função chamada EPar que receba um valor inteiro e retorne True se o
107.
Crie uma função chamada EVogal que receba um carácter e retorne True se o
108.
Crie uma função chamada EPrimo que receba um valor inteiro e retorne True se
vector do tipo Double.
num vector do tipo Double.
número for par e False caso contrário.
carácter for uma vogal; retorne False caso contrário.
se tratar de um número primo; retorne False caso contrário.
Vitor Pereira [[email protected]]
Página 19 de 20
Strings
109.
Codifique um programa que leia quatro strings e de seguida crie e mostre uma
110.
Codifique um programa que leia n strings e de seguida crie e mostre uma string
111.
Crie um programa que leia uma string e de seguida apresente-a invertida.
112.
Codifique um programa que leia um nome e de seguida mostre a primeira
string que seja o resultado da concatenação das quatro strings lidas.
que seja o resultado da concatenação das n strings lidas, separadas por um espaço.
palavra desse nome (use a função IndexOf para procurar o carácter espaço e a
função Substring para extrair a string a partir do índice zero até ao índice anterior
onde se encontra o espaço).
113.
Codifique um programa que leia três strings e apresente-as ordenadas
alfabeticamente (utilize como analogia o programa que calcula o maior de três
números usando Ifs dentro de Ifs).
114.
Codifique uma função chamada Conta que conte o número de ocorrências de um
dado carácter numa string. Por exemplo, Conta(“ABCAAZ”, “A”) deve retornar 3;
Conta(“ABCAAZ”,”W”) deve devolver 0.
115.
Codifique uma função chamada ContaVogais que conte o número de vogais de
uma string. Por exemplo, ContaVogais(“Universidade Lusiada”) deve retornar 10;
ContaVogais(“XYZ”) deve devolver 0. Chame a função EVogal criada
anteriormente.
116.
Codifique uma função chamada Repete que repita uma dada string um
determinado número de vezes. Por exemplo, Repete(“AH!”, 3) deve gerar e retornar
a string “AH!AH!AH!”.
Vitor Pereira [[email protected]]
Página 20 de 20
Download

Proposta de Exercícios Índice