Você está na página 1de 3

Fundao CECIERJ - Vice Presidncia de Educao Superior a Distncia

Curso de Tecnologia em Sistemas de Computao


Disciplina Fundamentos de Programao
AD2 2 semestre de 2014.

IMPORTANTE - NOVIDADE:
- As respostas (programas) devero ser entregues pela plataforma em um arquivo ZIP contendo
todos os arquivos de cdigo fonte necessrios para que os programas sejam testados.
- As ADs devero ser entregues pela atividade "Entrega de AD2" antes da data final de entrega
estabelecida no calendrio de entrega de ADs.
- A AD um mecanismo de avaliao individual. As solues podem ser buscadas por grupos de
alunos, mas a redao final de cada prova tem que ser individual.

1a Questo (2,0 pontos) (Arquivo Texto)


Faa um programa em Pascal que processe um arquivo texto cujo nome seja escolhido pelo usurio
e escreva na tela as posies das linhas que contenham as cadeiras de caracteres (strings) de maior
comprimento e menor comprimento. Caso o arquivo esteja vazio, escreva uma mensagem
informando.
2a Questo (2,5 pontos) (Vetor de Registros (Tabela) - Arquivo Texto - Ordenao)
Considere as seguintes declaraes:
Const
TAM = 100;
Type
Faixa = 1..TAM;
ValorComContagem = record
Valor: real;
Contagem: integer;
end;
DicionarioDeValoresComContagemDeOcorrencia = array[Faixa] of ValorComContagem;
Utilizando as declaraes acima, faa um programa em Pascal que:
(a) Pea ao usurio o nome de um arquivo texto, contendo possivelmente vrias repeties de at
100 nmeros aleatrios diferentes.
(b) Leia o contedo do arquivo e construa um DicionarioDeValoresComContagemDeOcorrencia
ordenado pelo Valor.
(c) Escreva no vdeo o respectivo DicionarioDeValoresComContagemDeOcorrencia.
(d) Escreva no vdeo qual(is) o(s) Valor(res) mais ocorreu(ram).

3a Questo (1,5 pontos) (Arquivo Tipado)


Considere a seguinte declarao:
Type
Ponto = record
x, y: integer;
end;
ArqDePontos = File of Ponto;
Desenvolva um programa em Pascal que processe um arquivo do tipo ArqDePontos, cujo nome seja
escolhido pelo usurio, e remova do arquivo todos os pontos (x,y) que tenham x<=0 ou y<=0.

4a Questo (1,0 ponto) (Conjuntos)


Sejam A, B e C trs conjuntos de inteiros no intervalo [1,50].
Escreva quatro funes para retornar as seguintes informaes.
1)
2)
3)
4)

A quantidade de elementos que pertencem aos trs conjuntos.


A quantidade de elementos que pertencem a exatamente dois conjuntos.
A quantidade de elementos que pertencem a exatamente um conjunto.
A quantidade de elementos que no pertencem a conjunto algum.

Utilize as seguintes declaraes.


type
T_Elem = 1 . . 50;
T_Conj = set of T_Elem;
function F01 (A{e}, B{e}, C{e}: T_Conj): integer;
begin
end;
function F02 (A{e}, B{e}, C{e}: T_Conj): integer;
begin
end;
function F03 (A{e}, B{e}, C{e}: T_Conj): integer;
begin
end;
function F04 (A{e}, B{e}, C{e}: T_Conj): integer;
begin
end;

5a Questo (1,5 pontos) (Ponteiros)


Faa um programa em Pascal que leia nmeros inteiros do teclado at que o valor zero seja lido. Os
nmeros lidos devero ser inseridos em uma lista encadeada e devero ficar ordenados de acordo
com a ordem de entrada, ou seja, o primeiro elemento lido dever ser o primeiro elemento da lista, o
segundo elemento lido dever ser o segundo elemento da lista e assim sucessivamente. Antes de
encerrar o programa, os nmeros devero ser apresentados no vdeo, na ordem em que esto
contidos na lista.
Utilize a seguinte declarao.
type
T_info = integer;
T_pont = ^T_elemento;
T_elemento = record
num : T_info;
prox : T_pont
end;
6a Questo (1,5 pontos) (Ponteiros - Ordenao)
Faa uma verso do programa da questo anterior em que a insero na lista encadeada feita de
forma ordenada (crescentemente) pelo valores lidos.

Você também pode gostar