• Nenhum resultado encontrado

Bac004 - Parte 4

N/A
N/A
Protected

Academic year: 2021

Share "Bac004 - Parte 4"

Copied!
22
0
0

Texto

(1)

BAC004-Informática-Prática-Fabiana C Guedes 1

(2)

BAC004-Informática-Prática-Fabiana C Guedes 2

Funções Sem Passagem de

Parâmetros e Sem Retorno

• Tipo mais simples de função em C/C++

possui a sintaxe representada na figura:

(3)

BAC004-Informática-Prática-Fabiana C Guedes 3

Funções Sem Passagem de

Parâmetros e Sem Retorno

//ProgC029.cpp - Uso do Protótipo em funções #include<iostream> using namespace std; void soma(); int main(){ soma(); return 0; } void soma(){ int n1,n2, s;

cout<<"Digite o primeiro numero: "<<endl; cin>>n1;

cout<<"Digite o segundo numero: "<<endl; cin>>n2;

s = n1 + n2;

cout<<"\n Soma = "<<s; }

Protótipo da Função Soma

Função Principal

Chamada da Função Soma Função Soma

(4)

BAC004-Informática-Prática-Fabiana C Guedes 4

Funções Com Passagem de

Parâmetros e Sem Retorno

(5)

BAC004-Informática-Prática-Fabiana C Guedes 5

Funções Com Passagem de

Parâmetros e Sem Retorno

//ProgC30.cpp - Função com passagem de parâmetros #include<iostream>

using namespace std; void soma(int n1, int n2){ int s;

s = n1 + n2;

cout<<"\n Soma = "<<s; }

int main(){

int numero1, numero2;

cout<<"Digite o primeiro numero: "<<endl; cin>>numero1;

cout<<"Digite o segundo numero: "<<endl; cin>>numero2;

soma(numero1,numero2); return 0;

}

Função Soma – com passagem de parâmetros

Parâmetros da Função Soma Variável local da função soma. Só é

reconhecido dentro de Soma

Variáveis locais à função main. Só reconhecidos dentro da main

(6)

BAC004-Informática-Prática-Fabiana C Guedes 6

Funções Sem Passagem de

Parâmetros e Com Retorno

(7)

BAC004-Informática-Prática-Fabiana C Guedes 7

Funções Sem Passagem de

Parâmetros e Com Retorno

//ProgC031.cpp - Função com retorno e sem passagem de parâmetros #include<iostream>

using namespace std; int soma(){

int n1,n2,s;

cout<<"Digite o primeiro numero: "<<endl; cin>>n1; cout<<"Digite o segundo numero: "<<endl; cin>>n2; s = n1 + n2; return s; } int main(){ int resultado; resultado=soma();

cout<<"\n Soma = "<<resultado; return 0;

}

Função Soma

Variáveis locais da Função Soma

Retorna o valor da soma para quem realizou a chamada da

Função Soma

Chamada da Função Soma. Deve ser atribuída a uma variável do

tipo int

(8)

BAC004-Informática-Prática-Fabiana C Guedes 8

Funções Com Passagem de

Parâmetros e Com Retorno

(9)

BAC004-Informática-Prática-Fabiana C Guedes 9

Funções Com Passagem de

Parâmetros e Com Retorno

//ProgC032.cpp - Função com retorno e passagem de parâmetro #include<iostream>

using namespace std; int soma(int n1, int n2){ int s;

s = n1 + n2; return s; }

int main(){

int numero1, numero2, resultado;

cout<<"Digite o primeiro numero: "<<endl; cin>>numero1; cout<<"Digite o segundo numero: "<<endl; cin>>numero2; resultado=soma(numero1,numero2);

cout<<"\n Soma = "<<resultado; return 0;

}

Função Soma – com retorno e passagem de parâmetros

Parâmetros da Função Soma – int n1 e int n2

Retorno da Função Soma do tipo inteiro

Chamada da Função Soma atribuída a uma variável do tipo do retorno. Tem que passar os parâmetros

(10)

BAC004-Informática-Prática-Fabiana C Guedes 1010

Parâmetros de Função – por

valor

/*Prog033 - Exemplo de função com passagem de parâmetro por valor*/ #include <iostream>

#include <cstdlib> void Somar(int X){ X++;

std::cout << "Valor de X dentro da funcao: " << X << "\n"; }

int main(){ int Y=0; Somar(Y);

std::cout << "Valor de Y fora da funcao: " << Y << "\n\n"; system ("PAUSE");

return 0; }

