Buscar

Em muitas situações nos deparamos com problemas complexos e abrangentes. Para resolver esse tipo de problema temos que dividí-lo em subproblemas ma...

Em muitas situações nos deparamos com problemas complexos e abrangentes. Para resolver esse tipo de problema temos que dividí-lo em subproblemas mais simples e específicos, dividindo assim a sua complexidade e facilitando a resolução, através de procedimentos específicos.

 

FORBELLONE, A. L. V.; EBERSPACHER, H. F. Lógica de Programação. 3. ed. São Paulo: Makron Books, 2005.

 

Considere o algoritmo em pseudocódigo abaixo.

 

01 - Algoritmo quadrado

02 -        Procedimento elevaAoQuadrado(x: inteiro)

03 -        Início

04 -                      x <- x * x

05 -        Fim_procedimento

06 -        Var x: inteiro

07 - Início

08 -        escreva("Insira o valor:")

09 -        leia(x)

10 -        elevaAoQuadrado(x)

11 -        escreva(x)

12 - Fim

 

Sendo assim, tomando por base seus conhecimentos a respeito de procedimentos, leia as afirmações que se seguem.

 

I – A linha 2 contém a declaração da passagem por valor, do parâmetro x. Assim a instrução da linha 11 imprimirá o resultado do cálculo do número informado pelo usuário elevado ao quadrado, na linha 9.

II – Independentemente da passagem de parâmetro da linha 2 ser definida como valor ou referência, o algoritmo será capaz de imprimir o quadrado do número inserido pelo usuário pois a variável x, declarada na linha 6 irá sobrepor a declaração da linha 2.

III – O procedimento foi declarado com sintaxe correta, dispensando o uso da palavra reservada "retorne", palavra essa que é reservada à sintaxe de declaração de funções.

 

Sendo assim, é correto o que se afirma em:

Alternativas


Alternativa 1:


I, apenas.


Alternativa 2:


II, apenas.


Alternativa 3:


III, apenas.


Alternativa 4:


I e III, apenas.


Alternativa 5:


II e III, apenas.

💡 2 Respostas

User badge image

Dayane Monteiro

Alternativa 5:


II e III, apenas.

0
Dislike0
User badge image

Jonas Mariano

O código que você me enviou é um programa em C que usa um procedimento chamado elevaAoCubo para tentar calcular o cubo de um número inteiro. Um procedimento é uma subrotina que não retorna nenhum valor, mas pode realizar alguma ação ou modificar algum parâmetro. Analisando as afirmações sobre o programa, temos que:

- A afirmação I é verdadeira, pois o procedimento elevaAoCubo não possui o comando return, o que não acarreta em erro sintático. Um procedimento não precisa retornar nenhum valor, mas pode usar o comando return para encerrar sua execução antes do final.

- A afirmação II é falsa, pois em tempo de execução, na linha 09, caso o usuário informe o número 3 para armazenar em n, o programa irá imprimir na tela (na linha 11), o valor 3, e não 27. Isso acontece porque o procedimento elevaAoCubo recebe o parâmetro x por valor, e não por referência. Isso significa que ele recebe uma cópia do valor de n, e não o endereço de memória de n. Portanto, quando ele modifica o valor de x na linha 04, ele não está alterando o valor de n na função main. Para que o procedimento elevaAoCubo pudesse modificar o valor de n, ele deveria receber um ponteiro para n como parâmetro, e usar o operador de desreferenciamento (*) para acessar e alterar o valor apontado por esse ponteiro.

- A afirmação III é verdadeira, pois da forma como foi escrito, o procedimento elevaAoCubo não é capaz de produzir resultado algum. Ele calcula o cubo de x na linha 04, mas não retorna esse valor nem modifica o valor de n na função main. Ele apenas descarta esse valor ao terminar sua execução.

Portanto, a alternativa correta é a 4: I e III, apenas.

0
Dislike0

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

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais