Existem várias funções predefinidas em FORTRAN que podem ser...
Considere o trecho de código em linguagem de programação FORTRAN abaixo:
...
CHARACTER(12) :: surname, firstname CHARACTER(2) :: initial INTEGER :: length, pos
...
length = LEN(surname) firstname = ‘Walter‘ pos=INDEX(firstname, ‘al‘) firstname = ‘Fred‘ pos = INDEX(firstname, ‘al‘) length = LEN(TRIM(firstname)) initial = firstname(1:1) initial(2:2) = ‘.’ print*,initial,’ ‘,pos,’ ‘,length
...
Assinale a alternativa que apresenta, corretamente, o que esse trecho de código fará ao ser executado.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a B - Escreve os valores “F. 0 4”.
O trecho de código apresentado trabalha com manipulação de strings e funções intrínsecas da linguagem FORTRAN. Vamos entender passo a passo o que acontece para chegar ao resultado final:
Declarações de variáveis:
- CHARACTER(12) :: surname, firstname - Define duas variáveis de caracteres com comprimento 12.
- CHARACTER(2) :: initial - Define uma variável de caracteres com comprimento 2 para armazenar iniciais.
- INTEGER :: length, pos - Define duas variáveis inteiras.
Análise das operações:
- length = LEN(surname) - Define length como o comprimento da string surname, que é 12.
- firstname = 'Walter' - Atribui a string 'Walter' a firstname.
- pos = INDEX(firstname, 'al') - Busca a posição da substring 'al' em firstname. Como 'Walter' contém 'al' começando na posição 2, pos se torna 2.
- firstname = 'Fred' - Atribui a string 'Fred' a firstname.
- pos = INDEX(firstname, 'al') - Busca a posição da substring 'al' em 'Fred'. Como 'Fred' não contém 'al', pos se torna 0.
- length = LEN(TRIM(firstname)) - Define length como o comprimento de 'Fred' sem espaços em branco à direita, que é 4.
- initial = firstname(1:1) - Atribui o primeiro caractere de firstname ('F') à primeira posição de initial.
- initial(2:2) = '.' - Atribui o ponto '.' à segunda posição de initial, resultando em 'F.'
- print*, initial, ' ', pos, ' ', length - Imprime a variável initial ('F.'), a variável pos (0), e a variável length (4).
Justificativas das alternativas:
- A - Escreve os valores “W. 2 4”. - Incorreta, pois o initial é 'F.', não 'W.'.
- C - Escreve os valores “F 2 12”. - Incorreta, pois a posição 'pos' é 0, não 2, e o comprimento 'length' é 4, não 12.
- D - Escreve os valores “F. 0 5”. - Incorreta, pois o comprimento correto de 'Fred' é 4, não 5.
- E - Escreve os valores “W 2 5”. - Incorreta, pois o initial é 'F.', não 'W.', e a posição 'pos' é 0, não 2.
Este exercício aborda conceitos fundamentais de manipulação de strings em FORTRAN, como a utilização de funções intrínsecas LEN, TRIM, e INDEX, além de operações básicas com variáveis de caracteres e inteiros. Compreender como cada função intrínseca opera e como as strings são manipuladas é essencial para resolver este tipo de questão.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo