Buscar

Avaliação Discursiva (estrutura)

Prévia do material em texto

Avaliação Discursiva 2 - Calouros
Para responder a questão deve ser produzido um texto entre 10 e 15 linhas (entre 800 e 1200 caracteres) com suas próprias palavras, para cada resposta. Não são permitidas cópias do material didático nem de outras mídias faladas ou audiovisuais, sob pena de anulação da resposta ou pontuação correspondente. É importante ter originalidade e apresentar clareza na produção, vocabulário adequado, coerência com o questionamento citado e com as regras ortográficas.
Em caso de tecer comparações ou optar por citações, estas deverão ser referenciadas (na referência indicar ano, página do livro, links, que usou como aporte) e não podem ultrapassar 20% do texto total.
Então, bom trabalho! Escreva com suas próprias palavras, responda o que foi pedido e demostre seus conhecimentos.
Problema:
Uma FILA é uma estrutura de dados “linear” na qual os elementos são inseridos por uma de suas extremidades e são removidos pela outra. Normalmente os elementos entram pelo fim da fila e são removidos pelo começo dela, mas este processo pode ser invertido também.
Temos muitos exemplos de filas no mundo real, como no caixa de um supermercado, no banco, na entrada de uma escola.
Questões:
PARTE A – Teste de Mesa no papel (ou no editor de texto)
Esta questão visa verificar sua habilidade de fazer um teste de mesa para filas:
Faça uma sequência de 15 operações de inserção e remoção de elementos, aleatoriamente. Mostre o estado da fila a cada passo. Se a fila ficar vazia, não tem problema; apenas deixe isto indicado.
Por exemplo:
Se a sua fila for de nomes de clientes:
Operação 1: insert(“Ademir”);
Fila == Inicio: Ademir :Fim
Operação 2: insert(“Janaína”);
Fila == Inicio: Ademir, Janaína :Fim
Operação 3: remove();
Fila == Inicio: Janaína :Fim
            ...
Dicas:
·         Você pode escolher com que tipo de informação sua fila vai trabalhar (nomes, frutas, carros, etc).
·         Você deve escolher o tipo de elemento e a sequência de operações.
·         Procure deixar sua fila com pelo menos 4 elementos em algum momento.
·         O exercício pode terminar com a lista contendo diversos elementos.
·         Procure testar sua lista como “vazia” em algum momento.
 
PARTE B – Programação
Vamos fazer a programação de uma FILA para testar o exemplo anterior no computador.
Aqui você deve fazer um programa em linguagem C ou C++ que contenha as seguintes estruturas:
a)    A estrutura nó da fila deve guardar um nome (string ou vetor de caracteres). Escolha mais um ou 2 campos para fazer parte da sua STRUCT.
Não se esqueça de fazer uma estrutura para sua fila, com ponteiros para inicio e fim.
b)    Vamos usar nós com alocação dinâmica para nossa fila ficar diferente da ensinada na aula.
c)    Faça uma função para inserir elementos no final da fila.
d)    Faça outra função para remover um elemento do inicio da fila.
e)    Faça uma função para testar se a fila está vazia ou não.
f)     Faça uma função para contar o número de elementos que sua lista possui.
g)    Crie uma função para mostrar toda a sua lista (listagem) num determinado momento.
h)    Faça um menu, como feito nas aulas, para podermos usar todas essas funções criadas.
 
Dicas:
·         Suas rotinas devem trabalhar com parâmetros sempre que possível.
·         Você pode escolher os campos de sua estrutura e a sequência de operações a ser realizada como teste.
·         Leia os capítulos 3, 4 e 5 do livro texto.
·         Assista a aula 4 da unidade 01 sobre filas. Além das aulas 01, 02, 03 e 04 da unidade 02 para embasar a construção do programa.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define TAM 5
struct no
{
	int n;
	struct no *p;
};
void ponteiros ( );
Struct tad_fila
{
Int e[TAM];
Int ini, fim;
};
struct tad_fila f;
void enfileirar ( );
void desenfileirar ( );
void enqueue (int );
void dequeue ( );
void main ( )
{
	ponteiros ( );
	f.ini = 0;
f.fim = -1;
	enfileirar ( );
enfileirar ( );
enfileirar ( );
enfileirar ( );
desenfileirar ( );
desenfileirar ( );
desenfileirar ( );
	_getch ( );
}
char menu ( )
{
	Char op;
titulo (“menu”)
printf (“0 – Encerrar\n”);
printf (“1 – Inserir\n”);
printf (“2 – Pesquisar\n”);
printf (“\nEscolha a opção:”);
op = getche ( );
switch (op);
{
case ‘0’: break;
case ‘1’: inserir ( ); break;
case ‘2’: pesquisar ( ); break;
default: printf (“\nopcao invalida); pausa ( ); break;
}
return op;
}
void titulo (char *texto)
{
	System (“cls”);
	printf (“-------------------\n”);
	printf (“%\n”, texto);
	printf (“--------------------\n”);
}
void pausa ( )
{
printf (“\nTecle algo....”);
_getch ( );
}
void enfileirar ( )
{
int n;
printf (“Informe o numero: ”);
scanf_s (“%d”, &n);
enqueue (n);
}
void ponteiros ( )
{
	int n;
	int *p
	n = 0
	p = &n;
	printf (“%d”, n);
	printf (“%p”, p);
}
void desenfileirar ( )
{
	Int n;
n = dequeue ( );
printf (“\nO valor retirado da fila foi: %d”, n);
void enqueue (int n)
{
	if (f.fim < TAM – 1
	{ 
		f.fim++;
		f.e[f.fim] = n;
}
else
printf (“Fila cheia!”);
}
int dequeue ( )
{
	int n;
	if (f.ini <= f.fim)
	{
		n = f.e[f.ini];
f.ini++;
}
else
{
	Printf (“Fila vazia!”);
	n = 0
}
return n;
}
Questão A
A programação orientada a objetos foca na abstração e no contexto. Isto significa que tanto os dados quanto as funcionalidades do sistema estão sempre vinculados a uma classe, que é a abstração de um objeto do mundo real trazido para o sistema dentro do contexto do sistema que está sendo construído. Uma das formas de reaproveitamento de código neste paradigma se dá através da herança, onde uma determinada classe herda características de outra e implementa seus membros específicos. Imagine que você esteja criando um módulo de um programa que será usado para cálculo de preço de periféricos de computadores. Para este programa você deverá:
a) Criar uma classe base, denominada “Periferico”, com os seguintes membros:
a.1) atributos “Codigo” e “Valor”;
a.2) método estático “CalcularValorTotal”; este método:
a.2.1) recebe uma lista de periféricos como parâmetro;
a.2.2) percorre toda a lista, somando o valor dos periféricos nela contidos;
a.2.3) retorna o valor total somado dos equipamentos.
b) Criar três classes derivadas da classe equipamento, sendo elas “Monitor”, “Teclado” e “Mouse”; cada classe derivada deverá conter suas próprias características.

Continue navegando