SóProvas


ID
204721
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Programação
Assuntos

Julgue os itens seguintes, relativos à lógica de programação e
construção de algoritmos.

É possível implementar procedimentos cujos valores gerados podem ser armazenados em variáveis que garantem sua existência mesmo após o término da execução de tais procedimentos.

Alternativas
Comentários
  • Basta armazenar em variáveis globais.

  • O uso de passagem de parametros por referencias para tais procedimentos também pode causar este efeito.

  • Forçando um pouco a interpreação de "existência mesmo após o termino de execução do procedimento"...

    Dependendo da linguagem empregada, não é necessário nem mesmo uma variável global, uma local mesmo resolve.

    Em C, por exemplo, temos o modificador static.

    Variáveis locais static são variáveis cujo valor é mantido de uma chamada da função para a outra.
  • Creio que caberia recurso nesta questão.
    O gabarito de outra questão, que salvo engano também é do CESPE, tem como ponto chave para resolução o fato de que "procedimento" não retorna valor.
    O correto seria mencionar "...implementar FUNÇÕES cujos valores gerados..."

    Apesar de "valores gerados" possivelmente se refira a atribuições dentro do procedimento, ainda assim o texto compromete a interpretação.
  • Sim. Basta armazenar esses valores em variáveis globais, que deverão estar fora de todas as funções ou procedimentos do programa.

    Resposta: Certo

  • Correta. Basta armazenar esses valores em variáveis globais, que deverão estar fora de todas as funções ou procedimentos do programa.

  • Cuidado na resposta, podemos sim, ao término de um bloco de execução guardar este valor em uma variável do tipo global, porém, com o fechar do sistema se esta não for armazenada em outro lugar, com certeza o seu valor será perdido.

    Resposta: Certo

  • GABARITO: CORRETO

    Basta armazenar esses valores em variáveis globais, que deverão estar fora de todas as funções ou procedimentos do programa.

  • Pelo que pude entender, esse efeito ("... variáveis que garantem sua existência mesmo após o término da execução de tais procedimentos")

    se consegue pela utilização de variável global

    ou por meio de passagem de parâmetro por referência.

    Neste livro vem com explicação mais detalhada;

    aqui coloquei só resumo meu.

    ==============================

    Variáveis globais são aquelas declaradas

    no início de um algoritmo. Estas variáveis são visíveis (isto é, podem ser

    usadas) no algoritmo principal e por todas as demais sub-rotinas.

    Variáveis locais são aquelas definidas

    dentro de uma sub-rotina e, portanto, somente visíveis (utilizáveis) dentro do

    mesmo. Outras sub-rotinas, ou mesmo o algoritmo principal, não podem

    utilizá-las.

    --------------------------------------------

    O mecanismo de funcionamento de uma

    sub-rotina é iniciado quando se encontra um comando de invocação desta, durante

    a execução do algoritmo principal.

    A partir daí a execução do mesmo é

    interrompida e a seguir, passa-se à execução dos comandos do corpo da

    sub-rotina.

    Ao seu término, retoma-se a execução do

    algoritmo que o chamou (no caso, o algoritmo principal) no ponto onde foi

    interrompida (comando de chamada da sub-rotina) e prossegue-se pela instrução

    imediatamente seguinte.

    ---------------------------

    Essa invocação pode se dar também

    através dos parâmetros que são canais por onde os dados são transferidos pelo

    algoritmo chamador a uma sub-rotina, e vice-versa.

    Para que possa iniciar a execução das

    instruções em seu corpo, uma sub-rotina às vezes precisa receber dados do

    algoritmo que o chamou e, ao terminar sua tarefa, a sub-rotina deve fornecer ao

     algoritmo chamador os resultados da mesma.

    Esta comunicação bidirecional pode ser

    feita de dois modos que são

    por meio de variáveis globais ou

    por meio da passagem de parâmetros.

    -------------------------------

    continua na parte II

  • parte II (continuação)

    Fonte:

    Batista, Rogério da Silva

    Lógica de programação 

    Parâmetros são canais pelos quais se estabelece uma comunicação

    bidirecional entre uma sub-rotina e o algoritmo chamador (o algoritmo principal

    ou outra sub-rotina).

    Dados são passados pelo algoritmo chamador à sub-rotina, ou

    retornados por este ao primeiro por meio de parâmetros.

    OS PARÂMETROS PODEM SER DAFUNÇÃO OU DO PROCEDIMENTO:

    EXEMPLO:

    Função Quad(w : real)

    ESSA FUNÇÃO ELEVA O PARÂMETRO W AO QUADRADO

    (O QUE ESTÁ EMMAIÚSCULO-ITÁLICO É PORQUE É COMENTÁRIO MEU)

    --------------------------------------

    Os Parâmetros formais são os nomes simbólicos introduzidos no

    cabeçalho de sub-rotinas, usados na definição dos parâmetros do mesmo.

    Dentro de uma sub-rotina

    trabalha-se com estes nomes da mesma forma como se trabalha com variáveis

    locais ou globais.

    Já os Parâmetros reais são aqueles que substituem os parâmetros

    formais quando da chamada de uma sub-rotina.

    -------------------------

    Na passagem de parâmetros por valor (ou por

    cópia) o parâmetro real é calculado e uma cópia de seu valor é fornecida ao

    parâmetro formal, no ato da invocação do sub-rotina.

    A execuçãodo sub-rotina prossegue normalmente e todas as modificações feitas no parâmetro

    formal não afetam o parâmetro real.

    -----------------------

    Já no mecanismo de passagem deparâmetros por referência, o espaço de memória ocupado pelos parâmetros

    reais é compartilhado pelos parâmetros formais correspondentes.

    Assim, as eventuais modificações feitas nos parâmetros formais também afetam os parâmetros reais

    correspondentes."

    No capítulo vem mais explicado, com exemplos.

    Fonte:

    Batista, Rogério da Silva