Logo Passei Direto
Buscar

Tecnicas de programação unidade 4

User badge image
Bruno Lucas

em

Ferramentas de estudo

Questões resolvidas

Na linguagem C, encontramos dois tipos de arquivos: os arquivos textuais e os arquivos binários. Nos arquivos textuais, as informações são gravadas como strings, independentes de seu tipo; porém, para tal, devemos usar algumas funções específicas.
Para os comandos abaixo, assinale com (T) aquele(s) que serve(m) unicamente para arquivos textuais, com (B) para arquivos binários e, com (A) aquele(s) que serve(m) para ambos.
( ) fwrite()
( ) fputs()
( ) fputc()
( ) fread()
( ) fopen()

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()”.

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;

Para a manipulação de arquivos temos que, inicialmente, realizar a instanciação do ponteiro do arquivo por intermédio da operação de abertura. Para tanto, usa-se a função “ fopen()” passando como parâmetros o nome físico do arquivo e o modo de abertura.
Levando em conta as linhas de código acima, o fato de que o arquivo binário deve existir previamente e as suas informações deverão ser mantidas, selecione a opção que contém a forma de abertura adequada.

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Na linguagem C, encontramos dois tipos de arquivos: os arquivos textuais e os arquivos binários. Nos arquivos textuais, as informações são gravadas como strings, independentes de seu tipo; porém, para tal, devemos usar algumas funções específicas.
Para os comandos abaixo, assinale com (T) aquele(s) que serve(m) unicamente para arquivos textuais, com (B) para arquivos binários e, com (A) aquele(s) que serve(m) para ambos.
( ) fwrite()
( ) fputs()
( ) fputc()
( ) fread()
( ) fopen()

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()”.

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;

Para a manipulação de arquivos temos que, inicialmente, realizar a instanciação do ponteiro do arquivo por intermédio da operação de abertura. Para tanto, usa-se a função “ fopen()” passando como parâmetros o nome físico do arquivo e o modo de abertura.
Levando em conta as linhas de código acima, o fato de que o arquivo binário deve existir previamente e as suas informações deverão ser mantidas, selecione a opção que contém a forma de abertura adequada.

Prévia do material em texto

Resultados exibidos
	Respostas enviadas, Respostas corretas, Comentários
· Pergunta 1
1 em 1 pontos
	
	
	
	Suponha que existe, em um arquivo textual, uma matriz 4x4 que relaciona os custos de um certo produto A (linhas) combinado com um produto B (colunas) como ilustra o exemplo a seguir:
00 03 06 02
03 00 04 07
06 04 00 01
02 07 01 00
O produto não poderá ser combinado com ele mesmo. Por exemplo, combinando-se o produto dois com o produto três, teremos o valor 01. Cada valor de custo é representado, sempre, por dois caracteres e separados por um espaço em branco. Analise o código a seguir que imprima, na tela, o custo da combinação solicitada pelo usuário e preencha as lacunas.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char linha[30],custoStr[3];
int prodA,prodB,i=0;
FILE *arq;
arq=fopen("matrizcustos.txt","___");
if(arq==NULL)
{
printf("Erro de abertura de arquivo origem.");
return 0;
}
printf("Produto A (de 0 a 3):");
scanf("%d",&prodA);
printf("Produto B:(de 0 a 3): ");
scanf("%d",&prodB);
for(;i<=prodA;i++)
____(linha,30,arq);
printf("linha selecionada: %s\n",linha);
strncpy(custoStr,&linha[___],2);
custoStr[3]='\x0';
fclose(arq);
printf("Custo = %d",atoi(custoStr));
return 0;
}
Assinale a alternativa que você julgue ser a correta.
	
	
	
	
		Resposta Selecionada:
	 
. r ; fgets ; prodB*3 .
	Resposta Correta:
	 
. r ; fgets ; prodB*3 .
	Feedback da resposta:
	Parabéns! Sua resposta foi a correta! Você associou corretamente os trechos de código às lacunas observando de maneira certa o modo de abertura do arquivo (“ r”), a função de leitura de uma linha a partir de um arquivo textual (“ fgets()”) e o deslocamento dentro da linha (“ prodB*3”).
	
	
	
· Pergunta 2
0 em 1 pontos
	
	
	
	Na linguagem C, encontramos dois tipos de arquivos: os arquivos textuais e os arquivos binários. Nos arquivos textuais, as informações são gravadas como strings, independentes de seu tipo; porém, para tal, devemos usar algumas funções específicas. Para os comandos abaixo, assinale com (T) aquele(s) que serve(m) unicamente para arquivos textuais, com (B) para arquivos binários e, com (A) aquele(s) que serve(m) para ambos.
( ) fwrite()
( ) fputs()
( ) fputc()
( ) fread()
( ) fopen()
Assinale a alternativa cuja ordem você julgue ser correta.
	
	
	
	
		Resposta Selecionada:
	 
T, B, B, T, A.
	Resposta Correta:
	 
B, T, T, B, A.
	Feedback da resposta:
	Infelizmente a sua resposta está incorreta. Para responder essa questão, revise os objetivos de cada uma das funções mencionadas. Por exemplo, a função “ fputs()” remete a qual tipo de dado?
	
	
	
