Buscar

Atividade Objetiva 3_ Algoritmos e Lógica de Programação1,5 (1)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 9 páginas

Prévia do material em texto

Atividade Objetiva 3
Entrega 19 dez em 23:59 Pontos 1,5 Perguntas 5
Disponível 2 dez em 0:00 - 19 dez em 23:59 18 dias Limite de tempo Nenhum
Tentativas permitidas 2
Instruções
Histórico de tentativas
Tentativa Tempo Pontuação
MAIS RECENTE Tentativa 1 13 minutos 1,5 de 1,5
 As respostas corretas estarão disponíveis em 20 dez em 0:00.
Pontuação desta tentativa: 1,5 de 1,5
Enviado 12 dez em 18:13
Esta tentativa levou 13 minutos.
Importante:
Caso você esteja realizando a atividade através do aplicativo "Canvas Student", é necessário que você clique em
"FAZER O QUESTIONÁRIO", no final da página.
Fazer o teste novamente
0,3 / 0,3 ptsPergunta 1
Leia o texto a seguir:
A busca de uma determinada informação em banco de dados depende de um
identificador, chamada de chave. O identificador chave é um elemento de valor
único que serve para identificar um conjunto de dados. Por exemplo, o código de
registro do aluno, conhecido como RA, identifica um conjunto de dados de um
determinado aluno. Logo, se necessitarmos acessar alguma informação de um
aluno no banco de dados, basta que tenhamos seu número de RA e, com isso,
faremos a busca no banco de dados para recuperar o conjunto de dados do
aluno. 
Destacamos duas técnicas de busca em um conjunto de dados: a sequencial e a
binária. A busca binária consiste em fazer sucessivas divisões do conjunto de
https://famonline.instructure.com/courses/20116/quizzes/86712/history?version=1
https://famonline.instructure.com/courses/20116/quizzes/86712/take?user_id=50286
dados ao meio e verificar em qual metade a chave procurada pode estar. Essa
busca termina quando a chave é encontrada ou quando não há mais
possibilidade de divisão.
Considerando as informações apresentadas, avalie as afirmações a seguir:
I. A utilização da técnica da pesquisa sequencial e a técnica da pesquisa binária
são equivalentes, em termos de performance, pois ambas fazem a mesma
quantidade de comparação no pior caso.
II. O método de busca binária é muito eficiente, independentemente se estes
dados estiverem ordenados ou não, pois a técnica de divisões sucessivas é o
ponto mais importante.
III. Utilizando-se a técnica da busca, para encontrar informações em um conjunto
de dados, no caso em que estes estejam desordenados, requer que façamos
uma pesquisa sequencial, começando do primeiro elemento. Por outro lado, a
busca pode ficar mais eficiente, se estes dados estiverem ordenados. Podemos
então utilizar a técnica da busca binária.
É correto o que se afirma em:
 II e III, apenas. 
 I, apenas. 
 III, apenas. 
Alternativa A
Alternativa está correta. A afirmativa I está incorreta, pois a técnica da
pesquisa sequencial e pesquisa binária não é equivalente em termos de
performance. No pior caso, para a busca em um conjunto com n elementos,
a pesquisa sequencial necessita fazer n verificações, ao passo que a
pesquisa binária faz somente . A afirmativa II está incorreta, pois o método
de busca binária é aplicado apenas se os de conjunto de dados estiverem
ordenados. A afirmativa III está correta, pois a técnica de busca,
considerando-se um conjunto de dados desordenados, deve ser feita por
busca sequencial; partindo-se do primeiro, deve-se verificar cada elemento
na sequência. A busca termina quando o elemento for encontrado ou
quando for percorrido todo o conjunto. Nesse caso, não podemos fazer com
a busca binária porque se utiliza a técnica de sucessivas divisões em
metades. Depois, compara-se a chave de pesquisa com o elemento central.
Se a chave for maior do que o elemento central, significa que o elemento
procurado somente poderá estar do lado direito do elemento central,
portanto, o lado esquerdo será desprezado na busca. Essa técnica somente
funciona para dados ordenados.
 I e II, apenas. 
 I, II e III. 