Definição. Como está antes não precisa de protótipo.

Parâmetro por valor.

Não retorna tipo. Chamada de sub-rotina.

Chamada sem necessidade de atribuição a uma variável, por ser void.

(11)

BAC004-Informática-Prática-Fabiana C Guedes 1111

Parâmetros de Função – por

referência

/*Prog034 - Programa para mostrar passagem de parâmetro por referência*/ #include <iostream> // para entrada e saída

#include <cstdlib> void Somar(int& X){ X++;

std::cout << "Valor de X dentro da funcao: " << X << "\n"; }

int main(){ int Y=0; Somar(Y);

std::cout << "Valor de Y fora da funcao: " << Y << "\n\n"; system ("PAUSE");

return 0; }

Parâmetro por referência.

(12)

BAC004-Informática-Prática-Fabiana C Guedes 1212

Exemplo Diversos

/*ProgC035.cpp - passagem por referência de mais de um argumento*/ #include <iostream>

#include <cstdlib>

void Troca(int& X, int& Y){ int temp=X; X = Y; Y = temp; } int main(){ int A, B, C;

std::cout << "\nDigite 3 numeros: "; std::cin >> A >> B >> C; if (A > B) Troca(A, B); if (A > C) Troca(A, C); if (B > C) Troca(B, C); std::cout << A << " " << B << " " << C << " \n"; system("PAUSE"); return 0; }

Parâmetros por referência.

(13)

BAC004-Informática-Prática-Fabiana C Guedes 13

Exemplo Diversos

//ProgC036.cpp - Exemplo de passagem de //parâmetro por referência

#include<iostream> using namespace std;

void nao_muda(int a, double b) { a+=2; // significa a=a+2;

b+=5; // significa b=b+5; }

void muda(int &a, double &b) { a+=2; b+=5; } int main(){ int n1=5; double n2=6.0; cout<<"n1 = "<<n1<<" n2 = "<<n2<<endl; nao_muda(n1,n2);

cout<<"Valores apos a funcao nao_muda n1 = “ << n1 << " n2 = "<<n2<<endl;

muda(n1,n2);

cout<<"Valores apos a funcao muda n1 = “ <<n1<<" n2 = "<<n2<<endl; return 0; } Parâmetros por valor Parâmetros por referência Chamada de não-muda Chamada de muda

(14)

BAC004-Informática-Prática-Fabiana C Guedes 14

Exemplo Diversos

//ProgC035 - Varias Funções sendo chamadas #include <iostream>

#include <cstdlib> using namespace std;

float somasqr(float m, float n); float sqr(float z);

float soma(float m, float n); int main() {

float a,b; cout << "Digite dois numeros "; cin >> a >> b;

cout << "A soma dos quadrados e " << somasqr(a,b) << endl; system("PAUSE"); return 0;

}

float somasqr(float m, float n) {return soma( sqr(m), sqr(n) );} float sqr(float z){ return z*z; }

float soma(float m, float n) { return m+n; }

Protótipos das Funções Chamada da Função somasqr Chamada da Função sqr Chamada da Função soma

(15)

BAC004-Informática-Prática-Fabiana C GuedesIntrodução à Computação - Aulas Laboratório - 15 Fabiana Costa Guedes

15

Exemplo Diversos

/*ProgC038 - Programa que mostra um exemplo de uma

função*/

#include <iostream> // para entrada e saída

#include <cstdlib>

int quadrado( int );

int main(){

for (int x=1; x<=50; x++)

std::cout << quadrado( x ) << " ";

std::cout << "\n\n";

system ("PAUSE");

return 0;

}

int quadrado ( int y ){

return y * y;

}

Protótipo da função quadrado.

Definição da função quadrado. Aqui é colocado o que realmente a função realiza.

Tipo da função quadrado. Toda função em C deve possuir um tipo. Quando não é necessário o tipo, coloca-se void.

Retorno da função quadrado. Toda função em C que não for definida como void deve possuir um retorno.

Parâmetro da função quadrado. Aqui é passado o valor que será calculado. Chamada da função quadrado.

(16)

BAC004-Informática-Prática-Fabiana C Guedes 1616

Exemplo Diversos

/*ProgC039 - Exemplo de função que converte graus Fahrenheit em graus Celsius*/ #include <iostream> #include <cstdlib> int Celsius(int); int main(){ int C, F;

std::cout << "\nDigite a temperatura em Fahrenheit: "; std::cin >> F;

C = Celsius(F);

std::cout << "\nCelsius: " << C << "\n\n"; system ("PAUSE");

}

int Celsius(int fahr){ int C;

C = (fahr - 32) * 5 / 9; return C;

}

Protótipo da função.

Chamada da função com atribuição a uma variável do mesmo tipo da função.

(17)

BAC004-Informática-Prática-Fabiana C Guedes 17

Exemplo Diversos

//ProgC040.cpp - Valor absoluto #include <iostream> #include <cstdlib> using namespace std; int abs(int n); int main(){ int x=10;

cout << abs(0) << '\t' << abs(-3) << '\t' << abs(x) << endl; system("PAUSE");

return 0; }