· Pergunta 3
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 4
0 em 1 pontos
	
	
	
	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))*3+sizeof(int).
	Resposta Correta:
	 
(sizeof(int)+sizeof(float))*2+sizeof(int).
	Feedback da resposta:
	Infelizmente a sua resposta está incorreta. Para responder essa questão, reflita melhor sobre quantos bytes deverão ser deslocados para se chegar ao terceiro registro sabendo-se que o primeiro registro vem logo em seguida do campo que corresponde à quantidade de registros no arquivo.
	
	
	
· Pergunta 5
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()”.
	
	
	
· Pergunta 6
0 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:
	 
. float ; int ; wb .
	Resposta Correta:
	 
. int ; float ; wb .
	Feedback da resposta:
	Infelizmente a sua resposta está incorreta. Para responder essa questão, reveja os modos de abertura de arquivo e, também, o protótipo da função “ fwrite()”. Como dimensionar a quantidade de bytes a serem gravados?
	
	
	
· Pergunta 7
0 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 listagem de todos os registros armazenados no arquivo.
#include <stdio.h>
 
int main()
{
FILE *arq;
int qtd,valor_int,i;
float valor_float;
arq=fopen("exercicio.dat","___");
if(arq==NULL)
{
printf("Erro de abertura do arquivo.\n");
return 0;
}
fread(&qtd,____,1,arq);
for(i=0; i<qtd;i++)
{
____(&valor_int,sizeof(int),1,arq);
____(&valor_float,sizeof(float),1,arq);
printf("[%d] int=%d float=%f\n",i,valor_int,valor_float);
}
fclose(arq);
return 0;
}
Assinale a alternativa que você julgue ser a correta.
	
	
	
	
		Resposta Selecionada:
	 
. rb ; sizeof(int) ; fgets ; fgets .
	Resposta Correta:
	 
. rb ; sizeof(int) ; fread ; fread .
	Feedback da resposta:
	Infelizmente a sua resposta está incorreta. Para responder essa questão, reveja os modos de abertura de arquivo. Reflita, também, qual a função para a leitura de registros de arquivos binários?
	
	
	
· Pergunta 8
1 em 1 pontos
	
	
	
	Para a manipulação de arquivos temos que, inicialmente, realizar a instanciação do ponteiro do arquivo por intermédio da operação de abertura. Para tanto, usa-se a função “ fopen()” passando como parâmetros o nome físico do arquivo e o modo de abertura. Para essa questão, suponha que o programa em questão, tenha em seu código, as seguintes linhas:
if(! fread (&item,sizeof(tipo_do_item),1,arq))
return -1;
...
if(! fwrite (&item,sizeof(tipo_do_item),1,arq))
return -2;
...
Levando em conta as linhas de código acima, o fato de que o arquivo binário deve existir previamente e as suas informações deverão ser mantidas, selecione a opção que contém a forma de abertura adequada.
	
	
	
	
		Resposta Selecionada:
	 
. arq=fopen("arq.dat","rb+"); .
	Resposta Correta:
	 
. arq=fopen("arq.dat","rb+"); .
	Feedback da resposta:
	Parabéns! Sua resposta foi a correta! O fato do código apresentar as funções “ fread()” e “ fwrite()” já determina que está sendo manipulado um arquivo binário. Como o arquivo deve existir previamente e serão realizadas operações de leitura e de escrita, o modo de abertura deverá ser, necessariamente “ rb+”.
	
	
	
· Pergunta 9
0 em 1 pontos
	
	
	
	Em algumas situações, temos a necessidade de conhecermos a quantidade de palavras em um arquivo textual. Para essa questão, analise o código a seguir e preencha as lacunas.
#include <stdio.h>
 
int ContPalavras(char linha[])
{
int cont=0,i=0,esp=0;
for(;linha[i]!='\x0';i++)
{
if((!esp) && (linha[i]!=' '))
{
esp=1;
cont++;
}
else
if(esp && (linha[i]==' '))
esp=0;
}
return cont;
}
int main()
{
FILE *arq;
char linha[40];
int cont=0;
arq=fopen("atividade.txt","___");
if(arq==NULL)
{
printf("Erro de abertura do arquivo.\n");
return 0;
}
while(1)
{
____(linha,40,arq);
cont+=ContPalavras(linha);
if(____)
break;
}
printf("Qtd de palavras = %d\n",cont);
fclose(arq);
return 0;
}
Assinale a alternativa que você julgue ser a correta.
	
	
	
	
		Resposta Selecionada:
	 
. r ; fgets ; fseek(arq) .
	Resposta Correta:
	 
. r ; fgets ; feof(arq) .
	Feedback da resposta:
	Infelizmente a sua resposta está incorreta. Para responder essa questão, reveja os pontos sobre manipulação de arquivos textuais respondendo à seguinte pergunta: Como coletar as linhas de um arquivo textual e como testar se chegou-se ao seu final?
	
	
	
· Pergunta 10
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.

Mais conteúdos dessa disciplina