SlideShare uma empresa Scribd logo
Funções	
  
Escola	
  Secundária	
  Filipa	
  de	
  Vilhena	
  
Programação	
  Estruturada???	
  	
  O	
  que	
  vou	
  ter	
  de	
  saber	
  no	
  final	
  deste	
  módulo	
  …	
  espero	
  eu	
  …	
  
	
  
	
  
§  Blocos	
  de	
  um	
  programa,	
  variáveis	
  locais	
  e	
  globais;	
  
§  Procedimentos	
  e	
  funções;	
  
§  Subprogramas,	
  parâmetros	
  e	
  argumentos;	
  
§  Recursividade;	
  
§  Passagem	
  de	
  argumentos	
  por	
  valor	
  e	
  por	
  referência;	
  
	
  
	
  
Sóóóóóóó???	
  	
  
Agora	
  que	
  já	
  sabem	
  programar	
  em	
  C++	
  …	
  sabem???	
  Hmmmmm…	
  em	
  C++???	
  Mas	
  o	
  que	
  é	
  isso??	
  
	
  
Vamos	
  começar	
  a	
  falar	
  de	
  funções	
  e	
  pode-­‐se	
  começar	
  logo	
  por	
  aquela	
  que	
  é	
  a	
  mais	
  conhecida	
  
das	
  funções	
  e	
  que	
  vocês	
  já	
  tratam	
  por	
  tu,	
  cuidado	
  com	
  as	
  confianças,	
  que	
  é	
  a	
  função	
  …	
  
…	
  int	
  main()	
  ou	
  simplesmente	
  main()	
  …	
  
Que	
  função	
  é	
  esta???	
  Ainda	
  esta	
  pergunta	
  …	
  
É	
  a	
  função	
  principal	
  de	
  um	
  programa	
  em	
  C++	
  e	
  indispensável	
  para	
  o	
  seu	
  funcionamento.	
  
	
  
Mas	
  já	
  utilizou	
  outras	
  funções	
  ainda	
  que	
  camufladas	
  …	
  Como???	
  
Através	
  da	
  directiva	
  #include	
  …	
  
#include<string.h>	
  (manipular	
  strings)	
  à	
  strlen,	
  strcmp,	
  strcopy	
  
#include<math.h>	
  (funções	
  matemáticas)	
  à	
  sqrt,	
  pow,	
  sin,	
  cos,	
  …	
  
#include<iostream>	
  (directavas	
  de	
  input	
  /	
  output)	
  à	
  cin,	
  cout	
  ,…	
  
Mas	
  não	
  existem	
  funções	
  para	
  todas	
  as	
  situações.	
  	
  Podia	
  haver	
  …	
  mas	
  não	
  era	
  a	
  mesma	
  coisa,	
  daí	
  
que	
  o	
  utilizador	
  tenha	
  necessidade	
  de	
  criar	
  as	
  suas	
  próprias	
  funções	
  para	
  situações	
  especificas	
  
…	
  a	
  vantagem	
  é	
  que	
  essas	
  funções	
  podem	
  ser	
  facilmente	
  criadas	
  /	
  utilizadas	
  /	
  partilhadas	
  em	
  
outras	
  situações	
  (programas)	
  semelhantes.	
  	
  
	
  
O	
  que	
  são	
  então	
  funções???	
  
	
  
§  Unidades	
   de	
   código	
   fundamentais	
   com	
   que	
   se	
   escrevem	
   e	
   estruturam	
   os	
   programas	
   	
   de	
  
forma	
   a	
   aproveitar	
   as	
   potencialidades	
   da	
   programação	
   estruturada	
   que	
   a	
   linguagem	
   C++	
  
oferece;	
  
§  	
  São	
  também	
  unidades	
  de	
  código	
  /	
  rotinas,	
  que	
  executam	
  uma	
  sequência	
  de	
  instruções,	
  que	
  
para	
  além	
  disso,	
  podem	
  devolver	
  um	
  valor	
  para	
  o	
  ponto	
  onde	
  são	
  chamadas;	
  
§  	
  De	
  uma	
  forma	
  mais	
  simples,	
  pode-­‐se	
  dizer	
  que	
  é	
  um	
  bloco	
  de	
  instruções	
  que	
  é	
  executado	
  
quando	
  é	
  chamada	
  em	
  alguma	
  parte	
  do	
  programa.	
  
