Sequências de números inteiros positivos
Especifique um programa e codifique-o em C que lê do teclado uma sequência de números inteiros positivos e calcula um conjunto
de indicadores sobre a sequência lida. O programa deverá oferecer ao utilizador um menu de operações como o que se mostra
a seguir:
Sequências de Inteiros: lista de operações
A - Ler a sequência
B - Escrever a sequência
C - Calcular o máximo da sequência
D - Calcular o mínimo da sequência
E - Determinar a subsequência de números acima da média
F - Determinar a subsequência de números abaixo da média
G - Calcular o mínimo múltiplo comum da sequência
H - Determinar a subsequência dos números que são primos
I - Sair do Programa
Opção:
A leitura de números deverá terminar quando fôr lido o 0 ou quando fôr atingido o limite da sequência (defina-o).
Apresente o resultado de forma a facilitar a análise.
Sugestão de implementação: especifique uma função para cada opção do menu inicial.
Totoloto (retirado do livro de apoio)
Pretende-se escrever um programa que leia do teclado uma chave de totoloto e que a imprima no monitor segundo as regras convencionais.
Admita, para simplificar, que a combinação de números, que forma a chave, tem obrigatoriamente que ser introduzida por ordem
crescente. A entrada de dados deverá ter a seguinte forma:
Elemento 1 da chave = ...
Elemento 2 da chave = ...
...
Elemento 6 da chave = ...
Admitindo que a chave introduzida foi {2, 12, 17, 27, 30, 43}, a saída de resultados deve obedecer ao formato seguinte:
Aposta de Totoloto
1 X 3 4 5 6 7
8 9 10 11 X 13 14
15 16 X 18 19 20 21
22 23 24 25 26 X 28
29 X 31 32 33 34 35
36 37 38 39 40 41 42
X 44 45 46 47 48 49
Sugestão: relembre o formato de escrita formatada de strings discutido nas aulas teóricas (%ns).
Análise de Strings (adaptado do livro de apoio)
Pretende-se escrever um programa que leia do teclado uma linha de texto até ao máximo de 60 caracteres, e que calcule: o número
de vogais, o número de consoantes, o número de caracteres minúsculos, o número de caracteres maiúsculos e o número de caracteres
numéricos.
A entrada de dados deve ter a seguinte forma:
Frase de entrada: #######################
A saída de dados deve ter a seguinte forma:
Frase de Entrada: #######################
Número de vogais: ##
Número de consoantes: ##
Número de caracteres minúsculos: ##
Número de caracteres maiúsculos: ##
Número de caracteres numéricos: ##
Implemente funções para a leitura, escrita e para cada um dos indicadores estatísticos.
Sugestão: relembre/investigue as funções da biblioteca
ctype.h. Estas funções têm a seguinte assinatura:
int nome_função( int carácter )
O valor devolvido é nulo (em C é falso) se o carácter passado como argumento não pertence à classe) e não nulo (em C é verdadeiro)
no caso contrário.
Para este exercício, as funções relevantes são:
- isalpha
- caracteres alfabéticos
- isdigit
- digitos decimais
- islower
- letras minúsculas
- isupper
- letras maiúsculas
Capicua
Especifique uma função que recebe uma string e verifica se a mesma é capicua (lida da esquerda para a direita, ou da direita
para a esquerda, é a mesma palavra/frase).
Exemplos típicos: ala ou rapar.
Um caso curioso (e, claro, mais complexo) é a seguinte Capicua brasileira: Socorram-me subi no onibus em Marrocos.
Conversão Romano-Árabe
Especifique uma função que recebe uma string contendo um número escrito em notação romana e que dá como resultado o respectivo
valor inteiro (correspondente à notação arábica).
Cifra por substituição arbitrária
Considere a cifra (palavra-chave) constituída pelas letras "SAPO" seguidas de um dígito n (entre 0 e 9). Para a cifragem (codificação)
da mensagem efectuam-se os seguintes passos:
- reduzem-se espaços seguidos a um único espaço e mantém-se os caracteres de pontuação;
- os digitos rodam-se (circularmente) para a direita da quantidade n;
- convertem-se todas as letras em maiúsculas ou minúsculas;
- considera-se a seguinte tabela de codificação:
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
S |
A |
P |
O |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
Q |
R |
T |
U |
V |
W |
X |
Y |
Z |
A construção desta tabela limita-se a colocar a palavra chave no início e completar com as restantes letras do alfabeto, não
colocando as letras que se repetem.
Para a codificação, substitui-se cada um dos carácteres da primeira linha pelo carácter correspondente da segunda linha.
Construa um programa que dada uma cifra, codifique a mensagem, e um outro que, dada a mensagem cifrada e a cifra, descodifique
a mensagem.