0,3 / 0,3 ptsPergunta 2
Leia o texto a seguir:
Uma matriz unidimensional, também conhecida como vetor, é uma coleção de
variáveis do mesmo tipo. Para fazer referência a cada elemento dessa coleção,
utiliza-se o mesmo nome para todas. Em linguagem C, as matrizes devem ser
explicitamente declaradas e deve-se informar a quantidade de elementos que
compõem o conjunto. Para esse conjunto de elementos, será reservado um
espaço em memória, conforme o tipo de dado e a quantidade de elementos
declarados. Para fazer referência a um elemento específico da matriz, utilizamos
um índice, entre dois colchetes, que aponta a posição do elemento dentro do
conjunto.
Com base nas informações apresentadas, avalie as afirmações a seguir:
I. Em linguagem C, ao declarar uma matriz unidimensional com 10 elementos do
tipo int, o índice [1] refere-se ao segundo elemento da matriz unidimensional.
II. Para uma matriz unidimensional com 10 elementos do tipo int, declarada em
um programa C (compilado em um computador com processador de 32 bits),
será reservado um espaço de 50 bytes.
III. Em linguagem C, uma referência a uma matriz unidimensional com o índice [0]
causará um erro de compilação.
É correto o que se afirma em:
 I e II, apenas. 
 III, apenas. 
 II e III, apenas. 
 I, II e III. 
 I, apenas. 
Alternativa A
Alternativa está correta. A afirmativa I é verdadeira porque, em linguagem C,
o posicionamento do elemento dentro da matriz unidimensional é
referenciado por um índice. Esse posicionamento inicia-se em 0 (zeros),
logo, o elemento apontado pelo índice [0] refere-se ao primeiro elemento da
matriz unidimensional. O elemento apontado pelo índice [1] refere-se ao
segundo elemento, e assim sucessivamente. A afirmativa II é falsa, pois a
quantidade de bytes alocados para a matriz unidimensional com 10
elementos do tipo int, declarada em um programa C (compilado em um 
computador com processador de 32 bits), serão 40 bytes, obtido do
cálculo: Total em bytes = sizeof (tipo) * tamanho do vetor.
A afirmativa III é falsa. Em C, o índice [0] refere-se à localização do primeiro
elemento da matriz unidimensional, por ser um comando válido para o
compilador. Assim, a alternativa correta é I, apenas.
0,3 / 0,3 ptsPergunta 3
Leia o texto abaixo:
A melhor forma de resolução de problemas computacionais de resolução
complexa é dividi-lo em partes menores. Tecnicamente, na linguagem C, isso
pode ser resolvido com a utilização de função. Uma função são as partes de um
código que realizam alguma tarefa específica e que podem ser chamadas em
vários pontos do programa.
Um fator que proporciona a utilização da técnica de subdivisão de problemas
(dividir para conquistar) é o fato de as linguagens implementarem a passagem e
o recebimento de valores, para que as funções os manipulem. Nesse sentido, a
linguagem C proporciona uma estrutura e sintaxe para que a utilização de
funções seja um benefício para a programação. As funções na linguagem C
podem receber valores de todos os tipos de dados suportados pela linguagem,
inclusive estruturas de vetores e matrizes.
Considerando esse texto, avalie as seguintes asserções e a relação proposta
entre elas.
I. Uma função pode ser declarada sem lista de parâmetros, tendo assim uma lista
vazia. Mas na linguagem C, mesmo na situação de lista vazia, faz-se necessário
que sejam codificados a abertura e o fechamento de parênteses.
PORQUE
II. Na linguagem C, a sintaxe da definição de uma função é:
 especificador_de_tipo nome_da_função(lista de parâmetros)
 {
 corpo da função
 }
A esse respeito, assinale a opção correta:
 As asserções I e II são ambas proposições falsas. 
 
As asserções I e II são proposições verdadeiras, mas a asserção II não é uma
justificativa da I.
 
As asserções I e II são proposições verdadeiras, e a asserção II é uma
justificativa da I.
Alternativa A
Alternativa está correta. A asserção I é verdadeira porque, em linguagem C,
uma função pode, ou não, exigir a passagem de parâmetros. Isso depende
da finalidade da passagem e da estratégia de arquitetura que o
programador aplicou no programa. Portanto, a forma que a linguagem C
disponibiliza para essa situaçãode lista de parâmetros vazia é pura e
simplesmente a codificação da abertura e do fechamento de paracenteses.
A asserção II é verdadeira e justifica a asserção I, pois, mesmo com a lista
vazia, a sintaxe da linguagem exige a codificação dos parênteses.
 
A asserção I é uma proposição falsa, e a asserção II é uma proposição
verdadeira.
 
