Buscar

Slides de Aula - Parte III

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 10 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 10 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 10 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

10/19/2014
1
ESTRUTURA DE REPETIÇÃO
COM VARIÁVEL DE CONTROLEA
U
LA
 8
173ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 174
ESTRUTURAS DE REPETIÇÃO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
175
Uma estrutura de repetição é utilizada quando um trecho
do algoritmo ou até mesmo o algoritmo inteiro precisa
ser repetido. O número de repetições pode ser fixo ou
estar atrelado a uma condição. Assim, existem estruturas
para tais situações, descritas a seguir.
ESTRUTURAS DE REPETIÇÃO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 176
Essa estrutura de repetição é utilizada quando se sabe o
número de vezes que um trecho do algoritmo deve ser
repetido. O formato geral dessa estrutura é:
para i valor_inicial até valor_final faça [passo n]
início
comando 1
comando 2
comando n
fim
ESTRUTURAS DE REPETIÇÃO
Com variável de controle
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
177
O comando 1, o comando 2 e o comando n serão
executados utilizando a variável i como controle, e seu
conteúdo vai variar do valor inicial até o valor final.
A informação do passo está entre colchetes porque é
opcional. O passo indica como será a variação da variável
de controle.
Por exemplo, quando for indicado passo 2 , a variável de
controle será aumentada em 2 unidades a cada iteração
até atingir o valor final. Quando a informação do passo for
suprimida, isso significa que o incremento ou o
decremento da variável de controle será de 1 unidade.
ESTRUTURAS DE REPETIÇÃO
Com variável de controle
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 178
Quando houver apenas um comando a ser repetido, os
marcadores de bloco início e fim poderão ser suprimidos.
O comando escreva i será executado dez vezes, ou seja,
para i variando de 1 a 10. Assim, os valores de I serão: 1,
2, 3, 4, 5, 6, 7, 8, 9 e 10.
para i1 até 10 faça passo 1
escreva i
ESTRUTURAS DE REPETIÇÃO
Com variável de controle
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
10/19/2014
2
179
O comando escreva j será executado cinco vezes, ou seja,
para J variando de 1 a 10, de 2 em 2. Assim, os valores de
j serão: 1, 3, 5, 7 e 9.
para j 1 até 9 faça passo 2
escreva j
O comando escreva i será executado seis vezes, ou seja,
para i variando de 10 a 5. Assim, os valores de i serão: 10,
9, 8, 7, 6 e 5.
para i 10 até 5 faça passo -1
escreva i
ESTRUTURAS DE REPETIÇÃO
Com variável de controle
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 180
O comando escreva j será executado oito vezes, ou seja,
para j variando de 15 a 1, de 2 em 2. Assim, os valores de
j serão: 15, 13, 11, 9, 7, 5, 3 e 1.
para j 15 até 1 faça passo -2
escreva j
ESTRUTURAS DE REPETIÇÃO
Com variável de controle
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
181
Em linguagem C++ a estrutura segue o seguinte formato
for (i = valor inicial ; condição ; incremento ou
decremento de i)
{
comandos;
}
ESTRUTURAS DE REPETIÇÃO
Com variável de controle
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
1 2 3
182
A primeira parte atribui um valor inicial à variável i, que
tem como função controlar o número necessário de
repetições.
A segunda parte corresponde a uma expressão relacional
que, quando assumir valor falso, determinará o fim da
repetição.
A terceira parte é responsável por alterar o valor da
variável i (incremento ou decremento) com o objetivo de,
em algum momento, fazer com que a condição assuma
valor falso.
ESTRUTURAS DE REPETIÇÃO
Com variável de controle
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
183
Caso seja necessário a repetição de apenas um comando,
o compilador entenderá que a estrutura de repetição
terminará quando for encontrado o primeiro (ponto-e-
vírgula).
for (a=1;a<=20;a++)
cout<<“O valor de a é: “<< a;
ESTRUTURAS DE REPETIÇÃO
Com variável de controle
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 184
No exemplo anterior, à variável a é atribuído inicialmente
o valor 1 e depois vai sendo incrementada em uma
unidade. A cada incremento, o comando cout é
executado. Esse processo se repete até o valor da variável
a se tornar maior que 20 (quando a condição a <= 20
assumirá valor falso).
ESTRUTURAS DE REPETIÇÃO
Com variável de controle
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
10/19/2014
3
185
Se for necessário a repetição de mais de um comando, a
estrutura de repetição começará quando for encontrado
o símbolo { e terminará quando for encontrado o símbolo
}
Exemplo:
for (a=15;a>=1;a=a-2) {
cout<<"digite um número: “;
cin>>x;
}
ESTRUTURAS DE REPETIÇÃO
Com variável de controle
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 186
No exemplo anterior, a variável a é inicializada com o
valor 15 e vai sendo decrementada em duas unidades. A
cada decremento, o bloco de comando que está entre
chaves { ... } é executado. Esse processo se repete até o
valor da variável a se tornar menor que 1 (quando a
condição a>=i assumir valor falso).
ESTRUTURAS DE REPETIÇÃO
Com variável de controle
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
187
for (i = 1; i <=5; i++)
cout<<“O valor de i: “<< i;
ou
for (i = 1; i <=5; i=i+1)
cout<<“O valor de i: ”<< i;
Nos trechos de programa acima, que expressam a mesma
coisa, o comando cout será executado cinco vezes, ou
seja, para i valendo 1, 2, 3, 4 e 5.
ESTRUTURAS DE REPETIÇÃO
Com variável de controle
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 188
for (i = 10; i >= 1; i--)
cout<<“O valor de i: ”<< i;
ou
for (i = 10; i >= 1; i=i-1)
cout<<“O valor de i: ”<< i;
Nos trechos de programa acima, que são exatamente a
mesma coisa, o comando cout será executado dez vezes,
ou seja, para i valendo 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.
ESTRUTURAS DE REPETIÇÃO
Com variável de controle
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
189
for (i = 0; i <= 10; i=i+2)
cout<<“O valor de i: ”<< i;
No trecho de programa acima, o comando cout será
executado seis vezes, ou seja, para i valendo 0, 2, 4, 6,
8 e 10.
for (i = 100; i >= 0; i=i-20)
cout<<“O valor de i: ”<<i;
No trecho de programa acima, o comando cout será
executado seis vezes, ou seja, para i valendo 100, 80,
60, 40, 20 e 0.
ESTRUTURAS DE REPETIÇÃO
Com variável de controle
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 190
Alterar a variável de controle de 1 a 100 em incrementos
de 1.
for ( int i= 1; i <= 100; i++ )
Alterar a variável de controle de 100 para baixo até 1 em
incrementos de -1 (isto é, decrementos de 1).
for ( int i = 100; i >= 1; i-- )
Alterar a variável de controle de 7 a 77 em passos de 7.
for ( int i = 7; i <= 77; i += 7 )
ESTRUTURAS DE REPETIÇÃO
Com variável de controle
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
10/19/2014
4
191
Alterar a variável de controle de 20 para baixo até 2 em
passos de -2.
for ( int i = 20; i >= 2; i -= 2 )
Alterar a variável de controle sobre a seguinte sequência
de valores: 2, 5, 8,11,14,17, 20.
for ( int i = 2; i <= 20; i +=3 )
Alterar a variável de controle sobre a seguinte sequência
de valores: 99, 88, 77, 66, 55, 44, 33, 22, 11, 0.
for ( int i = 99; i >= .0; i -= 11 )
ESTRUTURAS DE REPETIÇÃO
Com variável de controle
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
ESTRUTURA DE REPETIÇÃO
COM TESTE NO INÍCIO E COM TESTE 
NO FINAL
A
U
LA
 9
