Buscar

Atividade Estruturada - Estrutura de Dados 1512397

Prévia do material em texto

ESTRUTURA DE DADOS - CCT0021 
Turma: ESTRUTURA DE DADOS 
(CCT0021/1512397) 3003 
Data: 6/4/2014 
Aluno: 
_________________________________________ Nota: _______ 
TÍTULO DA ATIVIDADE ESTRUTURADA: 
Lista de Exercícios 
OBJETIVO: 
Pesquisar no material indicado e no conteúdo de aula e responder o questionário proposto. 
COMPETÊNCIAS/HABILIDADES: 
Conceituar a estrutura de dados fila Representar a estrutura de dados fila por contigüidade 
(fila simples) Compreender 
e implementar as operações com fila simples Desenvolver tarefas práticas com filas simples 
Questão - 1 
DESENVOLVIMENTO: 
FILA 
• FILA SEQUENCIAL SIMPLES 
1) Faça um programa em C++ para apresentar um menu várias vezes, com as seguintes 
opções : 
MENU 
1- Enfileirar um número inteiro positivo. 
2- Desenfileirar tudo e imprimir apenas os valores que são múltiplos de 5. 
3- Terminar o programa 
Implemente, adequadamente, cada opção fornecida. 
2) Faça um programa em C++ para ler uma sequência de caracteres (vetor de char) e 
enfileirá-los. Em seguida, desenfileire todos os caracteres e empilhe-os em uma pilha P 
seguindo as orientações: 
 Converta as letras para maiúsculas antes de empilhá-las 
 Qualquer outro caracter, empilhe sem alteração. 
Ao final, desempilhe tudo, exibindo o resultado na saída padrão. 
• FILA SEQUENCIAL CIRCULAR 
3) Faça um programa em C++ para apresentar um menu várias vezes, com as seguintes 
opções : 
MENU 
1- Enfileirar um valor inteiro não nulo 
2- Desenfileirar um valor, exibindo na tela o seu dobro 
3- Desenfileirar tudo, exibindo os valores desenfileirados sem alterações 
4- Terminar o programa 
Implemente, adequadamente, cada opção fornecida usando funções para enfileirar e 
desenfileirar. 
4) Faça um programa que leia um vetor de char e enfileire seus dados em duas filas : fila A 
(fila simples – de char ) e fila B (fila circular com contador – de inteiros) da seguinte forma: 
Se o caracter for dígito, converta-o para dígito e enfileire-o em B. 
 Se o caracter for letra, enfileire-o em A. 
 Qualquer outro caracter não deverá ser enfileirado. 
Ao final, desenfileire as filas B e A, nesta ordem, exibindo os seus dados. 
PRODUTO/RESULTADO: 
Lista de Exercícios respondida 
1 - QUESTAO 
 
#include <stdio.h> 
#include <stdlib.h> 
#define LIM 7 
#define FALSE 0 
#define TRUE 1 
 
#define UM 1 
#define DOIS 2 
#define TRES 3 
 
 
 
