Questão 41 · Informática: Programação e algoritmos
Em um programa codificado na linguagem Delphi, a abertura do arquivo texto "arq.txt" para leitura utiliza, em sequência, as chamadas Assign(arq,"arq.txt") e Reset(arq), sendo arq uma variável do tipo text. Supondo que a opção {$IOChecks off} esteja habilitada, para saber se o arquivo foi aberto com sucesso, o programador deve:
- A) testar o valor retornado pela função Reset, que é do tipo boolean;
- B) testar o valor retornado pela função Reset, que é do tipo integer;
- C) testar o valor retornado pela função IOResult, que é do tipo boolean;
- D) testar o valor retornado pela função IOResult, que é do tipo integer;
- E) testar os valores retornados pelas funções Reset e IOResult, ambos do tipo integer.
Marque a alternativa correta:
Gabarito: D
Gabarito definitivo divulgado pela banca FGV (TCE/SE 2015).
Comentário
Gabarito: D.
No Delphi, Reset é um procedimento, e não uma função. Ele não retorna valor. Com a diretiva {$IOChecks off}, o compilador deixa de tratar automaticamente os erros de E/S, então o programador precisa consultar o status do último erro chamando IOResult. Essa função retorna um valor do tipo integer: 0 indica sucesso, e um valor diferente de zero indica o código do erro.
Portanto, o teste correto é: após Assign(arq,'arq.txt') e Reset(arq), verifique IOResult = 0.
Por que as outras estão erradas:
- (A) testar o retorno de Reset:
Resetnão retorna valor. - (B) testar o retorno de Reset como integer:
Resetnão é função. - (C) IOResult como boolean: o tipo é integer, não boolean.
- (E) testar Reset e IOResult:
Resetnão retorna valor, e o tipo deIOResulté integer.
Dica de prova: saber distinguir procedimento de função. Em Delphi, IOResult é a função que devolve o código de erro de E/S, e o retorno é inteiro, e não booleano.
Fundamentos: Tratamento de erros de E/S em Delphi · Diferença entre procedimento e função · Função IOResult e tipo integer · Diretiva {$IOChecks off}
Comentário gerado pela Cravei IA a partir do enunciado e do gabarito definitivo divulgado pela banca, e conferido por uma verificação automática. A IA pode errar: o gabarito oficial sempre prevalece.
Fonte: prova FGV TCE/SE 2015 (Analista de Tecnologia da Informação - Desenvolvimento), questão 41, com o gabarito definitivo da banca. Comentário: Equipe Cravei · como fazemos e revisamos.