Agora	
  que	
  já	
  sabem	
  o	
  que	
  são	
  funções,	
  uma	
  pergunta	
  se	
  impõe	
  …	
  já	
  acabou???	
  	
  
Oooooops,	
  não	
  é	
  essa…	
  é	
  mais	
  esta:	
  Qual	
  a	
  sintaxe	
  de	
  uma	
  função	
  e	
  como	
  funciona???	
  
	
  
	
  <tipo_dados>	
  <nome_função>(tipo_arg	
  <arg1>,	
  tipo_arg	
  <arg2>,	
  …)	
  {	
  
	
   	
  <conjunto_de_instruções>	
  
	
  }	
  
§  	
  <tipo_dados>	
  –	
  tipo	
  de	
  dados	
  devolvido	
  pela	
  função,	
  que	
  podem	
  ser	
  …	
  ;	
  
§  	
  <nome_função>	
  –	
  identificador	
  pela	
  qual	
  a	
  função	
  é	
  conhecida.	
  Regras	
  para	
  definição	
  de	
  um	
  
identificador	
  são	
  as	
  mesmas	
  que	
  para	
  as	
  variáveis;	
  
§  	
   <argumento	
   1>,	
   <argumento	
   2>,...	
   –	
   um	
   argumento	
   é	
   como	
   uma	
   declaração	
   de	
   uma	
  
variável	
   dentro	
   da	
   função.	
   Os	
   argumentos	
   permitem	
   passar	
   parâmetros	
   para	
   dentro	
   da	
  
função	
   quando	
   esta	
   é	
   invocada.	
   Os	
   diferentes	
   parâmetros	
   tem	
   que	
   ser	
   separados	
   pelo	
  
operador	
  vírgula	
  (“,”);	
  
A	
  chamada	
  a	
  esta	
  função,	
  no	
  main(),	
  seria	
  algo	
  do	
  género:	
  
<nome_da_função>(argumento1,	
  argumento2,	
  …);	
  
Uma	
  função	
  pode	
  ter	
  qualquer	
  número	
  de	
  argumentos,	
  até	
  mesmo	
  …	
  nenhum	
  …	
  
	
  
Oooooops,	
  não	
  é	
  essa…	
  é	
  mais	
  esta:	
  Qual	
  a	
  sintaxe	
  de	
  uma	
  função	
  e	
  como	
  funciona???	
  
	
  
	
  <tipo_dados>	
  <nome_função>()	
  {	
  
	
   	
  <conjunto_de_instruções>	
  
	
  }	
  
	
  
	
  
A	
  chamada	
  a	
  esta	
  função	
  sem	
  argumentos,	
  no	
  main(),	
  seria	
  algo	
  do	
  género:	
  
<nome_da_função>();	
  
	
  
	
  
IMPORTANTE:	
  As	
  funções	
  devem	
  	
  ser	
  sempre	
  (e	
  todas)	
  	
  declaradas	
  antes	
  do	
  main();	
  
Actividade	
  Exemplo:	
  
Escreva	
   um	
   programa	
   que	
   recorra	
   a	
   uma	
   função,	
   soma,	
   para	
   fazer	
   a	
   soma	
   de	
   dois	
   números	
  
inteiros	
  e	
  que	
  retorne	
  esse	
  valor	
  à	
  função	
  main(),	
  onde	
  é	
  apresentado	
  no	
  ecrã.	
  
	
  
#include<iostream>	
  
	
  
using	
  namespace	
  std;	
  
int	
  main	
  (	
  )	
  {	
  
	
  int	
  a	
  ,	
  b;	
  
	
  
	
  cout	
  <<	
  “Introduza	
  1º	
  valor:	
  “	
  <<	
  endl;	
  
	
  cin	
  >>	
  a;	
  
	
  cout	
  <<	
  “Introduza	
  2º	
  valor:	
  “	
  <<	
  endl;	
  
	
  cin	
  >>	
  b;	
  
	
  
	
  system(“cls”);	
  
	
  
	
  cout	
  <<	
  "Resultado	
  :	
  "	
  <<	
  soma	
  (a	
  ,	
  b)	
  ;	
  
	
  
	
  system(“PAUSE”);	
  
}	
  
O	
  que	
  falta	
  neste	
  programa?	
  
…	
  função	
  para	
  fazer	
  a	
  soma…	
  
Onde	
  a	
  vai	
  implementar????	
  
…	
  antes	
  do	
  main()	
  …	
  
Qual	
  o	
  nome	
  da	
  função???	
  
