Enviado em 19/09/2018 - 11:25h
/********************************************************************************************************************
* PRIMEIRA AVALIAÇÃO
* Use este código para realizar a tarefa. Foram feitas as configurações iniciais com define´s e include´s, foram
* declaradas as funções iniciais da fila (funções a serem implementadas), mas não foi feito nenhuma parte da pilha.
* O objetivo da aplicação é receber um conjunto de strings em uma fila e ir retirando os elementos da fila para
* inverte-los. Para realizar a inversão (função inversor) você deve usar uma pilha.
* Dicas:
* a) uma string é um vetor de caracteres terminadas por \0.
* b) se você inserir os elementos de um vetor em uma pilha e depois retira-los, eles virão na ordem inversa.
* Com o código pronto estes testes devem ser executados com sucesso (sem mensagens indicando erro).
*********************************************************************************************************************/
#define MAX 20
#include "collection.h"
#include <stdio.h>
#include <strings.h>
#include<stdlib.h>
#define TRUE 0
#define FALSE 1
Collection create_queue();
int insere(Collection *fila, char textoAInserir[]);
int retira(Collection *fila, char *textoRemovido);
int inversor(char *textoOriginal, char *textoInvertido);
//----- Esta parte do código não pode ser alterada ------
int main() {
char textos[20][20] = { "Abertura", "Continuo", "Contador", "Marcado", "Automovel", "Gentileza", "Verdade", "Fermento", "Teclado", "Barbeiro", "Treinamento", "Dinamismo", "Homenagem", "Levantar", "Integral"};
char textosInvertidos[20][20] = { "arutrebA", "ounitnoC", "rodatnoC", "odacraM", "levomotuA", "azelitneG", "edadreV", "otnemreF", "odalceT", "oriebraB", "otnemanierT", "omsimaniD", "meganemoH", "ratnaveL", "largetnI"};
char *textoOriginal = (char *)malloc(20 * sizeof(char));
char *textoInvertido = (char *)malloc(20 * sizeof(char));
Collection fila = create_queue();
int i, j;
//Inserção de dez elementos na fila
for(j = 0; j < 10; j++) {
insere(&fila, textos[j]);
}
i = 0;
retira(&fila, textoOriginal) == TRUE ? printf("[%d] Texto retirado da fila com sucesso [%s]\n", i, textoOriginal) : printf("[%d] Erro na retirada do texto da fila\n", i);
strcmp(textoOriginal, textos[i]) == TRUE ? printf("Primeiro texto correto\n") : printf("Erro no Primeiro texto retirado\n");
inversor(textoOriginal, textoInvertido) == TRUE ? printf("[%d] Texto invertido com sucesso [%s]\n", i, textoInvertido) : printf("[%d] Erro na inversao do texto\n", i);
strcmp(textoInvertido, textosInvertidos[i]) == TRUE ? printf("Inversao do primeiro texto correto\n") : printf("Erro na inversao do primeiro texto retirado\n");
i++;
retira(&fila, textoOriginal) == TRUE ? printf("[%d] Texto retirado da fila com sucesso [%s]\n", i, textoOriginal) : printf("[%d] Erro na retirada do texto da fila\n", i);
strcmp(textoOriginal, textos[i]) == TRUE ? printf("Primeiro texto correto\n") : printf("Erro no Primeiro texto retirado\n");
inversor(textoOriginal, textoInvertido) == TRUE ? printf("[%d] Texto invertido com sucesso [%s]\n", i, textoInvertido) : printf("[%d] Erro na inversao do texto\n", i);
strcmp(textoInvertido, textosInvertidos[i]) == TRUE ? printf("Inversao do primeiro texto correto\n") : printf("Erro na inversao do primeiro texto retirado\n");
i++;
retira(&fila, textoOriginal) == TRUE ? printf("[%d] Texto retirado da fila com sucesso [%s]\n", i, textoOriginal) : printf("[%d] Erro na retirada do texto da fila\n", i);
strcmp(textoOriginal, textos[i]) == TRUE ? printf("Primeiro texto correto\n") : printf("Erro no Primeiro texto retirado\n");
inversor(textoOriginal, textoInvertido) == TRUE ? printf("[%d] Texto invertido com sucesso [%s]\n", i, textoInvertido) : printf("[%d] Erro na inversao do texto\n", i);
strcmp(textoInvertido, textosInvertidos[i]) == TRUE ? printf("Inversao do primeiro texto correto\n") : printf("Erro na inversao do primeiro texto retirado\n");
i++;
retira(&fila, textoOriginal) == TRUE ? printf("[%d] Texto retirado da fila com sucesso [%s]\n", i, textoOriginal) : printf("[%d] Erro na retirada do texto da fila\n", i);
strcmp(textoOriginal, textos[i]) == TRUE ? printf("Primeiro texto correto\n") : printf("Erro no Primeiro texto retirado\n");
inversor(textoOriginal, textoInvertido) == TRUE ? printf("[%d] Texto invertido com sucesso [%s]\n", i, textoInvertido) : printf("[%d] Erro na inversao do texto\n", i);
strcmp(textoInvertido, textosInvertidos[i]) == TRUE ? printf("Inversao do primeiro texto correto\n") : printf("Erro na inversao do primeiro texto retirado\n");
i++;
retira(&fila, textoOriginal) == TRUE ? printf("[%d] Texto retirado da fila com sucesso [%s]\n", i, textoOriginal) : printf("[%d] Erro na retirada do texto da fila\n", i);
strcmp(textoOriginal, textos[i]) == TRUE ? printf("Primeiro texto correto\n") : printf("Erro no Primeiro texto retirado\n");
inversor(textoOriginal, textoInvertido) == TRUE ? printf("[%d] Texto invertido com sucesso [%s]\n", i, textoInvertido) : printf("[%d] Erro na inversao do texto\n", i);
strcmp(textoInvertido, textosInvertidos[i]) == TRUE ? printf("Inversao do primeiro texto correto\n") : printf("Erro na inversao do primeiro texto retirado\n");
i++;
retira(&fila, textoOriginal) == TRUE ? printf("[%d] Texto retirado da fila com sucesso [%s]\n", i, textoOriginal) : printf("[%d] Erro na retirada do texto da fila\n", i);
strcmp(textoOriginal, textos[i]) == TRUE ? printf("Primeiro texto correto\n") : printf("Erro no Primeiro texto retirado\n");
inversor(textoOriginal, textoInvertido) == TRUE ? printf("[%d] Texto invertido com sucesso [%s]\n", i, textoInvertido) : printf("[%d] Erro na inversao do texto\n", i);
strcmp(textoInvertido, textosInvertidos[i]) == TRUE ? printf("Inversao do primeiro texto correto\n") : printf("Erro na inversao do primeiro texto retirado\n");
//Inseção de mais cinco elementos na fila
for(j = 10; j < 15; j++) {
insere(&fila, textos[j]);
}
i++;
retira(&fila, textoOriginal) == TRUE ? printf("[%d] Texto retirado da fila com sucesso [%s]\n", i, textoOriginal) : printf("[%d] Erro na retirada do texto da fila\n", i);
strcmp(textoOriginal, textos[i]) == TRUE ? printf("Primeiro texto correto\n") : printf("Erro no Primeiro texto retirado\n");
inversor(textoOriginal, textoInvertido) == TRUE ? printf("[%d] Texto invertido com sucesso [%s]\n", i, textoInvertido) : printf("[%d] Erro na inversao do texto\n", i);
strcmp(textoInvertido, textosInvertidos[i]) == TRUE ? printf("Inversao do primeiro texto correto\n") : printf("Erro na inversao do primeiro texto retirado\n");
i++;
retira(&fila, textoOriginal) == TRUE ? printf("[%d] Texto retirado da fila com sucesso [%s]\n", i, textoOriginal) : printf("[%d] Erro na retirada do texto da fila\n", i);
strcmp(textoOriginal, textos[i]) == TRUE ? printf("Primeiro texto correto\n") : printf("Erro no Primeiro texto retirado\n");
inversor(textoOriginal, textoInvertido) == TRUE ? printf("[%d] Texto invertido com sucesso [%s]\n", i, textoInvertido) : printf("[%d] Erro na inversao do texto\n", i);
strcmp(textoInvertido, textosInvertidos[i]) == TRUE ? printf("Inversao do primeiro texto correto\n") : printf("Erro na inversao do primeiro texto retirado\n");
i++;
retira(&fila, textoOriginal) == TRUE ? printf("[%d] Texto retirado da fila com sucesso [%s]\n", i, textoOriginal) : printf("[%d] Erro na retirada do texto da fila\n", i);
strcmp(textoOriginal, textos[i]) == TRUE ? printf("Primeiro texto correto\n") : printf("Erro no Primeiro texto retirado\n");
inversor(textoOriginal, textoInvertido) == TRUE ? printf("[%d] Texto invertido com sucesso [%s]\n", i, textoInvertido) : printf("[%d] Erro na inversao do texto\n", i);
strcmp(textoInvertido, textosInvertidos[i]) == TRUE ? printf("Inversao do primeiro texto correto\n") : printf("Erro na inversao do primeiro texto retirado\n");
i++;
retira(&fila, textoOriginal) == TRUE ? printf("[%d] Texto retirado da fila com sucesso [%s]\n", i, textoOriginal) : printf("[%d] Erro na retirada do texto da fila\n", i);
strcmp(textoOriginal, textos[i]) == TRUE ? printf("Primeiro texto correto\n") : printf("Erro no Primeiro texto retirado\n");
inversor(textoOriginal, textoInvertido) == TRUE ? printf("[%d] Texto invertido com sucesso [%s]\n", i, textoInvertido) : printf("[%d] Erro na inversao do texto\n", i);
strcmp(textoInvertido, textosInvertidos[i]) == TRUE ? printf("Inversao do primeiro texto correto\n") : printf("Erro na inversao do primeiro texto retirado\n");
i++;
retira(&fila, textoOriginal) == TRUE ? printf("[%d] Texto retirado da fila com sucesso [%s]\n", i, textoOriginal) : printf("[%d] Erro na retirada do texto da fila\n", i);
strcmp(textoOriginal, textos[i]) == TRUE ? printf("Primeiro texto correto\n") : printf("Erro no Primeiro texto retirado\n");
inversor(textoOriginal, textoInvertido) == TRUE ? printf("[%d] Texto invertido com sucesso [%s]\n", i, textoInvertido) : printf("[%d] Erro na inversao do texto\n", i);
strcmp(textoInvertido, textosInvertidos[i]) == TRUE ? printf("Inversao do primeiro texto correto\n") : printf("Erro na inversao do primeiro texto retirado\n");
i++;
retira(&fila, textoOriginal) == TRUE ? printf("[%d] Texto retirado da fila com sucesso [%s]\n", i, textoOriginal) : printf("[%d] Erro na retirada do texto da fila\n", i);
strcmp(textoOriginal, textos[i]) == TRUE ? printf("Primeiro texto correto\n") : printf("Erro no Primeiro texto retirado\n");
inversor(textoOriginal, textoInvertido) == TRUE ? printf("[%d] Texto invertido com sucesso [%s]\n", i, textoInvertido) : printf("[%d] Erro na inversao do texto\n", i);
strcmp(textoInvertido, textosInvertidos[i]) == TRUE ? printf("Inversao do primeiro texto correto\n") : printf("Erro na inversao do primeiro texto retirado\n");
i++;
retira(&fila, textoOriginal) == TRUE ? printf("[%d] Texto retirado da fila com sucesso [%s]\n", i, textoOriginal) : printf("[%d] Erro na retirada do texto da fila\n", i);
strcmp(textoOriginal, textos[i]) == TRUE ? printf("Primeiro texto correto\n") : printf("Erro no Primeiro texto retirado\n");
inversor(textoOriginal, textoInvertido) == TRUE ? printf("[%d] Texto invertido com sucesso [%s]\n", i, textoInvertido) : printf("[%d] Erro na inversao do texto\n", i);
strcmp(textoInvertido, textosInvertidos[i]) == TRUE ? printf("Inversao do primeiro texto correto\n") : printf("Erro na inversao do primeiro texto retirado\n");
i++;
retira(&fila, textoOriginal) == TRUE ? printf("[%d] Texto retirado da fila com sucesso [%s]\n", i, textoOriginal) : printf("[%d] Erro na retirada do texto da fila\n", i);
strcmp(textoOriginal, textos[i]) == TRUE ? printf("Primeiro texto correto\n") : printf("Erro no Primeiro texto retirado\n");
inversor(textoOriginal, textoInvertido) == TRUE ? printf("[%d] Texto invertido com sucesso [%s]\n", i, textoInvertido) : printf("[%d] Erro na inversao do texto\n", i);
strcmp(textoInvertido, textosInvertidos[i]) == TRUE ? printf("Inversao do primeiro texto correto\n") : printf("Erro na inversao do primeiro texto retirado\n");
i++;
retira(&fila, textoOriginal) == TRUE ? printf("[%d] Texto retirado da fila com sucesso [%s]\n", i, textoOriginal) : printf("[%d] Erro na retirada do texto da fila\n", i);
strcmp(textoOriginal, textos[i]) == TRUE ? printf("Primeiro texto correto\n") : printf("Erro no Primeiro texto retirado\n");
inversor(textoOriginal, textoInvertido) == TRUE ? printf("[%d] Texto invertido com sucesso [%s]\n", i, textoInvertido) : printf("[%d] Erro na inversao do texto\n", i);
strcmp(textoInvertido, textosInvertidos[i]) == TRUE ? printf("Inversao do primeiro texto correto\n") : printf("Erro na inversao do primeiro texto retirado\n");
}
//----------- Final da parte do código que não pode ser alterada ---------
Collection create_queue() {
Collection c;
return c;
}
int insere(Collection *fila, char *textoAInserir) {
printf("--> %s\n", textoAInserir);
return TRUE;
}
int retira(Collection *fila, char *textoRemovido) {
strcpy(textoRemovido, "Abertura");
return TRUE;
}
int inversor(char *textoOriginal, char *textoInvertido) {
strcpy(textoInvertido, "arutrebA");
return TRUE;
}
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Instalação Uefi com o instalador clássico do Mageia (0)
É cada coisa que me aparece! - não é só 3% (2)
SysAdmin ou DevOps: Qual curso inicial pra essa área? (1)
Alguma pessoa pode me ajudar com drriver Core i3 7020u (Debian 12)? (2)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta