programacao
Licenciatura em Engenharia Informática: 1º ano - 2º semestre
2012/2013
Guião laboratorial n.º 1
Ponteiros e Tabelas
Tópicos da matéria:
- Noções básicas sobre ponteiros e endereços.
- Aritmética de ponteiros
- Tabelas de ponteiros para caracter.
- Argumentos da linha de comando.
Bibliografia:
K. N. King, C Programming: A Modern Approach: Capítulos 11, 12 e 13.
Nota: antes da implementação deve definir uma estratégia genérica para cada um dos exercícios propostos.
1. Considere o seguinte esqueleto da função main():
#include
int main()
{
int a, b, total, *p = &a, *q = &b, *r = &total;
/* completar esta secção */
}
O objectivo do programa é pedir dois números inteiros ao utilizador e guardá-los nas variáveis a,
b. A seguir deve somar esses valores e guardar o resultado na variável total. Finalmente deve apresentar ao utilizador o valor da adição. Termine a implementação da função main(), sem nunca se referir explicitamente (i.e., pelo seu nome) às variáveis a, b ou total.
2. Desenvolva uma função que receba, como argumentos, o nome a dimensão de uma tabela unidimensional de números inteiros e que coloque a zero todos os elementos cujo valor seja inferior à média dos elementos dessa tabela. Pode assumir que quando a função for chamada a tabela já foi inicializada.
1
3. Desenvolva uma função de nome calculo que receba por parâmetro dois inteiros A e B e dois ponteiros para inteiro P e Q. A função deve calcular a subtracção entre os dois inteiros e colocar a diferença no local referenciado por P. Deve igualmente calcular a adição dos dois inteiros e colocar a soma no local referenciado por Q.
3.1. Escreva uma função main() que lhe permita testar a função calcula desenvolvida anteriormente. 4. Desenvolva uma função que determine quantos elementos de uma tabela de inteiros são iguais à média dos seus dois vizinhos. A função recebe como argumentos um ponteiro para o início da tabela, o número de elementos que