Está en la página 1de 4

INSTITUTO FEDERAL DE EDUCAO DO MARANHO IFMA/CAXIAS

BACHARELADO EM CINCIA DA COMPUTAO


DISCIPLINA: LINGUAGENS DE PROGRAMAO
PROFESSOR: WILKER LUZ (josewilkerluz@ifma.edu.br)



EXERCICOS
1. Ponteiros so causadores potenciais de erros em programao. D exemplos, com trechos de cdigo em C,
de erros causados por ponteiros que provocam violao dos sistemas de tipos da linguagem, ocorrncia de
objetos pendentes e ocorrncia de referncias pendentes.

2. Uma diferena significativa entre a definio de tipos primitivos em C++ e JAVA se refere ao intervalo de
valores de cada tipo. Enquanto em JAVA os intervalos foram fixados na definio da LP, em C++ a
implementao do compilador que define esses intervalos. Compare estas duas abordagens, justificando a
opo de cada uma dessas linguagens.

3. Em geral, a verificao de uso de ndice fora dos limites do vetor s pode ser verificado em tempo de
execuo. Algumas LPs, como JAVA, PASCAL e MODULA-2 fazem a verificao dinmica dos ndices.
Outras, como C, C++ e FORTRAN no fazem essa verificao. Justifique porque algumas LPs adotaram
uma postura e outras adotaram uma postura oposta. Uma terceira postura, intermediria, seria gerar cdigo
com verificao dinmica na fase de desenvolvimento e sem verificao dinmica para a fase de uso.
Discuta essa opo em termos dos conceitos usados para justificar as opes das LPs mencionadas acima.

4. Arrays podem ser estticos, semi-estticos, semi-dinmicos e dinmicos. Enquanto a criao de arrays
estticos e semi-estticos pode ser feita facilmente em C, a construo de arrays semi-dinmicos e
dinmicos envolve um maior esforo de programao. Responda como os mecanismos de C permitem a
criao desses tipos de arrays. Ilustre com exemplos.

4. Produtos cartesianos, unies, mapeamentos e tipos recursivos so categorias de tipos compostos de dados.
Ilustre, com exemplos em C, cada um desses conceitos. Crie ainda um novo tipo de dados que com- bine
trs desses conceitos e diga qual a sua cardinalidade.

5. Determine a cardinalidade de cada um dos tipos abaixo, usando os conceitos de produto cartesiano, unies
e mapeamentos para explicar a cardinalidade dos tipos compostos:
INSTITUTO FEDERAL DE EDUCAO DO MARANHO IFMA/CAXIAS
BACHARELADO EM CINCIA DA COMPUTAO
DISCIPLINA: LINGUAGENS DE PROGRAMAO
PROFESSOR: WILKER LUZ (josewilkerluz@ifma.edu.br)

6. Considere o seguinte programa escrito em C++:

Determine quais sero as sadas possveis do programa acima. Explique sua resposta.

7. Considere o seguinte programa escrito em C:


INSTITUTO FEDERAL DE EDUCAO DO MARANHO IFMA/CAXIAS
BACHARELADO EM CINCIA DA COMPUTAO
DISCIPLINA: LINGUAGENS DE PROGRAMAO
PROFESSOR: WILKER LUZ (josewilkerluz@ifma.edu.br)

Descreva o que ocorre nesse programa. Justifique sua resposta.

8. Listas heterogneas so estruturas de dados capazes de armazenar no seu campo de informao valores de
tipos distintos. Uma forma de implementar listas heterogneas em C atravs do uso de unies. Outra
forma atravs do uso de ponteiros para void. Mostre, atravs de exemplos de cdigo em C, como se pode
fazer para definir listas heterogneas usando essas duas abordagens (no preciso implementar as
operaes de lista, apenas a definio da estrutura de dados). Compare e discuta essas solues em termos
de redigibilidade (das operaes da lista) e flexibilidade (em termos de necessidade de recompilao do
mdulo lista quando for necessrio alterar ou incluir um novo tipo de dado no campo informao).

9. Em C possvel criar estruturas de dados heterogneas, isto , com elementos de tipos diferentes. Contudo,
ao se retirar um elemento da estrutura necessrio identificar quais operaes so vlidas sobre o elemento
sendo removido de modo a evitar erros no sistema de tipos da LP. De quais maneiras isso pode ser feito?
Compare as solues propostas em termos de redigibilidade e em termos da necessidade de alterao do
cdigo usurio quando da alterao ou incluso de um novo tipo de elemento na lista.

10. Caracterize a diferena entre unies livres e unies disjuntas em termos de cardinalidade e segurana quanto
ao sistema de tipos da linguagem. Discuta e exemplifique como as unies de C podem ser utilizadas para
INSTITUTO FEDERAL DE EDUCAO DO MARANHO IFMA/CAXIAS
BACHARELADO EM CINCIA DA COMPUTAO
DISCIPLINA: LINGUAGENS DE PROGRAMAO
PROFESSOR: WILKER LUZ (josewilkerluz@ifma.edu.br)



criar estruturas de dados heterogneas (isto , que abrigam tipos de informao distintos), destacando como
o programador (ou a linguagem, se for o caso) deve proceder para garantir o uso desse tipo de dado sem
que haja violaes do sistema de tipos. Discuta ainda quo genrica pode ser uma estrutura de dados
heterognea que se baseia no mecanismo de unies.

11. Muito embora JAVA seja fortemente influenciada por C, os projetistas dessa LP resolveram incluir o tipo
boolean, o qual no existe em C. Explique porque essa deciso foi tomada. D exemplo de situao na qual
a postura de C traz alguma vantagem. Faa o mesmo em relao a postura de JAVA. Justifique suas
respostas.

También podría gustarte