Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE FEDERAL DE JUIZ DE FORA INSTITUTO DE CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO 1º TVC de Laboratório de Programação II – 23/09/2011 ALUNO (A) __________________________________________________________________________ Turma:______ ATENÇÃO: A prova deve ser feita na linguagem C. 1) Dado o programa abaixo, indique o que será impresso: (30) int main() { int a = 10, b = 20, c = 30, v[3], *pti, *pti1, *pti2; pti1 = &a; pti2 = &b; *pti1 = c; *pti2 = c; pti = v; *pti = 1; *(pti+1) = 2; *(pti+2) = 3; printf(">> Teste (1) << \n"); printf("A: %d, B: %d, C: %d\n", a, b, c); printf("V: %d, %d, %d\n", v[0], v[1], v[2]); a = *pti + 99; v[0] = *pti1 + *pti2; v[1] = **&pti2; *(v+2) = *pti; (*pti2)++; (*(v+1))--; printf(">> Teste (2) << \n"); printf("A: %d, B: %d, C: %d\n", a, b, c); printf("V: %d, %d, %d\n", v[0], v[1], v[2]); return 0; } 2) Considerando as definições abaixo de uma matriz M (n x m) de elementos reais onde somente os elementos das linhas pares são diferentes de zero, desenvolver as funções cria_matriz (cria uma matriz dadas as quantidades de linhas e colunas) e consulta (retorna o valor contido na posição relativa aos índices i e j da matriz). Atenção à paridade de n. M = m0,0 m0,1 m0,2 ... m0,m 0.0 0.0 0.0 ... 0.0 m2,0 m2,1 m2,2 ... m2,m 0.0 0.0 0.0 ... 0.0 ... ... ... ... ... struct matrizLP { int n, m; float *v; }; typedef struct matrizLP MatLP; //TAD Matriz Linha Par a) MatrizLP* cria_matriz(int n, int m); (15) b) float consulta(MatrizLP *mat, int i, int j); (15) 3) Abaixo encontram-se as definições que implementam o TAD Conjunto. Os dados armazenados para representar um conjunto de inteiros são um vetor de zeros e uns e o seu tamanho máximo. Cada índice do vetor representa um inteiro. O valor 0 representa a ausência desse inteiro no conjunto, e o valor 1 representa a existência do mesmo no conjunto (exemplo abaixo). Desenvolver as funções cria_conj_vazio (cria um conjunto vazio de no máximo n elementos), insere (insere um elemento no conjunto), pertence (verifica se um elemento pertence a um conjunto) e intersecao (cria um conjunto como sendo a interseção de 2 conjuntos). {1,4,7} = 0 1 0 0 1 0 0 1 0 0 tam = 10 0 1 2 3 4 5 6 7 8 9 struct conjunto { int tam; int *v; }; typedef struct conjunto Conjunto; //TAD Conjunto a) Conjunto* cria_conj_vazio(int n); (10) b) void insere(Conjunto *c, int x); (10) c) int pertence(Conjunto *c, int x); (10) d) Conjunto* intersecao(Conjunto *c1, Conjunto *c2); (10) a b c v[0] v[1] v[2] Teste (1) Teste (2) n
Compartilhar