Problemas 1
Problemas 1
Problemas 1
2. Seleo
2.1 Nvel bsico
1. Escreva um programa que receba um nmero inteiro e que indique no ecr se o
nmero par ou mpar.
2. Escreva um programa que leia trs nmeros e que indique no ecr o maior dos
trs.
3. Escreva um programa que leia 2 nmeros inteiros e apresente a sua soma se
ambos forem pares, o seu produto se ambos forem mpares ou o nmero mpar se
um deles for par e o outro mpar.
(1)
Bilhete
Inferior a 12
Isento de pagamento
Entre 13 a 24
Bilhete radical
Entre 25 e 36
Bilhete light
Entre 37 e 48
Bilhete normal
Entre 49 e 60
Bilhete light
Acima de 61
Isento de pagamento
Classif.
0-9
Insuficiente
10-13
Suficiente
14-16
Bom
17-20
Excelente
6. Escreva um programa que determine a que estao do ano pertence uma data (dia
e ms) fornecida pelo utilizador.
3. Repetio
3.1 Nvel bsico
1. Escreva um programa que calcule a soma de todos os nmeros desde 1 at um
dado limite pedido ao utilizador.
12/8 = 1 resto 4
8/4 = 2 resto 0
4. Escreva um programa que receba do utilizador dois anos (por exemplo, 1974 e
2025) e que imprima todos os nmeros bissextos neste intervalo.
5. Desenvolva um algoritmo que desenhe" um calendrio como o da Tabela 1 para
um determinado ms, dados (i) o nmero de dias desse ms e (ii) qual o dia da
semana correspondente ao primeiro dia do ms. Exemplo:
n de dias: 31
1 dia: tera-feira
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
7. Escreva um programa para, por tentativas, adivinhar um nmero que gerado pelo
computador. Para cada tentativa, o programa deve indicar se o nmero que
introduziu maior ou menor do que o nmero gerado. O programa termina quando
12. Um hotel concebeu uma forma original de cobrar aos seus clientes. A 1 noite custa
50, a segunda 25(50/2), a n-sima custa 50/n. Calcule a cobrana a efetuar a
um cliente que fique n noites no hotel (preo a pagar por noite e o total).
13. Escreva um programa que seja capaz de contar todos os caracteres introduzidos
por um utilizador. Para este efeito poder utilizar a funo getchar(). O programa
termina quando receber um EOF.
14. Escreva um programa que seja capaz de receber texto do utilizador e que conte as
linhas que este forneceu. Para este efeito poder utilizar a funo getchar(). O
programa termina quando receber um EOF.
2.
3.
4.
Soma: 284
Soma: 220
5.
O nmero 153 tem uma propriedade interessante. Este nmero igual soma
3
dos cubos dos seus dgitos, ou seja, 153 = 1 +5 +3 . Existem quatro nmeros de
trs dgitos que possuem esta propriedade. Escreva um programa que encontre
estes quatro nmeros.
6.
7.
8.
9.
11. O logaritmo binrio inteiro de um nmero dado pelo nmero de vezes que esse
nmero pode ser dividido por 2 at que o resultado da diviso seja inferior a 2.
Por outras palavras, o logaritmo binrio de x a maior potncia de 2 menor ou
igual a x. Por exemplo, lg(7,9) = 2 e lg(8) = 3.
Escreva um programa em C que calcule e imprima os logaritmos binrios de
todos os nmeros mltiplos de 100 entre 100 e 1000.
4. Funes
4.1 Nvel bsico
1. Escreva um programa para desenhar uma meia rvore de Natal com trs ramos em
que so dadas as dimenses dos ramos da rvore. Por exemplo com a dimenso
igual a 3 viria:
X
XX
XXX
XXXX
X
XX
XXX
XXXX
X
XX
XXX
XXXX
I
I
2. Faa um programa que pea ao utilizador um valor inteiro n e escreva no ecr o
valor do seu fatorial usando uma funo.
Caso n 20
o somatrio de todos os valores entre 1 e n
Caso n <10
o somatrio dos fatoriais de todos os valores entre 1 e n
2. A funo permutao definida pela frmula p(n; k) = n(n - 1)(n - k + 1), ou seja,
p(n,k) o produto dos k maiores inteiros menores ou iguais a n. Por exemplo, p(11,
4) = 11 * 10 * 9 * 8 = 7920. Escreva um programa em C que calcule e imprima os
valores de p(n, k) para um valor n (inteiro positivo) dado pelo utilizador e para todos
os valores de k tais que 1 < k < n. Por exemplo, se o utilizador indicar n = 5, devem
ser calculados e impressos os valores de p(5, 2), p(5, 3) e p(5, 4).
3. Pretende-se que escreva um programa que apresente no ecr os nmeros de
bilhete premiados de uma lotaria. Para isso, dever fazer o seguinte:
10
que imprima no ecr o valor da varivel bilhete se esta tiver como terminao os n
ltimos nmeros da varivel premiado.
o
+
o
o
+
o
+
o
o
+
o
void imprimeBrancos(int b)
void imprimeAlternado(int c)
5. Implemente a funo int ePrimo (int x), que verifica se o nmero x primo. Dever
devolver 1 no caso de ser verdade e 0 no caso de ser falso. Escreva depois um
programa que determine que nmeros primos existem num conjunto de nmeros
inteiros positivos entre a e b.
6. Como sabe, dois nmeros dizem-se amigos se a soma dos divisores de qualquer
deles, incluindo a unidade e excluindo o prprio nmero, for igual ao outro nmero.
Desenvolva um programa que permita verificar quais os pares de nmeros amigos
que existem num intervalo especificado pelo utilizador. O seu programa deve incluir
uma funo que indique se dois nmeros m e n so ou no nmeros amigos.
Exemplo:
220 e 284 so nmeros amigos
Divisores de 220: 1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110 Soma: 284
Divisores de 284: 1, 2, 4, 71, 142
Soma: 220
11
7. Construa uma funo int inverte(int i) que inverte a ordem dos dgitos de um
nmero inteiro. Recorra a essa funo para construir um programa que verifique se
um nmero inteiro dado uma capicua, ou seja, l-se da mesma forma do princpio
para o fim e do fim para o princpio. Por exemplo, 1221 capicua, 121 tambm.
2. Uma funo numrica rpida para calcular uma raiz quadrada de um nmero x
consiste em utilizar o seguinte processo iterativo:
yn =1/2 * (yn-1 + x/yn-1)
sendo y0 uma estimativa para o valor da raiz quadrada (por exemplo, y0 = x/2).
Numa dada iterao da funo, o erro existente no clculo da raiz quadrada dado
pela diferena entre os dois ltimos valores calculados (isto , yn-Yn-1). Pretendese que escreva um programa que calcule a raiz quadrada de um nmero dado. O
12
programa dever ler o nmero para o qual se pretende fazer o clculo e qual o
nmero de casas decimais corretas que a raiz dever ter. O resultado da execuo
dever mostrar ao utilizador o valor da raiz quadrada do nmero introduzido, com
as casas decimais especificadas corretamente calculadas. Para a resoluo deste
exerccio dever implementar e utilizar a funo
double mySqrt (int n, int numCasasDecimais).
Nota: No poder obviamente utilizar no programa a funo sqrt() existente no
math.h para nenhum propsito.
13
- retngulos,
- paralelogramos,
- losangos,
- kites (papagaios) e
- outros (todos os outros tipos).
equilibrio =
n
1
(gi - m)2
i=1
n-1
14
Media: 3
Equilibrio: 2.5
Classificao: 3
15