Lista01 TDA
Lista01 TDA
Lista01 TDA
2) Vamos supor que um nmero real seja representado por uma estrutura em C, como
esta:
struct realtype
{
int left;
int right;
};
onde left e right representam os dgitos posicionados esquerda e direita do ponto decimal,
respectivamnete. Se left for um inteiro negativo, o nmero real representado ser negativo.
a. Escreva uma rotina para inserir um nmero real e criar uma estrutura
representado esse nmero;
b. Escreva uma funo que aceite essa estrutura e retorne o nmero real
representado por ela.
c. Escreva rotinas add, substract e multiply que aceitem duas dessas estruturas e
definam o valor de uma terceira estrutura para representar o nmero que seja a
soma, a diferena e o produto, respectivamente, dos dois registros de entrada.
3) Suponha que um inteiro precise de quatro bytes, um nmero real precise de oito bytes
e um caractere precise de um byte. Pressuponha as seguintes definies e declaraes:
struct nametype
{
char first[10];
char midinit;
char last[20];
};
Universidade Federal de Ouro Preto UFOP
Instituto de Cincias Exatas e Biolgicas ICEB
Departamento de Computao DECOM
Disciplina: Algoritmos e Estruturas de Dados I CIC102
Professor: David Menotti (menottid@gmail.com)
struct person
{
struct nametype name;
int birthday[2];
struct nametype parentes[2];
int income;
int numchildren;
char address[20];
char city[10];
char state[2];
};
se o endereo inicial de p for 100, quais sero os endereos inicias (em bytes) de cada um dos
seguintes?
a. p[10]
b. p[200].name.midinit
c. p[20].income
d. p[20].address[5]
e. p[5].parents[1].last[10]
7) Implemente uma funo equal que determine se dois nmeros racionais, r1 e r2, so
iguais ou no reduzindo primeiramente r1 e r2 a seus termos mnimos e verificando
em seguida a igualdade.
REG
NOME literal
SALRIO numrico
IDADE SEXO
numrico lgico
10) Escrever uma funo para atribuir um valor ao campo de nome SALRIO do registro
REG, descrito no exerccio anterior. Escreva tambm um programa (funo main) para
utilizar a funo criada.
11) Uma indstria faz a folha mensal de pagamentos de seus empregados baseada no
seguinte: Existe uma tabela com os dados do funcionrio
CADASTRO
FICHA
NOME HORAS NORMAIS
1 (literal) (numrico)
2
3 INSCRIO CLASSE HORAS EXTRAS
4 (numrico) (numrico) (numrico)
100
Fazer um algoritmo que processe a tabela e emita, para cada funcionrio seu
contracheque cujo formato dado a seguir:
13) Defina um Tipo Abstrato de Dados TMatriz, para representar matrizes quadradas de
tamanho n. Implemente as operaes para somar e multiplicar 2 matrizes. Implemente
ainda a operao do clculo da matriz inversa.
14) Voc dever implementar um tipo abstrato de dados TConjunto para representar
conjuntos de nmeros inteiros. Seu tipo abstrato dever armazenar os elementos do
conjunto e o seu tamanho n. Considere que o tamanho mximo de um conjunto 20
elementos e use arranjos de 1 dimenso (vetores) para a sua implementao. Seu TAD
deve possuir procedimentos (ou funes quando for o caso) para:
a. criar um conjunto vazio;
b. ler os dados de um conjunto;
c. fazer a unio de dois conjuntos;
d. fazer a interseo de dois conjuntos;
e. verificar se dois conjunto so iguais (possuem os mesmos elementos);
f. imprimir um conjunto;