PROGRAMAÇÃO MODULAR. É uma metodologia para projetar programas como um conjunto de unidades individuais inter-relacionadas (sub-programas ou módulos).
|
|
- Pedro Bernardes Moreira
- 6 Há anos
- Visualizações:
Transcrição
1 É uma metodologia para projetar programas como um conjunto de unidades individuais inter-relacionadas (sub-programas ou módulos).
2 É uma metodologia para projetar programas como um conjunto de unidades individuais inter-relacionadas (sub-programas ou módulos). A decomposição em módulos será uma estratégia fundamental no desenvolvimento de programas de médio/grande porte.
3 VANTAGENS DA MODULARIZAÇÃO: Qualidade dos Programas A solução de um problema é buscada através da combinação das soluções de subproblemas (menos complexos).
4 VANTAGENS DA MODULARIZAÇÃO: Qualidade dos Programas Um módulo que realiza uma função simples e bem definida pode ser facilmente compreendido.
5 VANTAGENS DA MODULARIZAÇÃO: Qualidade dos Programas Um módulo que realiza uma função simples e bem definida pode ser facilmente compreendido. A atenção do programador se concentra nos detalhes da lógica de cada parte do programa isoladamente.
6 VANTAGENS DA MODULARIZAÇÃO: Qualidade dos Programas Um módulo que realiza uma função simples e bem definida pode ser facilmente compreendido. A atenção do programador se concentra nos detalhes da lógica de cada parte do programa isoladamente. ABSTRAÇÃO
7 VANTAGENS DA MODULARIZAÇÃO: Flexibilidade no desenvolvimento Como o programa é dividido em módulos individuais, tem-se maior flexibilidade na alocação de recursos e pessoal para o desenvolvimento.
8 VANTAGENS DA MODULARIZAÇÃO: Padronização e reuso Quando se escreve uma série de programas, é comum que certas funções sejam necessárias em mais de um
9 VANTAGENS DA MODULARIZAÇÃO: Padronização e reuso Quando se escreve uma série de programas, é comum que certas funções sejam necessárias em mais de um A existência da uma biblioteca de funções evitará grande parte da repetição e garantirá padronização.
10 VANTAGENS DA MODULARIZAÇÃO: Planejamento Quando se trabalha com pequenas unidades, pode-se estimar com certa precisão a quantidade de trabalho envolvido.
11 VANTAGENS DA MODULARIZAÇÃO: Planejamento Quando se trabalha com pequenas unidades, pode-se estimar com certa precisão a quantidade de trabalho envolvido. Isto possibilita um melhor planejamento de recursos, prazos, etc.
12 VANTAGENS DA MODULARIZAÇÃO: Manutenção Os problemas de manutenção são reduzidos. É mais fácil entender um módulo do sistema (e alterá-lo) do que tentar entender o sistema como um todo.
13 OBS: A técnica de modularização é empregada em vários ramos de desenvolvimento, como uma forma de lidar com a complexidade.
14 OBS: A técnica de modularização é empregada em vários ramos de desenvolvimento, como uma forma de lidar com a complexidade. Ex1: não há um fabricante de computador. Há fabricantes de discos rígidos, de processadores, etc.
15 OBS: A técnica de modularização é empregada em vários ramos de desenvolvimento, como uma forma de lidar com a complexidade. Ex2: não há um fabricante de carros. Há montadoras que encomendam de terceiros motor, câmbio, pneus, condicionador de ar, etc.
16 OBS: Um módulo pode ser decomposto em outros mais simples. Por exemplo, o fabricante de motor pode terceirizar a fabricação das velas de ignição, pistons, etc.
17 OBS: Um módulo pode ser decomposto em outros mais simples. Por exemplo, o fabricante de motor pode terceirizar a fabricação das velas de ignição, pistons, etc. Ou seja, para produção de objetos muito complexos, haverá um processo de decomposição sucessiva
18 RECOMENDAÇÃO BÁSICA Os módulos devem resolver uma tarefa (ou função) muito bem definida.
19 RECOMENDAÇÃO BÁSICA Os módulos devem resolver uma tarefa (ou função) muito bem definida. Dica prática: deve-se poder dizer o que um módulo faz em poucas palavras (sem uso de ou, se, etc.)
20 RECOMENDAÇÃO BÁSICA Os módulos devem resolver uma tarefa (ou função) muito bem definida. Dica prática: deve-se poder dizer o que um módulo faz em poucas palavras (sem uso de ou, se, etc.) Ex: Calcula o fatorial de um número Ordena um vetor de forma ascendente
21 TIPOS DE MÓDULOS Procedimento: realiza uma tarefa. Ao final não há retorno de valores ao módulo que o ativou.
22 TIPOS DE MÓDULOS Procedimento: realiza uma tarefa. Ao final não há retorno de valores ao módulo que o ativou. Função: realiza algum processamento e retorna uma única informação de saída.
23 TIPOS DE MÓDULOS Procedimento: realiza uma tarefa. Ao final não há retorno de valores ao módulo que o ativou. Função: realiza algum processamento e retorna uma única informação de saída. OBS: Funções possuem um tipo associado, que é o tipo da informação que será retornada.
24 TIPOS DE MÓDULOS Procedimento: realiza uma tarefa. Ao final não há retorno de valores ao módulo que o ativou. Função: realiza algum processamento e retorna uma única informação de saída. OBS: Funções possuem um tipo associado, que é o tipo da informação que será retornada. Funções e procedimentos podem receber informações de entrada (parâmetros).
25 EXEMPLOS: FUNÇÕES A := round(1.5); write(ln(num)); S := concat('abc','def'); S2 := copy(s,2,3);
26 EXEMPLOS: FUNÇÕES A := round(1.5); write(ln(num)); S := concat('abc','def'); S2 := copy(s,2,3); PROCEDIMENTOS ordenavet(v); insert(s1,s2,5); delete(s, 5,2); inc(x);
27 EXEMPLOS: FUNÇÕES A := round(1.5); write(ln(num)); S := concat('abc','def'); S2 := copy(s,2,3); PROCEDIMENTOS ordenavet(v); insert(s1,s2,5); delete(s, 5,2); inc(x); Obs: uma função é um tipo de expressão: produz um resultado, que deve ter algum destino.
28 EXEMPLOS: FUNÇÕES A := round(1.5); write(ln(num)); S := concat('abc','def'); S2 := copy(s,2,3); PROCEDIMENTOS ordenavet(v); insert(s1,s2,5); delete(s, 5,2); inc(x); já um procedimento é empregadona forma de comando.
29 PROCEDIMENTOS (sintaxe Pascal): procedure <nome> (<list_parâm>); <iáveis locais> comando 1; comando 2;.. comando n
30 FUNÇÕES (sintaxe Pascal): function <nome>(<list_parâm>):<tipo_ret>; < iáveis locais > comando 1; comando 2;..
31 FUNÇÕES (sintaxe Pascal): function <nome>(<list_parâm>):<tipo_ret>; < iáveis locais > comando 1; comando 2;.. OBS: toda função deverá ter (pelo menos) uma atribuição para o seu nome, com o que se produz o retorno de um valor.
32 FUNÇÕES (sintaxe Pascal): function <nome>(<list_parâm>):<tipo_ret>; < iáveis locais > comando 1; comando 2;.. OBS: toda função deverá ter (pelo menos) uma atribuição para o seu nome, com o que se produz o retorno de um valor. se houver mais de uma atribuição, a segunda anula a primeira e assim sucessivamente.
33 OBS: A execução de um módulo é ativada pela referência ao seu nome.
34 OBS: A execução de um módulo é ativada pela referência ao seu nome. Quando for encontrada uma chamada, o módulo em execução será suspenso, e o controle será passado ao módulo chamado.
35 OBS: A execução de um módulo é ativada pela referência ao seu nome. Quando for encontrada uma chamada, o módulo em execução será suspenso, e o controle será passado ao módulo chamado. Após a execução, ocorrerá o retorno do controle para o comando imediatamente após a chamada.
36 ESCOPO E TEMPO DE VIDA Escopo de uma iável é a área do programa onde ela pode ser legalmente referenciada.
37 Quanto ao escopo, as iáveis podem ser: Globais: São declaradas fora de qualquer módulo, e podem ser referenciadas em qualquer parte do programa
38 Quanto ao escopo, as iáveis podem ser: Globais: São declaradas fora de qualquer módulo, e podem ser referenciadas em qualquer parte do programa exceto naqueles módulos onde for declarada outra iável com o mesmo nome.
39 Quanto ao escopo, as iáveis podem ser: Globais: São declaradas fora de qualquer módulo, e podem ser referenciadas em qualquer parte do programa exceto naqueles módulos onde for declarada outra iável com o mesmo nome. Locais: Só existem dentro do módulo onde foram declaradas.
40 program local_global; x1,x2:integer; procedure P() y1, y2, x2: real; procedure Q() z,y1: integer; {principal} end.
41 program local_global; x1,x2:integer; GLOBAIS procedure P() y1, y2, x2: real; procedure Q() z,y1: integer; LOCAIS {principal} end.
42 program local_global; x1,x2:integer; procedure P() y1, y2, x2: real; procedure Q() z,y1: integer; a iável global X2 não estará acessível em P(); {principal} end.
43 Tempo de vida de uma iável é o intervalo de tempo desde a sua criação (alocação de espaço) até a sua destruição.
44 Tempo de vida de uma iável é o intervalo de tempo desde a sua criação (alocação de espaço) até a sua destruição. - O tempo de vida de uma iável global é o tempo total de execução de um programa.
45 Tempo de vida de uma iável é o intervalo de tempo desde a sua criação (alocação de espaço) até a sua destruição. - O tempo de vida de uma iável global é o tempo total de execução de um programa. - Já o de uma iável local é o período durante o qual está ativo o módulo a que ela pertence.
46 Tempo de vida de uma iável é o intervalo de tempo desde a sua criação (alocação de espaço) até a sua destruição. - O tempo de vida de uma iável global é o tempo total de execução de um programa. - Já o de uma iável local é o período durante o qual está ativo o módulo a que ela pertence. O conteúdo de uma iável local se perde após o encerramento do módulo onde ela está declarada.
47 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end.
48 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end. VARIÁVEIS ALOCADAS
49 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end. g, x1, x2 VARIÁVEIS ALOCADAS
50 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end. o módulo principal chama P() g, x1, x2 VARIÁVEIS ALOCADAS
51 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end. y1, y2 g, x1, x2 VARIÁVEIS ALOCADAS
52 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end. P(), por sua vez, chama Q() y1, y2 g, x1, x2 VARIÁVEIS ALOCADAS
53 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end. z y1, y2 g, x1, x2 VARIÁVEIS ALOCADAS
54 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; retorno procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end. z y1, y2 g, x1, x2 VARIÁVEIS ALOCADAS
55 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end. y1, y2 g, x1, x2 VARIÁVEIS ALOCADAS
56 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end. retorno y1, y2 g, x1, x2 VARIÁVEIS ALOCADAS
57 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end. g, x1, x2 VARIÁVEIS ALOCADAS
58 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end. Ativação direta de Q() g, x1, x2 VARIÁVEIS ALOCADAS
59 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end. z g, x1, x2 VARIÁVEIS ALOCADAS
60 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; retorno procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end. z g, x1, x2 VARIÁVEIS ALOCADAS
61 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end. g, x1, x2 VARIÁVEIS ALOCADAS
62 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end. encerramento. g, x1, x2 VARIÁVEIS ALOCADAS
63 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end. VARIÁVEIS ALOCADAS
64 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; Note que a alocação funcionou em um esquema de PILHA procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end.
65 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; procedure P(); y1: real; y2: integer; Q(); Note que a alocação funcionou em um esquema de PILHA em uma pilha (de pratos, por exemplo) o último adicionado será o primeiro a sair. {principal} P(); Q(); end.
66 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end. Note que a alocação funcionou em um esquema de PILHA em uma pilha (de pratos, por exemplo) o último adicionado será o primeiro a sair. Isso porque um módulo sempre encerra antes daquele que o chamou.
67 program local_global; g: integer; x1,x2: real; procedure Q(); z: integer; ALOCAÇÃO EM FUNÇÃO DO TEMPO procedure P(); y1: real; y2: integer; Q(); {principal} P(); Q(); end.
68 PARÂMETROS E ARGUMENTOS Observe o código abaixo: v: array[1..100] of integer; function Soma( ): LongInt; i: byte; s: LongInt; s := 0; for i = 1 to 100 do s := s + v[i]; Soma := S;
69 PARÂMETROS E ARGUMENTOS Observe o código abaixo: v: array[1..100] of integer; function Soma( ): LongInt; i: byte; s: LongInt; s := 0; for i = 1 to 100 do s := s + v[i]; Soma := S; A função Soma sempre calculará a soma dos elementos de um vetor em particular v (global).
70 PARÂMETROS E ARGUMENTOS Observe o código abaixo: v: array[1..100] of integer; function Soma( ): LongInt; i: byte; s: LongInt; s := 0; for i = 1 to 100 do s := s + v[i]; Soma := S; A função Soma sempre calculará a soma dos elementos de um vetor em particular v (global). a utilidade da função, portanto, é bastante limitada!
71 PARÂMETROS E ARGUMENTOS Acrescentando um parâmetro type Vetor = array[1..100] of integer; v1,v2:vetor; function Soma(v:Vetor ):LongInt; i: byte; s: LongInt; s := 0; for i = 1 to 100 do s := s + v[i]; Soma := S; tot := Soma(v1);
72 PARÂMETROS E ARGUMENTOS Acrescentando um parâmetro type Vetor = array[1..100] of integer; v1,v2:vetor; function Soma(v:Vetor ):LongInt; i: byte; s: LongInt; s := 0; for i = 1 to 100 do s := s + v[i]; Soma := S; tot := Soma(v1); Agora Soma possui um parâmetro v e o processamento interno será feito sobre ele.
73 PARÂMETROS E ARGUMENTOS Acrescentando um parâmetro type Vetor = array[1..100] of integer; v1,v2:vetor; function Soma(v:Vetor ):LongInt; i: byte; s: LongInt; s := 0; for i = 1 to 100 do s := s + v[i]; Soma := S; tot := Soma(v1); v será alocado de forma similar a uma iável local (na ativação do módulo).
74 PARÂMETROS E ARGUMENTOS Acrescentando um parâmetro type Vetor = array[1..100] of integer; v1,v2:vetor; function Soma(v:Vetor ):LongInt; i: byte; s: LongInt; s := 0; for i = 1 to 100 do s := s + v[i]; Soma := S; tot := Soma(v1); v será alocado de forma similar a uma iável local (na ativação do módulo). Em seguida, v receberá uma cópia de v1.
75 PARÂMETROS E ARGUMENTOS Acrescentando um parâmetro type Vetor = array[1..100] of integer; v1,v2:vetor; function Soma(v:Vetor ):LongInt; i: byte; s: LongInt; s := 0; for i = 1 to 100 do s := s + v[i]; Soma := S; tot := Soma(v1); v será alocado de forma similar a uma iável local (na ativação do módulo). Em seguida, v receberá uma cópia de v1. Assim, o valor retornado será a soma dos valores de v1 (v é apenas um suporte
76 PARÂMETROS E ARGUMENTOS Acrescentando um parâmetro type Vetor = array[1..100] of integer; v1,v2:vetor; function Soma(v:Vetor ):LongInt; i: byte; s: LongInt; s := 0; for i = 1 to 100 do s := s + v[i]; Soma := S; tot := Soma(v1); Na chamada foi passado v1, assim como poderia ter sido passado v2, ou outro vetor qualquer de mesmo tipo.
77 PARÂMETROS E ARGUMENTOS Acrescentando um parâmetro type Vetor = array[1..100] of integer; v1,v2:vetor; function Soma(v:Vetor ):LongInt; i: byte; s: LongInt; s := 0; for i = 1 to 100 do s := s + v[i]; Soma := S; tot := Soma(v1); Na chamada foi passado v1, assim como poderia ter sido passado v2, ou outro vetor qualquer de mesmo tipo. Isso amplia a utilidade da função. Ele se tornou mais amplamente aplicável!
78 PARÂMETROS E ARGUMENTOS Acrescentando um novo parâmetro type Vetor = array[1..100] of integer; v1,v2:vetor; tam: byte; function Soma(v:Vetor,n:byte):LongInt; i: byte; s: LongInt; s := 0; for i = 1 to n do s := s + v[i]; Soma := S; tot := Soma(v1,tam);
79 PARÂMETROS E ARGUMENTOS Acrescentando um novo parâmetro type Vetor = array[1..100] of integer; v1,v2:vetor; tam: byte; function Soma(v:Vetor,n:byte):LongInt; i: byte; s: LongInt; s := 0; for i = 1 to n do s := s + v[i]; Soma := S; tot := Soma(v1,tam); Um novo parâmetro (n) determinará até onde a soma deverá ser feita
80 PARÂMETROS E ARGUMENTOS Acrescentando um novo parâmetro type Vetor = array[1..100] of integer; v1,v2:vetor; tam: byte; function Soma(v:Vetor,n:byte):LongInt; i: byte; s: LongInt; s := 0; for i = 1 to n do s := s + v[i]; Soma := S; tot := Soma(v1,tam); Um novo parâmetro (n) determinará até onde a soma deverá ser feita Isso confere maior flexibilidade ainda à função!
81 PARÂMETROS E ARGUMENTOS Acrescentando um novo parâmetro type Vetor = array[1..100] of integer; v1,v2:vetor; tam: byte; function Soma(v:Vetor,n:byte):LongInt; i: byte; s: LongInt; s := 0; for i = 1 to n do s := s + v[i]; Soma := S; tot := Soma(v1,tam); assim, parâmetros são fundamentais para a comunicação entre módulos, com aumento significativo de sua aplicabilidade!!
82 PARÂMETROS FORMAIS, REAIS E ARGUMENTOS Argumento é o valor que será passado para o módulo Parâmetro real é uma expressão que produzirá o argumento. Parâmetro formal é um identificador pelo qual o módulo terá acesso ao argumento.
83 PARÂMETROS FORMAIS, REAIS E ARGUMENTOS Considere o exemplo n1,n2,dbr: byte; function Dobro(n:byte):byte; Dobro := 2 * n; n1:= 2; n2:= 3; dbr := Dobro(n1+n2);
84 PARÂMETROS FORMAIS, REAIS E ARGUMENTOS Considere o exemplo n1,n2,dbr: byte; function Dobro(n:byte):byte; Dobro := 2 * n; n1:= 2; n2:= 3; dbr := Dobro(n1+n2); A expressão n1+n2 constitui o parâmetro real
85 PARÂMETROS FORMAIS, REAIS E ARGUMENTOS Considere o exemplo n1,n2,dbr: byte; function Dobro(n:byte):byte; Dobro := 2 * n; n1:= 2; n2:= 3; dbr := Dobro(n1+n2); A expressão n1+n2 constitui o parâmetro real O valor produzido e que será efetivamente passado (5) é o argumento.
86 PARÂMETROS FORMAIS, REAIS E ARGUMENTOS Considere o exemplo n1,n2,dbr: byte; function Dobro(n:byte):byte; Dobro := 2 * n; n1:= 2; n2:= 3; dbr := Dobro(n1+n2); A expressão n1+n2 constitui o parâmetro real O valor produzido e que será efetivamente passado (5) é o argumento. n é o parâmetro formal: um suporte para o acesso ao argumento.
87 PARÂMETROS FORMAIS, REAIS E ARGUMENTOS Considere o exemplo n1,n2,dbr: byte; function Dobro(n:byte):byte; Dobro := 2 * n; n1:= 2; n2:= 3; dbr := Dobro(n1+n2); OBS: deve haver correspondência entre os parâmetros formais e reais quanto a: número tipo de dados posição entre eles
88 PARÂMETROS FORMAIS, REAIS E ARGUMENTOS Considere o exemplo n1,n2,dbr: byte; function Dobro(n:byte):byte; Dobro := 2 * n; n1:= 2; n2:= 3; dbr := Dobro(n1+n2); OBS: deve haver correspondência entre os parâmetros formais e reais quanto a: número tipo de dados posição entre eles Observe que n1+n2 é apenas um parâmetro (uma única expressão), embora possua duas iáveis.
89 TIPOS DE PASSAGEM DE PARÂMETRO Por valor: é a forma de passagem presente nos exemplos já apresentados:
90 TIPOS DE PASSAGEM DE PARÂMETRO Por valor: é a forma de passagem presente nos exemplos já apresentados: - o argumento é copiado no parâmetro formal.
91 TIPOS DE PASSAGEM DE PARÂMETRO Por valor: é a forma de passagem presente nos exemplos já apresentados: - o argumento é copiado no parâmetro formal. - eventuais alterações internas no conteúdo do parâmetro formal (apenas uma cópia) não acarretarão qualquer mudança de valor no parâmetro real.
92 TIPOS DE PASSAGEM DE PARÂMETRO Por referência: o parâmetro formal é uma referência para o argumento. assim, todas as alterações de conteúdo via parâmetro formal, na realidade surtirão efeito diretamente no argumento.
93 TIPOS DE PASSAGEM DE PARÂMETRO Exemplo: x: byte; Procedure Dobrar( n:byte):byte; n := 2 * n; x := 2; Dobrar(x);
94 TIPOS DE PASSAGEM DE PARÂMETRO Exemplo: x: byte; Procedure Dobrar( n:byte):byte; n := 2 * n; x := 2; Dobrar(x); O termo na declaração do parâmetro, designa passagem por referência
95 TIPOS DE PASSAGEM DE PARÂMETRO Exemplo: x: byte; Procedure Dobrar( n:byte):byte; n := 2 * n; x := 2; Dobrar(x); SIMULANDO x
96 TIPOS DE PASSAGEM DE PARÂMETRO Exemplo: x: byte; Procedure Dobrar( n:byte):byte; n := 2 * n; x := 2; Dobrar(x); SIMULANDO x
97 TIPOS DE PASSAGEM DE PARÂMETRO Exemplo: x: byte; Procedure Dobrar( n:byte):byte; n := 2 * n; x := 2; Dobrar(x); SIMULANDO x 2
98 TIPOS DE PASSAGEM DE PARÂMETRO Exemplo: x: byte; Procedure Dobrar( n:byte):byte; n := 2 * n; x := 2; Dobrar(x); SIMULANDO n x 2
99 TIPOS DE PASSAGEM DE PARÂMETRO Exemplo: x: byte; Procedure Dobrar( n:byte):byte; n := 2 * n; x := 2; Dobrar(x); n não guarda uma cópia de x, mas é uma (nova) forma de referenciar o objeto identificado por x SIMULANDO n x 2
100 TIPOS DE PASSAGEM DE PARÂMETRO Exemplo: x: byte; Procedure Dobrar( n:byte):byte; n := 2 * n; x := 2; Dobrar(x); SIMULANDO n x 2
101 TIPOS DE PASSAGEM DE PARÂMETRO Exemplo: x: byte; Procedure Dobrar( n:byte):byte; n := 2 * n; x := 2; Dobrar(x); SIMULANDO n x 4
102 TIPOS DE PASSAGEM DE PARÂMETRO Exemplo: x: byte; Procedure Dobrar( n:byte):byte; n := 2 * n; x := 2; Dobrar(x); SIMULANDO n x 4
103 OBS: A passagem de parâmetro por referência será necessária sempre que se quiser que ações internas ao módulo (feitas sobre o parâmetro formal) produzam efeitos diretos no argumento (e não em uma cópia).
104 OBS: A passagem de parâmetro por referência será necessária sempre que se quiser que ações internas ao módulo (feitas sobre o parâmetro formal) produzam efeitos diretos no argumento (e não em uma cópia). Ex:... vet: Vetor; procedure OrdenaVetor( v: Vetor); OrdenaVetor(vet);...
105 OBS: A passagem de parâmetro por referência será necessária sempre que se quiser que ações internas ao módulo (feitas sobre o parâmetro formal) produzam efeitos diretos no argumento (e não em uma cópia). Ex:... vet: Vetor; procedure OrdenaVetor( v: Vetor); OrdenaVetor(vet);... o que se pretende é ordenar o vetor vet e não uma cópia (que iria desaparecer com o fim da execução do módulo!)
106 Já neste caso Ex:... vet: Vetor; r: LongInt; function SomaElem(v: Vetor); r := SomaElem(vet);...
107 Já neste caso Ex:... vet: Vetor; r: LongInt; function SomaElem(v: Vetor); r := SomaElem(vet);... Nenhuma alteração precisa ser produzida no conteúdo de vet portanto, a passagem deve ser por valor.
108 Já neste caso Ex:... vet: Vetor; r: LongInt; function SomaElem(v: Vetor); r := SomaElem(vet);... O termo não é empregado Nenhuma alteração precisa ser produzida no conteúdo de vet portanto, a passagem deve ser por valor.
Subprogramação. Subprogramação. Subprogramação. A subprogramação é uma ferramenta que contribui com a tarefa de programar:
Universidade Estadual de Maringá- UEM Centro de Tecnologia - CTC Departamento de Informática - DIN Fundamentos da Computação Prof. Yandre Maldonado- 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br
Leia maisModularização. Prof. Antonio Almeida de Barros Junior
Modularização Prof. Antonio Almeida de Barros Junior 1 Modularização A modularização consiste em decompor um programa em uma série de subprogramas individuais; Trata-se de um método utilizado para facilitar
Leia maisUniversidade Estadual de Maringá- UEM Centro de Tecnologia - CTC Departamento de Informática - DIN Fundamentos da Computação.
Universidade Estadual de Maringá- UEM Centro de Tecnologia - CTC Departamento de Informática - DIN Fundamentos da Computação Subprogramação Prof. Yandre Maldonado- 1 Prof. Yandre Maldonado e Gomes da Costa
Leia maisp A modularização consiste num método utilizado para facilitar a construção de grandes programas;
Modularização 1 Modularização p A modularização consiste num método utilizado para facilitar a construção de grandes programas; p A idéia é dividir grandes programas em pequenas etapas, que são os módulos
Leia maisMódulos ou Subrotinas: PARTE II. Criando seus próprios módulos
Módulos ou Subrotinas: PARTE II Criando seus próprios módulos Objetivos da Aula Compreender a necessidade e a importância de modularizar Aprender a criar e utilizar (chamar) seus próprios módulos Refletindo...
Leia maisPascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string
Pascal -Cabeçalho do programa Áreas do programa -Área de declarações -Corpo do programa - label - const - type - var - procedure - function - integer - real - byte - boolean - char - string Program
Leia maisMódulos ou Subrotinas: PARTE II. Criando seus próprios módulos
Módulos ou Subrotinas: PARTE II Criando seus próprios módulos Objetivos da Aula Compreender a necessidade e a importância de modularizar Aprender a criar e utilizar (chamar) seus próprios módulos Refletindo...
Leia maisexatasfepi.com.br CAII Modularização André Luís Duarte "E quem não toma a sua cruz, e não segue após mim, não é digno de mim.
exatasfepi.com.br CAII Modularização André Luís Duarte "E quem não toma a sua cruz, e não segue após mim, não é digno de mim." Mateus 10:38 Modularizando Algoritmos Decomposição de problemas Módulos ou
Leia maisSumário. 1.1 Variáveis Globais e Locais Passagem de Parâmetro (por valor por referência) 1
Sumário Sobre as Autoras ix Introdução xi 1 Sub-rotinas 1 1.1 Variáveis Globais e Locais 1 1.2 Passagem de Parâmetro (por valor por referência) 1 2 Vetores e Matrizes 7 2.1 Vetores 7 2.2 Matrizes 8 2.2.1
Leia maisINTRODUÇÃO À LINGUAGEM PASCAL PREFÁCIO
INTRODUÇÃO À LINGUAGEM PASCAL CESAR BEZERRA TEIXEIRA,MSC PREFÁCIO A linguagem Pascal foi criada pelo Prof Niklaus Wirth na universidade de Zurich, com o propósito de ensinar os conceitos de uma linguagem
Leia maisProgramação II. Aula 1
Programação II Aula 1 Ponteiros Variáveis Variáveis estáticas Variáveis dinâmicas Podem ser criadas e destruídas durante a execução de um programa. Declaração -> Indireta Vinculação -> Por meio de ponteiros
Leia maisParadigmas de Linguagens de Programação. Subprogramas
Cristiano Lehrer Características Gerais dos Cada subprograma tem um único ponto de entrada Toda unidade de programa chamadora é suspensa durante a execução do programa chamado, o que implica na existência
Leia maisIntrodução à Programação Aula 09. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Introdução à Programação Aula 09 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação A linguagem C, como qualquer outra linguagem de programação, permite
Leia maisAlgoritmos e Programação
Algoritmos e Programação Aula 9 Subalgoritmos, funções e passagem de parâmetros Profa. Marina Gomes marinagomes@unipampa.edu.br 22/06/2017 Engenharia de Computação - Unipampa 1 Modularização Facilita a
Leia maisSubprogramação. Leonardo Gresta Paulino Murta.
Subprogramação Leonardo Gresta Paulino Murta leomurta@ic.uff.br Aula de hoje Estudaremos duas estruturas de encapsulamento Procedimentos Funções Leonardo Murta Subprogramação 2 Retomando: paradigma estruturado
Leia maisAULA 3. Conceitos de Abstração de Dados
AULA 3 Conceitos de Abstração de Dados Introdução Conceito de abstração Tipo Abstrato de Dados DEFINIÇÃO DE ABSTRAÇÃO Ato ou processo de separar qualidades ou propriedades inatas do objeto físico as quais
Leia maisProgramação de Computadores III
Programação de Computadores III Subprogramação: Sub-rotinas e Funções Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.1/tcc-00.157
Leia maisProgramação de Computadores III
Programação de Computadores III Subprogramação: Sub-rotinas e Funções Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.1/tcc-00.157
Leia maisAula 11: Modularização
Aula 11: Modularização Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Modularização Programação de Computadores IV 1 / 37 Agenda 1 Revisão e Contexto
Leia maisPermite modularidade (dividir programa em partes): Facilita a depuração (debug) e portabilidade.
222222222222222222222222222 8 - FUNÇÕES 81 - Características básicas É um trecho independente de código, com objetivos bem definidos Programas em C, geralmente consistem em várias pequenas funções, ao
Leia maisProgramação de Computadores I Procedimentos e Funções PROFESSORA CINTIA CAETANO
Programação de Computadores I Procedimentos e Funções PROFESSORA CINTIA CAETANO Introdução Dividir o programa em subprogramas é útil para deixar mais fácil de depurá-lo e de se reutilizar código. Temos
Leia maisProgramação: Vetores
Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia
Leia maisCompiladores. Gerência de Memória
Compiladores Gerência de Memória Cristiano Lehrer, M.Sc. Atividades do Compilador Arquivo de origem Arquivo de destino Análise Otimização Geração de Código Intermediário Geração de Código Final Síntese
Leia maisLinguagem Pascal. Prof. Antonio Almeida de Barros Junior
Linguagem Pascal Prof. Antonio Almeida de Barros Junior 1 Linguagem Pascal Criada para ser uma ferramenta educacional (Década de 70); Prof. Niklaus Wirth (Universidade de Zurique); Blaise Pascal (Matemático
Leia maisLógica de Programação e Algoritmos com exemplos na linguagem JAVA
Lógica de Programação e Algoritmos com exemplos na linguagem JAVA Cap. 5 Programação Estruturada: Funções Conteúdo: 5.1 Programação estruturada ou modular... 66 5.2 Funções... 67 5.3 Passagem de parâmetros...
Leia maisFERRAMENTAS BÁSICAS DA PROGRAMAÇÃO
FERRAMENTAS BÁSICAS DA PROGRAMAÇÃO VARIÁVEIS E O COMANDO DE ATRIBUIÇÃO O computador possui uma área específica de armazenamento denominada de memória. O computador possui uma área específica de armazenamento
Leia maisAnálise Semântica e Tratamento de Erros Dependentes de Contexto
Análise Semântica e Tratamento de Erros Dependentes de Contexto O componente Semântico de uma LP Tarefas da Análise Semântica Implementação da Tabelas de Símbolos Ações Semânticas em Compiladores Dirigidos
Leia maisPonteiros em Pascal. Variáveis ponteiros são aquelas que. Declaração em Pascal: var ptint: ^integer; {ponteiro para uma variável inteira } real} 1
Ponteiros em Pascal Variáveis ponteiros são aquelas que guardam o endereço de outra, possibilitando o acesso a seu conteúdo. Declaração em Pascal: var ptint: ^integer; {ponteiro para uma variável inteira
Leia mais3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.7. Funções 3.7.1. Introdução 3.7.2. Uso de
Leia maisUniversidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: ponteiros e alocação dinâmica Prof. Renato Pimentel 1 Ponteiros 2 Prof. Renato Pimentel 1 Ponteiros: introdução Toda a informação
Leia maisSintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)
Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida) Não-terminais são nomes mnemônicos colocados entre parênteses angulares. Vocabulário terminal formado por
Leia maisUniversidade Federal Rural de Pernambuco Departamento de Estatística e Informática Subprogramas
Universidade Federal Rural de Pernambuco Departamento de Estatística e Informática Subprogramas Prof. Gláucya Carreiro Boechat glaucyacboechat@gmail.com Paradigmas de Linguagem de Programação Características
Leia maisAula 05. Modularização Função Subrotina Recursividade
Logo Aula 05 Modularização Função Subrotina Recursividade 2 Modularização A modularização é um processo que aborda os aspectos da decomposição de algoritmos em módulos. Módulo é um grupo de comandos, constituindo
Leia maisProf. Franklin Ramalho
PLP - Armazenamento (Parte I) Prof. Franklin Ramalho Universidade Federal de Campina Grande - UFCG Agenda - Variáveis Primitivas - Variáveis Compostas - Modelo de Armazenamento - Ciclo de vida de variáveis
Leia maisNomes, vinculações e escopos
Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisUNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática
Programação 1 Prof. Osório Aula 09 Pag.: 1 UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática PROGRAMAÇÃO I AULA 09 Disciplina: Linguagem
Leia maisLinguagens de Programação Subprogramas
Linguagens de Programação Subprogramas Andrei Rimsa Álvares Sumário Abstrações Subprogramas Parâmetros Passagem de parâmetros Direção da passagem Mecanismos de passagem Momento da passagem ABSTRAÇÕES Linguagens
Leia maisIntrodução ao Pascal. Computação I. Níveis de Linguagens de Programação. Níveis de Linguagens de Programação. Como um Programa é Executado?
Computação I Introdução ao Pascal Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Linguagens de Programação DEL-Poli/UFRJ Níveis de Linguagens de Programação Linguagens declarativas Linguagens
Leia maisCAP. VI ANÁLISE SEMÂNTICA
CAP. VI ANÁLISE SEMÂNTICA VI.1 Introdução Semântica SIGNIFICADO, SENTIDO LÓGICO, COERÊNCIA,... Diferença entre SINTAXE e SEMÂNTICA Sintaxe : descreve as estruturas de uma linguagem; Semântica : descreve
Leia maisEstruturas de Controle: Nível de Unidades de Programação
Paradigmas de Linguagens I 1 1.5... Estruturas de Controle: Nível de Unidades de Programação As estruturas de controle no nível de unidades de programação são mecanismos de linguagens utilizados para especificar
Leia maisDepartamento de Engenharia Rural Centro de Ciências Agrárias. Programação I
Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I Modularização Recursividade Modularização Seus programas continuam evoluindo e o código está cada vez maior e mais complexo: o
Leia maisModularidade - Funções e Procedimentos
Modularidade - Funções e Procedimentos José Gustavo de Souza Paiva Problema Em diversas situações, é preciso executar uma tarefa específica diversas vezes em um programa, variando apenas os dados de entrada
Leia maisConceitos de Linguagens de Programação
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Conceitos de Linguagens de Programação Aula 03 (rogerio@fct.unesp.br) Aula 3 Variáveis: Nomes
Leia maisCurso Técnico de Mecatrônica 4º Ano 2º Bimestre Introdução à Lógica de Programação
6. Procedimentos, funções, modularização. 6.1. Modularização A modularização consiste num método utilizado para facilitar a construção de grandes programas, através de sua divisão em pequenas etapas, que
Leia maisIntrodução à Ciência da Computação. Sumário. Modularização de Algoritmos. Agradecimentos. Modularização de Algoritmos e Funções em C
Agradecimentos Introdução à Ciência da Computação e Funções em C Parte dos slides a seguir são adaptações dos originais: de A. L. V. Forbellone e H. F. Eberspächer do Prof. Rudinei Goularte Prof. Ricardo
Leia maisENGENHARIA DE PRODUÇÃO ICC 1 TÉCNICAS DE PROGRAMAÇÃO
ENGENHARIA DE PRODUÇÃO ICC 1 TÉCNICAS DE PROGRAMAÇÃO 1. INTRODUÇÃO O que é um programa? Programa constitui uma seqüência lógica de passos para solução de um problema. Um programa pode ser codificado em
Leia maisFACCAT Sistemas de Informação. Estruturas de Dados
FACCAT Sistemas de Informação Estruturas de Dados Aula 1 http://professores.faccat.br/azambuja (Estrutura de Dados) Definição de variáveis Podemos imaginar uma variável como o local onde se pode colocar
Leia maisMódulo 3 Subprogramas
1 Curso Profissional de Gestão e Programação de Sistemas Informáticos Programação e Sistemas de Informação Módulo 3 Subprogramas Prof. Sandra Pais Soares Conteúdos Conceitos básicos Variáveis: globais
Leia maisMODULARIZAÇÃO - PARTE 1
AULA 27 MODULARIZAÇÃO - PARTE 1 Os algoritmos que temos construído até então são muito simples, pois resolvem problemas simples e apresentam apenas os componentes mais elementares dos algoritmos: constantes,
Leia maisDISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP. 10/03/2017 Prof. Alexandre - ELP1DLP1 / DEE
DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP 1 Objetivos da Aula: Linguagem VHDL Bibliotecas e Tipos de Dados STD STD_LOGIC_1164 Constantes, Variáveis, Sinais, Arrays, Range Expressões (Operadores) Exemplos
Leia maisDRIVER DA CAD12/32 PARA WINDOWS 95
Código do Documento: S135U01 Revisão: 0 DRIVER DA CAD12/32 PARA WINDOWS 95 1. INTRODUÇÃO VAD32D.VXD é um driver VxD que gerencia o acesso à placa A/D CAD12/32 no sistema operacional Windows 95. 1.1. Escopo
Leia maisFerramenta para Desenvolvimentode Sistemas EmbarcadosUtilizando Linguagem de Alto Nível p.1/25
Universidade Federal do Rio Grande do Sul Escola de Engenharia - Instituto de Informática Graduação em Engenharia de Computação Ferramenta para Desenvolvimento de Sistemas Embarcados Utilizando Linguagem
Leia maisVerificação de Tipo. Unions. Verificação de tipo estática. Verificação de tipo dinâmica
Verificação de Tipo Atividade que certifica que os operandos de um operador são de tipos compatíveis. São considerados operadores e operandos: operadores usuais (aritméticos, relacionais, etc) subprogramas
Leia maisInstituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I
LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I Prof. Bruno E. G. Gomes Uma variável em um algoritmo pode ser vista como uma gaveta. A declaração de uma variável reserva uma gaveta (posição) de um certo
Leia maisCapítulo 5. Nomes, Vinculações e Escopos
Capítulo 5 Nomes, Vinculações e Escopos Tópicos do Capítulo 5 Introdução Nomes Variáveis O conceito de vinculação Escopo Escopo e tempo de vida Ambientes de referenciamento Constantes nomeadas Introdução
Leia maisNomes, vinculações e escopos
Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Leia maisConceitos de Linguagens de Programação
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Conceitos de Linguagens de Programação Aula 06 (rogerio@fct.unesp.br) Aula 6 Subprogramas
Leia maisModularidade - Fun ções e Procedimentos
Modularidade - Fun ções e Procedimentos José Gustavo de Souza Paiva Problema Em diversas situa ções, é preciso executar uma tarefa específica diversas vezes em um programa, variando apenas os dados de
Leia maisEstrutura de Dados e Lógica de Programação. Cátia Alves Marcelo Nunes 102 h/a 17/08/2015 a 12/12/2015
Curso / Módulo Técnico em Informática Módulo I Componente Curricular Estrutura de Dados e Lógica de Programação Professora Formadora Tutores Carga Horária Período Lucélia Oliveira Cátia Alves Marcelo Nunes
Leia mais1. Revisão de Vetores, Ponteiros, Funções e Estruturas em C
Introdução à Computação II 5952011 1. Revisão de Vetores, Ponteiros, Funções e Estruturas em C Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 1.1. Revisão
Leia maisFUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara
Universidade do Estado de Minas Gerais - UEMG Curso de Engenharia da Computação FUNÇÕES EM C 1 Material adaptado da profa Silvana Maria Affonso de Lara ROTEIRO DA AULA Definição de Função Argumentos, retornos
Leia maisGerenciamento de Memória
Gerenciamento de Memória Prof. Clodoaldo Ap. Moraes Lima 1 Segmentação Objetivo Melhorar o aspecto de localidade de referência em sistemas de memória virtual Em sistema paginado, os itens que são transferidos
Leia maisSubalgoritmos - motivação
Algoritmos e Técnicas - Subalgoritmos - Subalgoritmos - motivação Sempre é possível dividir problemas grandes e complicados em problemas menores e de solução mais simples. A decomposição de um problema
Leia maisPonteiros de Variáveis
Ponteiros de Variáveis C++ permite o armazenamento e a manipulação de valores de endereços de memória. Para cada tipo existente, há um tipo ponteirocapaz de armazenar endereços de memória em que existem
Leia maisSub-rotinas em C. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto
Sub-rotinas em C Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto Agenda Sub-rotinas: Função e Procedimentos A função main Variáveis globais e locais Escopo de variáveis Passagem
Leia maisLinguagem de Programação
Linguagem de Programação Aula 7 Modularização Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Técnico em Informática Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno Dividir
Leia maisAula 10 Modularização Cleverton Hentz
Aula 10 Modularização Cleverton Hentz Sumário de Aula Introdução Funções Exemplos 2 Introdução Na resolução de problemas maiores e mais complicados a forma atual de criação dos algoritmos não é tão boa:
Leia maisComputação I. Prof. Miguel Elias Mitre Campista.
Computação I Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Linguagens de Programação DEL-Poli/UFRJ Introdução ao Pascal Níveis de Linguagens de Programação Linguagens declarativas Linguagens
Leia maisFUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres
FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5 Cristina Boeres Introdução! Diferença de velocidade entre Processador e MP O processador executa uma operação rapidamente e fica em
Leia maisDRIVER LYNX-IO ACESSO A I/O NO WINDOWS NT 4.0
Código do Documento: S139U01 Revisão: 0 DRIVER LYNX-IO ACESSO A I/O NO WINDOWS NT 4.0 1. INTRODUÇÃO No Windows NT, o acesso ao I/O do microcomputador pelo programa aplicativo é bloqueado pelo sistema operacional.
Leia maisLinguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;
Linguagem Pascal Prof. Sérgio Rodrigues Introdução Algoritmo É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa; Programa é a formalização de um algoritmo
Leia maisLINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.
LINGUAGEM C: FUNÇÕES Prof. André Backes FUNÇÃO Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. printf(): função que escreve na tela scanf(): função que lê o teclado
Leia maisSubprogramas. (ou Sub-rotinas) em C: Procedimentos e Funções. 2015/1 Programação Básica de Computadores (INF 09325)
Subprogramas (ou Sub-rotinas) em C: Procedimentos e Funções 2015/1 Programação Básica de Computadores (INF 09325) Archimedes Detoni www.inf.ufes.br/~archimedesdetoni archimedesdetoni@inf.ufes.br Programa
Leia maisParadigmas de Linguagens de Programação. Nomes, Vinculações, Verificação de Tipos e Escopos
Nomes, Vinculações, Verificação de Tipos e Escopos Cristiano Lehrer Nomes (1/6) Um nome é uma string de caracteres usada para identificar alguma entidade de um programa. O termo identificador é utilizado
Leia maisTexto retirado e adaptado da apostila Curso de Linguagem Pascal, disponível no site (autor: desconhecido).
Texto retirado e adaptado da apostila Curso de Linguagem Pascal, disponível no site http://www.portaldaprogramacao.com (autor: desconhecido). Leitura indicada: Notas de Aula de Algoritmos e Programação
Leia maisSub Rotinas. Estrutura de Dados. Prof. Kleber Rezende
Sub Rotinas Estrutura de Dados Prof. Kleber Rezende Considerações Iniciais Uma dos métodos mais comuns e amplamente utilizados em programação de computadores é o Top-Down. Nesta abordagem um problema é
Leia maisEstruturas de Dados. Revisão de Funções e Recursão. Agradecimentos
Estruturas de Dados Revisão de Funções e Recursão Prof. Ricardo J. G. B. Campello Agradecimentos Parte dos slides a seguir são adaptações dos originais em Pascal gentilmente cedidos pelo Prof. Rudinei
Leia maisO AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO. Prof. Angelo Augusto Frozza, M.Sc.
O AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO Prof. Angelo Augusto Frozza, M.Sc. ROTEIRO 1. A linguagem de programação Object Pascal a) Palavras reservadas b) Tipos de dados, variáveis e constantes
Leia maisModulo 12: alocação dinâmica de memória
PROGRAMAÇÃO DE COMPUTADORES V - TCC- 00.323 Modulo 12: alocação dinâmica de memória Aura - Erick aconci@ic.uff.br, erickr@id.uff.br Roteiro porque e como utilizar a alocação dinâmica funções: malloc (
Leia maisfacilita o trabalho em equipe, com diferentes grupos trabalhando em cada módulo independente.
Estruturação do Programa Queremos organizar um programa de forma a: dividi-lo em partes que realizem tarefas específicas, resumindo um problema complexo a vários problemas mais simples simplifica a elaboração
Leia maisProgramação I Ponteiros e alocação dinâmica de memória. Prof. Carlos Alberto
Programação I Ponteiros e alocação dinâmica de memória Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Ponteiros O ponteiro é um tipo de dado como int, char ou float; Variáveis
Leia mais3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.2. Estrutura de Programas e Representação
Leia maisAlocação Dinâmica em C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Alocação Dinâmica em C Profa Rosana Braga Adaptado de material preparado pela profa Silvana Maria Affonso de Lara
Leia maisSobre Variáveis, Ponteiros, Arrays, Parâmetros e Alocação de Memória
Sobre Variáveis, Ponteiros, Arrays, Parâmetros e Alocação de Memória Queridos, Este texto ainda não está terminado. Ainda vou mudar alguns trechos e ajeitar a formatação, principalmente dos exemplos. Ainda
Leia maisLógica de Programação e Algoritmos. Prof. André Y. Kusumoto
Lógica de Programação e Algoritmos Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Procedimentos e Funções Para construirmos grandes programas, necessitamos fazer uso da técnica de modularização.
Leia mais<identificador>[<tamanho>]: <tipo>;
Vetores e Constantes Imagine uma situação na qual fosse necessário armazenar 100 valores para processamento. Por exemplo, pode ser necessário armazenar as notas de 100 provas de uma turma de alunos. Uma
Leia maisALGORITMOS I. Procedimentos e Funções
Procedimentos e Funções Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 1 MÓDULOS São blocos de instruções que realizam tarefas específicas. Carregado uma vez e pode ser executado quantas vezes
Leia maisDAS5102 Fundamentos da Estrutura da Informação
Ponteiros e Funções Funções ou sub-rotinas são parcelas de código que podem ser invocadas a partir do programa principal ou até mesmo por outras sub-rotinas. Elas têm como objetivo a execução de uma tarefa
Leia maisLinguagem C: Subprogramação
Prof. Paulo R. S. L. Coelho paulo@facom.ufu.br Faculdade de Computação Universidade Federal de Uberlândia GEQ007 Subprogramação Organização 1 Subprogramação 2 3 Passagem por Valor Passagem por Referência
Leia maisLinguagem e Técnicas de Programação
Linguagem C Função Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 07 Função 1 Conceitos As técnicas de programação dizem que, sempre que possível, evite códigos extensos, separando o mesmo em funções,
Leia maisAdriano Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ
C Funções Adriano Cruz adriano@nce.ufrj.br 21 de julho de 2017 Instituto de Matemática Departamento de Ciência da Computação UFRJ 1 Resumo Seção Introdução Forma Geral Protótipos de Funções Escopo de Variáveis
Leia maisFig. 1: Ilustração de um exemplo de Modularização de um guindaste em suas partes Fonte: Internet
7. Modularização de Algoritmos No momento do desenvolvimento de um programa de computador, o programador terá de planejar a modularização de seu programa para que este fique mais transparente em suas estrutura
Leia maisLinguagem de programação: Pascal
Aula 04 Linguagem de programação: Pascal Prof. Tecgº Flávio Murilo 26/03/2013 1 Pascal Introdução Pascal é uma linguagem de programação estruturada, criada em 1970 pelo suíço Niklaus Wirth, dando este
Leia maisDetalhes da geração de código Usando a técnica ad hoc, amarrada aos procedimentos sintáticos, igual à análise semântica
Geração de Código para uma Máquina Hipotética a Pilha Detalhes da geração de código Usando a técnica ad hoc, amarrada aos procedimentos sintáticos, igual à análise semântica É composta de 3 Regiões MEPA
Leia maisSSC INTRODUÇÃO À COMPUTAÇÃO PARA ENGENHARIA AMBIENTAL MODULARIZAÇÃO. Profa. Dra. Milena Guessi Margarido
SSC 301 - INTRODUÇÃO À COMPUTAÇÃO PARA ENGENHARIA AMBIENTAL MODULARIZAÇÃO Profa. Dra. Milena Guessi Margarido (milena@icmc.usp.br) MODULARIZAÇÃO Um problema complexo é melhor abordado se for dividido primeiramente
Leia maisExplicação do programa:
Disciplina: Introdução à Programação. IPRJ/UERJ Professora: Sílvia Mara da Costa Campos Victer Índice: Aula10 Sub-rotina: Em algoritmos Em C Sub-rotinas subprograma - programação modularizada Definição:
Leia maisUniversidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: funções Prof. Renato Pimentel 1 Subprogramas Subprograma: programa que auxilia o programa principal na realização de uma determinada
Leia maisGFM015 Introdução à Computação. Plano de Curso e Introdução. Ilmério Reis da Silva UFU/FACOM
GFM015 Introdução à Computação Plano de Curso e Introdução Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/ic UFU/FACOM Plano de Curso Ementa Noções básicas sobre os componentes de
Leia maisModularização. Exercício 28
Exercício 28 Construa um algoritmo que seja capaz de efetuar uma multiplicação entre valores naturais quaisquer e também seja capaz de calcular o fatorial de um número natural qualquer. Tanto no cálculo
Leia mais