…	
  	
  soma	
  …	
  
Número	
  de	
  argumentos…	
  
…	
  dois	
  (soma	
  de	
  2	
  valores)…	
  
Tipo	
  da	
  função???	
  
…	
  int	
  (soma	
  de	
  inteiros)…	
  
 
	
  
	
  
	
  
Devolve	
  um	
  valor	
  
inteiro	
   para	
   o	
  
sítio	
  da	
  chamada	
  
da	
  função.	
  
	
  
	
  
Faz	
   chamada	
   à	
  
f u n ç ã o	
   p a r a	
  
obter	
   o	
   valor	
   da	
  
s o m a	
   d o s	
   2	
  
números…	
  
A	
   chamada	
   tem	
  
o 	
   n o m e 	
   d a	
  
função:	
  
soma	
  
E	
   os	
   dois	
   valores	
  
a	
  somar:	
  a	
  e	
  b.	
  
Recebe	
   os	
   dois	
   parâmetros	
   /	
  
argumentos,	
  em	
  que:	
  
n1	
  =	
  a	
  /	
  n2	
  =	
  b	
  
Apenas	
   localmente	
   (dentro	
   da	
  
função)…	
  
	
  
	
  	
  	
  
Vamos	
   tentar	
   fazer	
   a	
   função	
   de	
   soma	
  
dos	
  dois	
  valores???	
  Que	
  entusiasmo...	
  
	
  
Vejamos	
  uma	
  aplicação	
  da	
  mesma	
  função	
  num	
  outro	
  contexto:	
  
	
  
(1)	
  Chama	
  a	
  função	
  soma,	
  em	
  que:	
  
n1	
  fica	
  com	
  o	
  valo:	
  5	
  
n2	
  fica	
  com	
  o	
  valor:3	
  
(3)	
  Retorna	
  o	
  valor	
  de	
  r	
  para	
  o	
  local	
  da	
  chamada	
  da	
  função	
  no	
  main:	
  
r	
  tem	
  o	
  valor:	
  7	
  
Esse	
  valor	
  é	
  guardado	
  em	
  z	
  e	
  enviado	
  para	
  o	
  ecrã.	
  
(2)	
  Soma	
  os	
  valores:	
  	
  
n1	
  +	
  n2	
  
E	
   guarda-­‐o	
   em	
   r,	
  
depois	
  envia-­‐o	
  para	
  
O	
   local	
   da	
   chamada	
  
no	
  main().	
  
Actividade	
  1:	
  
Calcule	
  a	
  área	
  de	
  um	
  circulo,	
  em	
  que	
  o	
  raio	
  é	
  introduzido	
  pelo	
  utilizador.	
  A	
  fórmula	
  da	
  área	
  é:	
  
PI	
  *	
  raio	
  *	
  raio	
  
a)	
  Implemente	
  o	
  programa	
  anterior	
  sem	
  funções;	
  
b)	
  Faça	
  agora	
  o	
  mesmo	
  exercício	
  mas	
  utilizando	
  funções.	
  
Algumas	
  Notas:	
  Utilize	
  o	
  define	
  para	
  definir	
  PI	
  como	
  3.14…	
  A	
  área	
  de	
  um	
  circulo	
  não	
  é	
  um	
  valor	
  
inteiro…	
  Utilize	
  a	
  função	
  pow(valor,expoente)	
  que	
  pertence	
  à	
  	
  biblioteca	
  math.h…	
  
	
  
Actividade	
  2:	
  
Elabore	
   um	
   programa,	
   que	
   utilize	
   uma	
   função,	
   que	
   verifique	
   se	
   um	
   número	
   introduzido	
   pelo	
  
utilizador	
  é,	
  ou	
  não,	
  perfeito.	
  Exemplo:	
  
	
   	
   	
   	
   	
  Divisores	
  de	
  28:	
  1,	
  2,	
  4,	
  7,	
  14	
  
	
   	
   	
   	
   	
  Soma	
  dos	
  divisores:	
  	
  1	
  +	
  2	
  +	
  4	
  +	
  7	
  +	
  14	
  =	
  28	
  
	
   	
   	
   	
   	
  Conclusão:	
  28	
  é	
  perfeito…	
  perfeito	
  :o)	
  
Actividade	
  3:	
  
Utilize	
  funções	
  para	
  escrever	
  uma	
  implementação	
  possível	
  para	
  as	
  seguintes	
  funções	
  
