Buscar

Atividade Objetiva 4 A01

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 6 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 6 páginas

Prévia do material em texto

Atividade Objetiva 4 
 Entrega 21 set em 23:59 
 
 Pontos 1 
 
 Perguntas 5 
 
 Disponível depois 3 set em 0:00 
 
 Limite de tempo Nenhum 
 
 Tentativas permitidas 2 
Instruções 
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 
Histórico de tentativas 
 
Tentativa Tempo Pontuação 
MAIS RECENTE Tentativa 1 35 minutos 1 de 1 
Pontuação desta tentativa: 1 de 1 
Enviado 17 set em 15:55 
Esta tentativa levou 35 minutos. 
 
Pergunta 1 
0,2 / 0,2 pts 
Leia o texto a seguir: 
 
https://famonline.instructure.com/courses/9689/quizzes/29005/take?user_id=61379
https://famonline.instructure.com/courses/9689/quizzes/29005/history?version=1
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. 
 
26 bytes 
 
 
33 bytes. 
 
 
27 bytes. 
 
 
22 bytes. 
 
Correto! 
 
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). 
 
Pergunta 2 
0,2 / 0,2 pts 
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. 
 
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. 
 
 
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 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. 
 
Correto! 
 
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. 
 
É 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. 
 
 
Pergunta 3 
0,2 / 0,2 pts 
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 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, II e III. 
 
 
I, apenas. 
 
 
I e II, apenas. 
 
Correto! 
 
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 oelemento 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. 
 
Pergunta 4 
0,2 / 0,2 pts 
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: 
Correto! 
 
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. 
 
II e III, apenas. 
 
 
I e II, apenas. 
 
 
III, apenas. 
 
 
I, II e III. 
 
 
Pergunta 5 
0,2 / 0,2 pts 
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: 
 
A asserção I é uma proposição falsa, e a asserção II é uma proposição verdadeira. 
 
 
As asserções I e II são proposições verdadeiras, mas a asserção II não é uma justificativa da I. 
 
Correto! 
 
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ção de 
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 verdadeira, e a asserção II é uma proposição falsa. 
 
 
As asserções I e II são ambas proposições falsas.

Outros materiais