==========
Questão 01
==========
Arquivo fonte: quest1.c
Arquivo de entrada: quest1.in
Arquivo de saída: quest1.out
ENTRADA
O arquivo de entrada consiste de uma sequência de comandos dispostos cada qual em uma linha distinta. A leitura do arquivo termina com o comando END.
Cada linha do arquivo tera um dos seguintes
formatos:
- I1 n
-> Indica que o inteiro n será inserido na pilha 1;
- I2 m
-> Indica que o inteiro m será inserido na pilha 2;
- R1
-> Remover o elemento do topo da pilha 1;
- R2
-> Remover o elemento do topo da pilha 2;
- L1
-> Listar pilha 1;
- L2
-> Listar pilha 2;
- END
-> Indica o final do arquivo.
Exemplo de arquivo de entrada:
I1 1
I1 2
I1 3
I1 4
I2 10
L1
I1 5
I2 9
I1 6
I1 7
I1 8
I1 100
I2 213
L2
R1
R1
R2
R2
R2
R1
R1
R1
R1
I1 3
R1
R1
R1
R1
L1
L2
END
SAÍDA
O arquivo de saida se chama "quest1.out". As seguintes mensagens deverão ser geradas no arquivo de saída:
Ao comando IN m(I1 ou I2
- onde N é o número da pilha e m é o elemento a ser
inserido) :
Ao comando LN (onde N é o
número da pilha) :
Ao comando RN :
Tome por exemplo o arquivo de
Pilha 1: 4 3 2 1
Obs.:
Overflow, caso a pilha esteja
cheia.
Pilha N : x1 x2 x3
... , onde x1 x2 x3... são os elementos
da pilha N.
ou
Pilha N vazia
Removido da pilha N o numero x
, onde x é o elemento que está no topo da pilha N.
ou
Underflow, caso a pilha N esteja
vazia.
entrada acima, cujo arquivo de saida será:
Overflow
Overflow
Pilha 2: 9 10
Removido da pilha 1 o numero 8
Removido da pilha 1 o numero 7
Removido da pilha 2 o numero 9
Removido da pilha 2 o numero 10
Underflow pilha 2
Removido da pilha 1 o numero 6
Removido da pilha 1 o numero 5
Removido da pilha 1 o numero 4
Removido da pilha 1 o numero 3
Removido da pilha 1 o numero 3
Removido da pilha 1 o numero 2
Removido da pilha 1 o numero 1
Underflow pilha 1
Pilha 1 vazia
Pilha 2 vazia
- O vetor que conterá as pilhas
possuirá no máximo 10 elementos.
- Note que a listagem deve ocorrer do
topo da pilha para sua base.
- A mensagem "Pilha 1 vazia" ou "Pilha
2 vazia" deve ser dada ao listar uma pilha vazia.
- Nao devera haver espaco extra nem comeco
nem no final da linha dos arquivos de saida.
- Tentem seguir as mensagens tal qual
como especificadas no exemplo acima.
==========
Questão 02
==========
Arquivo fonte: quest2.c
Arquivo de entrada: quest2.in
Arquivo de saída: quest2.out
ENTRADA
O arquivo de entrada consiste de uma sequência de comandos dispostos cada qual em uma linha distinta. A leitura do arquivo termina com o comando END.
Cada linha do arquivo terá os seguintes
formatos:
- I n -> insere o inteiro
n na fila.
- R ->
remove o primeiro elemento da fila
- L ->
listar os elementos da fila
- END -> Indica o final
do arquivo.
Exemplo de arquivo de entrada:
I 1
I 10
I 24
I 100
I 64
I 5
L
R
R
R
L
R
R
R
R
L
I 1
I 2
I 3
I 4
I 5
I 6
I 7
I 8
I 9
I 10
L
I 11
L
END
SAÍDA
O arquivo de saida será "quest2.out".
Tome por exemplo o arquivo de
entrada acima, cujo arquivo de saida será:
Arquivo de saida para o exemplo acima:
Fila: 1 10 24 100 64 5
Removido 1
Removido 10
Removido 24
Fila: 100 64 5
Removido 100
Removido 64
Removido 5
Underflow
Fila vazia
Fila: 1 2 3 4 5 6 7 8 9 10
Fila: 1 2 3 4 5 6 7 8 9 10 11
Obs.:
- Note que a listagem deve ocorrer do
inicio da fila para seu fim.
- A mensagem "Fila vazia" deve ser dada
ao listar uma fila vazia.
- Nao devera haver espaco extra nem comeco
nem no final da linha dos arquivos de saida.
- Tentem seguir as mensagens tal qual
como especificadas nos exemplos acima.
Arquivo fonte: quest3.c
Arquivo de entrada: quest3.in
Arquivo de saída: quest3.out
O arquivo de entrada consiste de uma sequência de números naturais N, tal que 2<=N<=10000, dispostos cada qual em uma linha distinta. A leitura do arquivo termina quando N=0. Este número não deve ser processado.
Entrada exemplo:
20
11
36
487
1093
98
0
Saída exemplo correspondente à entrada acima:
O numero 20 possui 8 primos menores
que ele.
O numero 11 possui 4 primos menores
que ele.
O numero 36 possui 11 primos menores
que ele.
O numero 487 possui 92 primos menores
que ele.
O numero 1093 possui 182 primos menores
que ele.
O numero 98 possui 25 primos menores
que ele.
Obs:
- O formato dos arquivos de saída deverão
seguir EXATAMENTE o padrão estabelecido nos exemplos acima.
- O número 1 não é primo.
==========
Questão 04
==========
Arquivo fonte: quest4.c
Arquivo de entrada: quest4.in
Arquivo de saída: quest4.out
O arquivo de entrada consiste de vários conjuntos de dados. Cada conjunto começa com um inteiro N, tal que N é o número de elementos da lista circular simplesmente encadeada. A próxima linha do conjunto contém a sequência dos elementos que devem ser inseridos cada qual em uma célula da lista. A terceira linha do conjunto contém o valor de M, que é a quantidade de pares de pontos a serem lidos. As próximas M linhas do conjunto contém os M pares de pontos. Um conjunto começado por zero (N=0) indica o final do arquivo. Este conjunto não deve ser processado.
Entrada exemplo:
5
2 5 6 8 9
3
2 6
9 2
6 2
10
10 9 8 7 6 15 14 13 12 11
5
10 11
7 12
14 8
8 8
13 9
0
Tome por exemplo o arquivo de entrada acima, cujo arquivo de saída será:
Conjunto #1
Distancia entre 2 e 6: 2
Distancia entre 9 e 2: 1
Distancia entre 6 e 2: 2
Conjunto #2
Distancia entre 10 e 11: 1
Distancia entre 7 e 12: 5
Distancia entre 14 e 8: 4
Distancia entre 8 e 8: 0
Distancia entre 13 e 9: 4
Obs:
- Todos os M pares de pontos estão
contidos na lista circular;
- Não serão inseridos na lista pontos
iguais;
- Não se esqueçam de desalocar da
memória TODA a lista circular após processar cada conjunto
de dados;
- O formato dos arquivos de saída deverão
seguir EXATAMENTE o padrão estabelecido nos exemplos acima.