matemáticas:	
  	
  
	
  
a)  Quadrado	
  de	
  um	
  número;	
  
	
  
b)  Potência	
  (x	
  ^	
  -­‐>3	
  ^	
  2	
  =	
  9-­‐>2	
  ^	
  3	
  =	
  8);	
  	
  
Actividade	
  4:	
  	
  
Utilize	
  a	
  função	
  soma	
  da	
  aula	
  anterior	
  de	
  forma	
  a	
  somar	
  n	
  valores	
  introduzidos	
  pelo	
  utilizador.	
  
Deve	
  também	
  pedir	
  ao	
  utilizador	
  o	
  número	
  de	
  valores	
  que	
  vai	
  inserir	
  (n).	
  	
  
	
  
	
  
¡  Já	
  que	
  estão	
  cheios	
  de	
  energia,	
  que	
  tal	
  queimá-­‐las	
  com	
  mais	
  (poucas	
  ...)	
  umas	
  actividades???	
  	
  
	
  
¡  Actividade	
  5	
  (Passagem	
  de	
  um	
  vector	
  como	
  argumento):	
  Será	
  possível	
  passar	
  um	
  vector	
  como	
  
argumentos	
  para	
  uma	
  função???	
  	
  
	
  
	
  Já	
  devem	
  perceber	
  que	
  em	
  Informática	
  não	
  há	
  impossíveis,	
  para	
  além	
  de	
  que	
  o	
  título	
  desta	
  
actividade	
  possa	
  ser	
  sugestivo	
  e	
  tendencioso	
  :o)	
  analise	
  então	
  a	
  função	
  abaixo	
  ...	
  	
  
	
  
Qual	
  o	
  objectivo	
  da	
  função	
  que	
  se	
  segue???	
  Como	
  chamaria	
  esta	
  função,	
  tendo	
  em	
  conta	
  os	
  
