Buscar

Atividade 4_Bloco_2_Tecnicas_de_Programação_Resposta

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 8 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 8 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

Prévia do material em texto

 Suponha a existência de um arquivo onde a primeira posição indica a quantidade de registros armazenados. Após o indicativo da quantidade, o arquivo armazena valores na forma <int,float>. Desta forma, o arquivo consiste em: 
<qtd_registros><int1><float1><int2><float2>...<intn,floatn>.
Para essa questão, analise o código a seguir e preencha a lacuna de modo que o programa imprima os valores relativos ao terceiro par “<int><float>”.
#include <stdio.h>
 
int main()
{
FILE *arq;
int valor_int;
float valor_float;
arq=fopen("exercicio.dat","rb+");
if(arq==NULL)
{
printf("Erro de abertura do arquivo.\n");
return 0;
}
fseek(arq,_______________,SEEK_SET);
fread(&valor_int,sizeof(int),1,arq);
fread(&valor_float,sizeof(float),1,arq);
printf("Terceiro registro: int=%d float=%f\n",valor_int,valor_float);
fclose(arq);
return 0;
}
Assinale a alternativa que você julgue ser a correta.
		Resposta Selecionada: 
	
( sizeof(int)+sizeof(float))*2+sizeof(int). 
	Resposta Correta: 
	
(sizeof(int)+sizeof(float))*2+sizeof(int). 
	Feedback da resposta: 
	Parabéns! Sua resposta foi a correta! Você analisou corretamente o fato de que o terceiro registro corresponde ao deslocamento multiplicado por dois, pelo fato de que a numeração do registro se inicia em zero. Além do “ (sizeof(int)+sizeof(float))*2”, deve-se adicionar o deslocamento relativo ao valor da quantidade de registros, localizado no início do arquivo. 
 Pergunta 2 
1 em 1 pontos
	
	
	
	Suponha a existência de um arquivo textual onde as palavras são separadas pelo caractere “$” e pelo caractere “%”. Suponha também, que há a necessidade de se implementar um programa para imprimir, na tela, o conteúdo do referido arquivo de modo que, ao encontrar o caractere “$” imprime-se um espaço em branco e, ao encontrar o “%” pula-se para a linha seguinte da tela. 
Para essa questão, analise o código a seguir e preencha as lacunas. 
#include <stdio.h> 
  
int main() 
{ 
FILE *arq; 
char carac; 
arq=fopen("texto.txt","___"); 
if(arq==NULL) 
{ 
printf("Erro de abertura do arquivo.\n"); 
return 0; 
} 
while(1) 
{ 
carac = ____(arq); 
if(___) 
break; 
switch(carac) 
{ 
case '$': 
carac = ' '; 
break; 
case '%': 
carac = '\n'; 
break; 
} 
printf("%c",carac); 
} 
fclose(arq); 
return 0; 
} 
Assinale a alternativa que você julgue ser a correta. 
	
	
	
	
		Resposta Selecionada: 
	
. r ; getc ; carac == EOF. 
	Resposta Correta: 
	
. r ; getc ; carac == EOF. 
	Feedback da resposta: 
	Parabéns! Sua resposta foi a correta! Você associou acertadamente o modo de abertura de arquivo textual para somente leitura (parâmetro “r”), usou a função correta para ler um caractere do arquivo textual (“ getc()”) e testou corretamente o fim do arquivo (“ carac == EOF”). 
	
	
	
 Pergunta 3 
1 em 1 pontos
	
	
	
	Para essa questão, suponha que um certo arquivo mantém, em sua primeira posição, a quantidade de registros armazenados. Após o indicativo da quantidade, são gravados os valores na forma <int,float>. Desta forma, o arquivo consiste em: 
<qtd_registros><int1><float1><int2><float2>...<intn,floatn>.
Para essa questão, analise o código a seguir e preencha as lacunas de modo a representar o processo de criação de um arquivo novo e gravação de três registros.
#include <stdio.h>
 
