Prévia do material em texto
08/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6080047/b7ffc5a0-200e-11e9-9916-0242ac11003c/ 1/6 Local: Sala 1 - Sala de Aula / Andar / Polo Niterói - Região Oceânica / POLO REGIÃO OCEÂNICA Acadêmico: EAD-IL10301-20204A Aluno: MARCO ANTONIO LIMA DE CASTRO Avaliação: A2- Matrícula: 20191301364 Data: 12 de Dezembro de 2020 - 08:00 Finalizado Correto Incorreto Anulada Discursiva Objetiva Total: 10,00/10,00 1 Código: 35698 - Enunciado: As árvores são estruturas de dados que apresentam nós, tecnicamente denominados vértices, que podem estar ligados a outros nós por meio de uma linha de ligação, tecnicamente denominada aresta. Existem diversas formas de representar graficamente a estrutura de dados árvore. Nesse contexto, analise a figura a seguir e identifique o tipo de representação. a) Representação hierárquica. b) Representação por parênteses aninhados. c) Representação por indentação. d) Representação por vetor de dados. e) Representação por inclusão. Alternativa marcada: d) Representação por vetor de dados. Justificativa: Resposta correta: Representação por vetor de dados. Distratores: Representação por indentação. Errada, pois não apresenta a estrutura na forma indentada.Representação hierárquica. Errada, pois não apresenta a estrutura em forma de árvore.Representação por parênteses aninhados. Errada, pois não apresenta a estrutura na forma de pareamento.Representação por inclusão. Errada, pois a estrutura não está na forma de diagrama de Venn. 1,00/ 1,00 2 Código: 35707 - Enunciado: "As pilhas são uma lista na qual é aplicada a disciplina de acesso antagônica denominada LIFO. Os processos de inclusão e remoção de elementos na pilha são tecnicamente denominados empilhar e desempilhar."(Fonte: BOENTE, A. Aprendendo a programar em linguagem C: do básico ao avançado. Rio de Janeiro: Brasport, 2003). Nesse contexto, analise as afirmações a seguir e assinale a correta. a) Na pilha, o primeiro elemento a entrar sempre será o último elemento a removido, caracterizando o que tecnicamente chamamos de FIFO. b) Na estrutura de dados pilha, tanto a inserção como a remoção de elementos ocorrem pela base da pilha. c) A técnica utilizada na estrutura de dados pilha afirma que o primeiro elemento a entrar será o primeiro elemento a sair. d) Os elementos de uma pilha são ligados por uma linha denominada aresta. e) O processo de inserção de elementos na pilha é denominado, tecnicamente, de push, e o processo de remoção de elementos da pilha é denominado, tecnicamente, pop. Alternativa marcada: e) O processo de inserção de elementos na pilha é denominado, tecnicamente, de push, e o processo de remoção de elementos da pilha é denominado, tecnicamente, pop. 1,00/ 1,00 08/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6080047/b7ffc5a0-200e-11e9-9916-0242ac11003c/ 2/6 Justificativa: Resposta correta: O processo de inserção de elementos na pilha é denominado, tecnicamente, de push, e o processo de remoção de elementos da pilha é denominado, tecnicamente, pop.Push e pop são termos técnicos usados na estrutura de dados pilha e referem-se aos processos de empilhamento e desempilhamento, respectivamente. Distratores:Na pilha, o primeiro elemento a entrar sempre será o último elemento a removido, caracterizando o que tecnicamente chamamos de FIFO. Errada, pois a técnica seria LIFO.A técnica utilizada na estrutura de dados pilha afirma que o primeiro elemento a entrar será o primeiro elemento a sair. Errada, pois FIFO refere-se à estrutura de dados fila.Os elementos de uma pilha são ligados por uma linha denominada aresta. Errada, pois as arestas são linhas que ligam os vértices da estrutura de dados árvore.Na estrutura de dados pilha, tanto a inserção como a remoção de elementos ocorrem pela base da pilha. Errada, pois a inserção e a remoção de elementos sempre ocorrem no topo da pilha, e não em sua base. 3 Código: 35701 - Enunciado: Existem diversas formas de representar graficamente a estrutura de dados árvore que, na verdade, é uma estrutura de dados que apresenta em sua composição dois elementos básicos, os vértices e as arestas.Nesse contexto, analise a representação gráfica a seguir e indique o tipo correspondente. a) Representação hierárquica. b) Representação por vetor de dados. c) Representação por indentação. d) Representação por inclusão. e) Representação por parênteses aninhados. Alternativa marcada: c) Representação por indentação. Justificativa: Resposta correta: Representação por indentação. Não apresenta a estrutura na forma de estrutura indentada. Distratores: Representação hierárquica. Errada, pois não apresenta a estrutura em forma de árvore.Representação por vetor de dados. Errada, pois a árvore é apresentada de forma vetorizada.Representação por parênteses aninhados. Errada, pois não apresenta a estrutura na forma de pareamento.Representação por inclusão. Errada, pois a estrutura não está na forma de diagrama de Venn. 1,00/ 1,00 4 Código: 35791 - Enunciado: O trecho de código de programa em linguagem C descrito a seguir descreve operações com a estrutura de dados lista simplesmente encadeada. Nesse contexto, analise o código-fonte e marque a alternativa que corresponda à operação de inclusão de elementos no início da lista.void main( ) { setlocale(LC_ALL, "portuguese"); ListaSimplesEnc minhaLista; int valor, op, valorAlt; criarLista(&minhaLista); printf("Escolha uma opção:\n"); while (1) { printf("\n(1) Inserir elemento no início da Lista\n"); printf("(2) Inserir elemento em ordem (verifique se a lista está ordenada)\n"); printf("(3) Remover elemento no início da Lista\n"); printf("(4) Remover elemento específico da Lista\n"); printf("(5) Mostrar Lista\n"); printf("(6) Apagar todos os elementos da Lista\n"); printf("(7) Alterar elemento da Lista\n"); printf("(0) Sair\n"); printf(" ? "); scanf("%d", &op); system("cls"); switch (op) { case 1: // inserir elemento no inicio printf("Valor? "); scanf("%d", &valor); inserirIni(&minhaLista, valor); break; case 2: // inserir elemento ordenado printf("Valor? "); scanf("%d", &valor); inserirOrd(&minhaLista, valor); break; case 3: // remover o primeiro removerIni(&minhaLista); break; case 4: // remover determinado elemento printf("Valor? "); 1,50/ 1,50 08/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6080047/b7ffc5a0-200e-11e9-9916-0242ac11003c/ 3/6 scanf("%d", &valor); removerEle(&minhaLista, valor); break; case 5: // mostrar lista if (estaVazia(&minhaLista)) { printf("Lista vazia\n"); } else { mostrarLista(&minhaLista); } break; case 6: // apagar todos os elementos da Lista removerTudo(&minhaLista);break; case 7: // alterar um elemento printf("Valor a ser alterado? "); scanf("%d", &valor); printf("Novo valor? "); scanf("%d", &valorAlt); alterarEle(&minhaLista, valor, valorAlt); break; case 0: // abandonar o programa removerTudo(&minhaLista); exit(0); default: printf("Opção inexistente!\n"); } }} a) void atento(ListaSimplesEnc *pList) { Nodo *p; printf("Lista: "); for (p = pList->prim; p != NULL; p = p->prox) { printf("%d -> ", p->info); } printf("NULL\n");} b) int atento(ListaSimplesEnc *pList) {// Atento aos comentários: elemento incluído com sucesso return(pList->prim == NULL);} c) void atento(ListaSimplesEnc *pList, int v) { Nodo *novo; novo = (Nodo*)malloc(sizeof(Nodo)); if (novo != NULL) { novo->info = v; novo->prox = pList->prim; pList->prim = novo; } else { printf("Memória Insuficiente\n"); }} d) void atento(ListaSimplesEnc *pList, int v1, int v2) { Nodo *pAtu, *pAnt; pAnt = NULL; pAtu = pList->prim; while (pAtu != NULL && pAtu->info != v1) { pAnt = pAtu; pAtu = pAtu->prox; } if (pAnt != NULL) { if (pAtu != NULL) { pAtu->info = v2; } else { printf("Valor não encontrado\n"); } } else { printf("Lista Vazia\n"); }} e) void atento(ListaSimplesEnc *pList) { Nodo *pAux = pList->prim; if (pAux != NULL) { pList->prim = pList->prim->prox; free(pAux); } else { printf("Lista Vazia\n"); }} Alternativa marcada: c) void atento(ListaSimplesEnc *pList, int v) { Nodo *novo; novo = (Nodo*)malloc(sizeof(Nodo)); if (novo != NULL) { novo->info = v; novo->prox = pList->prim; pList->prim = novo; } else { printf("Memória Insuficiente\n"); }} Justificativa: Resposta correta: void atento(ListaSimplesEnc *pList, int v) { Nodo *novo; novo = (Nodo*)malloc(sizeof(Nodo)); if (novo != NULL) { novo->info = v; novo->prox = pList->prim; pList->prim = novo; } else { printf("Memória Insuficiente\n"); }}Correta, pois refere-se à operação de inclusão de elementos em uma lista simplesmente encadeada. Distratores: void atento(ListaSimplesEnc *pList) { Nodo *pAux = pList->prim; if (pAux != NULL) { pList->prim = pList->prim->prox; free(pAux); } else { printf("Lista Vazia\n"); }}Errada, pois refere-se à rotina de remoção de elementos de uma lista simplesmente encadeada void atento(ListaSimplesEnc *pList) { Nodo *p; printf("Lista: "); for (p = pList->prim; p != NULL; p = p->prox) { printf("%d -> ", p->info); } printf("NULL\n");}Errada, pois refere-se à rotina de consulta de elementos de um a lista simplesmente encadeada void atento(ListaSimplesEnc *pList, int v1, int v2) { Nodo *pAtu, *pAnt; pAnt = NULL; pAtu = pList->prim; while (pAtu != NULL && pAtu->info != v1) { pAnt = pAtu; pAtu = pAtu->prox; } if (pAnt != NULL) { if (pAtu != NULL) { pAtu->info = v2; } else { printf("Valor não encontrado\n"); } } else { printf("Lista Vazia\n"); }}Errada, pois refere-se à rotina de alteração de elementos de uma lista simplesmente encadeada. 08/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6080047/b7ffc5a0-200e-11e9-9916-0242ac11003c/ 4/6 int atento(ListaSimplesEnc *pList) {// Atento aos comentários: elemento incluído com sucesso return(pList->prim == NULL);}Errada, pois refere-se à rotina de teste para lista vazia, apenas. 5 Código: 35782 - Enunciado: No estudo da estrutura de dados árvore, uma operação comum é percorrer uma árvore binária, ou seja, percorrer a árvore enumerando cada um de seus nós uma vez. Podemos simplesmente querer imprimir o conteúdo de cada nó ao enumerá-lo, ou podemos processá-lo de alguma maneira. Seja qual for o caso, falamos em visitar cada nó à medida que ele é enumerado. Evidentemente, a ordem na qual os nós de uma lista linear são visitados em um percurso é do primeiro para o último. Entretanto, não existe uma ordem "natural" para os nós de uma árvore. Sendo assim, são usados diferentes ordenamentos de percurso em diferentes casos. São definidos três desses métodos de percurso. Em cada um desses métodos, não é preciso fazer nada para percorrer uma árvore binária vazia. Todos os métodos são definidos recursivamente, de modo que percorrer uma árvore binária envolve visitar a raiz e percorrer suas subárvores esquerda e direita. A única diferença entre os métodos é a ordem na qual essas três operações são efetuadas, pré-ordem, em ordem e pós-ordem.(Tanenbaum, A. A.; Langsam, Y.; Augenstein, M. J. Estruturas de Dados Usando C. São Paulo: Makron Books, 1995.) Com base no texto apresentado, analise os elementos da tabela a seguir de forma a interpretá-los, identificando, por meio do percurso de pré-ordem, a ordem de visita de cada elemento. ( a) 45, 23, 69, 22, 36, 58, 97, 18, 52, 88, 99, 76. b) 18, 22, 23, 36, 45, 52, 58, 69, 76, 88, 97, 99. c) 18, 22, 36, 23, 52, 58, 76, 88, 99, 97, 69, 45. d) 23, 22, 36, 18, 69, 58, 52, 97, 88, 99, 76, 45. e) 45, 23, 22, 18, 36, 69, 58, 52, 97, 88, 76, 99. Alternativa marcada: e) 45, 23, 22, 18, 36, 69, 58, 52, 97, 88, 76, 99. Justificativa: Resposta correta: 45, 23, 22, 18, 36, 69, 58, 52, 97, 88, 76, 99.Refere-se à saída do percurso pré-ordem (RED). Distratores:45, 23, 69, 22, 36, 58, 97, 18, 52, 88, 99, 76. Errada, pois se refere à saída do percurso para busca em largura (DFS).18, 22, 23, 36, 45, 52, 58, 69, 76, 88, 97, 99. Errada, pois se refere à saída do percurso em ordem (ERD).23, 22, 36, 18, 69, 58, 52, 97, 88, 99, 76, 45. Errada, pois existe erro no processamento de saída, ao ser feita uma leitura na tentativa de um dos métodos aplicados (possivelmente o aluno confundiu o primeiro valor da esquerda com 23).18, 22, 36, 23, 52, 58, 76, 88, 99, 97, 69, 45. Errada, pois se refere à saída do percurso pós-ordem (EDR). 1,50/ 1,50 6 Código: 35694 - Enunciado: No que tange ao estudodas estruturas de dados, segundo Forbellone e Eberspacher (2005), a partir dos tipos de dados primitivos, serão compostos os tipos de dados construídos, ora denominados estrutura de dados. Cada estrutura de dados tem um tipo peculiar de organização e forma de manipulação dos dados, o que teoricamente constituirá certa estrutura de dados especificamente.(FORBELLONE, A. L. V.; EBERSPACHER, H. F. Lógica de Programação: a construção de algoritmos e estruturas de dados. 3. ed. São Paulo: Pearson Prentice Hall, 2005.) Indique o tipo de estrutura de dados representada pela figura exposta a seguir: a) Fila. b) Matriz. c) Ponteiro. d) Pilha. e) Lista. 1,00/ 1,00 08/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6080047/b7ffc5a0-200e-11e9-9916-0242ac11003c/ 5/6 Alternativa marcada: c) Ponteiro. Justificativa: Resposta correta: Ponteiro.O conteúdo do endereço 188 refere-se ao endereço de memória 113, característica prima de ponteiros ou apontadores. Distratores:Pilha. Errada, pois não mostra, em sua estrutura, base e topo, por onde são feitos os empilhamentos e desempilhamentos.Fila. Errada, pois não apresenta uma estrutura sequencial de entrada de dados que expresse o método FIFO.Matriz. Errada, pois a estrutura apresenta apenas uma dimensão de dados.Lista. Errada, pois não apresenta uma estrutura linear. 7 Código: 35790 - Enunciado: "De acordo com Mizrahi (2008), uma matriz nada mais é que uma coleção de variáveis do mesmo tipo que compartilham o mesmo nome, caracterizando uma estrutura multidimensional." (Fonte: MIZRAHI, V. V. Treinamento em linguagem C. 2. ed. São Paulo: Pearson Education do Brasil, 2008). Neste viés, analise o código de programa abaixo, e marque a alternativa correta acerca da saída produzida pelo programa, considerando, como dados de entrada: 3, 6, 4, 2, 7, 5, 4, 8, 9. #include <stdio.h>void main ( ){ int mat [3][3], i, j;// Entrada de Dadosrealiza_entrada;// Saída de Informaçõesfor ( i=1; i<3; i++ ) for ( j=1; j<3; j++ ) if ((i == j) && (mat[ i ][ j ] % 2) == 0 ) printf (“\n%d”, mat[ i ][ j ]);} a) 4, 5, 9. b) 4, 8. c) 4, 4. d) 3, 2, 4. e) 6, 7, 8. Alternativa marcada: a) 4, 5, 9. Justificativa: Resposta correta: 4, 4.Imprime os números pares que estejam na diagonal principal.Veja: Todos os demais resultados estarão errados, conforme demonstrado na figura. 1,50/ 1,50 8 Código: 35785 - Enunciado: Tomando como base a tabela abaixo, analise seus elementos de forma a interpretá-los, buscando identificar sua ordem de visita, a partir do percurso de busca em largura. Em seguida, marque a alternativa correta em relação à leitura realizada. a) 23, 22, 36, 18, 69, 58, 52, 97, 88, 99, 76, 45. b) 45, 23, 22, 18, 36, 69, 58, 52, 97, 88, 76, 99. c) 45, 23, 69, 22, 36, 58, 97, 18, 52, 88, 99, 76. d) 18, 22, 36, 23, 52, 58, 76, 88, 99, 97, 69, 45. e) 18, 22, 23, 36, 45, 52, 58, 69, 76, 88, 97, 99. Alternativa marcada: c) 45, 23, 69, 22, 36, 58, 97, 18, 52, 88, 99, 76. 1,50/ 1,50 08/04/2021 Ilumno ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandidatedetailprint/6080047/b7ffc5a0-200e-11e9-9916-0242ac11003c/ 6/6 Justificativa: Resposta correta: 45, 23, 69, 22, 36, 58, 97, 18, 52, 88, 99, 76. Saída do percurso para busca em largura (DFS)// Algoritmo Busca em Larguravoid Largura(Arvbin p) { inicializa_fila(); ins_fila(p); while (!fila_vazia()) { p = rem_fila(); if (p) { Visite(p); ins_fila(p->esq); ins_fila(p->dir); } } finaliza_fila(); } Distratores: 45, 23, 22, 18, 36, 69, 58, 52, 97, 88, 76, 99. Errada. Saída do percurso pré-ordem (RED).// Algoritmo Pré-Ordemvoid PreOrdem(Arvbin p) { if (p) { Visite(p); PreOrdem(p->esq); PreOrdem(p->dir); } } 18, 22, 23, 36, 45, 52, 58, 69, 76, 88, 97, 99. Errada. Saída do percurso em ordem (ERD).// Algoritmo Em Ordemvoid EmOrdem(Arvbin p) { if (p) { EmOrdem(p->esq); Visite(p); EmOrdem(p->dir); } } 23, 22, 36, 18, 69, 58, 52, 97, 88, 99, 76, 45. Errada, pois há erro no processamento de saída, uma vez que não referencia nenhum dos métodos válidos (confundiu-se o primeiro valor da esquerda com 23). 18, 22, 36, 23, 52, 58, 76, 88, 99, 97, 69, 45. Errada. Saída do percurso pós-ordem (EDR).// Algoritmo Pós-Ordemvoid PosOrdem(Arvbin p) { if (p) { PosOrdem(p->esq); PosOrdem(p->dir); Visite(p); } }