conhecimentos	
  que	
  adquiriu	
  até	
  ao	
  momento	
  sobre	
  funções???	
  	
  
	
  void	
  dobro(int	
  vec[],	
  int	
  x)	
  {	
  int	
  i;	
  	
  
	
  for(i=0;	
  i	
  <	
  x;i++)	
  {	
  
	
  vec[i]	
  =	
  vec[i]	
  *	
  2;	
  	
  
	
  }	
  
	
  
 
¡  Actividade	
  6:	
  
Utilize	
  a	
  actividade	
  5	
  e	
  modifique-­‐a	
  de	
  forma	
  a	
  que	
  a	
  função	
  calcule	
  a	
  soma	
  de	
  todos	
  os	
  valores	
  de	
  um	
  
vector	
  e	
  a	
  imprima	
  (à	
  soma)	
  na	
  função	
  principal	
  (main()).	
  	
  
	
  
¡  Actividade	
  7:	
  	
  
Para	
  o	
  auxiliar	
  nesta	
  actividade,	
  cada	
  um	
  terá	
  no	
  seu	
  mail	
  um	
  ficheiro	
  com	
  a	
  implementação	
  de	
  um	
  
possível	
  algoritmo	
  de	
  ordenação	
  (existem	
  diversos	
  algoritmos	
  de	
  graus	
  de	
  complexidade	
  /	
  eficiência	
  
diferentes)	
  cujo	
  funcionamento	
  será	
  analisado	
  nas	
  aulas.	
  	
  
	
  
Esta	
  actividade	
  consiste	
  em	
  gerar	
  /	
  ordenar	
  /	
  apresentar	
  uma	
  chave	
  do	
  euromilhões	
  ...	
  	
  
	
  
	
  O	
  objectivo	
  é	
  que	
  nesse	
  ficheiro	
  implemente	
  as	
  seguintes	
  funções:	
  
	
  -­‐	
  GeraChave	
  Aleatoria()-­‐>gera	
  /	
  guarda	
  5	
  números	
  aleatórios	
  no	
  vector;	
  
	
  -­‐	
  ImprimeBoletim()-­‐>imprime	
  boletim	
  em	
  que	
  no	
  lugar	
  dos	
  números	
  gerados	
  aparece	
  “xx”;	
  	
  
	
  Nos	
  entretantos	
  deve	
  chamar	
  a	
  função	
  OrdenaVetor()	
  para	
  que	
  a	
  chave	
  seja	
  ordenada	
  ...	
  	
  

Mais conteúdo relacionado

PDF
M5-Desenvolvimento-Paginas-Web
PDF
Manual-de-php
PDF
mod2-mecanismos
PDF
mod5-estruturas-dadosdinamicas
PDF
mod4-estruturas-dadosestaticas-ordenacao
PPT
Introdução a Linguagem C
PDF
Introdução a Linguagem de Programação C
PPSX
Programação em C
M5-Desenvolvimento-Paginas-Web
Manual-de-php
mod2-mecanismos
mod5-estruturas-dadosdinamicas
mod4-estruturas-dadosestaticas-ordenacao
Introdução a Linguagem C
Introdução a Linguagem de Programação C
Programação em C

Mais procurados (20)

PDF
Algoritmos e lp parte3-pseudocódigo
PDF
Aula 1 | Introdução a C++
PPTX
Visualg
PPT
Logica Algoritmo 07 Subalgoritmos
PDF
Algoritmos - capítulo 6
PDF
Guia para traducao algoritmos x l ps
PDF
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
PPTX
Algoritmos - Procedimentos
PDF
Aula6 - Linguagem C
PPTX
Programando em C++ // Estrutura Básica
PDF
Linguagem c parte 2
PPT
A linguagem de programação c
PPTX
Linguagem C - Estruturas
PPTX
Introdução à Linguagem C
PPTX
Linguagem C - Funções
PDF
Spring framework 2.5
Algoritmos e lp parte3-pseudocódigo
Aula 1 | Introdução a C++
Visualg
Logica Algoritmo 07 Subalgoritmos
Algoritmos - capítulo 6
Guia para traducao algoritmos x l ps
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Algoritmos - Procedimentos
Aula6 - Linguagem C
Programando em C++ // Estrutura Básica
Linguagem c parte 2
A linguagem de programação c
Linguagem C - Estruturas
Introdução à Linguagem C
Linguagem C - Funções
Spring framework 2.5
Anúncio

Destaque (17)

PPT
Módulo-2.2-estudo das componentes internas
DOCX
Correcção da ficha 4 e 5
PPT
Módulo 2.1-componentes de um computador
PDF
Psi-mod-op2
PDF
Tic-excel-02
PDF
Tic-excel-01
PDF
So-mod-1
PDF
Psi-mod-13
PDF
Modulo-3
PDF
Tic-excel-03
PDF
So-mod-4
PDF
Ac Mod 3 deteção de avarias - Esquemas
PDF
So-mod-2
PPT
Módulo-2.3-estudo de periféricos e suas características e configuração
PDF
mod1-algoritmia
DOCX
Ac m3 correção das fichas 4,5 e 6
PDF
Psi-mod-15
Módulo-2.2-estudo das componentes internas
Correcção da ficha 4 e 5
Módulo 2.1-componentes de um computador
Psi-mod-op2
Tic-excel-02
Tic-excel-01
So-mod-1
Psi-mod-13
Modulo-3
Tic-excel-03
So-mod-4
Ac Mod 3 deteção de avarias - Esquemas
So-mod-2
Módulo-2.3-estudo de periféricos e suas características e configuração
mod1-algoritmia
Ac m3 correção das fichas 4,5 e 6
Psi-mod-15
Anúncio

Semelhante a mod3-programação-estruturada (20)

PDF
Funções em C
PDF
Aula (Funções) - Lab II.pdfbsbwhwjwjwjwnnwnw
PDF
Funções em C
PDF
Estrutura de Dados - Procedimentos e Funções
PDF
PPTX
RevisãoCompactaFuncoesPonteiro.pptx
PDF
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
PDF
Subalgoritmos Profª Letíca Lopes
PPTX
C++ Funções
PDF
2 funcoes e estrutura de blocos
PPTX
Aula 8 - Modularização e Funções.pptx
PPT
Linguagem C - Funções - Apresentação e uso
PPTX
Aula 12 funcoes - Programação 1
PPTX
Programação - linguagem C - uso de funções
PDF
095 A 134 Material Auxiliar Para Curso AvançAdo I Msp430
PPSX
Utilizando funções em C: modularizando os programas.
PDF
Semanaupecaruaru2013 c++para iniciantes
PDF
Apostila de Funções em C
PPTX
Algoritmos e Estrutura de Dados - Aula 03
DOCX
Programação Estruturada 2 - Aula 02 - Código Fonte
Funções em C
Aula (Funções) - Lab II.pdfbsbwhwjwjwjwnnwnw
Funções em C
Estrutura de Dados - Procedimentos e Funções
RevisãoCompactaFuncoesPonteiro.pptx
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
Subalgoritmos Profª Letíca Lopes
C++ Funções
2 funcoes e estrutura de blocos
Aula 8 - Modularização e Funções.pptx
Linguagem C - Funções - Apresentação e uso
Aula 12 funcoes - Programação 1
Programação - linguagem C - uso de funções
095 A 134 Material Auxiliar Para Curso AvançAdo I Msp430
Utilizando funções em C: modularizando os programas.
Semanaupecaruaru2013 c++para iniciantes
Apostila de Funções em C
Algoritmos e Estrutura de Dados - Aula 03
Programação Estruturada 2 - Aula 02 - Código Fonte

Último (20)

PPTX
norma regulamentadora numero vinte nr 20
PPTX
Trabalho Cidades sustentáveis ou Utopia.pptx
PDF
saeb_documentos_de_referencia_versao_1.0.pdf
PPTX
Programa Nacional de Saúde do Adulto.pptx
PDF
manual-orientacao-asb_5a8d6d8d87160aa636f63a5d0.pdf
PPTX
Pedagogia em Ambientes Não Escolares.pptx
PPTX
Ciências da Natureza e suas áreas de desenvolvimento
PDF
GESTÃO DA FASE PRÉ-ANALÍTICA- Recomendações da SBPC-ML (3).pdf
PPTX
435434725-A-Mineracao-No-Brasil-Colonial.pptx
PPTX
Filosofia Ocidental Antiga 2025 - versão atualizada
PDF
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
PDF
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
PPT
História e Evolução dos Computadores domésticos
PPTX
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
PPTX
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
PDF
A Revolução Francesa de 1789 slides história
PPTX
TREINAMENTO DE INSPETOR DE ANDAIMES.pptx
PPTX
Noções de Saúde e Segurança do Trabalho.pptx
PPTX
Aula 13 - Tópico Frasal - Argumentação.pptx
PDF
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
norma regulamentadora numero vinte nr 20
Trabalho Cidades sustentáveis ou Utopia.pptx
saeb_documentos_de_referencia_versao_1.0.pdf
Programa Nacional de Saúde do Adulto.pptx
manual-orientacao-asb_5a8d6d8d87160aa636f63a5d0.pdf
Pedagogia em Ambientes Não Escolares.pptx
Ciências da Natureza e suas áreas de desenvolvimento
GESTÃO DA FASE PRÉ-ANALÍTICA- Recomendações da SBPC-ML (3).pdf
435434725-A-Mineracao-No-Brasil-Colonial.pptx
Filosofia Ocidental Antiga 2025 - versão atualizada
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
História e Evolução dos Computadores domésticos
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
A Revolução Francesa de 1789 slides história
TREINAMENTO DE INSPETOR DE ANDAIMES.pptx
Noções de Saúde e Segurança do Trabalho.pptx
Aula 13 - Tópico Frasal - Argumentação.pptx
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf

mod3-programação-estruturada

  • 1. Funções   Escola  Secundária  Filipa  de  Vilhena  
  • 2. Programação  Estruturada???    O  que  vou  ter  de  saber  no  final  deste  módulo  …  espero  eu  …       §  Blocos  de  um  programa,  variáveis  locais  e  globais;   §  Procedimentos  e  funções;   §  Subprogramas,  parâmetros  e  argumentos;   §  Recursividade;   §  Passagem  de  argumentos  por  valor  e  por  referência;       Sóóóóóóó???    
  • 3. Agora  que  já  sabem  programar  em  C++  …  sabem???  Hmmmmm…  em  C++???  Mas  o  que  é  isso??     Vamos  começar  a  falar  de  funções  e  pode-­‐se  começar  logo  por  aquela  que  é  a  mais  conhecida   das  funções  e  que  vocês  já  tratam  por  tu,  cuidado  com  as  confianças,  que  é  a  função  …   …  int  main()  ou  simplesmente  main()  …   Que  função  é  esta???  Ainda  esta  pergunta  …   É  a  função  principal  de  um  programa  em  C++  e  indispensável  para  o  seu  funcionamento.     Mas  já  utilizou  outras  funções  ainda  que  camufladas  …  Como???   Através  da  directiva  #include  …   #include<string.h>  (manipular  strings)  à  strlen,  strcmp,  strcopy   #include<math.h>  (funções  matemáticas)  à  sqrt,  pow,  sin,  cos,  …   #include<iostream>  (directavas  de  input  /  output)  à  cin,  cout  ,…  
  • 4. Mas  não  existem  funções  para  todas  as  situações.    Podia  haver  …  mas  não  era  a  mesma  coisa,  daí   que  o  utilizador  tenha  necessidade  de  criar  as  suas  próprias  funções  para  situações  especificas   …  a  vantagem  é  que  essas  funções  podem  ser  facilmente  criadas  /  utilizadas  /  partilhadas  em   outras  situações  (programas)  semelhantes.       O  que  são  então  funções???     §  Unidades   de   código   fundamentais   com   que   se   escrevem   e   estruturam   os   programas     de   forma   a   aproveitar   as   potencialidades   da   programação   estruturada   que   a   linguagem   C++   oferece;   §   São  também  unidades  de  código  /  rotinas,  que  executam  uma  sequência  de  instruções,  que   para  além  disso,  podem  devolver  um  valor  para  o  ponto  onde  são  chamadas;   §   De  uma  forma  mais  simples,  pode-­‐se  dizer  que  é  um  bloco  de  instruções  que  é  executado   quando  é  chamada  em  alguma  parte  do  programa.  
  • 5. Agora  que  já  sabem  o  que  são  funções,  uma  pergunta  se  impõe  …  já  acabou???     Oooooops,  não  é  essa…  é  mais  esta:  Qual  a  sintaxe  de  uma  função  e  como  funciona???      <tipo_dados>  <nome_função>(tipo_arg  <arg1>,  tipo_arg  <arg2>,  …)  {      <conjunto_de_instruções>    }   §   <tipo_dados>  –  tipo  de  dados  devolvido  pela  função,  que  podem  ser  …  ;   §   <nome_função>  –  identificador  pela  qual  a  função  é  conhecida.  Regras  para  definição  de  um   identificador  são  as  mesmas  que  para  as  variáveis;   §    <argumento   1>,   <argumento   2>,...   –   um   argumento   é   como   uma   declaração   de   uma   variável   dentro   da   função.   Os   argumentos   permitem   passar   parâmetros   para   dentro   da   função   quando   esta   é   invocada.   Os   diferentes   parâmetros   tem   que   ser   separados   pelo   operador  vírgula  (“,”);   A  chamada  a  esta  função,  no  main(),  seria  algo  do  género:   <nome_da_função>(argumento1,  argumento2,  …);  
  • 6. Uma  função  pode  ter  qualquer  número  de  argumentos,  até  mesmo  …  nenhum  …     Oooooops,  não  é  essa…  é  mais  esta:  Qual  a  sintaxe  de  uma  função  e  como  funciona???      <tipo_dados>  <nome_função>()  {      <conjunto_de_instruções>    }       A  chamada  a  esta  função  sem  argumentos,  no  main(),  seria  algo  do  género:   <nome_da_função>();       IMPORTANTE:  As  funções  devem    ser  sempre  (e  todas)    declaradas  antes  do  main();  
  • 7. Actividade  Exemplo:   Escreva   um   programa   que   recorra   a   uma   função,   soma,   para   fazer   a   soma   de   dois   números   inteiros  e  que  retorne  esse  valor  à  função  main(),  onde  é  apresentado  no  ecrã.     #include<iostream>     using  namespace  std;   int  main  (  )  {    int  a  ,  b;      cout  <<  “Introduza  1º  valor:  “  <<  endl;    cin  >>  a;    cout  <<  “Introduza  2º  valor:  “  <<  endl;    cin  >>  b;      system(“cls”);      cout  <<  "Resultado  :  "  <<  soma  (a  ,  b)  ;      system(“PAUSE”);   }   O  que  falta  neste  programa?   …  função  para  fazer  a  soma…   Onde  a  vai  implementar????   …  antes  do  main()  …   Qual  o  nome  da  função???   …    soma  …   Número  de  argumentos…   …  dois  (soma  de  2  valores)…   Tipo  da  função???   …  int  (soma  de  inteiros)…  
  • 8.         Devolve  um  valor   inteiro   para   o   sítio  da  chamada   da  função.       Faz   chamada   à   f u n ç ã o   p a r a   obter   o   valor   da   s o m a   d o s   2   números…   A   chamada   tem   o   n o m e   d a   função:   soma   E   os   dois   valores   a  somar:  a  e  b.   Recebe   os   dois   parâmetros   /   argumentos,  em  que:   n1  =  a  /  n2  =  b   Apenas   localmente   (dentro   da   função)…           Vamos   tentar   fazer   a   função   de   soma   dos  dois  valores???  Que  entusiasmo...    
  • 9. Vejamos  uma  aplicação  da  mesma  função  num  outro  contexto:     (1)  Chama  a  função  soma,  em  que:   n1  fica  com  o  valo:  5   n2  fica  com  o  valor:3   (3)  Retorna  o  valor  de  r  para  o  local  da  chamada  da  função  no  main:   r  tem  o  valor:  7   Esse  valor  é  guardado  em  z  e  enviado  para  o  ecrã.   (2)  Soma  os  valores:     n1  +  n2   E   guarda-­‐o   em   r,   depois  envia-­‐o  para   O   local   da   chamada   no  main().  
  • 10. Actividade  1:   Calcule  a  área  de  um  circulo,  em  que  o  raio  é  introduzido  pelo  utilizador.  A  fórmula  da  área  é:   PI  *  raio  *  raio   a)  Implemente  o  programa  anterior  sem  funções;   b)  Faça  agora  o  mesmo  exercício  mas  utilizando  funções.   Algumas  Notas:  Utilize  o  define  para  definir  PI  como  3.14…  A  área  de  um  circulo  não  é  um  valor   inteiro…  Utilize  a  função  pow(valor,expoente)  que  pertence  à    biblioteca  math.h…     Actividade  2:   Elabore   um   programa,   que   utilize   uma   função,   que   verifique   se   um   número   introduzido   pelo   utilizador  é,  ou  não,  perfeito.  Exemplo:            Divisores  de  28:  1,  2,  4,  7,  14            Soma  dos  divisores:    1  +  2  +  4  +  7  +  14  =  28            Conclusão:  28  é  perfeito…  perfeito  :o)  
  • 11. Actividade  3:   Utilize  funções  para  escrever  uma  implementação  possível  para  as  seguintes  funções   matemáticas:       a)  Quadrado  de  um  número;     b)  Potência  (x  ^  -­‐>3  ^  2  =  9-­‐>2  ^  3  =  8);     Actividade  4:     Utilize  a  função  soma  da  aula  anterior  de  forma  a  somar  n  valores  introduzidos  pelo  utilizador.   Deve  também  pedir  ao  utilizador  o  número  de  valores  que  vai  inserir  (n).        
  • 12. ¡  Já  que  estão  cheios  de  energia,  que  tal  queimá-­‐las  com  mais  (poucas  ...)  umas  actividades???       ¡  Actividade  5  (Passagem  de  um  vector  como  argumento):  Será  possível  passar  um  vector  como   argumentos  para  uma  função???        Já  devem  perceber  que  em  Informática  não  há  impossíveis,  para  além  de  que  o  título  desta   actividade  possa  ser  sugestivo  e  tendencioso  :o)  analise  então  a  função  abaixo  ...       Qual  o  objectivo  da  função  que  se  segue???  Como  chamaria  esta  função,  tendo  em  conta  os   conhecimentos  que  adquiriu  até  ao  momento  sobre  funções???      void  dobro(int  vec[],  int  x)  {  int  i;      for(i=0;  i  <  x;i++)  {    vec[i]  =  vec[i]  *  2;      }    
  • 13.   ¡  Actividade  6:   Utilize  a  actividade  5  e  modifique-­‐a  de  forma  a  que  a  função  calcule  a  soma  de  todos  os  valores  de  um   vector  e  a  imprima  (à  soma)  na  função  principal  (main()).       ¡  Actividade  7:     Para  o  auxiliar  nesta  actividade,  cada  um  terá  no  seu  mail  um  ficheiro  com  a  implementação  de  um   possível  algoritmo  de  ordenação  (existem  diversos  algoritmos  de  graus  de  complexidade  /  eficiência   diferentes)  cujo  funcionamento  será  analisado  nas  aulas.       Esta  actividade  consiste  em  gerar  /  ordenar  /  apresentar  uma  chave  do  euromilhões  ...        O  objectivo  é  que  nesse  ficheiro  implemente  as  seguintes  funções:    -­‐  GeraChave  Aleatoria()-­‐>gera  /  guarda  5  números  aleatórios  no  vector;    -­‐  ImprimeBoletim()-­‐>imprime  boletim  em  que  no  lugar  dos  números  gerados  aparece  “xx”;      Nos  entretantos  deve  chamar  a  função  OrdenaVetor()  para  que  a  chave  seja  ordenada  ...