int abs( int n){ if (n>=0) return n; else return -n; } Protótipo da função. Definição da função.

Dois retornos, mas apenas um será executado

(18)

BAC004-Informática-Prática-Fabiana C Guedes 18

Exemplo Diversos

/*ProgC041 - Programa que apresenta parâmetros com valores padrão Data: 12/11/2008 - Fabiana */

#include <iostream> #include <cstdlib>

void Linha( int = 20, char = '*'); // protótipo int main(){ Linha(); std::cout << "\n"; Linha(34); std::cout << "\n"; Linha(45,'='); std::cout << "\n\n"; system("PAUSE"); return 0; }

void Linha(int n, char ch){

for (int i=0; i<n; i++) std::cout << ch; }

Valores padrão definidos.

Chamada sem valores.

Chamada só com um valor.

(19)

BAC004-Informática-Prática-Fabiana C Guedes 19

Exemplo Diversos

É importante considerar que se um argumento

for omitido, todos os subseqüentes devem ser

omitidos.

Além disso, é possível escrever funções que

tenham parâmetros inicializados com um valor

padrão e parâmetros não-inicializados, mas

após a primeira inicialização todos os

(20)

Introdução à Computação - Aulas Laboratório - Fabiana Costa Guedes 20

Sobrecarga de Funções

Sobrecarregar funções significa criar uma

família de funções com o mesmo nome,

mas com a lista de parâmetros diferentes.

Funções sobrecarregadas devem ter a lista

de parâmetros diferentes ou em número ou

em tipo.

Quando a função é chamada, é a lista de

parâmetros passada para ela que permite

ao sistema identificar qual é o código

(21)

Introdução à Computação - Aulas Laboratório - Fabiana Costa Guedes 21

Sobrecarga de Funções -

Exemplo

/*ProgC42.cpp - Programa que mostra a sobrecarga de funções*/

#include <iostream> #include <cstdlib> int Cubo( int ); float Cubo( float );

double Cubo( double ); int main(){ std::cout << Cubo(345) << "\n"; std::cout << Cubo(12.34f) << "\n"; std::cout << Cubo(12.34) << "\n"; system("pause"); return 0; } int Cubo(int n) { return n * n * n; } float Cubo(float n) { return n * n * n; } double Cubo(double n) { return n * n * n; }

Protótipo das funções.

Chamadas das funções.

(22)

BAC004-Informática-Prática-Fabiana C Guedes 22

Tópicos para Discussão

Funções

Modularização

Retorno

Parâmetros

Passagem por Valor

Referências

Documentos relacionados

Cerca de dois dias após o procedimento, o animal retornou ao HOVET para uma reavaliação e foram, então, solicitados novos exames hematológicos e perfil bioquímico, que

The following variables were collected: age, sex, TSH, free T3 and free T4 at the beginning of the study and at the moment of the switch to hyperthyroidism, anti-TPO and

Os procedimentos utilizados para a coleta de dados deste estudo foram os procedimentos bibliográficos e documentais, e como instrumentos para a coleta de dados o

Cada docente sugeriu apresentações para o desfile bem como para a abertura oficial tomando como referência as atividades desenvolvidas em sala de aula, bem como os trabalhos

(Administrado pelo Bancoob Distribuidora de Títulos e Valores Mobiliários Ltda. – Bancoob DTVM – CNPJ: 07.397.614/0001-06). Notas explicativas da Administradora às

Existem alguns ensaios específicos 26 – de campo e de laboratório – que deverão ser feitos durante as etapas do projeto de intervenção para que possibilitem o conhecimento mais

Para o desenvolvimento de um protótipo funcional foram necessários os subsistemas: estrutural, utilizando uma estrutura já existente no laboratório de

4.2.5 No caso de aprovarem um número superior a 20 (vinte) candidatos, serão convocados para a próxima etapa apenas um primeiro grupo que dará sequência ao processo,