192ENGENHARIAS – LÓGICA DEPROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
193
Estrutura de repetição para número indefinido de
repetições e teste no início (estrutura enquanto).
Essa estrutura de repetição é utilizada quando não se
sabe o número de vezes que um trecho do algoritmo
deve ser repetido, embora também possa ser utilizada
quando se conhece esse número.
Essa estrutura baseia-se na análise de uma condição. A
repetição será feita enquanto a condição mostrar-se
verdadeira.
ESTRUTURA DE REPETIÇÃO
Com teste no início
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 194
Existem situações em que o teste condicional da
estrutura de repetição, que fica no início, resulta em um
valor falso logo na primeira comparação. Nesses casos, os
comandos de dentro da estrutura de repetição não serão
executados.
enquanto condição faça
comando1
Enquanto a condição for verdadeira, o comando 1 será
executado.
ESTRUTURA DE REPETIÇÃO
Com teste no início
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
195
enquanto condição faça
início
comando1
comando2
comando3
fim
Enquanto a condição for verdadeira, o comando 1, o
comando 2 e o comando 3 serão executados.
ESTRUTURA DE REPETIÇÃO
Com teste no início
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 196
x1
y5
enquanto x < y faça
início
xx + 2
yy + 1
fim
ESTRUTURA DE REPETIÇÃO
Com teste no início
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
Neste trecho do algoritmo,
os comandos que estão
dentro da estrutura de
repetição serão repetidos
quatro vezes.
10/19/2014
5
197
x1
y1
enquanto x <= 5 faça
início
yy * x
x x + 1
fim
ESTRUTURA DE REPETIÇÃO
Com teste no início
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
Neste trecho do algoritmo, os
comandos que se localizam na
estrutura de repetição serão
repetidos cinco vezes. Nesse
exemplo, a estrutura ENQUANTO é
utilizada para repetir o trecho do
algoritmo um número definido de
vezes.
198
ESTRUTURA DE REPETIÇÃO
Com teste no início
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
A Trata-se de uma estrutura de repetição que pode ser
utilizada quando o número de repetições necessárias não
é fixo. Os comandos serão repetidos até a condição
assumir o valor falso.
Nesse tipo de estrutura, o teste condicional ocorre no
início. Isto significa que existe a possibilidade da repetição
não ser executada quando a condição assumir valor falso
logo na primeira verificação.
while (condição)
- comando
Enquanto a condição for verdadeira, o comando será
executado.
199
ESTRUTURA DE REPETIÇÃO
Com teste no início
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
while (condição) {
comando1;
comando2;
comando3;
}
Enquanto a condição for verdadeira, os comandos que
estão dentro das chaves serão executados (comando1,
comando2, comando3...).
200
ESTRUTURA DE REPETIÇÃO
Com teste no início
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
x = 0;
while (x != 5) {
cout<<"valor de x - " << x;
x = x + 1;
}
cout<<"valor de x depois que sair da estrutura = “<< x;
No trecho de programa acima, os comandos cout e x = x +
i; serão executados cinco vezes. O teste condicional
avaliará x valendo 0, 1, 2, 3. 4 e 5.
201
ESTRUTURA DE REPETIÇÃO
Com teste no início
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
x = 1;
y= 10;
while (y > x) {
cout<<"valor de y = “<< y;
y= y - 2;
}
cout<<"valor de y depois que sair da estrutura = “<< y;
No trecho de programa acima, os 
comandos cout e y= Y - 2; serão 
executados cinco vezes. O teste 
condicional avaliará Y valendo 10, 
8, 6, 4, 2 e 0.
202
ESTRUTURA DE REPETIÇÃO
Com teste no início
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
x = 1;
y = 1;
while (x < y) {
cout<<"valor de x = “<<x;
x = x + 1;
}
No trecho de programa acima, os comandos cout e x = x +
1, não serão executados, pois com os valores iniciais de x
e y a condição é falsa, logo, não ocorrerá a entrada na
estrutura de repetição para execução de seus comandos.
10/19/2014
6
203
ESTRUTURA DE REPETIÇÃO
Com teste no final
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
Essa estrutura de repetição é utilizada quando não se
sabe o número de vezes que um trecho do algoritmo
deve ser repetido, embora também possa ser utilizada
quando se conhece esse número.
Essa estrutura baseia-se na análise de uma condição. A
repetição será feita até a condição tornar-se verdadeira.
204
ESTRUTURA DE REPETIÇÃO
Com teste no final
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
A diferença entre a estrutura enquanto e a estrutura
repita é que nesta última os comandos serão repetidos
pelo menos uma vez, já que a condição de parada se
encontra no final.
repita
comandos
até condição
205
ESTRUTURA DE REPETIÇÃO
Com teste no final
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
x1
y5
repita
x x + 2
y y + 1
até x >= y
Neste trecho do algoritmo, os
comandos de dentro da estrutura
de repetição serão repetidos quatro
vezes.
206
ESTRUTURA DE REPETIÇÃO
Com teste no final
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
x 1
y 1
repita
y y * x
x x + 1
até x = 6
Neste trecho do algoritmo, os 
comandos que se localizam dentro da 
estrutura de repetição serão 
repetidos cinco vezes. Nesse 
exemplo, a estrutura REPITA é utilizada 
para repetir o trecho do algoritmo 
um número definido de vezes.
207
ESTRUTURA DE REPETIÇÃO
Com teste no final
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
Trata-se de uma estrutura de repetição que pode ser
utilizada quando o número de repetições necessárias não
é fixo. Os comandos serão repetidos até a condição
assumir o valor falso.
Nesse tipo de estrutura, o teste condicional ocorre no
fim. Isso significa que a repetição será executada no
mínimo uma vez, quando todo o bloco for executado uma
vez e, ao final, a condição assumir valor falso.
208
ESTRUTURA DE REPETIÇÃO
Com teste no final
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
do{
comandos;
}while (condição);
Os comandos serão repetidos até que a condição assuma
valor falso.
10/19/2014
7
209
ESTRUTURA DE REPETIÇÃO
Com teste no final
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
x = 0;
do{
cout<< "valor de x = “<<x;
x = x + 1;
}while (x != 5);
cout<<"valor de x depois que sair da estrutura = “<<x;
Os comandos cout e x = x + i; 
serão executados cinco vezes. O 
teste condicional avaliará x 
valendo 0, 1, 2, 3, 4 e 5.
210
ESTRUTURA DE REPETIÇÃO
Com teste no final
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
x = 1;
y= 10;
do{
cout<< "valor de y = “ << y;
y= y - 2;
}while (y > x);
cout<< "valor de y depois que sair da estrutura = “<<y;
Os comandos cout e Y = Y – 2;
serão executados cinco vezes. 
O teste condicional avaliará Y
valendo 10, 8, 6, 4, 2 e 0.
211
Um funcionário de uma empresa recebe aumento salarial
anualmente. Sabe-se que:
Esse funcionário foi contratado em 2005, com salário
inicial de R$ 1.000,00.
Em 2006, ele recebeu aumento de 1,5% sobre seu salário
inicial.
A partir de 2007 (inclusive), os aumentos salariais sempre
corresponderam ao dobro do percentual do ano anterior.
Faça um programa que determine o salário atual desse
funcionário.
EXERCÍCIO RESOLVIDO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco /Joelio Piraciaba 212
algoritmo
declare i, ano_atual, salario numérico
novo_salario, percentual numérico
leia ano_atual
salario  1000
percentual 1,5/100
novo_salario  salario + percentual * salario
para i 2007 até ano_atual faça
início
percentual  2 * percentual
novo_salario  novo_salario + percentual * novo_salario
fim
escreva novo_salario
fim algoritmo
EXERCÍCIO RESOLVIDO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
213
Faça um programa que leia um valor N inteiro e positivo,
calcule e mostre o valor de E, conforme a fórmula a
seguir:
EXERCÍCIO RESOLVIDO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 214
algoritmo
declare n, e, i, j, fat numérico
leia n
e1
para i 1 até n faça
início
fat 1
para j 1 até i faça
início
fat fat * j
fim
ee + 1/fat
fim
escreva e
fim_algoritmo.
EXERCÍCIO RESOLVIDO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
10/19/2014
8
MODULARIZAÇÃO
A
U
LA
 1
