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;
}
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Dica para encontrar diversos jogos Indies criativos
Instalando Discord no Debian 13
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Software livre - será que eu estou tão errado assim? (10)
Boot do PosRog so funciona em notebook (1)