A asserção I é uma proposição verdadeira, e a asserção II é uma proposição
falsa.
0,3 / 0,3 ptsPergunta 4
Leia o texto a seguir:
Um programa de computador tem na sua essência a manipulação de dados em
memória. Para tal, as linguagens de programação necessitam classificar os
dados em tipos de dados, onde podemos encantar os tipos caractere, numérico
e booleanos. A linguagem C provê cinco tipos: char, int, float, double e void. Para
a manipulação de uma sequência de caracteres (tipo texto), é utilizado o tipo
string. A linguagem C não possui um tipo nativo para esse tipo de dado. Para tal,
devemos utilizar um vetor de caracteres, ao qual é acrescido um caractere nulo,
que indica o final da string.
Na linguagem C, qual é a quantidade de bytes a se reservar em memória para
um programa que declara um vetor com uma string que contenha “Este é
um exemplo de String”?
Importante: Desconsidere as aspas duplas, pois elas não fazem parte da String.
 22 bytes. 
 26 bytes 
 33 bytes. 
 28 bytes. 
Alternativa A
Alternativa está correta. Para contar a quantidade de caracteres, em bytes,
de uma cadeia de caracteres (string), devemos considerar também os
espaços em branco, que também ocupam espaço em memória. Outro ponto
a se considerar é o caractere nulo colocado ao final da string. Portanto, a
string ocupa 28 bytes em memória, compostos da seguinte forma: 5
caracteres em branco + 22 letras + 1 caractere para o valor nulo,
representado pelo 0 (zero).
 27 bytes. 
0,3 / 0,3 ptsPergunta 5
Leia o texto abaixo:
No universo da computação, existe uma tarefa que é muito importante pela
amplitude de sua utilização: a ordenação e pesquisa. Essas tarefas são
amplamente utilizadas em todos os gerenciadores de banco de dados.
A ordenação é o processo de arranjar um conjunto de informações semelhantes
em uma ordem crescente ou decrescente. Existem três métodos de ordenação:
por troca, por seleção e por inserção. A ordenação por troca envolve repetidas
comparações e, se necessário, a troca de dois elementos adjacentes. A
ordenação por seleção aplica a técnica de seleção do elemento de menor valor e
troca-o pelo primeiro elemento. A ordenação por inserção inicialmente ordena os
dois primeiros membros do vetor. Em seguida, o algoritmo insere o terceiro
membro de sua posição ordenada com relação aos dois primeiros membros.
Na implementação das técnicas de ordenação, podemos utilizar os paradigmas
de laço de repetição e a linguagem de programação C oferece comando de
controle de laço de repetição.
(Fonte: SCHILDT, H. C Completo e Total. São Paulo: Makron Books, 2006, p.
501).
Com base no texto acima, assinale a opção correta.
 
Não podemos utilizar o laço de repetição for (linguagem C) na técnica de
ordenação por troca porque o laço for não proporciona ponto de troca de
posição dos valores quando da comparação entre os valores das posições [k -
1] e [k].
 
Para o ordenador de uma matriz unidimensional, a única estrutura de repetição
(linguagem C) que atende à necessidade é o comando do-while. Isso ocorre
porque os outros comandos (for e while) não proporcionam formas de acesso a
cada posição do vetor a ser ordenado.
 
É totalmente inviável a utilização do comando while (linguagem C) para
ordenador de uma matriz unidimensional, pois, ao contrário da estrutura for, não
podemos utilizar a variável que controla o laço de repetição while para indexar a
todas as posições do vetor.
 
Para ordenar uma matriz unidimensional, podemos utilizar a estrutura de
decisão switch, com a qual podemos ter acesso a cada elemento da matriz com
a utilização de indexadores criados para essa finalidade.
 
Para ordenar uma matriz unidimensional, a estrutura de repetição for
(linguagem C) é fortemente recomendada porque a estrutura do comando
proporciona um controle automático do acesso a todas as posições do vetor.
Outro ponto positivo é que podemos utilizar a própria variável que controla o
laço for para indexar a todas as posições do vetor.
Alternativa A
Alternativa está correta, pois a estrutura de repetição for é uma boa
recomendação de uso para atender aos paradigmas de ordenação de uma
matriz unidimensional. Isso se justifica porque a ordenação de uma matriz
unidimensional se dá ao comparar seus elementos. Para ter acesso a esses
elementos, é necessário que eles sejam referenciados por indexadores. O
laço for possui um contador que varia de 0 (zero) a n. Para um vetor de n
posições, podemos utilizar esses contadores na indexação do vetor.
Portanto, a estrutura do comando proporciona um controle automático do
acesso a todas posições do vetor.
Pontuação do teste: 1,5 de 1,5

Continue navegando