0
215ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 216
Uma das técnicas aplicadas na programação estruturada,
é a modularização de programas uma ferramenta para a
elaboração de programas visando, os aspectos de
confiabilidade, legibilidade, manutenibilidade e
flexibilidade, dentre outros.
A modularização é um processo que aborda os aspectos
da decomposição de algoritmos em módulos. Módulo é
um grupo de comandos, constituindo um trecho do
algoritmo, com uma função bem definida e o mais
independente possível em relação ao resto do algoritmo.
MODULARIZAÇÃO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
217
Funções são módulos hierarquicamente subordinados a
um algoritmo, comumente chamado de módulo principal.
Da mesma forma uma função pode conter outras funções
aninhadas. A função é criadas através das suas
declarações em um algoritmo e para serem executadas,
necessitam de ativação por um comando de chamada.
A declaração de função é constituída de um cabeçalho,
que a identifica e contém seu nome e uma lista de
parâmetros formais, e de um corpo que contém
declarações locais e os comandos.
MODULARIZAÇÃO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 218
As funções permitem estruturar o código de uma forma
mais modular, aproveitando as potencialidades da
programação estruturada que a linguagem C++ oferece.
Uma função é um bloco de instruções que é executado
quando é chamada em alguma parte do programa.
As variáveis declaradas em uma função só são acessíveis
na função
MODULARIZAÇÃO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
219
A sintaxe de uma função é a seguinte: <tipo-de-dados>
<id-da-função>( <argumento 1>,<argumento 2>,...) {
<bloco-de-instruções>
}
<tipo-de-dados> – este é o tipo de dados devolvido pela
função;
<id-da-função> – este é o identificador pela qual a função
é conhecida. As regras para definição de um identificador
são as mesmas que para as variáveis;
MODULARIZAÇÃO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 220
<argumento 1>, <argumento 2>,... – estes são os argumentos
da função (o número de argumentos é variável, pode ser
zero). Cada argumento consiste num tipo de dados seguido
do identificador pelo qual esse argumento vai ser
identificado dentro da função (por exemplo int x). Um
argumento é como uma declaração de uma variável dentro
da função. Os argumentos permitem passar parâmetros para
dentro de uma função quando esta é invocada. Os diferentes
parâmetros tem que ser separados pelo operador vírgula (’,’);
<bloco de instruções> – é o corpo da função e tem que estar
sempre delimitado por chavetas({}). É constituído por zero ou
mais instruções.
MODULARIZAÇÃO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
10/19/2014
9
221
#include <iostream>
using namespace std;
int soma ( int n1 , int n2 );
int main ( ){
int a , b , z ;
a=5;
b=3;
z = soma ( a , b ) ;
cout << "Resultado : " << z ;
return 0 ;
}
int soma ( int n1 , int n2 ){
int r ;
r=n1+n2 ;
return r ;
}
MODULARIZAÇÃO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 222
Criação da função
Função tipo NOME (LISTA DE PARÂMETROS FORMAIS)
Declarações dos objetos locais à função
Comandos da função
Fim função
Chamada da função
NOME (LISTA DE PARÂMETROS ATUAIS)
MODULARIZAÇÃO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
223
Como esta função irá retornar um valor, este pode ser
atribuído a alguma variável, contanto que esta seja de
tipo compatível.
A NOME (lista-de-parâmetros-atuais);
Ao terminar a execução dos comandos de uma função, o
fluxo de controle retorna ao comando seguinte àquele
que provocou a chamada.
MODULARIZAÇÃO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 224
Os parâmetros de uma função classificam-se em:
de entrada – são aqueles que têm seus valores
estabelecidos fora da função e não podem ser modificados
dentro dela.
de saída – são aqueles que têm seus valores estabelecidos
dentro da função.
de entrada-saída – são aqueles que têm seus valores
estabelecidos fora da função, mas podem ter seus valores
alterados dentro dela.
MODULARIZAÇÃO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
225
MODULARIZAÇÃO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
FUNÇÕES SEM PARAMETROS COM PARAMETROS
SEM RETORNO
#include<iostream>
void calcular();
int main(){
calcular();
system("pause");
return 0;
}
void calcular(){
int result, x=5;
result=x*x;
cout<<result;
}
#include<iostream>
void calcular(int x);
int main(){
int n=5;
calcular(n);
system("pause");
return 0;
}
void calcular(int x){
int result;
result=x*x;
cout<<result;
}
COM RETORNO
#include<iostream>
int calcular();
int main(){
int resp;
resp=calcular();
cout<<resp;
system("pause"); return 0;
}
int calcular(){
int result, x=5;
result=x*x;
return(result); 
}
#include<iostream>
int calcular(int x);
int main(){
int resp;
resp=calcular(5);
cout<<resp;
system("pause"); return 0;
}
int calcular(int x){
int result;
result=x*x;
return(result); 
}
226
#include <iostream>
void h( int a ){
int x ;
cout<<"Funcao h"<<endl ;
}
void g ( int a ){
int x ;
cout<<"Funcao g"<<endl ;
}
void f ( ){
int x ;
cout<<"Funcao f "<<endl ;
g ( x ) ;
h( x ) ;
}
int main ( ){
f ( ) ;
return 0 ;
}
MODULARIZAÇÃO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
10/19/2014
10
227
A vinculação entre módulos pode ser feita através da
transferência ou passagem de parâmetros, que associam
parâmetros atuais com parâmetros formais.
Dentre os modos de transferência de parâmetros, pode-
se destacar:
a passagem por valor;
passagem por referência.
MODULARIZAÇÃO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 228
Na passagem de parâmetros por valor, as alterações feitas
nos parâmetros formais, dentro da função, não se
refletem nos parâmetros atuais.
O valor do parâmetro atual é copiado no parâmetro
formal, na chamada da função. Assim, quando a
passagem é por valor significa que o parâmetro é de
entrada.
MODULARIZAÇÃO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
229
#include <iostream>
int soma ( int n1 , int n2 ){
int r ;
r=n1+n2 ;
return r ;
}
int main ( ){
int a , b , z ;
a=5;
b=3;
z = soma ( a , b ) ;
cout << "Resultado : " << z ;
return 0;
}
MODULARIZAÇÃO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba

Outros materiais