Módulo 7. Funções. Algoritmos e Estruturas de Dados I C++ (Rone Ilídio)

Documentos relacionados
5 Funções. Site: BAC004 at Source page: 5 Funções at

C++ - Funções. Forma geral das funções C++

Aula 08: Repetição (Parte 3)

Módulo 5. Instruções if e switch. Algoritmos e Estruturas de Dados I C++ (Rone Ilídio)

Programação científica C++

Algoritmos e Técnicas de Programação. Professora: Luciana Faria

Aula 8 Comandos de Seleção

Algoritmos RESUMO - LINGUAGEM C

INFORMÁTICA APLICADA AULA 05 LINGUAGEM DE PROGRAMAÇÃO C++

Declarações. C diferencia letras maiúsculas de minúsculas! int n, N; n é diferente de N!

INF1005 Programação I. Pontifícia Universidade Católica Departamento de Informática

LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO

Linguagem C/C++ Estrutura Condicional. Prof: Rosemary Melo

Aula 15: Introdução a Funções

Aula 10 Comandos de Repetição

Aula 12: Funções. CI208 - Programação de Computadores. Prof. MSc. Diego Roberto Antunes

Puca Huachi Vaz Penna / José Américo T. Messias

16 Definição e Uso de Funções em Programas

Linguagem C. Funções

Instituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I

5COP088. Aula 2 Linguagem Estruturada Prof. Dr. Sylvio Barbon Junior. Laboratório de Programação. Aula 2 Linguagem Estruturada

As bibliotecas iostream e cstdlib permitem a utilização de diversos comandos de entrada e saída e funções básicas.

Escopo das Variáveis. Funções. Funções. Funções. Funções. Algoritmos e Lógica de Programação. Programação Estruturada Funções Recursividade

Introdução à Linguagem C. Adaptado de Deise Saccol

Programação Aplicada à Engenharia

Aula 05. Modularização Função Subrotina Recursividade

Aula 07 Introdução à Programação Subprogramas

Introdução a Linguagem C

Introdução à Linguagem C

Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira Anilton Joaquim da Silva

Aula 12- Variáveis e valores reais

Unidade 6: Ambiente de Programação

Estrutura de dados 1. Ponteiros

ANHANGUERA ESTRUTURA DE DADOS AULA 04 MATRIZES, LISTAS E ALOCAÇÃO DINÂMICA. Prof. Thomás da Costa

Aula 04: Fluxogramas e condicionais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA DE CIÊNCIAS E TECNOLOGIA. ECT1203 Linguagem de Programação Turma Prof.

Introdução à Programação

Módulo 4. Instruções for, while e do/while. Algoritmos e Estruturas de Dados I C++ (Rone Ilídio)

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA DE CIÊNCIAS E TECNOLOGIA. ECT1203 Linguagem de Programação Turma Prof.

Introdução à Linguagem C

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Algoritmos e Estruturas de Dados I (DCC/003) Funções

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO. Prof. Dr. Daniel Caetano

Funções. definição, declaração e chamada

Módulo 1. Introdução. AEDS I C++ (Rone Ilídio)

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

Aula 24: Ponteiros e Alocação Dinâmica

Programação de Computadores I

PROGRAMAÇÃO DE COMPUTADORES V - TCC Modulo 6 : Funções Escopo de Variáveis: Globais x Locais Aura - Erick

Subprogramas. Prof. Carlos Lopes

Estruturas de Dados. Revisão de Funções e Recursão. Agradecimentos

Material sobre Funções AEDS 1

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição

Introdução à Linguagem C. Adaptado de slides das Profas. Patrícia Jaques, Mônica Py, Deise Saccol e Vania Bogorny

Fundamentos de Programação

Roteiro Prático Nº 13 Recursividade

Introdução a Programação de Jogos

ESTRUTURA DE DADOS (TCC )

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA : INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ASSUNTO: C

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

Professor: Domingos Equipe Haskell: Lucas Montesuma, Francisco Leonardo CONCEITOS DA LINGUAGEM DE PROGRAMAÇÃO CÁLCULADORA EM HASKELL

INFORMÁTICA APLICADA AULA 03 LINGUAGEM DE PROGRAMAÇÃO C++

Programação Computacional C/C++

Retorna a quantidade de caracteres que o nome possui.

Ocorrem em três tipos:

exatasfepi.com.br Informática C/C++ André Luís Duarte Feliz é o homem que acha sabedoria, e o homem que adquire entendimento; Provérbios 3:13

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO. Prof. Dr. Daniel Caetano