int obterOpcao(void) 
{ 
 int opcao; 
 printf("MENU\n"); 
 printf("%2d - Enfileirar um numero inteiro positivo\n", UM); 
 printf("%2d - Desenfileirar tudo e imprimir apenas os valores que sao multiplos de 
5\n", DOIS); 
 printf("%2d - Terminar o programa\n", TRES); 
 printf("Opcao: "); 
 scanf("%d", &opcao); 
 return opcao; 
} 
 
int main(void) 
{ 
 int x,inicio, fim, fila[LIM], opcao, valor; 
 inicio = 0; // fila vazia 
 fim = 0; 
 while ((opcao = obterOpcao()) != TRES) 
 { 
 switch (opcao) 
 { 
 case UM: 
 printf("Valor a ser inserido na fila: "); 
 scanf("%d", &valor); 
 if (fim - inicio == LIM) { 
 printf("Operacao frustrada - fila esgotada...\n"); 
 } 
 else{ 
 if(inicio == fim){ 
 fila[inicio] = valor; 
 fim = fim + 1; 
 } 
 else{ 
 fim = fim + 1; 
 for(x = fim;x<=inicio;x--){ 
 fila[x+1] = fila[x]; 
 } 
 fila[inicio] = valor; 
 } 
 
 } 
 break; 
 case DOIS: 
 if (fim == LIM){ 
 printf("Operacao frustrada - fila vazia...\n"); 
 } 
 else{ 
 printf("Retirado \n%d\n", fim %5); 
 fim = fim -1; 
 printf("Operacao concluida com sucesso\n"); 
 } 
 break; 
 } 
 putchar('\n'); 
 } 
 return 0; 
} 
 
2-QUESTAO 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <ctype.h> 
 
int main(void) 
{ 
 int x,y; 
 char fila[10],pilha[10], temp[1]; 
 printf("Entre com o nome:"); 
 scanf("%s", fila); 
 y = 0; 
 for(x=0;x<=9;x++){ 
 if (isalpha(fila[x])){ 
 pilha[y] = toupper(fila[x]); 
 } 
 else{ 
 pilha[y] = fila[x]; 
 } 
 y = y + 1; 
 } 
 
 for(x=0;x<=9;x++){ 
 printf("%c", pilha[x]); 
 } 
 
 printf("\n"); 
 system("pause"); 
 return 0; 
} 
 
3-QUESTAO 
 
#include <stdio.h> 
#include <stdlib.h> 
#define LIM 7 
#define FALSE 0 
#define TRUE 1 
 
#define UM 1 
#define DOIS 2 
#define TRES 3 
#define QUATRO 4 
 
 
 
int obterOpcao(void) 
{ 
 int opcao; 
 printf("MENU\n"); 
 printf("%2d - Enfileirar um numero inteiro positivo\n", UM); 
 printf("%2d - Desenfileirar um valor, exibindo na tela o seu dobro\n", DOIS); 
 printf("%2d - Desenfileirar tudo, exibindo os valores desenfileirados sem 
altera??es\n", TRES); 
 printf("%2d - Terminar o programa\n", QUATRO); 
 printf("Opcao: "); 
 scanf("%d", &opcao); 
 return opcao; 
} 
 
int main(void) 
{ 
 int x,inicio, fim, fila[LIM], opcao, valor; 
 inicio = 0; // fila vazia 
 fim = 0; 
 while ((opcao = obterOpcao()) != QUATRO) 
 { 
 switch (opcao) 
 { 
 case UM: 
 printf("Valor a ser inserido na fila: "); 
 scanf("%d", &valor); 
 if (fim - inicio == LIM) { 
 printf("Operacao frustrada - fila esgotada...\n"); 
 } 
 else{ 
 if(inicio == fim){ 
 fila[inicio] = valor; 
 fim = fim + 1; 
 } 
 else{ 
 fim = fim + 1; 
 for(x = fim;x<=inicio;x--){ 
 fila[x+1] = fila[x]; 
 } 
 fila[inicio] = valor; 
 } 
 
 } 
 break; 
 case DOIS: 
 if (fim == 0){ 
 printf("Operacao frustrada - fila vazia...\n"); 
 } 
 else{ 
 printf("Retirado \n%d", fim * 2); 
 fim = fim -1; 
 printf("Operacao concluida com sucesso\n"); 
 } 
 break; 
 case TRES: 
 if (fim == 0){ 
 printf("Operacao frustrada - fila vazia...\n"); 
 } 
 else{ 
 printf("Retirado \n%d", fim); 
 fim = fim -1; 
 printf("Operacao concluida com sucesso\n"); 
 } 
 break; 
 } 
 putchar('\n'); 
 } 
 return 0; 
} 
 
4-QUESTAO 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <ctype.h> 
 
int main(void) 
{ 
 char fila[10], filaA[10]; 
 int filaB[10]; 
 int i, x; 
 int indexA = 0, indexB = 0; 
 
 printf("Entre com o nome:");scanf("%s", fila); 
 
 for(i=0 ; fila[i]!='\0'; i++){ 
 if (isalpha(fila[i])){ 
 filaA[indexA++] = fila[i]; 
 }else if (isalnum(fila[i])){ 
 x = fila[i] - '0'; 
 filaB[indexB++] = x; 
 } 
 } 
 printf("Fila B\n"); 
 for(i=0 ; i<indexB ; i++){ 
 printf("%d ", filaB[i]); 
 } 
 
 printf("\nFila A\n"); 
 for(i=0 ; i<indexA ; i++){ 
 printf("%c ", filaA[i]); 
 } 
 system("pause"); 
 return 0; 
} 
 
É ISSO AÍ VALEU!!!

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes