Ficha Nº4
Objectivos:
O objectivo principal desta ficha é familiarizar o aluno com a utilização e manipulação de vectores e matrizes em C. As
strings são casos particulares de arrays: uma string é um array em que os elementos são todos do tipo
char. Assim, nesta ficha surgem também alguns exercícios envolvendo manipulação de
strings.
Exercícios:
Média de 10 números;
Capicua;
Romano-Árabe;
Cifra;
Estatísticas;
Exercício Nº1: Média de 10 números inteiros
Especifique um programa e codifique-o em C que lê 10 números inteiros positivos de um ficheiro externo (considere que cada linha do ficheiro contem apenas um número) e escreve:
- a sua média e o valor máximo;
- os numeros maiores que a média;
- a quantidade de números menores que a média;
Depois de ter realizado as tarefas anteriores faça o programa produzir os resultados num ficheiro de nome relatorio.txt.
Exercício Nº2: 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.
Exercício Nº3: 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).
Exercício Nº4: 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.
Exercício Nº5: Estatísticas de texto
Crie um programa que leia todos os caracteres de um texto (até encontrar um o fimde ficheiro,
eof) e que no fim indique quantas vezes apareceu cada
uma das 26 letras do alfabeto (considere maiúsculas iguais às minúsculas).
--
JoseCarlosRamalho - 13 Mar 2005