ESTRUTURA COM DECISÃO COMPOSTA

Unidade 6: Ambiente de Programação Prof. Daniel Caetano

Aula 05: Condicionais (Parte 2)

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

LINGUAGEM 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.

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

INTRODUÇÃO À LOGICA DE PROGRAMAÇÃO. Eduardo Luiz Pareto

3) A função de Fibonacci, F: N N, no conjunto dos naturais, é definida recursivamente por F(0) = 0, F(1) = 1, e F(n) = F(n-1) + F(n-2) para n > 1

Computação e Programação Aula prática nº 5. Enunciados dos problemas

Linguagem C Funções. André Tavares da Silva.

Aula 26: Estruturas heterogêneas

Vírgula flutuante. Tipos float, double, long double. Uso de funções. Exercícios

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA ESTRUTURA COM DECISÃO MÚLTIPLA. Prof. Dr. Daniel Caetano

Objectivos. Iniciar a programação de funções. Estudar a chamada de funções. Estudar a forma como são executadas as funções

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

PROTÓTPOS DE FUNÇÕES/PROCEDIMENTOS

//conteúdo do arquivo pacote.h

Introdução à Programação Estruturada Parte 3. Material da Prof. Ana Eliza

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO. Prof. Dr. Daniel Caetano

ALGORITMOS AVANÇADOS UNIDADE II Recursividade. Luiz Leão

Capítulo 4: Programando com Funções. Pontifícia Universidade Católica Departamento de Informática

Algoritmos II prof. Daniel Oliveira

Permite modularidade (dividir programa em partes): Facilita a depuração (debug) e portabilidade.

Aula 08: Funções (Parte II)

Recursividade. Prof. Jesus José de Oliveira Neto

Linguagem de Programação I. Aula 10 Funções

Estruturas de Dados. Módulo 4 Funções. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

Transcrição:

Módulo 7 Funções Algoritmos e Estruturas de Dados I C++ (Rone Ilídio)

Funções Conjunto de instruções acessadas através de um nome Implementadas uma única vez e executadas quantas necessárias Importantes para dividir o programa em partes, cada uma resolvendo um problema menor. Organização do código

Funções #include <iostream> #include <conio.h> using namespace std; int main() { cout << "Abaixo estamos fazendo a chamada da funcao getche()"; getche();

Funções Todo programa tem pelo menos uma função, denominada main É sempre a primeira a ser executada Dentro dela pode haver a chamada de outras funções, como a getche() foi chamada no exemplo anterior

