Beruflich Dokumente
Kultur Dokumente
Introdução
51) Escreva um programa que leia 3 notas de uma aluno (teórica, prática e
projecto). As notas deverão estar no intervalo 0-20. A nota final é dada pela
soma pesada das notas (TEOR=50% PRAT=30% PROJ=20%) O aluno será aprovado se a
soma das 3 notas for superior a 30 ou no caso de a nota prática e teórica
serem ambas iguais ou superiores a 13. O aluno deverá ser submetido a um exame
oral se a nota teórica for 8 ou 9 ou no caso de a média final ser superior a
14. O programa deverá indicar todos os resultados.
52) Crie um programa para determinar se um aluno passou na disciplina de TP
I a partir dos valores das duas frequências (F1, F2) e do trabalho (T). A
fórmula para obter a nota final (NF) é a seguinte:
F = (F1+F2)/2(arredondado às unidades)
NF = F * (20-T) / 20 + T (arredondado às unidades)
Para passar o aluno deverá ter uma nota igual ou superior a 8 em ambas as
frequências e uma nota igual ou superior a 10 na média das duas frequências
(F). O programa deverá verificar se os valores introduzidos para as
frequências estão no intervalo entre 0 e 20. O trabalho deverá ter um valor
entre 0 e 4.
53) Crie um programa que leia 3 notas de um aluno: N1, N2, N3 e indique se o
aluno passou à disciplina. Para passar à disciplina o aluno deverá ter uma
nota igual ou superior a 8 nas 3 notas e a soma de N1 e N2 deverá ser igual ou
superior a 20. As notas deverão estar no intervalo de 0 a 20.
54) Escreva um programa que leia 3 números inteiros do utilizador,
garantindo que todos eles são positivos e diferentes entre si. Se o utilizador
tentar introduzir um valor igual a um valor já introduzido, o programa deverá
repetir o pedido de introdução do valor.
55) Crie um programa o valor de vendas de uma empresa em 4 anos
consecutivos: 2000, 2001, 2002 e 2003. Os valores deverão ser positivos. O
programa deverá indicar em quantos anos neste período o valor de vendas
cresceu em relação ao ano anterior (o valor de saída será entre 0 e 3). Deverá
indicar ainda o crescimento percentual entre o ano 2000 e 2003.
Métodos
56) Crie um método que receba 2 valores inteiros como argumentos e retorne a
sua soma. Se o valor da soma for negativo o método deverá retornar o valor 0.
57) Crie um método que receba 3 valores double como argumento e retorne o
maior valor absoluto.
58) Crie um método que receba dois valores double como argumentos e retorne
o valor da raiz quadrada da soma dos quadrados.
59) Crie um método que receba um número inteiro como argumento e retorne o
maior valor primo inferior a esse argumento. Se o argumento for negativo, o
método deverá retornar o valor zero.
60) Crie um método ContaPrimos()que receba dois valores inteiros como
argumentos e retorne o número de números primos entre estes dois números,
inclusive. P. Ex. ContaPrimos(3,10) deverá retornar o valor 3 (3, 5, 7). O
método deverá ser testado sendo que os dois valores são introduzidos pelo
utilizador.
61) Crie um método que receba 2 notas (F1 e F2) de um aluno e retorne um
booleano indicando se o aluno passou. Para passar, a soma das notas deve ser
igual ou superior a 19 e ambas devem ser superiores a 7.
62) Crie um método que receba dois valores inteiros como argumentos e
retorne um valor booleano indicando se os números são divisíveis.
63) Crie um método que receba um número inteiro como argumento e retorne o
número da série de Fibonacci correspondente.
64) Crie um método que receba um número inteiro e retorne a soma dos seus
algarismos.
65) Crie um método que receba 3 valores inteiros (a, b, c) e retorne um
valor booleano true se a>b>c e false em caso contrário.
66) Crie um método que verifique se um número é primo (deverá retornar um
valor booleano).
67) Crie um método que receba um número inteiro n e retorne o n-ésimo número
primo.
68) Crie um método que receba três inteiros como argumentos (ano, mês, dia)
e verifique se se trata de um data válida. O ano deverá estar entre 1900 e o
presente ano. Deverá retornar um valor booleano.
69) Crie um método void que receba 3 variáveis inteiras como argumento e
altere o valor das variáveis, colocando-as no máximo dos 3 valores.
70) Crie um método void que receba um valor inteiro como argumento e o
altere para o seu simétrico (negativo passa a positivo e vice-versa).
71) Crie um programa que apresente um número inteiro aleatório entre dois
valores inteiros dados pelo utilizador.
72) Crie um programa que apresente um número aleatório double entre dois
números introduzidos pelo utilizador.
73) Crie um programa que determine um número aleatoriamente, tendo o
utilizador de o adivinhar. O programa dará pistas (maior, menor,...).
74) Crie um programa que proponha os 6+1 números do totoloto (sem
repetições!).
75) Desenvolva um programa para ensinar adições a alunos do ensino básico a
partir de 10 problemas de adição aleatórios. O programa deverá indicar, por
exemplo, (3+6=). O aluno deverá colocar o resultado e o programa indicará se
está correcto ou não.
76) Crie um programa que apresente uma vogal aleatória.
77) Crie um programa que simule lançamentos de dois dados e produza uma
estatística. Deverá ter contadores para cada um dos resultados possíveis entre
2 e 12.
Vectores
101) Crie um método que aceite um valor inteiro e um vector de inteiros como
argumentos e retorne um valor booleano indicando se o valor existe no vector.
102) Crie um método que aceite um valor inteiro e um vector de inteiros como
argumentos e retorne um valor inteiro indicando o número de ocorrências do
valor no vector.
103) Crie um método que aceite dois vectores de inteiros como argumentos e
retorne 1 se a soma dos valores do primeiro vector for superior à do segundo,
0 se forem iguais e –1 se for inferior.
104) Crie um método que aceite um vector de “double” como argumento e divida
todos os valores por 2. Crie um overload para inteiros.
105) Crie um método que receba um vector de inteiros e um valor inteiro como
argumentos e multiplique todos os elementos do vector por esse valor.
106) Crie um método que receba um vector de inteiros como argumento e
converta todos os valores negativos para zero
107) Crie um método SomaPositivos() que aceite como argumento um vector de
valores inteiros vec e retorne a soma dos seus elementos positivos. Exemplo:
se vec=[2,3,-4,5,-1] o método retornará o valor 10 (2+3+5).
108) Crie um método que aceite um vector de notas dos alunos e retorne a
percentagem de notas negativas. (double).
109) Método Moda(…) que receba uma um vector de inteiros como argumento e
retorne o valor que surge mais vezes no vector. Em caso de empate entre dois
ou mais elementos, o método deverá retornar o de menor valor. Sugestão:
Utilize um vector auxiliar.
110) Método MeioSoma(…) que receba um vector de inteiros como argumento e
retorne o número de elementos do vector que são iguais à soma do valor do
elemento anterior com o valor do elemento seguinte. ex. - No vector [2 5 3 6 3
4 0 4], há 2 valores nestas condições (5 e 6). Neste caso o método deverá
retornar o valor 2.
111) Crie dois métodos TodosDiferentes() e TodosIguais() que recebam um
vector de inteiros como argumento e retornem um valor booleano indicando
respectivamente se os elementos do vector são todos diferentes ou todos
iguais. Crie overloads para vectores de strings e double.
112) Crie um método InverteVector(...) que receba um vector de inteiros - e
inverta a posição dos seus elementos, ou seja o último elemento do vector
passará a ser o elemento 0 e vice-versa. O método deverá retornar um valor
inteiro indicando o número total de elementos negativos do vector. Crie
overloads para vectores de strings e double.
113) Crie um método que receba dois vectores de inteiros como argumentos e
retorne um booleano indicando se os vectores possuem exactamente os mesmos
valores, podendo estes estar numa ordem diferente. Sugestão: Ordenar. Crie
overloads para vectores de strings e double.
114) Crie um método que receba um vector bidimensional de inteiros como
argumento e retorne o maior valor.
115) Crie dois métodos em overload que recebam um vector bidimensional (num
caso de inteiros, no outro de double) e retorne a soma dos elementos do
vector.
116) Crie um método que receba um vector bidimensional de inteiros como
argumento e retorne o valor booleano true se todas as linhas somarem o mesmo
valor.
117) Crie um método que receba um vector bidimensional de inteiros como
argumento e retorne o número de linha onde se situa o maior valor do vector.
118) Crie um método que receba um inteiro e um vector bidimensional de
inteiros como argumentos e retorne o número da coluna onde se encontra o
valor. Deverá retornar -1 se não encontrar o valor. Crie um overload para
valores double.
119) Crie um método que receba um vector bidimensional de inteiros como
argumento e retorne o número de valores negativos no vector.
120) Crie um método que receba um vector linear de inteiros e um vector
bidimensional de inteiros como argumentos e retorne o valor booleano true se
todos os elementos do vector linear existirem no vector bidimensional.
121) Crie um método que receba um inteiro e um vector bidimensional de
inteiros como argumentos e retorne um valor correspondente ao número de linhas
em que este valor inteiro surge (exemplo: se o valor aparece em 3 linhas o
valor retornado deverá ser 3 mesmo que este surja mais do que uma vez numa
determinada linha!).
122) Crie um método que receba um vector de inteiros como argumento e retorne
o número de valores que sejam iguais ou superiores aos números adjacentes. No
caso do primeiro elemento, este será apenas comparado com o segundo elemento.
O último elemento será comparado com o penúltimo. Exemplo: No vector
{3,2,4,6,4,5,7,8,2,5,3} há 4 elementos superiores aos números adjacentes
(3,6,8,5).
123) Escreva um método que determine se, numa matriz de 4X4 obtida
aleatoriamente com valores inteiros entre 1 e 5, todas as linhas e colunas
somam o mesmo valor.
124) Escreva um programa que apresente na saída todos os números múltiplos de
5 existentes num vector de inteiros. Teste com um vector preenchido
aleatoriamente com valores entre 0 e 100.
125) Crie um método que receba um vector bidimensional de inteiros e o
preencha com valores aleatórios entre 0 e 9, inclusive.
Ordenação de vectores
strings
133) Crie um programa que leia o nome próprio do utilizador e imprima uma
mensagem personalizada do tipo: "Olá João!"
134) Altere o programa de modo a que se o nome for "Bartolomeu", o programa
imprima "Dá cá o meu!".
135) Altere o programa anterior para que a mensagem surja para todos os nomes
terminados em "eu". Exemplo:> Olá Zebedeu! Dá cá o meu!
136) Crie um programa que “limpe” os espaços iniciais e finais de uma string.
137) Crie um programa que leia 2 strings do utilizador e indique qual das
strings está primeiro na ordem alfabética.
138) Crie um jogo com 10 advinhas do tipo "Qual a cor do cavalo branco do
Napoleão?", cada uma com 3 alternativas, apresentando o resultado final.
139) Crie um programa que inverta uma string.
140) Crie um programa que, numa string substitua todas as letras “v” por “b”
e todas as ocorrências de “ão” por “om”.
141) Crie um programa que remova todas as ocorrências de uma substring dentro
de uma string.
142) Crie um programa que leia um nome de um utilizador e apresente apenas o
primeiro e o último nome.
143) Crie um programa de modo a que uma string seja imprimida do seguinte
modo:
S
St
Str
Stri
Strin
string
Interface Gráfico
172) Crie um programa para converter entre graus, radianos e grados usando
RadioButtons.
173) Crie um programa com 4 labels e uma textBox. O primeiro e o terceiro
label terão um número inteiro aleatório entre 1 e 10. O segundo label um
operador aleatório (+,-,*). O quarto label um sinal de igual. O utilizador
deverá fazer a conta aritmética e o programa indicará se a resposta está
correcta. Ex.: 2+3=? Ou 3*7=? (o operador também é aleatório)
174) Crie um programa em que o texto introduzido numa textBox seja copiado
para uma lista ao ser premido um botão. Não deverá aceitar valores repetidos.
175) Este documento deverá ter uma caixa de texto, um label e um botão
(Converter). Ao ser introduzido texto na caixa de texto, este deverá ser
passado para o label ao se premir o botão. Deverá ainda ser apagado da caixa
de texto. Deverá corresponder ás seguintes condições:
a. Se a caixa de texto estiver vazia o label deverá indicar “por favor
introduza um texto”.
b. O tamanho máximo do texto deverá ser de 20 caracteres.
c. O texto deverá ser convertido para maiúsculas.
d. Todas as palavras começadas pela letra “T” e terminadas em “A”
deverão ser eliminadas.
e. No caso de o texto ser apenas “Trofa” (ignorando maiúsculas e
minúsculas) todos os controlos deverão desaparecer, deverá surgir um
novo label com uma mensagem de erro e o fundo do documento deverá
surgir a vermelho.
176) Crie um interface de múltiplos documentos (MDI), incluindo um menu com
três possibilidades, correspondendo aos títulos dos exercícios seguintes:
Documento 1 (Converter)
a. Este documento deverá ter uma caixa de texto, um label e um botão
(OK). Na caixa de texto serão introduzidos números inteiros. O botão
OK confirma a introdução do número.
b. O programa deverá dar uma mensagem se, por engano, o utilizador
introduzir texto ou algo que não seja um número inteiro.
c. Se o utilizador introduzir um número primo a introdução de valores
termina, ficando a caixa de texto inactiva.
d. O programa deverá contar quantos números foram introduzidos e deverá
dar uma indicação (no label ou numa caixa de mensagem) quando um
número for igual ao número anterior.
Documento 2 (Notas)
e. Este programa servirá para determinar se um aluno passou a uma
determinada disciplina. O programa deverá ter duas caixas de texto
para a nota prática e teórica. Deverá ainda ter dois RadioButton
para indicar se realizou ou não trabalho prático. No caso de o
utilizador indicar que o trabalho prático foi realizado deverá ainda
surgir outra caixa de texto para introdução desta nota.
f. Ao ser premido o botão, o programa deverá indicar num label se o
aluno foi aprovado. Para ser aprovado o aluno deverá obedecer às
seguintes condições:
g. Se não realizou o trabalho prático, ambas as notas deverão ser
iguais ou superiores a 10.
h. Se realizou o trabalho prático o aluno será aprovado se NP>9 e NT>9
ou se a soma das três notas for igual ou superior a 30.
i. O programa deverá indicar a nota final do aluno, apenas no caso de
ter sido aprovado. A nota final é igual a:
i. a. Se não realizou trabalho: média das duas notas (prática
e teórica), arredondada às unidades.
ii. b. Se realizou trabalho, a nota será igual à média pesada
das 3 notas (teórica: 40%; prática 40%; trabalho: 20%)
Documento 3 (Jogo)
j. Este documento deverá ter um pequeno jogo. Para isso terá um label e
três RadioButtons. No label deverá surgir uma adição simples (Por
exemplo 4+2=?) onde os operandos serão números aleatórios entre 0 e
9. Nos RadioButtons estarão 3 soluções possíveis entre as quais a
resposta correcta (nenhuma resposta estará seleccionada
inicialmente). A posição da resposta correcta deverá ser aleatória
entre as 3 possíveis. As respostas alternativas também deverão ser
obtidas aleatoriamente entre 0 e 18. O programa deverá indicar se a
solução escolhida é a correcta e passar à pergunta seguinte. Não é
necessário contar as respostas correctas.
177) Este documento deverá ter uma caixa de texto, um caixa de texto não
editável e um botão (Converter). Ao ser introduzido texto na caixa de texto,
este deverá ser passado para a caixa de texto não editável ao se premir o
botão. Deverá ainda ser apagado da caixa de texto original. Deverá
corresponder ás seguintes condições:
a. O botão apenas ficará activo quando a caixa de texto não estiver
vazia. Enquanto a caixa de texto estiver vazia o botão manter-se-á
inactivo.
b. O tamanho máximo do texto deverá ser de 20 caracteres.
c. A inicial de cada palavra deverá ser convertida para maiúsculas.
Todas as outras letras deverão ser minúsculas.
d. Todas as palavras que contenham mais de 3 vogais deverão ser
eliminadas.
e. Se o texto introduzido tiver 2 palavras (e apenas duas palavras)
deverá ser apresentada uma mensagem de erro, ficando todos os
controlos desactivados.
178) Crie um programa com duas caixas de texto (Limite Inferior e Limite
Superior) e um botão (OK). O utilizador deverá colocar valores inteiros nas
caixas de texto e o programa deverá gerar um valor aleatório inteiro entre o
Limite Inferior e o Limite Superior, apresentando-o num label. Cada vez que o
botão é premido um novo valor deverá surgir e as caixas de texto devem ser
limpas.
a. Antes de converter a string, o programa deverá garantir que o
utilizador introduziu um número inteiro. Se o utilizador introduzir
texto, deverá receber uma mensagem de erro.
b. O programa deve verificar que o Limite Superior é maior do que o
limite inferior. Em caso contrário deverá indicar uma mensagem de
erro e não calcular o valor aleatório.
179) Este documento conterá três botões (START e STOP, INVERTE) e um label
com a contagem dos segundos. Ao ser premido o botão START, deverá iniciar-se a
contagem dos segundos que será apresentada no label. Ao ser premido o botão
STOP é parada a contagem dos segundos. Ao ser premido o botão INVERTER é
invertida a contagem dos segundos. O valor máximo é de 59 segundos e mínimo de
0 segundos. Ao serem atingidos estes limites a contagem deverá inverter
automaticamente.
180) Este programa deverá verificar se uma matrícula de um automóvel
português é válida. Para isso deverá ter 3 caixas de texto editáveis e um
botão “Verifica”. As caixas de texto terão no máximo 2 caracteres. Ao ser
premido o botão o programa verificará se a matrícula é válida. Para isso
deverá corresponder a um dos seguintes casos:
a. 2 letras + 2 algarismos 2 algarismos
b. 2 algarismos + 2 letras + 2 algarismos
c. 2 algarismos + 2 algarismos + 2 letras
181) Neste documento ao ser premido um botão será apresentado ao utilizador
uma soma (num label com tamanho de letra 16) em que os operandos são números
entre 1 e 20 (inclusive), por exemplo (5+14=?). Estes valores deverão ser
obtidos aleatoriamente. Deverá existir uma caixa de texto onde o utilizador
dará a resposta. O programa deverá indicar de alguma maneira se o resultado
está ou não exacto e indicar a resposta correcta.
a. Antes de converter para string, o programa deverá garantir que o
utilizador introduziu um número inteiro. Se o utilizador introduzir
texto, deverá receber uma mensagem de erro.
b. O programa indicará a percentagem de respostas correctas.
182) O programa deverá ter duas caixas de texto para a nota prática (NP) e
teórica (NT). Deverá ainda ter dois RadioButton para indicar se realizou ou
não trabalho prático. No caso de o utilizador indicar que o trabalho prático
foi realizado deverá ainda surgir outra caixa de texto para introdução desta
nota. Coloque os controlos de validação indicado para as notas, que não
deverão estar em branco e deverão ter valores numéricos entre 0 e 20.
a. Ao ser premido um botão (e se as condições referidas acima forem
cumpridas), o programa deverá indicar num label se o aluno foi
aprovado. Para ser aprovado o aluno deverá obedecer às seguintes
condições:
b. Se não realizou o trabalho prático, ambas as notas deverão ser
iguais ou superiores a 8 e a sua soma deverá ser superior a 18.
c. Se realizou o trabalho prático o aluno será aprovado se NP>9 e NT>9
ou se a soma das três notas for igual ou superior a 28.
d. O programa deverá indicar a nota final do aluno, apenas no caso de
ter sido aprovado. A nota final é igual a:
i. Se não realizou trabalho: média das duas notas (prática e
teórica), arredondada às unidades.
ii. Se realizou trabalho, a nota será igual à média pesada das 3
notas (teórica: 40%; prática 40%; trabalho: 20%)