Ficha 5 PT
Ficha 5 PT
Ficha 5 PT
Exercícios Ficha 5
Escreva uma função que coloque no ecrã uma linha com 20 asteriscos *. Use a função que acabou de criar para obter o seguinte
resultado:
****** * * * * * * * * * * * ***
Numeros entre 1 e 5
****** * * * * * * * * * * * ***
1
2
3
4
5
****** * * * * * * * * * * * ***
Solução:
# include < stdio .h >
void i mp r i me _ 2 0_ e strelas () {
printf ( " * * * * ** **** ***** **** *\ n " ) ;
}
int main () {
im pr i m e_ 2 0 _e s trelas () ;
printf ( " Numeros entre 1 e 5\ n " ) ;
im pr i m e_ 2 0 _e s trelas () ;
int n ;
for ( n = 1 ; n <= 5 ; n ++)
printf ( " % d \ n " , n ) ;
im pr i m e_ 2 0 _e s trelas () ;
}
Escreva uma função que determine se um número é múltiplo de 5. Use a função que acabou de criar para verificar quais os número
de 1 a 100 que são múltiplos de 5.
Resultado Esperado:
5 e ' multiplo de 5
10 e ' multiplo de 5
....
95 e ' multiplo de 5
100 e ' multiplo de 5
Solução:
# include < stdio .h >
int main () {
int num ;
for ( num = 1 ; num <= 100 ; num ++) {
if ( multiplo5 ( num ) )
printf ( " % d e ' multiplo de 5\ n " , num ) ;
}
}
Sabendo que x n (para n >= 0) pode ser calculado multiplicando x por si mesmo n vezes:
x n = x × x × x . . . × x (n vezes)
Escreva uma função que determine o valor de uma potência de expoente inteiro não negativo (x n , para n = 0).
Faça uso da função num pequeno programa. Exemplo:
Base : 2.3
Expoente : 4
Resultado de 2.3^4: 27.9841
int main () {
float base ;
int exp ;
printf ( " Resultado de %.3 f ^ % d = %.3 f \ n " , base , exp , potencia ( base , exp ) ) ;
}
Exercício 4
Altere a implementação do exercício 5.1 de forma que seja possível especificar o número de estrelas a imprimir no ecrã como
parâmetro à função criada.
Altere a sua função de forma que seja também possível especificar o símbolo:
==========
Bem - vindo
==========
Exercício 5
Altere o programa implementado no exercício 5.3 por forma a suportar expoentes negativos.
Exercício 6
Implemente as funções com os seguintes protótipos:
• int is_upper(char c)
devolve verdade (̸=0) caso c seja maiúscula
• int is_lower(char c)
devolve verdade (̸=0) caso c seja minúscula
• char switch_case(char c)
devolve a versão oposta (minúscula/maiúscula) do carácter c
• char read_char()
pergunta (em loop) ao utilizador por um carácter até que introduza uma letra ([A-Z], [a-z]) ou o caraceter ’.’ e devolve-a
Utilizando as funções que implementou, crie um programa que:
• Pergunte ao utilizador garantidamente uma letra (use a função read_char), até que o utilizador introduza um ’.’, altura
em que o programa deve imprimir no terminal "Adeus!" e terminar
• Mostre no terminal a letra oposta (minúscula/maiúscula) à que o utilizador introduziu (usando a função switch_case)
Dica: reutilize as funções is_upper/is_lower onde possível
Exemplo:
introduza uma letra [ '. ' para sair ]: 3
- 3 nao e ' uma letra
introduza uma letra [ '. ' para sair ]: !
- ! nao e ' uma letra
introduza uma letra [ '. ' para sair ]: A
- A -> a
introduza uma letra [ '. ' para sair ]: C
- C -> c
introduza uma letra [ '. ' para sair ]: k
- k -> K
introduza uma letra [ '. ' para sair ]: .
- Adeus !
Exercício 7
a) Crie uma função que determine o factorial de um número inteiro segundo a expressão:
n
Y
n! = x
x=1
Exemplo: 5! = 1 × 2 × 3 × 4 × 5
b) Crie uma função para calcular o número de combinações possíveis de um subconjunto p de números de um conjunto n de
números, dado pela expressão:
n!
C pn =
(n − p)! × p!
c) Use as funções criadas em cima para determinar o número de chaves possíveis para:
Exercício 8
O cálculo do Valor Atual Líquido V AL de um investimento de capital de valor v , com base numa série de futuros pagamentos
anuais fixos, à taxa de juro t durante n anos é dado pela fórmula:
n
X v
V AL =
ano=1 (1 + t )ano
Utilize a função potencia do exercício 5.5 para calcular o V AL com valores de v , t e n introduzidos pelo utilizador.
Exemplo:
- Introduza o valor ( v ) : 20000
- Introduza a taxa ( t ) : 2.5
- Introduza o numero de anos ( n ) : 5
Valor Atual Liquido ( VAL ) : 7984.768
Exercício 9
Implemente as funções com os seguintes protótipos:
• int bissexto(int ano)
devolve verdade (̸=0) caso ano seja bissexto
Dica: O ano é bissexto ser for divisível 4 e não divisível por 100 ou se for divisível por 400
Exemplo:
Data de nascimento [ dia / mes / ano ]: 1/11/1968
Data de hoje [ dia / mes / ano ]: 21/11/2018
18282 dias ja vividos .
Exercício 10
Pretende-se uma pequena aplicação que nos ajude a determinar a nota final de um aluno, com base em 6 avaliações qualitativas
intercalares.
Para o efeito, escreva em C as seguintes funções:
a) int ler_valor()
Pergunta ao utilizador uma avaliação qualitativa mostrando um menu com as opções:
1 - Mau
2 - Não Satisfaz
3 - Satisfaz
4 - Satisfaz Bastante
5 - Excelente
Devolve depois o valor inteiro escolhido.
Qual. Quant.
Mau 0
Não Satisfaz 5
Satisfaz 12
Satisfaz Bastante 17
Excelente 20
c) int main()
Use as funções criadas nas alíneas anteriores para calcular a média final (quantitativa) do aluno com base em 6 avaliações
qualitativas
Exemplo:
= = = Avaliacao 1 = = =
Escolha a avaliacao :
1) Mau
2) Nao Satisfaz
3) Satisfaz
4) Satisfaz Bastante
5) Excelente
Avaliacao : 1
= = = Avaliacao 2 = = =
Escolha a avaliacao :
1) Mau
2) Nao Satisfaz
3) Satisfaz
4) Satisfaz Bastante
5) Excelente
Avaliacao : 2
= = = Avaliacao 3 = = =
Escolha a avaliacao :
1) Mau
2) Nao Satisfaz
3) Satisfaz
4) Satisfaz Bastante
5) Excelente
Avaliacao : 3
= = = Avaliacao 4 = = =
Escolha a avaliacao :
1) Mau
2) Nao Satisfaz
3) Satisfaz
4) Satisfaz Bastante
5) Excelente
Avaliacao : 4
= = = Avaliacao 5 = = =
Escolha a avaliacao :
1) Mau
2) Nao Satisfaz
3) Satisfaz
4) Satisfaz Bastante
5) Excelente
Avaliacao : 5
= = = Avaliacao 6 = = =
Escolha a avaliacao :
1) Mau
2) Nao Satisfaz
3) Satisfaz
4) Satisfaz Bastante
5) Excelente
Avaliacao : 5
Exercício 11
Escreva em C as seguintes funções:
Estado civil :
c ) Casado
s ) Solteiro
v ) Viuvo
d ) Divorciado
R: _
b) Uma função que informe o utilizador da escolha que fez (por extenso, ex.: Casado) com base na letra escolhida nas opções
anteriores.
c) Uma função main que faça uso das anteriores para perguntar (em ciclo) vários estados civis, mostrando no final o estado
predominantemente escolhido pelo utilizador. A cada leitura deve ser mostrado o estado por extenso. A execução do
programa deve terminar quando for inserido um carácter não válido (que não represente qualquer estado civil).
Exemplo:
Estado civil :
c ) Casado
s ) Solteiro
v ) Viuvo
d ) Divorciado
R: c
# Escolheu ' Casado '
Estado civil :
c ) Casado
s ) Solteiro
v ) Viuvo
d ) Divorciado
R: s
# Escolheu ' Solteiro '
// ...
Estado civil :
c ) Casado
s ) Solteiro
v ) Viuvo
d ) Divorciado
R: s
# Escolheu ' Solteiro '
Exercício 12 (extra-aula)
Implemente um pequeno programa que demonstre as funções implementadas, perguntando para cada uma delas um valor ao
utilizador.