Buscar

Tvc1-EDLII-1-11-Tarde

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
�

Continue navegando