void GravaArq(FILE *arq, int val_i,float val_f)
{
fwrite(&val_i,sizeof(____),1,arq);
fwrite(&val_f,sizeof(____),1,arq); 
}
 
 
int main()
{
FILE *arq;
int qtd=3;
arq=fopen("exercicio.dat","___");
if(arq==NULL)
{
printf("Erro de abertura do arquivo (1).\n");
return 0;
}
fwrite(&qtd,sizeof(int),1,arq);
GravaArq(arq,0,2.1);
GravaArq(arq,10,45.21);
GravaArq(arq,20,345.87);
fclose(arq);
return 0;
}
Assinale a alternativa que você julgue ser a correta.
	
	
	
	
		Resposta Selecionada: 
	
. int ; float ; wb . 
	Resposta Correta: 
	
. int ; float ; wb . 
	Feedback da resposta: 
	Parabéns! Sua resposta foi a correta! Realmente, para realizar somente operações em um arquivo binário, deve-se usar o modo “ wb”. O processo de gravação ocorre mediante a utilização de “ fwrite()” onde o tamanho do item gravado deve acompanhar o tipo. No caso, foi utilizada a função “ sizeof()” vinculado ao tipo passado como parâmetro para a gravação. 
	
	
	
 Pergunta 4 
1 em 1 pontos
	
	
	
	Arquivos textuais são aqueles cujo conteúdo é formado somente por strings e podem ser abertos por editores de texto do tipo “bloco de notas”. Para essa questão, analise o código a seguir: 
#include <stdio.h> 
  
int main() 
{ 
FILE *arq; 
long pos,i; 
char carac; 
arq = fopen("conteudo.txt","r"); 
if(arq==NULL) 
{ 
printf("Erro de aberura do arquivo."); 
return 0; 
} 
fseek(arq,0,SEEK_END); 
pos=ftell(arq); 
printf("Pos = %ld\n",pos); 
for(i=pos-1; i>=0; i--) 
{ 
fseek(arq,i,SEEK_SET); 
carac = fgetc(arq); 
printf("%c",carac); 
} 
return 0; 
} 
Assinale a alternativa que você julgue ser a correta. 
	
	
	
	
		Resposta Selecionada: 
	
O programa faz a impressão do arquivo em ordem inversa. O trecho com as linhas “ fseek(arq,0,SEEK_END);” e “ pos=ftell(arq);” servem para coletar o tamanho do arquivo. 
	Resposta Correta: 
	
O programa faz a impressão do arquivo em ordem inversa. O trecho com as linhas “fseek(arq,0,SEEK_END);” e “pos=ftell(arq);” servem para coletar o tamanho do arquivo. 
	Feedback da resposta: 
	Parabéns! Sua resposta foi a correta! Realmente o programa exibe o conteúdo do arquivo em ordem reversa. Para posicionar em cada caractere do arquivo, foi realizado um laço de repetição iniciando-se no penúltimo elemento visto que o último corresponde, justamente, ao EOF. 
	
	
	
 Pergunta 5 
1 em 1 pontos
	
	
	
	Uma das vantagens de um arquivo binário consiste na possibilidade do uso direto de registros (estruturas de dados). Sendo assim, pode-se gravar ou recuperar, com apenas uma operação, todos os dados inseridos em tal estrutura de dados. Para essa questão, analise o trecho de código a seguir e preencha as lacunas. 
