Sie sind auf Seite 1von 3

Fundao CECIERJ - Vice Presidncia de Educao Superior a Distncia

Curso de Tecnologia em Sistemas de Computao


Disciplina Fundamentos de Programao
AP2 2 semestre de 2006.
Nome
Assinatura
____________________________________________________________________________
Observaes:
1. Prova sem consulta e sem uso de mquina de calcular.
2. Use caneta para preencher o seu nome e assinar nas folhas de questes e nas folhas de respostas.
3. Voc pode usar lpis para responder as questes.
4. Ao final da prova devolva as folhas de questes e as de respostas.
5. Todas as respostas devem ser transcritas nas folhas de respostas. As respostas nas folhas de
questes no sero corrigidas.

Questo 1 (Valor: 2,5 pontos)


Suponha as declaraes a seguir.
Type
T_Elemento = Record
Chave: integer;
Descr: string;
Valor, Qtd: Real;
End;
T_Arquivo = File of T_Elemento;
Implemente o procedimento com cabealho dado a seguir.
Procedure Insere ( X{e}: T_Elemento; Var Arq{e/s}: T_Arquivo );
O procedimento Insere recebe como parmetros: um elemento X e um arquivo Arq, que
possui suas informaes j ordenadas crescentemente pelo campo Chave. A insero deve
preservar a ordenao dos itens aps a incluso de X em Arq. Suponha que o arquivo Arq j
esteja conectado, isto , o comando assign j foi executado previamente.
Questo 2 (Valor: 2,5 pontos)
Faa um programa Pascal que elimine todas as ocorrncias de uma palavra, escolhida
pelo usurio, de um arquivo texto, tambm escolhido pelo usurio.

Questo 3 (Valor: 2,5 pontos)


Faa um procedimento em Pascal para inserir, em uma lista encadeada e ordenada
crescentemente pelo valor da chave, um novo elemento, contendo a chave c (um inteiro maior
do que zero) passada como parmetro. Este elemento dever ser inserido mantendo-se a lista
ordenada. Para facilitar, considere que a lista tem pelo menos dois elementos: o primeiro com o
valor da chave igual a zero e o ltimo com valor da chave igual a maxint.
Utilize as seguintes declaraes.
type
T_info = integer;
T_pont = ^T_elemento;
T_elemento = record
chave : T_info;
prox : T_pont
end;
procedure Insere_Elem (var P_Lista{e/s}: T_pont; c{e}: T_info);
begin
{P_Lista: contm o ponteiro para o primeiro elemento da lista ordenada;}
{c: contm o valor da chave do elemento a ser inserido.}
end;
Questo 4 (Valor: 2,5 pontos)
Seja P um conjunto de produtos. Seja D uma base de dados que contm um conjunto de
transaes de compra. Cada transao de compra t contm um subconjunto de produtos
de P.
Um subconjunto F de P (F P) dito freqente em D se e somente se pelo menos s%
das transaes de D contm os elementos de F. O valor s chamado suporte mnimo.
Implemente a funo Verifica_Freq para verificar se um determinado subconjunto F
freqente ou no. Os parmetros dessa funo so: a base de dados Base, o nmero de
transaes dessa base Tam_Base, o subconjunto F e o suporte mnimo s. A funo dever
retornar o valor true, caso F seja freqente, ou false, caso contrrio.
Utilize as seguintes definies.
const
MaxD = 100;
type
Faixa = 1..MaxD;
P = (Leite, Manteiga, Biscoito, Cafe, Pao, Cerveja, Macarro, Amendoim);
t = set of P;
D = array [Faixa] of t;
function Verifica_Freq (Base{e}: D; Tam_Base{e}: Faixa; F{e}: t; s{e}: real): boolean;
begin
{Considere que o valor de s estar entre 0 e 1.}
end;

Boa Prova!

Das könnte Ihnen auch gefallen