Prévia do material em texto
AV – ALGORITMOS E COMPLEXIDADE 1- Analise as seguintes afirmativas sobre os métodos de ordenação: I. Quick sort divide um conjunto de itens em conjuntos menores, que são ordenados de forma independente, e depois os resultados são combinados para produzir a solução de ordenação do conjunto maior. II. Seleção é um método que consiste em selecionar o menor item de um vetor e substituí-lo pelo item que estiver na primeira posição. Essas duas operações são repetidas com os itens restantes até o último elemento. III. Shell sort é uma extensão do algoritmo de ordenação por inserção, contornando o problema que ocorre quando o menor item de um vetor está na posição mais à direita. Assinale a alternativa correta: R: As afirmativas I, II e III estão certas. 2- O algoritmo de ordenação mais eficiente para um conjunto grande de elementos randomicamente inseridos é: R: Quick sort. 3- Árvore de pesquisa é uma estrutura de dados eficiente para armazenar informação, sendo particularmente adequada quando existe a necessidade de considerar todos ou alguma combinação de registros. Assinale uma combinação correta desses registros. R: Acesso direto e sequencial eficientes, facilidade de inserção e retirada de registro, boa taxa de utilização de memória, utilização de memória primária e secundária. 4- Uma das medidas de qualidade do código de um software é a Complexidade, que pode ser medida por meio da complexidade ciclomática. Considere um grafo de fluxo que possui 5 nós e 12 arcos. Qual a complexidade ciclomática desse grafo? R: 9 5- Para que um sistema seja testado adequadamente, é preciso realizar uma quantidade mínima de testes. Para apoiar essa definição, foi criada a Complexidade Ciclomática de McCabe, com fundamentação na teoria dos grafos. Essa técnica define uma métrica de software que fornece uma medida quantitativa da complexidade lógica de um programa, apresentando um limite superior para a quantidade de casos de testes de software que devem ser conduzidos. A Complexidade Ciclomática pode ser calculada tanto pelo número de regiões quanto pelo número de arestas e nós. Complexidade é calculada pela fórmula CC = arestas - nós + 2 Com base no grafo de fluxo anterior, correspondente a um trecho de código a ser testado, a quantidade mínima de testes que devem ser realizados para garantir que cada caminho do código tenha sido percorrido em ao menos um teste é: R: 4 (quatro) 6- Classifique cada uma das seguintes afirmações em "V" (se verdadeira) ou "F" (se falsa) e escolha a alternativa que corresponde à sequência correta de indicações. I- Um registro reúne uma coleção de informações, facilitando a sua organização e o seu uso. II- Cada informação distinta de um registro é considerada um atributo ou campo. III- O atributo pode ser definido como qualquer tipo de dado que a linguagem utiliza ou como outra estrutura de dados: vetor, matriz ou mesmo outro registro. R: V, V, V 7- No algoritmo abaixo, os parâmetros da função valor são recebidos e são impressos na própria função. Assim sendo, o valor da variável u exibido na última linha da função é: Algoritmo questao_prova; var x,y: inteiro; inicio xo conceito de função recursiva. algoritmo "MDA" var X, W, N : inteiro funcao FF(Y:inteiro):inteiro inicio N