Existem várias funções predefinidas em FORTRAN que podem ser...

Próximas questões
Com base no mesmo assunto
Q2319252 Programação
Existem várias funções predefinidas em FORTRAN que podem ser usadas em qualquer parte do programa, são as funções intrínsecas.
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.
Alternativas

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