Buscar

B2_Subprogramas

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

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

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
Você viu 3, do total de 38 páginas

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

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

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
Você viu 6, do total de 38 páginas

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

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

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
Você viu 9, do total de 38 páginas

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

Prévia do material em texto

Subprogramas
Subprogramas
Subprogramas são os blocos de construção fundamentais dos programas e estão dentre os conceitos mais importantes no projeto de linguagens de programação.
O subprograma é uma técnica de programação que tem como objetivo a organização do código fonte em blocos de instruções que podem ser reutilizadas a qualquer momento ao longo do programa.
Um subprograma representa uma sequência de instruções com um objetivo específico que pode ser utilizada ao ser acionada (ou chamada) por um programa ou por outro subprograma. 
A principal vantagem dos subprogramas está relacionada a organização do código fonte, bem como, em função da facilidade de manutenção uma vez que cada subprograma realizada uma tarefa específica.
2
Subprogramas
3
Subprogramas
Cada subprograma possui um único ponto de entrada, o qual representa o início do fluxo de execução deste subprograma. Da mesma maneira, este subprograma contém um ponto de saída, que representa o final da execução das instruções do subprograma.
Quando a chamada do subprograma é acionada, o fluxo de execução do programa principal é suspenso, até que a execução do subprograma termine. Ao final da execução do subprograma, a execução do programa principal é retomada normalmente.
4
Subprogramas
Os subprogramas são classificados em duas categorias denominadas funções ou procedimentos. 
Algumas linguagens de programação, como por exemplo, a linguagem C possui apenas funções, mas permite que uma função seja escrita na forma de um procedimento.
Um procedimento é a implementação mais simplificada de um subprograma, em que o objetivo principal é a execução de um conjunto de instruções. O procedimento não retorna nenhum tipo de resultado para o programa principal.
5
Subprogramas
Quando construímos subprogramas é possível enviar informações a partir da unidade chamadora para o subprograma. Essas informações são enviadas por meio de parâmetros. Uma lista de parâmetros é um recurso utilizado para passar informações para os subprogramas. Essa lista, deve conter o tipo de dados do parâmetro, bem como o nome do parâmetro.
6
Subprogramas
Existem três maneiras distintas de passagem de parâmetros, denominadas:
Modo de entrada: este modo é utilizado para enviar uma informação da unidade chamadora para o subprograma. 
Modo de saída: este modo é utilizado para transmitir uma informação do subprograma para a unidade chamadora.
Modo entrada-saída: neste modo é possível tanto enviar uma informação da unidade chamadora para o subprograma, quanto transmitir uma informação do subprograma para a unidade chamadora.
7
Subprogramas
A implementação da passagem de parâmetros para um subprograma pode ser realizada de três maneiras conhecidas como passagem por valor; passagem por resultado e passagem por referência.
A passagem por valor é baseada no modo de entrada, em que o parâmetro é utilizado para inicializar uma variável local do subprograma. Essa variável é destruída ao final da execução do subprograma. Além disso, qualquer tipo de alteração realizada na variável local, não é propagada para a unidade chamadora.
A passagem por resultado é baseada no modo de saída, em que uma variável local do subprograma é utilizada para transmitir uma informação para a unidade chamadora. Essa transmissão é realizada antes da execução do subprograma for encerrada. Algumas linguagens de programação não permitem este tipo de passagem de parâmetros.
A passagem por referência é baseada no modo de entrada-saída, assim, a unidade chamadora transmite ao subprograma o endereço de memória da variável que será utilizada no parâmetro. Todas as alterações realizadas na variável do parâmetro são refletidas na unidade chamadora, uma vez, que as alterações são realizadas diretamente no endereço de memória da variável.
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
A programação modular é um recurso fundamental das linguagens de programação e tem como objetivo a divisão de um programa (ou algoritmo) em pequenas partes, também conhecidas como subprogramas. Cada linguagem de programação possui uma maneira diferente de representar as subprogramas. Na linguagem Pascal, por exemplo, a modularização é implementada por meio dos procedimentos (procedures) e das funções (functions), enquanto, na linguagem Java os módulos são construídos com as especificações das classes e também com os métodos pertencentes a essas classes. Independente da linguagem de programação utilizada, a programação modular é baseada em uma abordagem para resolução de problemas conhecida como dividir-para-conquistar. Dentro deste contexto, considere as seguintes afirmações:
26
01 - Atividade
I. A elaboração de programas utilizando subprogramas tem como principal vantagem a organização do código fonte, uma vez que cada subprograma possui uma função bastante específica dentro da aplicação.
II. O processo de manutenção do código fonte é facilitado pela utilização dos subprogramas, pois os possíveis erros da aplicação podem ser rapidamente encontrados.
III. Com a utilização dos subprogramas é possível otimizar o espaço de armazenamento em memória, uma vez que todas as variáveis declaradas dentro dos subprogramas tem escopo global.
27
01 - Atividade
A) Apenas o item I está correto
B) Apenas os itens I e II estão corretos - (CORRETA)
C) Apenas os itens I e III estão corretos
D) Apenas os itens II e III estão corretos
E) Todos os itens estão corretos
28
01 - Atividade
02 - Atividade
Os programas elaborados utilizando os conceitos de programação modular possuem uma característica interessante que é a possibilidade de passagem de parâmetros para os subprogramas. Estes parâmetros permitem que variáveis do bloco principal do algoritmo (ou do programa) sejam passadas para os subprogramas. Na linguagem de programação Pascal, por exemplo, este conceito pode ser aplicado tanto para procedimentos quanto para funções. Em linguagens orientadas a objetos, como Java e C#, este conceito pode ser aplicado para qualquer método e até mesmo para o método construtor. Dentro deste contexto, considere as seguintes afirmações a respeito da passagem de parâmetros para subprogramas:
29
02 - Atividade
I. Na passagem por valor, o valor utilizado no parâmetro do subprograma pode ser alterado arbitrariamente uma vez que essas alterações não afetarão o programa principal.
II. Na passagem por referência, as alterações realizadas no parâmetro afetam efetivamente a variável referenciada no programa principal.
III. O modelo semântico da passagem por valor é o modo entrada, enquanto na passagem por referência o modo utilizado é entrada-saída.
30
02 - Atividade
A) Apenas o item I está correto
B) Apenas os itens I e II estão corretos
C) Apenas os itens I e III estão corretos
D) Apenas os itens II e III estão corretos
E) Todos os itens estão corretos - (CORRETA)
31
03 - Atividade
Sobre a sobrecarga de subprogramas, em que é possível codificar subprogramas com o mesmo nome, porém com o número de parâmetros e/ou tipos de dados diferentes, considere a seguinte chamada:
calcular(2.5,7.8);
Qual subprograma sobrecarregado será disparado a partir da chamada apresentada anteriormente.
A) int calcular(int valor1, int valor2);
B) double calcular(double valor1, double valor2); - (CORRETA)
C) string calcular(string valor1, string valor2);
D) double calcular(int valor1, int valor2);
E) string calcular(int valor1, double valor2);
32
04 - Atividade
Nos subprogramas o método de passagem de parâmetros em que são enviadas informações do subprograma para a unidade chamadora é denominado:
A) Modo de entrada
B) Função
C) Modo de saída - (CORRETA)
D) Modo de entrada e saída
E) Procedimento
33
05 - Atividade
Nos subprogramas o método de passagem de parâmetros em que são enviadas informações da unidade chamadora para o subprograma é denominado:
A) Modo de entrada - (CORRETA)
B) FunçãoC) Modo de saída
D) Modo de entrada e saída
E) Procedimento
34
06 - Atividade
A linguagem C++ estende a linguagem C de modo a suportar a programação orientada a objetos. Uma de suas características é a possibilidade de ocultar informação pelo uso das cláusulas 'private', 'public' e 'protected'. Uma classe escrita em C++ possui, geralmente, atributos e métodos que modificam esses atributos ou implementam regras de negócio da aplicação. Uma maneira recomendável de ocultar a informação é:
A) utilizar cláusulas 'private' para os atributos e 'public' para os métodos - (CORRETA)
B) utilizar cláusulas 'private' para os métodos e 'public' para os atributos
C) utilizar cláusulas 'private' para os atributos e para os métodos
D) utilizar cláusulas 'public' para os atributos e para os métodos
E) utilizar cláusulas 'protected' para os atributos e para os métodos
35
07 - Atividade
O método de passagem de parâmetro em que é realizada uma cópia da variável especificada no parâmetro, e nenhuma alteração realizada no interior do subprograma será propagada no programa principal é conhecida como:
Passagem por valor (correta)
Passagem por referência
Passagem por parâmetro
Passagem por cópia
Passagem por resultado
A passagem por valor realiza uma cópia da variável especificada no parâmetro e as alterações não são refletidas no programa principal.
36
07 - Atividade
Considerando uma passagem de parâmetro por referência, qual será o valor da variável denominada X após a chamada do subprograma?
x <- 10; 
y <- 20;
z <- 30;
escreva('X = ', x);
teste(x,y);
escreva('X = ', x);
procedimento teste(var x: inteiro; y: inteiro; z: inteiro)
inicio
 z = x*4;
 x = (y+z)-20;
 y = (x*2)+1;
fim
37
07 - Atividade
a. 10
b. 20
c. 30 - (Correta)
d. 40
e. 50
Como a passagem por parâmetro foi por referência a alteração da variável local X no interior do subprograma será propagada para o programa principal, assim, o valor da variável após o subprograma será 30.
38

Continue navegando