TSTRUCT ts; 
. . . 
arq=fopen("registros.dat","rb+"); 
if(arq==NULL) 
{ 
printf("Erro de abertura do arquivo.\n"); 
return 0; 
} 
________; //posicionar no início do arquivo 
printf("Item a ser localizado: "); 
scanf("%d",&item); 
while(1) 
{ 
________; //ler a estrutura 
if(________) //testar se foi encontrado o final de arquivo 
break; 
if(ts.item==item) 
{ 
//manipulação do registro encontrado... 
Assinale a alternativa que você julgue conter a sequência correta do preenchimento das lacunas. 
	
	
	
	
		Resposta Selecionada: 
	
rewind(arq) ; fread(&ts,sizeof(TSTRUCT),1,arq) ; feof(arq) . 
	Resposta Correta: 
	
rewind(arq) ; fread(&ts,sizeof(TSTRUCT),1,arq) ; feof(arq) . 
	Feedback da resposta: 
	Parabéns! Sua resposta foi a correta! Você associou corretamente as lacunas com as respectivas funções. Para o posicionamento no início do arquivo, poderia ser usada, também, a função “ fseek(arq,0,SEEK_SET)”. Devido ao fato de ser um arquivo binário, a leitura deve ser “ fread()” e o teste de final de arquivo, independentemente do modo textual ou binário, é feito pela função “ feof()”. 
	
	
	
 Pergunta 6 
1 em 1 pontos
	
	
	
	Ao manipularmos arquivos, alguns cuidados ou estilos devem ser tomados para garantir ao programa um maior grau de eficiência e segurança. Dentre as afirmativas a seguir, identifique V para verdadeiro e F para falso. 
( ) arquivos binários tendem a demandar menos espaço em relação aos arquivos texto devido ao fato de que os espaços alocados fisicamente são proporcionados pelos tamanhos dos tipos de dados utilizados; 
( ) em toda operação envolvendo arquivos, é sempre conveniente testar se a operação, por exemplo, abertura, escrita e leitura, foram bem sucedidas; 
( ) é mais conveniente abrir um arquivo sempre para leitura e escrita para evitar testes de acesso pelo sistema operacional, tornando, portanto, o programa mais eficiente; 
( ) é conveniente abrir o arquivo com o modo justo para a demanda, ou seja, caso for realizada apenas leitura de informações, abrir o arquivo somente para leitura. Dessa forma, o programa torna-se mais seguro em relação ao acesso às informações.Assinale a alternativa que tenha a sequência correta. 
	
	
	
	
		Resposta Selecionada: 
	
V, V, F, V. 
	Resposta Correta: 
	
V, V, F, V. 
	Feedback da resposta: 
	Parabéns! Sua resposta foi a correta! Realmente, uma das vantagens dos arquivos binários sobre os arquivos de texto é em relação ao espaço ocupado. Enquanto que, por exemplo, o valor inteiro 345789 ocupa seis bytes nos arquivos textuais, nos arquivos binários são utilizados apenas quatro bytes. Como um arquivo pode apresentar problemas, por exemplo, nos próprios dispositivos de I/O (Input/Output – Entrada/Saída), é conveniente testar se a operação foi bem-sucedida. Por fim, é também conveniente abrir o arquivo com o modo adequado à operação para tornar o programa mais seguro em relação ao acesso e manutenção das informações. Uma informação sobre eficiência que merece destaque é que deve-se evitar o uso das funções “ fprintf()” e “ fscanf()” devido ao fato de que elas realizam formatações dos valores manipulados aumentando-se, portanto, o tempo de processamento. Para maior eficiência, deve-se utilizar as funções “ fwrite()” e “ fread()”. 
	
	
	
 Pergunta 7 
1 em 1 pontos
	
	
	
	Para a manipulação de um arquivo, deve-se antes, realizar a sua abertura através do comando “ fopen()”. Tal comando permite associar o nome físico do arquivo assim como a sua forma de abertura. Para essa questão, analise as linhas de código a seguir: 
FILE *arq; 
arq = fopen(“arquivo.dat”,”wb+”); 
Assinale a alternativa que você julgue ser a correta. 
	
	
	
	
		Resposta Selecionada: 
	
Será aberto um arquivo binário “ arquivo.dat” permitindo-se operações de leitura e de escrita. Sempre será criado um arquivo novo, destruindo o conteúdo caso já exista um arquivo com o mesmo nome. 
	Resposta Correta: 
	
Será aberto um arquivo binário “arquivo.dat” permitindo-se operações de leitura e de escrita. Sempre será criado um arquivo novo, destruindo o conteúdo caso já exista um arquivo com o mesmo nome. 
	Feedback da resposta: 
	Parabéns! Sua resposta foi a correta! Você observou bem que foi incluído o símbolo ”+”, que indica que operações de escrita poderão ser realizadas além das operações de escrita do símbolo “w”. O “w” indica ainda, que sempre será criado um arquivo novo, destruindo o conteúdo do arquivo caso já exista. Além destas informações, encontramos o símbolo “b” denotando que o arquivo a ser aberto será do tipo binário. 
	
	
	
 Pergunta 8 
1 em 1 pontos
	
	
	
	Linguagens estruturadas permitem que informações sejam armazenadas e recuperadas de memórias não voláteis. Porém, elas são dependentes de funções e estruturas exportadas pelo sistema operacional. Dadas as afirmativas a seguir, classifique-as V para verdadeiro e F para falso. 
( ) Ponteiros de arquivos (“ FILE *”) devem ser alocados dinamicamente através do uso “ malloc()” antes de serem utilizados. 
( ) Ponteiros de arquivos referenciam uma posição de memória mantida pelo sistema operacional que armazena atributos e status dos arquivos manipulados. 
( ) Para a manipulação da posição corrente do arquivo podemos usar as funções “ ftell()” e “ fseek()” que devolvem e setam a posição corrente do arquivo, respectivamente. 
( ) A função “fread ()” retorna EOF quando chegar ao final do arquivo. 
Assinale a alternativa que você julgue ter a sequência correta. 
	
	
	
	
		Resposta Selecionada: 
	
F, V, V, F. 
	Resposta Correta: 
	
F, V, V, F. 
	Feedback da resposta: 
	Parabéns! Sua resposta foi a correta! Descritores de arquivos são estruturas mantidas pelo sistema operacional e são endereçados através dos ponteiros de arquivos, que são instanciados pelo uso da função “fopen ()”. A função “fread ()” retorna a quantidade de itens lidos. 
	
	
	
 Pergunta 9 
1 em 1 pontos
	
	
	
	Na linguagem de programação C, podemos encontrar dois tipos básicos de arquivos: os arquivos binários e os arquivos texto. A forma de diferenciação, em relação à manipulação, consiste no uso de formas de abertura e funções específicas. Para essa questão, assinale, nas afirmativas abaixo, com (B) caso relacione-se aos arquivos binários e, com (T) caso relacione-se aos arquivos textuais. 
( ) Para manipular o arquivo, usa-se as funções “ fread()” e “ fwrite()”. 
( ) É totalmente legível caso seja aberto em editores de texto do tipo “bloco de notas”. 
( ) Por exemplo, uma informação numérica, ocupa neste tipo de arquivo, uma quantidade de bytes compatível com a quantidade de dígitos de seu valor. 
( ) Neste tipo de arquivo, tende-se a gastar menos espaço de armazenamento pois cada variável gasta exatamente o seu tamanho ocupado na memória principal; valor do retorno da função “ sizeof()”. 
Assinale a alternativa que apresente a sequência correta. 
	
	
	
	
		Resposta Selecionada: 
	
B, T, T, B. 
	Resposta Correta: 
	
B, T, T, B. 
	Feedback da resposta: 
	Parabéns! Sua resposta foi a correta! Realmente, os arquivos binários possuem como vantagens a sua maior eficiência no armazenamento e manipulação das informações armazenadas pois fazem uma correspondência exata com os tipos de dados manipulados pelos próprios programas. 
	
	
	
 Pergunta 10 
1 em 1 pontos
	
	
	
	O armazenamento de informações em uma memória não volátil pode ser feito pelo uso de arquivos. Para tanto, um arquivo deverá ter suas ações realizadas através da manipulação de um descritor de arquivo. Dados os comandos abaixo, enumere-os, utilizando números de um a cinco, de acordo com a ordem que eles deverão aparecer na codificação.
( ) fwrite(buffer,sizeof(buffer),1,arq); 
( ) arq = fopen(“arquivo.dat”,”rb+”); 
( ) if(arq=NULL) 
return; 
( ) fclose(arq); 
( ) FILE *arq; 
Assinale a alternativa que você julgue ter a sequência de uso correta. 
	
	
	
	
		Resposta Selecionada: 
	
4, 2, 3, 5, 1. 
	Resposta Correta: 
	
4, 2, 3, 5, 1. 
	Feedback da resposta: 
	Parabéns! Sua resposta foi a correta! É realmente esta a sequência! Apenas podemos realizar, por exemplo, operações de escrita se o arquivo estiver devidamente aberto. Para abrir, devemos usar a função “ fopen()” sobre um ponteiro de arquivo “ FILE *”. Depois da função “ fopen()”, é conveniente testar se a abertura foi bem sucedida. Após o uso, o arquivo deverá ser fechado com “ fclose()”.

Outros materiais