Exercícios


PARTE I - Manipulação de vectores/tabelas.

Para simplificar, considere que nos exercícios seguintes os vectores têm dimensão especificada por uma constante VECMAX. 

1. (Leitura e Escrita de Vectores) Escreva um programa que leia n (n< VECMAX) inteiros do teclado, e escreva depois no terminal os valores guardados. Implemente as funções void leVector (int v[], int n) e void escreveVector(int v[], int n). 

2. (Soma dos elementos de um vector) Escreva um programa que calcula a soma dos elementos de um vector de inteiros cujo tamanho é o valor especificado pela constante VECMAX. Implemente a função int somaVector(int v[], int n); e use a função void leVector (int v[], int n) já implementada. 

Ver sugestão de resolução aqui.

3. (Posição dos elementos máximo e mínimo de um vector) Modifique o programa anterior de forma a mostrar a posição dos elementos máximo e mínimo do vector de inteiros.  Implemente as funções int posicaoMaximoVector(int v[], int n); e int posicaoMinimoVector(int v[], int n);. 

4. (Procura elemento num vector) Escreva um programa que leia um vector de inteiros e um valor K. O programa deverá escrever no terminal a posição em que o valor K ocorre, ou -1 se K não ocorre no vector. Implemente a função int procura(int v[], int n, int k); 

5. (Quadrado vector) Escreva um programa que leia um vector de inteiros e calcula o vector cujos elementos são o quadrado dos elementos originais. Implemente a função quadradoVector(int v[], int n);.  
Nota: o vector é alterado pela função quadradoVector? Porquê? 


6. (Inversão vector) Escreva um programa que inverte um vector de inteiros e escreve o vector invertido no terminal. Implemente a função void inverteVector(int v[], int n);. Nota: tal como no exercício anterior, o vector é alterado pela função inverteVector. 

PARTE II - Manipulação de strings.

Considere que nos exercicios seguintes, todas as strings têm no máximo MAX = 80 caracteres (incluindo o caracter de fim de string). 

7. (Manipulação de Strings: Palíndromo) Escreva um programa que lê uma palavra do terminal e verifica se a palavra é um palíndromo ou não. Uma palavra é um palíndromo se se escrever da mesma maneira da esquerda para a direita e vice-versa (por exemplo, "AMA" é um palíndromo). 

8. (Manipulação de Strings: Leitura e Escrita de Linhas de Texto) Escreva uma programa que lê caracteres do teclado, caracter a caracter, até encontrar o caracter '\n' e escreve a linha lida no terminal. Implemente a função int leLinha(char s[]) que lê a linha para a string s e devolve o número de caracteres lidos (ver aulas teóricas 04 e 05). (sugestão: depois de resolver este exercício, experimente utilizar o comando fgets para o mesmo objectivo; exemplo: fgets(aminhastringtamanho_maximo_string, stdin))


9. (Manipulação de Strings: Maiusculas) Escreva um programa que lê uma linha do terminal (use a função do exercício anterior) e que escreve no terminal o mesmo texto, mas com as letras minusculas substituidas pelas respectivas maiusculas. Implemente a função void maiusculas(char s[]); Nota: a string é alterada pela função maiusculas. 


10. (Manipulação de Strings: Apaga Caracter) Escreva um programa que lê uma linha e um caracter e escreve no terminal a mesma linha onde todas as ocorrências do caracter foi removida. Implemente a função void apagaCaracter(char s[], char c);. Nota: a string é alterada pela função apagaCaracter. 

Ver sugestão de resolução aqui.

11. (Manipulação de Strings: Conta Algarismos) Escreva um programa que lê uma linha de texto e escreve no terminal o número de ocorrências de cada algarismo no texto.