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 Estrutura de Dados e Laboratório de Programação II – 02/05/2011 ALUNO (A) _______________________________________________________________ Turma Lab:_____ ED:_____ ATENÇÃO: Estrutura de Dados: questões de 1 a 3. Laboratório de Programação II: questões de 3 a 5. Sempre que necessário, apresentar as definições das estruturas de dados. A questão 5 deve estar em C. _______________________________________________________________________________________________________________________________________________________________________________________________________________________ 1) xxx (35) _______________________________________________________________________________________________________________________________________________________________________________________________________________________ 2) xxx (35) _______________________________________________________________________________________________________________________________________________________________________________________________________________________ 3) Representar vetorialmente uma matriz M (n x n – n par) de elementos reais aonde somente os elementos das diagonais primária e secundária são diferentes de zero e desenvolver as funções cria e consulta para essa representação. (30) M = m0,0 0.0 ... 0.0 m0,n-1 0.0 m1,1 ... m1,n-2 0.0 ... ... ... ... ... 0.0 mn-2,1 ... mn-2,n-2 0.0 mn-1,0 0.0 ... 0.0 mn-1,n-1 (30) __________________________________________________________________________________________________________________________________________________________________________________________________________________ 4) Dadas as declarações abaixo: int x = 23, *px = &x, **ppx = &px; float y = 9.7, *py = &y, **ppy = &py; � Quais são os resultados da avaliação das seguintes expressões: (35) � y = x++ = *px = py = &x = *ppy = px++ = (*py)-- = **ppx = &ppy = *&py = (**ppy)++ = � _______________________________________________________________________________________________________________________________________________________________________________________________________________________ 5) Abaixo encontram-se parte do arquivo triangulo.c e o arquivo triangulo.h que implementam o TAD Triangulo. Os dados armazenados para representar um triângulo são 3 pontos, sendo esses pontos do tipo Ponto (TAD Ponto já implementado). Considerando o TAD Triangulo abaixo, desenvolver as funções, em C, cria_triangulo (cria um triângulo dados os seus 3 pontos), tipo_triangulo (retorna qual o tipo do triângulo – eqüilátero (3 lados iguais) = 0, isósceles (2 lados iguais) = 1, escaleno (todos lados diferentes) = 2) e area_triangulo_eq (calcula e retorna a área de um triângulo equilátero). Considerar que as seguintes funções, do TAD Ponto, estão implementadas: Ponto* cria_ponto(float x, float y) e float distancia_ponto(Ponto *p1, Ponto *p2). (35) � Arquivo triangulo.c struct triangulo { Ponto *p1, *p2, *p3; }; Arquivo triangulo.h typedef struct triangulo Triangulo; //TAD Triangulo Triangulo* cria_triangulo(Ponto *p1, Ponto *p2, Ponto *p3); int tipo_triangulo(Triangulo *t); float area_triangulo_eq(Triangulo *t); // A = l2 ( √3 ( 4 �
Compartilhar