Buscar

Atividade 4__TECNICAS DE PROGRAMACAO

Prévia do material em texto

Impresso por Davi Linares, CPF 230.274.748-80 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não
pode ser reproduzido ou repassado para terceiros. 21/08/2021 13:54:05
GRA1033 TÉCNICAS DE PROGRAMAÇÃO PTA - 
202010.ead-5400.01
Teste ATIVIDADE 4 (A4)
Iniciado 06/06/20 09:38
Enviado 06/06/20 12:15
Status Completada
Resultado da tentativa 9 em 10 pontos 
Tempo decorrido 2 horas, 37 minutos
Resultados exibidos Respostas enviadas, Respostas 
corretas, Comentários
  
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 (“ ”) devem ser alocados dinamicamente FILE *
através do uso “ ” antes de serem utilizados.malloc()
( ) Ponteiros de arquivos referenciam uma posição de memória mantida pelo
sistema operacional que armazena atributos e dos arquivos status
manipulados.
( ) Para a manipulação da posição corrente do arquivo podemos usar as 
funções “ ” e “ ” que devolvem e setam a posição corrente do ftell() fseek()
arquivo, respectivamente.
( ) A função “fread ” retorna quando chegar ao final do arquivo.() EOF
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.
  
1 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 , independentes de seu tipo; porém, para tal, devemos usar strings
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()
Impresso por Davi Linares, CPF 230.274.748-80 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não
pode ser reproduzido ou repassado para terceiros. 21/08/2021 13:54:05
Assinale a alternativa cuja ordem você julgue ser correta.
Resposta 
Selecionada: 
 
B, T, T, B, A.
Resposta Correta: 
B, T, T, B, A.
Feedback
da 
resposta:
Parabéns! Sua resposta foi a correta! As funções “ ” e fputs()
“ ” são utilizadas exclusivamente nos arquivos textuais para fputc()
a gravação de e de caracter, respectivamente. Para os strings
arquivos binários, utiliza-se “ ” e “ ”. A abertura é fwrite() fread()
realizada por meio da função “ ” independentemente do tipofopen()
do arquivo.
  
1 em 1 pontos
Quando se manipula um arquivo, às vezes temos a necessidade de alterar 
informações ou incluir novas. Para tanto, funções “ ”, “ ”, “ ”, fseek() fgets() fputs()
“ ” e “ ” podem ser utilizadas. Dentre as alternativas a seguir, fgetc() fgets()
assinale V para verdadeiro e F para falso.
( ) a função “ “ não admite valores negativos para o seu deslocamento fseek()
mesmo quando utilizada com o parâmetro “SEEK_CUR”;
( ) no caso de gravarmos uma informação no meio do arquivo, a informação 
será sobrescrita;
( ) no caso de gravarmos uma informação no meio do arquivo, toda a 
informação abaixo do ponto a receber a nova informação será deslocada;
( ) a função “ “ admite três pontos de referência para o seu fseek()
deslocamento: a partir do início do arquivo (SEEK_SET), a partir da posição 
corrente (SEEK_CUR) e a partir do fim do arquivo (SEEK_END).
Assinale a alternativa que você julgue ter a sequência correta.
Resposta 
Selecionada: 
 
F, V, F, V.
Resposta Correta: 
F, V, F, V.
Feedback
da 
resposta:
Parabéns! Sua resposta foi a correta! Pelo fato da função “ ”fseek()
utilizar, como parâmetro de deslocamento, um tipo “ ”, long int
valores negativos podem ser colocados para que seja realizado, 
um deslocamento de retrocesso do ponteiro do arquivo ou a 
partir do ponto referenciado. Assim como em vetores, a escrita 
em posições já gravadas provoca a sobreposição de 
informações.
  
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.
( ) 
( ) arq = fopen(“arquivo.dat”,”rb+”);
( ) if(arq=NULL)
return;
Impresso por Davi Linares, CPF 230.274.748-80 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não
pode ser reproduzido ou repassado para terceiros. 21/08/2021 13:54:05
( ) 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 “ ” sobre um ponteiro de arquivo fopen()
“ ”. Depois da função “ ”, é conveniente testar se a FILE * fopen()
abertura foi bem sucedida. Após o uso, o arquivo deverá ser 
fechado com “ ”.fclose()
  
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:
  !!!,float>.