Funções Sintaxe TipoRetorno nome(tipoparametro p1, TipoParametro p2,...){... Instruções... return Valor_TipoRetorno

#include <iostream> #include <conio.h> using namespace std; int calculamaior(int a, int b, int c){ if ((a>=b) && (a>=c)){ return a; else if ((b>=a) && (b>=c)){ return b; else { return c; int main(){ int n1, n2, n3; cout << "Insire 3 numero separados por espaco: "; cin >> n1 >> n2 >> n3; int maior; maior = calculamaior(n1, n2, n3); cout << "O maior e " << maior; getche();

Funções A função main é a primeira a ser executado main possui uma chamada para a função calculamaior Essa função recebe 3 valores inteiro e retorna um valor inteiro, que corresponde ao maior entre os 3. O valor retornado é guardado na variável maior

Funções O tipo do retorno da função deve ser o mesmo da variável que o recebe, ou seja, a variável maior deve ser do mesmo tipo do retorno da função Dentro da função, o retorno é executado com a instrução return O valor ou variável contido na frente do return deve ser do mesmo tipo do retorno da função return finaliza a execução da função

#include <iostream> #include <conio.h> using namespace std; float celsius(float fahr){ float celsius; celsius = (fahr - 32) * 5/9; return celsius; int main() { float c, f; cout << "Digite a temperatura em Fahrenheit: "; cin >> f; c = celsius(f); cout << "O valor informado, convertido para Celsius e " << c; getche();

Funções O programa possui duas funções: main e celsius. A função celsius recebe como parâmetro um valor float e retorna outro valor float O retorno da função é salvo dentro da variável c, que também é float

Protótipo de Funções A chamada de uma função deve ocorrer depois da criação dessa função ou depois da declaração do protótipo da função O protótipo é a declaração do cabeçalho da função Pode ser interno (dentro de uma função) ou externo (fora de um função)

#include <iostream> #include <conio.h> using namespace std; int main() { //Prototipo interno float celsius(float fahr); float c, f; cout << "Digite a temperatura em Fahrenheit: "; cin >> f; c = celsius(f); cout << "O valor informado, convertido para Celsius e " << c; getche(); float celsius(float fahr){ float celsius; celsius = (fahr - 32) * 5/9; return celsius;

#include <iostream> #include <conio.h> using namespace std; //Prototipo externo float celsius(float fahr); int main() { float c, f; cout << "Digite a temperatura em Fahrenheit: "; cin >> f; c = celsius(f); cout << "O valor informado, convertido para Celsius e " << c; getche(); float celsius(float fahr){ float celsius; celsius = (fahr - 32) * 5/9; return celsius;

Funções Sem Retorno e/ou Sem Parâmetros O tipo de retorno da função é declarado como void Sua chamada não precisa de uma variável para receber um valor Funções podem não ter parâmetros Os dois tipos de função podem serem usadas em conjunto

#include <iostream> #include <conio.h> using namespace std; void imprimelinha(char a){ cout << "\n"; for(int i=0; i<30; i++) cout << a; int main(){ imprimelinha('='); cout << "\nufsj"; char b = '-'; imprimelinha(b); getche(); #include <iostream> #include <conio.h> using namespace std; void imprimelinha(){ cout << "\n"; for(int i=0; i<30; i++) cout << "-"; int main(){ imprimelinha(); cout << "\nufsj"; imprimelinha(); getche();

O Comando Return Finaliza a execução da função Em funções com retorno, é responsável em fazer o retorno Em funções sem retorno, somente termina a função O problema desse comando é que ele só retorna um único valor

#include <iostream> #include <conio.h> using namespace std; void dezvezes(char texto[30]){ int i=0; while(1){ cout << texto << " "; i++ ; if (i==10) return; int main() { char n[3]; cout << "Digite seu nome: "; gets(n) ; dezvezes(n); getche();

Escopo de Variável Escopo de variável é o espaço no programa onde uma variável é válida Regra: Uma variável pode ser utilizada a partir de sua criação até o final do do bloco onde foi declarada Variável global: pode ser utilizada em qualquer parte do programa

#include <iostream> #include <conio.h> using namespace std; int x = 10; void meumetodo(int x){ cout << "\n" << x; int main(){ cout << "\n" << x; int x = 20; cout << "\n" << x; meumetodo(30); getche();

Passagem por valor Na chamada de uma função, uma determinada variável é passada como parâmetro Dentro da função, seu valor sobre alteração A variável utilizada na chamada não sobre alteração O convencional é a passagem por valor (utilizada até agora) Veja exemplo

#include <iostream> #include <conio.h> using namespace std; Resultado: Antes da chamada da funcao: 10 Dentro da funcao: 20 Depois da chamada: 10 void meumetodo(int y){ y=y*2; cout << "\ndentro da funcao: " << y; int main(){ int x = 10; cout << "\nantes da chamada da funcao: " << x; meumetodo(x); cout << "\ndepois da Chamada:" << x; getche();

Passagem por Referência A mesma situação anterior, só que a variável é passada por referência Se dentro da função ela sofre alteração, a variável utilizada na chamada também sofre Utiliza-se o operador & antes do nome do parâmetro, na declaração da função Passagem por referência é útil para: Retorno de mais de um valor Economia de memória

#include <iostream> #include <conio.h> using namespace std; Resultado: Antes da chamada da funcao: 10 Dentro da funcao: 20 Depois da chamada: 20 void meumetodo(int& y){ y=y*2; cout << "\ndentro da funcao: " << y; int main(){ int x = 10; cout << "\nantes da chamada da funcao: " << x; meumetodo(x); cout << "\ndepois da chamada" << x; getche();

Matrizes como Parâmetros de Funções Passagem por referência SEMPRE Não precisa de definir o valor na declaração do parâmetro. Na chamada, coloca-se somente o nome da variável

void preenche(int x[], int t){ for(int i=0; i<t; i++){ cout << "\ndigite um número:"; cin >> x[i]; void imprime(int x[], int t){ cout << "\n\n"; for(int i=0; i<t; i++){ cout << " " << x[i]; cout << "\n\n"; int main(){ int const t = 10; int v[t]; preenche(v,t); imprime(v,t); getche();

Pilha de Execução Quando uma função é chamada, cria-se uma área de memória para receber os valores de suas variáveis A função main é sempre a primeira As outras são empilhadas umas sobre as outras A superior sempre é a primeira a ser executada

#include <iostream> #include <conio.h> using namespace std; int G (int a, int b) { int x; x = a + b; return x; int F (int i, int j, int k) { int x; x = G (i, j); x = x + k; return x; int main () { int i, j, k, y; i = 111; j = 222; k = 444; y = F (i, j, k); cout << endl << y; getch();

Pilha de Execução 3º G a=111 b=222 x= a+b return x 2º F i=111 j=222 k=444 x = G() return x 1º Main i=111 j=222 k=444 y = F()

Recursividade Funções recursivas são aquelas que chamam a se próprias Importante definir um critério de parada para evitar

#include <iostream> #include <conio.h> using namespace std; long fat(long n){ if (n==0) return 1; return n * fat(n-1); int main(){ long num; cout << "Informe um numero:"; cin >> num; long fatorial = fat(num); cout << "\no fatorial de" << num << " e " << fatorial; getch();

Pilha de Execução 5º fat(0) n=1 return 1 4º fat(1) n=1 return 1*fat(0) 3º fat(2) n=2 return 2*fat(1) 2º fat(3) n=3 return 3*fat(2) 1º main num=3 fatorial=fat(3)

Função Recursiva Para Série Harmônica H(n) = 1 + 1/2 + 1/3 +... + 1/n Critério de parada: H(1) = 1 double harmonica(double n){ if(n == 1) return 1; else return 1/n + harmonica(n-1);

#include <iostream> #include <conio.h> using namespace std; double harmonica(double n){ if(n == 1) return 1; else return 1/n + harmonica(n-1); int main(){ double n; cout << "Digite um numero:"; cin >> n; double h = harmonica(n); cout << "Soma dos "<< n << " primeiros elemento da serie harmonica: "<< h; cout << endl; system("pause");

#include <iostream> #include <conio.h> using namespace std; int fib(int n){ if (n==0) return 0; if (n==1) return 1; return fib(n-1)+ fib(n-2); int main(){ int n; cout << "Informe um numero:"; cin >> n; int f = fib(n); cout << "\no " << n <<"o numero da serie de fibonacci e " << f; getch();

Pilha de execução fib(1) n=1 return 1 fib(2) n=2 return 1 Fib(3) n=3 return fib(2)+fib(1) Fib(4) n=4 return fib(3)+fib(2) 1º main n=4 fib(4)

#include <iostream> #include <conio.h> using namespace std; int maior(int v[], int n){ if (n==1) return v[0]; else{ int x; int y = maior(v,n-1); if(y > v[n-1]) x = y; else x = v[n-1]; return x; int main(){ int v[4] = {4,5,9,3; int m = maior(v,4); cout << "m:"<< m; getch();

Pilha de execução 5º maior n=1 return v[0]=4 4º maior n=2 return (maior(v,1) ou v[1]=5) 3º maior n=3 return (maior(v,2) ou v[2]=9) 2º maior n=4 return (maior(v,3) ou v[3]=3) 1º main v={4,5,9,3 m=maior(v,4)

Math.h Contem funções matemáticas ceil tecto cos co-seno floor chão log10 logaritmo base 10 pow(x,y) retorna o resultado de x elevado a y sin seno sqrt raiz quadrada tan tangente cbrt raiz cúbica exp2(x) calcula 2 elevado à x, 2 x fmax(x,y) maior valor de x e y fmin(x,y) menor valor de x e y hypot(x,y) hipotenusa, sqrt(x 2 + y 2 ) arredonda para inteiro (retorna double), arredonda casa mais distante de zero round

#include <iostream> #include <conio.h> using namespace std; int main(){ cout<<"\nteto de 9.36:"<< ceil(9.36); cout<<"\ncosseno de 90:"<< cos(3.14/2); cout<<"\npiso de 9.75:"<< floor(9.75); cout<<"\nlog de 100 na base 10:"<< log10(100); cout<<"\n 2 ^ 10: "<< pow(2,10); cout<<"\nseno(90):"<< sin(3.14/2); cout<<"\nraiz quadrada de 9:"<< sqrt(9); cout<<"\n tangente de 90:"<< tan(3.14/2); cout<<"\nraiz cubica de 27:"<< cbrt(3); cout<<"\n2 elevado a 5:"<< exp2(5); cout<<"\nmaior entre 10 e 20:"<< fmax(10,20); cout<<"\nmenor entre 10 e 20:"<< fmin(10,20); cout<<"\nhipotenusa 3 e 4:"<< hypot(3,4); cout<<"\narredonda 5.5:"<< round(5.5); cout << "\n\n"; system("pause");