Buscar

Revisar envio do teste_ ATIVIDADE 4 GRA1033 TÉCNICAS

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

Prévia do material em texto

Revisar envio do teste: ATIVIDADE 4
GRA1033 TÉCNICAS DE PROGRAMAÇÃO PNA (ON) - 201920.1731.03 Unidade 4
Revisar envio do teste: ATIVIDADE 4
Usuário PABLO MATHEUS SOUZA DOS SANTOS
Curso GRA1033 TÉCNICAS DE PROGRAMAÇÃO PNA (ON) - 201920.1731.03
Teste ATIVIDADE 4
Iniciado 26/11/19 09:27
Enviado 02/12/19 21:58
Status Completada
Resultado da tentativa 0,5 em 2,5 pontos 
Tempo decorrido 156 horas, 31 minutos
Resultados exibidos Respostas enviadas, Respostas corretas, Comentários
Pergunta 1
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);
0 em 0,25 pontos
PABLO MATHEUS SOUZA DOS SANTOS
← OK
Revisar envio do teste: ATIVIDADE 4 – GRA1033 TÉCNICAS ... https://unifacs.blackboard.com/webapps/assessment/review/review.jsp?a...
1 of 7 02/12/2019 22:02
Resposta Selecionada:
Resposta Correta:
Feedback da
resposta:
custoStr[3]='\x0';
fclose(arq);
printf("Custo = %d",atoi(custoStr));
return 0;
}
Assinale a alternativa que você julgue ser a correta.
. r ; fputs ; prodB*3 .
. r ; fgets ; prodB*3 .
Infelizmente a sua resposta está incorreta. Para responder essa questão, reveja as
funções para manipulação de arquivos textos e também, reflita: Qual o modo para ser
abrir um arquivo textual somente para leitura?
Pergunta 2
Resposta Selecionada:
Resposta Correta:
Feedback da
resposta:
Na programação em C, podemos encontrar duas formas distintas de se abrir um arquivo (textual ou binária)
aliadas aos modos que esse arquivo será manipulado. Para essa questão, analise o código a seguir, que
manipula um arquivo binário, e preencha a lacuna corretamente.
. . .
FILE *arq;
int codigo;
char buffer[35]="algo a ser escrito no arquivo\n";
arq=fopen("exercicio.dat","____");
if(arq==NULL)
{
printf("Erro de abertura do arquivo.\n");
return 0;
}
...
if(!fread(&codigo,sizeof(int),1,arq)) //caso o arquivo ainda esteja vazio
codigo=0;
else
codigo++;
...
if(!fwrite(&codigo,sizeof(int),1,arq))
printf("erro na gravacao do codigo.\n");
else
if(!fwrite(buffer,35,1,arq))
printf("Erro na gravacao do buffer.\n");
fclose(arq);
. . .
Considerando que, caso o arquivo não exista, será criado um novo e caso exista, os dados deverão ser
mantidos, assinale a alternativa que corresponda ao preenchimento da lacuna.
w b+.
ab+.
Infelizmente a sua resposta está incorreta. Para responder essa questão, observe melhor a
consideração final “caso o arquivo não exista, será criado um novo e caso exista, os dados
deverão ser mantidos” e as funções utilizadas para ler e gravar no arquivo. Que tipo de
abertura corresponde à essas informações?
Pergunta 3
Quando se manipula um arquivo, às vezes temos a necessidade de alterar informações ou incluir novas.
Para tanto, funções “ fseek()”, “ fgets()”, “ fputs()”, “ fgetc()” e “ fgets()” podem ser utilizadas. Dentre as
alternativas a seguir, assinale V para verdadeiro e F para falso.
0 em 0,25 pontos
0 em 0,25 pontos
Revisar envio do teste: ATIVIDADE 4 – GRA1033 TÉCNICAS ... https://unifacs.blackboard.com/webapps/assessment/review/review.jsp?a...
2 of 7 02/12/2019 22:02
Resposta Selecionada:
Resposta Correta:
Feedback da
resposta:
( ) a função “ fseek()“ não admite valores negativos para o seu deslocamento 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 “ fseek()“ admite três pontos de referência para o seu 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.
V, V, F, V.
F, V, F, V.
Infelizmente a sua resposta está incorreta. Para responder essa questão, reveja os
conceitos e funcionalidades da função “ fseek()”. Como retroceder a ponteiro do arquivo?
Faça também, um paralelo entre gravação de informações em vetores com a gravação de
informações em arquivos textuais.
Pergunta 4
Resposta
Selecionada:
Resposta
Correta:
Feedback da
resposta:
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.
Será aberto um arquivo binário “ arquivo.dat” permitindo-se operações de leitura e de
escrita. Caso o arquivo não exista, será criado um arquivo novo. Caso exista, o seu
conteúdo será mantido.
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.
Infelizmente a sua resposta está incorreta. Para responder essa questão, reveja os
modos de abertura e reflita: o que indica o símbolo 'b'? Qual a ação que o sinal “+” faz
sobre o “w”?
Pergunta 5
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);
0 em 0,25 pontos
0 em 0,25 pontos
Revisar envio do teste: ATIVIDADE 4 – GRA1033 TÉCNICAS ... https://unifacs.blackboard.com/webapps/assessment/review/review.jsp?a...
3 of 7 02/12/2019 22:02
Resposta
Selecionada:
Resposta
Correta:
Feedback da
resposta:
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.
O programa faz a impressão do arquivo em ordem correta. O trecho com as linhas “
fseek(arq,0,SEEK_END);” e “ pos=ftell(arq);” está a mais, pois logo em seguida é feito um novo
posicionamento no arquivo.
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.
Infelizmente a sua resposta está incorreta. Para responder essa questão, fazemos-lhe a
seguinte pergunta para reflexão: Como encontrar a posição do último elemento do arquivo
e, consequentemente, saber o tamanho de um arquivo textual?
Pergunta 6
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)
{
0,25 em 0,25 pontos
Revisar envio do teste: ATIVIDADE 4 – GRA1033 TÉCNICAS ... https://unifacs.blackboard.com/webapps/assessment/review/review.jsp?a...
4 of 7 02/12/2019 22:02
Resposta Selecionada:
Resposta Correta:
Feedback
da resposta:
____(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.
. r ; fgets ; feof(arq) .
. r ; fgets ; feof(arq) .
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 “ fgets()”. O laço deve ser interrompido ao encontrar o
final de arquivo – teste feito a partir do valor de retorno da função “ feof()”.
Pergunta 7
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.
0,25 em 0,25 pontos
Revisar envio do teste: ATIVIDADE 4 – GRA1033 TÉCNICAS ... https://unifacs.blackboard.com/webapps/assessment/review/review.jsp?a...
5 of 7 02/12/2019 22:02
Resposta Selecionada:
Resposta Correta:
Feedback da
resposta:
. r ; getc ; carac == EOF.
. r ; getc ; carac == EOF.
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 8
Resposta Selecionada:
Resposta Correta:
Feedback da
resposta:
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.
B, T, B, T.
B, T, T, B.
Infelizmente a sua resposta está incorreta. Para responder essa questão, reflita sobre
como manipulamos os arquivos textuais e binários. Por exemplo, ao nos deparamos com
um número no arquivo binário, como coletar efetivamente o seu valor?
Pergunta 9
Resposta Selecionada:
Resposta Correta:
Feedback da
resposta:
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.
V, V, V, F.
F, V, V, F.
Infelizmente a sua resposta está incorreta. Para responder essa questão, reveja os
conceitos de descritores e ponteiros de arquivos e reflita sobre o que vem a ser a abertura
do arquivo. Reveja também, os protótipos das funções inerentes à manipulação de
arquivos.
Pergunta 10
0 em 0,25 pontos
0 em 0,25 pontos
0 em 0,25 pontos
Revisar envio do teste: ATIVIDADE 4 – GRA1033 TÉCNICAS ... https://unifacs.blackboard.com/webapps/assessment/review/review.jsp?a...
6 of 7 02/12/2019 22:02
Segunda-feira, 2 de Dezembro de 2019 22h01min50s BRT
Resposta Selecionada:
Resposta Correta:
Feedback
da resposta:
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.
. arq=fopen("arq.dat","wb+"); .
. arq=fopen("arq.dat","rb+"); .
Infelizmente a sua resposta está incorreta. Para responder essa questão, reflita sobre as
seguintes indagações: Que tipo de arquivo é manipulado pelas funções “ fread()” e “ fwrite()”?
Em qual modo de abertura o arquivo deverá existir previamente? Como mencionamos, no
modo de abertura, que serão realizadas operações de leitura e de escrita?
Revisar envio do teste: ATIVIDADE 4 – GRA1033 TÉCNICAS ... https://unifacs.blackboard.com/webapps/assessment/review/review.jsp?a...
7 of 7 02/12/2019 22:02

Outros materiais