Para essa questão, analise o código a seguir e preencha a lacuna de modo que o 
programa imprima os valores relativos ao par “terceiro <int><float>”.
#include <stdio.h>
 
int main()
{
FILE *arq;
int valor_int;
float valor_float;
"#$%&&!$$'$
if(arq==NULL)
{
printf("Erro de abertura do arquivo.\n");
return 0;
}
()**+)*,
-./
-./  
printf("Terceiro registro: int=%d "01$././ 
fclose(arq);
return 0;
}
Assinale a alternativa que você julgue ser a correta.
Resposta 
Selecionada: 
 
(sizeof(int)+sizeof(float))*3.
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.
Impresso por Davi Linares, CPF 230.274.748-80 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não
pode ser reproduzido ou repassado para terceiros. 21/08/2021 13:54:05
 2 
1 em 1 pontos
Para a manipulação de um arquivo, deve-se antes, realizar a sua abertura 
através do comando “ ”. Tal comando permite associar o nome físico dofopen()
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 “ ” permitindo-se arquivo.dat
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 “ ” permitindo-se arquivo.dat
operações deleitura 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.
 3 
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.
Impresso por Davi Linares, CPF 230.274.748-80 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não
pode ser reproduzido ou repassado para terceiros. 21/08/2021 13:54:05
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 nos arquivos textuais, nos bytes
arquivos binários são utilizados apenas quatro . Como um bytes
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 “ ” e “ ” devido ao fato de que elas realizam fprintf() fscanf()
formatações dos valores manipulados aumentando-se, portanto, 
o tempo de processamento. Para maior eficiência, deve-se 
utilizar as funções “ ” e “ ”.fwrite() fread()
 4 
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;
. . .
"#$!$$'$
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 “ ”. Devido ao fato de ser um fseek(arq,0,SEEK_SET) 
arquivo binário, a leitura deve ser “ ” e o teste de final de fread()
Impresso por Davi Linares, CPF 230.274.748-80 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não
pode ser reproduzido ou repassado para terceiros. 21/08/2021 13:54:05
arquivo, independentemente do modo textual ou binário, é feito 
pela função “ ”.feof()
 5 
1 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;
"#$.!%$$$
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 ; 
feof(arq) .
Resposta Correta: 
. r ; fgets ; 
feof(arq) .
Feedback
da 
resposta:
Parabéns! Sua resposta foi a correta! Você observou bem que o 
programa manipula um arquivo textual apenas para operações 
de leitura. A contagem das palavras foi feita linha a linha, 
usando-se, portanto, a função “ ”. O laço deve ser fgets()
interrompido ao encontrar o final de arquivo – teste feito a partir 
do valor de retorno da função “ ”.feof()
Impresso por Davi Linares, CPF 230.274.748-80 para uso pessoal e privado. Este material pode ser protegido por direitos autorais e não
pode ser reproduzido ou repassado para terceiros. 21/08/2021 13:54:05
 6 
1 em 1 pontos
Em uma operação de recuperação de informações a partir de um arquivo, 
após a leitura de um item, deve-se sempre verificar se o final do arquivo foi 
alcançado. A informação de EOF ( – Final de Arquivo) pode ser End-Of-File
obtida em diversas operações. Para essa questão, analise as linhas de 
código a seguir:
I – info = fgetc(arq);
II – fputs(buffer, sizeof(buffer), arq);
III – 
IV – fputc(carac,arq);
Assinale a alternativa que você julgue ser a correta.
Resposta 
Selecionada: 
 
Apenas a função da linha III não pode retornar EOF.
Resposta Correta: 
Apenas a função da linha III não pode retornar EOF.
Feedback 
da 
resposta:
Parabéns! Sua resposta foi a correta! Apesar das funções das 
linhas II e IV serem de saída (gravação), podem retornar EOF 
em caso de erro. A função da linha I pode retornar EOF no caso 
do encontro de final de arquivo na operação de leitura. A função 
da linha III retorna a quantidade de itens lidos.

Continue navegando