Noção de Funções. A Linguagem C permite que um programa seja escrito como um conjunto de funções que são executadas a partir de uma

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

Explicação do programa:

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 I Funções. Prof. Carlos Alberto

Sub Rotinas. Estrutura de Dados. Prof. Kleber Rezende

3. Linguagem de Programação C

LINGUAGEM C: FUNÇÕES FUNÇÃO 08/01/2018. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

MESMO QUE ESTAS VARIÁVEIS TENHAM NOME IDÊNTICOS

Modularidade - Funções e Procedimentos

ECT1203 Linguagem de Programação

Sub-rotinas em C. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

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

#include <stdio.h> main() { int i; // Cabeçalho for (i = 1; i <=20; i++) putchar( * ); putchar( \n ); puts( Numeros entre 1 e 5 );

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes

Introdução à Programação Aula 09. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Linguagem C (Funções)

ESTRUTURA DE DADOS (TCC )

Linguagem C. André Tavares da Silva.

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas

Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011

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

Funções em Linguagem C Parte II

As funções são blocos de instruções que facilitam o entendimento do código. Sua sintaxe é:

Introdução a Programação. Tipos Estruturados de Dados

Programação : Engenharia Informática 6619 : Tecnologias e Sistemas de Informação. Cap. 6 Subprogramas I Subprogramas I

Introdução a Programação de Jogos

2ª Licenciatura AED1 e PC1 Prof. Eduardo 1 1 MODULARIZAÇÃO

Estrutura de Dados. Struct (Registro) Lais Farias Alves

Modularidade - Fun ções e Procedimentos

Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre. T. 05 Subprogramas I

Algoritmos e Programação. Linguagem C Procedimentos e. Eliane Pozzebon

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

6 Alguns conceitos e comandos em programação

Linguagem C. Programação Estruturada. Modularização (Funções) Prof. Luis Nícolas de Amorim Trigo

Material sobre Funções AEDS 1

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

SSC INTRODUÇÃO À COMPUTAÇÃO PARA ENGENHARIA AMBIENTAL MODULARIZAÇÃO. Profa. Dra. Milena Guessi Margarido

Introdução à Programação. Funções e Escopo de Variáveis

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

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

LINGUAGEM C Estrutura / Funções

ECT1203 Linguagem de Programação

Algoritmos e Estruturas de Dados I Prof. Eduardo 1 1 MODULARIZAÇÃO

Linguagem de Programação C. Funções e Procedimentos

Encapsulamento de Código: Funções e Procedimentos

Função. Unidade autônoma do programa desenvolvida para executar alguma atividade. A estrutura de uma função C é semelhante à da função main( )

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

Linguagem e Técnicas de Programação

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

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

Conhecendo a Linguagem de Programação C

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

Métodos Computacionais. Funções, Escopo de Variáveis e Ponteiros

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

SSC304 Introdução à Programação Para Engenharias. Introdução a Linguagem C. GE4 Bio

Aula 15 - Aula sobre Funções e Procedimentos

Capítulo 3: Programando com Funções

Introdução à Ciência da Computação. Sumário. Modularização de Algoritmos. Agradecimentos. Modularização de Algoritmos e Funções em C

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Algoritmos e Estruturas de Dados I IEC012. Procedimentos e Funções. Prof. César Melo Todos os créditos para o professor Leandro Galvão

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

Instituto de Informática Estrutura de Dados II

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

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

Laboratório de Introdução à Ciência da Computação I

Introdução aos Algoritmos

Índice. Índice... 0 Passagem de parâmetros... 3 Procedures... 5 Funções... 5

Subprogramas. Prof. Carlos Lopes

Laboratório de Introdução à Ciência da Computação I

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Linguagem C. Funções

Algoritmos e Programação

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

Programação de Computadores I Funções Básicas da Linguagem C PROFESSORA CINTIA CAETANO

Ponteiros de Variáveis

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

POO fundamentos Parte II. Professor Vicente Paulo de Camargo

Algoritmos e Estruturas de Dados I 01/2013. Passagem de Parâmetros e Estruturas. Pedro O.S. Vaz de Melo

Variáveis, Tipos de Dados e Operadores

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

Programação C/C++ Slide 5 Nielsen Castelo Damasceno

Métodos Computacionais em Física

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues

LISTA DE EXERCÍCIOS MÊS 04

LÓGICA DE PROGRAMAÇÃO. Resumo da Linguagem C. Sérgio Carlos Portari Júnior

LÓGICA DE PROGRAMAÇÃO (C) VETORES E MATRIZES. Professor Carlos Muniz

Linguagem C Princípios Básicos (parte 1)

Módulo 5 Vetores e Alocação Dinâmica

Linguagem C: Introdução

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

Algoritmos e Programação

Introdução à Programação

Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses

Introdução à Linguagem C

Transcrição:

Unidade d 3 Professor: Rogério Rodrigues de Vargas

Noção de Funções A Linguagem C permite que um programa seja escrito como um conjunto de funções que são executadas a partir de uma função principal denominada main(). Cada função pode conter declarações de variáveis, instruções, ativações de funções de bibliotecas do sistema e ativações de outras funções definidas pelo programador. O objetivo de uma função deve ser a realização de alguma subtarefa específica da tarefa que o programa pretende realizar. Logo, pode-se escrever função para a leitura dos dados de entrada, para a saída do programa, para a determinação da média de vários elementos, para a troca dos conteúdos de uma variável, para o cálculo do MMC, MDC de dois números. Normalmente,arealizaçãoda sub-tarefa paraaqualafunçãofoi escrita é chamada de retorno da função.

Noção de Funções Então, pode-se dizer que uma função é uma unidade de código de programa autônoma criada para cumprir uma tarefa específica, particular. Uma das razões principais da existência de funções é impedir que o programador tenha que escrever omesmo código várias vezes, logo pode-se reutilizar funções já escritas, otimiza-se tarefas, ganha-se tempo. Para usar uma função é preciso primeiro i declará-la l edepois defini-la. Nenhuma função pode ser chamada por outra função se não tiver sido primeiro declarada (criada). A declaração, denominada protótipo da função, informa ao compilador qual o seu tipo de retorno, seu nome e os seus parâmetros, enquanto que a sua definição diz o que ela executa (faz).

Noção de Funções O protótipo da função é uma instrução, o que significa ifi que ele é encerrado com um ;. Sintaxe: <tipo de dado retornado><identificador>(lista parâmetros); Declaração de variáveis; Seqüência de instruções; return (valor); Onde: o conjunto tipo de dado retornado, identificador da função (lista de parâmetros) é chamado protótipo da função; <Tipo de dado> éint, char, float ou um dos seus múltiplos quando a função deve retornar um valor específico e void se a função deve realizar uma ação genérica sem retornar um valor definido;

Noção de Funções <identificador> é o nome dado a função pelo programador, sempre relacionado ao que ela faz para facilitar suas atribuições; A <lista parâmetros> é um conjunto de variáveis utilizadas para a função receber os valores para os quais a função deve ser executada; estes valores são chamados argumentos, que, comparando uma função com um programa, constituem dados de entrada da função; uma lista de todos os parâmetros e seus respectivos tipos separados por,. Entre os parâmetros, o nome e o tipo de retorno devem ter compatibilidade entre a definição e a declaração da função. Na declaração de variáveis são declaradas as variáveis que as intruções da função vão manipular internamente. Estas variáveis (e os parâmetros) da função só são acessíveis pelas instruções da função e, por esta razão, são chamadas variáveis locais.

Desenvolvimento de Funções Uma função consiste emumsubprograma que pode atuar sobre dados e retornar um valor. Todo programa em C tem pelo menos uma função (a main) que pode chamar outras funções, algumas das quais, podem ainda chamar outras e assim por diante. Toda função tem seu próprio nome, e quando este nome é encontrado a execução do programa é desviado para o corpo da função. Quando ela retorna, a execução recomeça na linha seguinte a chamada da função. main( ) instrução; função1( ); instrução; função2( ); função1 função2 instrução; return; instrução; função3( ); return; função3 instrução; return;

Desenvolvimento de FUNÇÕES A definição de uma função é iniciada pelo seu cabeçalho, que consiste no protótipo p da função, com nome(s), (), obrigatoriamente, para o(s) parâmetro(s) e sem o ; no final. Iniciasse o corpo da função com a abertura de e encerrasse com o fechamento. Não é necessário que uma função apresente parâmetros, porém os parênteses tem que existirem ( e ). Exemplo: Tem que ter ; long int Area (int largura, int altura); long int Area (int lagura, int altura) return (largura * altura); // protótipo (declaração) // definição (corpo)

Desenvolvimento de FUNÇÕES FUNÇÃO main (revisão) Por ser também uma função, main deve atender as especificações de sua representação, onde ela especifica um tipo de valor de retorno, o, um nome e uma lista de parâmetros. A ausência do tipo de retorno configura que o retorno é do tipo padrão, ou seja, inteiro (int) e nela pode existir um comando return que a encerra.

Declaração de Variáveis Variáveis locais são internas as funções ou blocos. Parâmetros formais são parâmetros de funções. Variáveis globais estão fora de todas as funções. Variáveis Locais Só podem ser referenciadas dentro da função ou no bloco onde foram declaradas Só existem dentro do bloco de instrução onde foram declaradas, quando este estiver sendo executado (pilha) Elas podem ser declaradas no início de qualquer bloco de instrução e não somente no início das funções

TIPOS DE OBJETOS Parâmetros Formais São variáveis i que recebem os valores dos argumentos das funções e devem ser do mesmo tipo. Comportam-se como qualquer outra variável local dentro de uma função. Variáveis Globais São reconhecidas dentro de todo o contexto onde foram declaradas. Estão declaradas fora das funções. São armazenadas em área específica da memória (devendo ser evitadas).

Desenvolvimento de FUNÇÕES Tarefas complicadas devem ser divididas em múltiplas funções para que possam ser chamadas uma a uma. Isso torna o código mais fácil de entender e manter. parâmetros argumentos formais argumentos argumentos reais Variáveis Globais programadores usam estes termos indistintamente As variáveis definidas fora das funções tem um escopo global e portanto podem ser acessadas a partir de qualquer função do programa (inclusive i a main). ) Em C ++ este tipo de variável é evitada pelo fato de que tornam o código confuso e de difícil manutenção. As variáveis globais, quando forem extremamente necessárias, devem ser declaradas em apenas um arquivo (.cpp) eusadas como externas (extern) nos outros.

Desenvolvimento de FUNÇÕES COMANDO return As funções retornam um valor ou void (nenhum valor definido). Para que elas retornem um valor, insira a palavra reservada return seguida pelo valor que se deseja retornar, sendo ele do mesmo tipo definido na função. Exemplo: return 5; return (X > 5); return (Outra( ) ); É sempre interessante retornar um valor compatível para uma função que não seja do tipo void,,que na linguagem g C caracte riza um procedimento (função sem retorno) Com return a execução do programa retorna imediatamente para a função responsável pela chamada, e qualquer instrução que esteja após o return não é executada. É permitido mais que um return em uma função, mas uma vez que um deles seja executado a função é encerrada. Tadeu Freire Pontes 12

Primeiro Exemplo de Funções Veja o exemplo para calcular a raiz quadrada de um número(sem utilizar função). #include<stdio.h> #include<conio.h> #include<math.h> h> main() float x, result; printf("digite it os numeros:"); scanf("%f",&x); result=sqrt(x); printf("a raiz e %.2f\n",result); getch(); Sub-tarefa Tadeu Freire Pontes 13 2º sem/05 Tadeu Freire Pontes Tadeu Freire Pontes

Exemplos de Funções Veja o exemplo para calcular a raiz quadrada de um número(utilizando função). #include<stdio.h> di #include<conio.h> #include<math.h> float raiz( float num) /* definção da função*/ float res; /* declaração de variável local da função*/ res=sqrt(num); /* calculo da raiz - sub-tarefa*/ return res; /* retorno da função*/ main() float x,result; printf("digite os numeros:"); scanf("%f",&x); result=raiz(x); printf("a raiz e %.2f\n",result); getch();

Exemplos de Funções #include<stdio.h> #include<conio.h> #include<math.h> float raiz( float num) float res; res=sqrt(num); return res; main() float x,result; printf("digite os numeros:"); scanf("%f",&x); Há um desvio do função principal para a função específica, quando o MAIN encontra a função raiz passa o valor de xparaaposiçãode memóriaque num (variável de entrada da função) ocupa quando foi criada. ISSO É QUE SE CHAMA PASSAGEM DE PARÂMETROS. result=raiz(x); i() printf("a raiz e %.2f\n",result); getch();

Exemplos de Funções Veja o exemplo para calcular o máximo divisor comum entre dois números (sem utilizar função). #include<stdio.h> #include<conio.h> main() int x,y,a,b,mdc,resto; printf("digite os dois inteiros:"); scanf("%d%d",&x,&y); & a=x; b=y; resto = a % b; resto=x%y; while(resto!=0) a=b; b=resto; resto= a % b; mdc=b; printf("mde(%d,%d) = %d\n",x,y,mdc); getch();

Exemplo com Funções int maxdivcom(int x, int y) /* prototipo da funcao*/ int resto; /* variaveis locais da funcao*/ resto = x%y; while(resto!=0) /*estrutura de repeticao*/ /*inicio do bloco da estrutura*/ x=y; y=resto; resto= x % y; /*fim do bloco da estrutura*/ return(y); #include<stdio.h> #include<conio.h> main() int mde,a,b; printf("digite os dois inteiros:"); scanf("%d%d",&a,&b); mde=maxdivcom(a,b); printf("mde(%d,%d)=%d\n",a,b,mde); getch();

Exemplos int soma(int x, int y) /* prototipo da funcao*/ int res; /* variaveis i locais da funcao*/ res = x + y; return res; #include<stdio.h> #include<conio.h> main() int resp,a,b; printf("digite os dois inteiros:"); scanf("%d%d",&a,&b); resp=soma(a,b); printf("a soma de %d e %d = %d\n",a,b,resp); getch();

Exemplos float funcmedia(float x, float y, float z) /* prototipo da funcao*/ float media; /* variaveis locais da funcao*/ media=(x+y+z)/3; return media; #include<stdio.h> #include<conio.h> main() float resp,a,b,c; printf("digite as tres notas:"); scanf("%f%f%f",&a,&b,&c); resp=funcmedia(a,b,c); printf("a media entre %0.f, %0.f e %0.f = %0.f\n",a,b,c,resp); getch();

Desenvolvimento de FUNÇÕES Pode-se passar variáveis i para a função, assim comotambém pode-se declarar variáveis locais dentro do corpo da função. Estas variáveis recebem esta denominação porque só existem dentro da função, pois quando a função retorna (ou termina) elas deixam de estar disponíveis. Os parâmetros passados para a função também são considerados variáveis locais. Por exemplo: #include<stdio.h> float Converter(float TEMPFAR); // protótipo int main( ) float TEMPFAR,TEMPCEL; printf( Temp.em Fahrenheit: ); scanf( %f,&tempfar); TEMPCEL = Converter(TEMPFAR); printf( Em Celsius %f, TEMPCEL); return 0; // Definição do corpo da função float Converter(float TEMPFAR) float TEMPCEL; TEMPCEL=((TEMPFAR 32)*5)/9; ) return TEMPCEL;

Desenvolvimento de FUNÇÕES Exemplo: /* Síntese... */ #include<stdio.h> // declarações float Converter(float F); // protótipo int main( ) float TEMPFAR; float TEMPCEL; printf( Temp.em Fahrenheit: ); scanf( %f,&tempfar); TEMPCEL=Converter(TEMPFAR); printf( Em Celsius %f,tempcel); return 0; float Converter(float F) float CEL; CEL = ((F 32) *5) 9; return CEL; A variável passada por parâmetro possui um endereço diferente e somente vai existir enquanto a função estiver sendo executada. td É feita uma cópia da variável eacópia é usada pela função; F poderia ter ainda outro nome, FAR por exemplo, alterando toda a função.

Desenvolvimento de FUNÇÕES Função como parâmetro de outra Função Embora seja possível, isto pode dificultar a leitura e a depuração do código. Por exemplo: RESPOSTA = (Dobro(Quadrado(Raiz(VALOR))); Mudanças feitas nos argumentos não afetam os valores da função de chamada, pois é feita uma cópia local para cada argumento. Essa cópia é tratada como uma outra variável qualquer. Esta forma de passagem de parâmetro recebe o nome de argumento por valor (ou passagem por valor). O argumento por referência acontece quando é copiado o endereço do argumento para o parâmetro (passando um ponteiro para o argumento). Com isso, as alterações efetuadas sobre o parâmetro afetaram também o valor da variável usada na chamada da função. Será visto it mais a frente queosponteiros ti são passados para as funções como qualquer outra variável.

Desenvolvimento de FUNÇÕES PARÂMETROS PADRÃO Quando uma função possui algum parâmetro (na sua definição ou no protótipo) a função de chamada deve passar um valor quando a chamar, a menos que ela tenha um valor padrão. Um valor padrão é um valor a ser usado caso nenhum valor seja fornecido (informado). Exemplo: long int Testar(int X = 10); // protótipo O cabeçalho da função não é alterado pela definição padrão. Exemplo: long int Testar(int X)...

Desenvolvimento de FUNÇÕES Quando uma função possui um valor padrão todos os parâmetros posteriores desta função deverão ter parâmetros padrões definidos. Exemplo: long int Testar(int PAR1, int PAR2=9, int PAR3=7); long int Testar(int PAR1, int PAR2, int PAR3=5); long int Testar(int PAR1=3, int PAR2=5, int PAR3=7); Só poderá ser atribuído um parâmetro padrão a PAR2 se p p p atribuirapar3eaatribuiçãopoderáserfeitaapar1sefor atribuído a PAR2 e PAR3.

Desenvolvimento de FUNÇÕES SOBRECARREGANDO FUNÇÕES Em C++ é permitido criar uma função com o mesmo nome, sobrecarregando-a. Isto é permitido diferenciando a lista de parâmetros em relação aos seus tipos ou quantidades (ou ambos). Exemplo: int Testar(int, int); int Testar(long, long); int Testar(long); Os tipos de retorno podem ser iguais ou diferentes em uma função sobrecarregada, desde que a lista de parâmetros seja diferente.

Exercício Proposto Elabore um programa que acione uma função que apresente as opções de menu com as seguintes concessionárias de veículos: FIAT, CHEVROLET e FORD. Solicite ao usuário qual das opções ele deseja verificar os carros disponíveis. Identifique qual a opção escolhida e apresente as respectivas opções dos carros disponíveis, conforme as listas descritas abaixo. A concessionária escolhida deverá acionar outra função que apresentará somente os veículos disponíveis da marca especificada. Para cada concessionária deverá existir uma função específica com os carros disponíveis. Após identificar o carro escolhido pelo usuário, apresente no centro de uma janela limpa uma mensagem de agradecimento e o nome do carro escolhido. FIAT CHEVROLET FORD Uno Vectra Escort Esquema Tempra Astra Pampa de funções - Silverado Ranger

Referências Bibliográficas Apresentação extraída e modificada de: www.cepceilandia.df.gov.br/sites/200/296/00000561.ppt Junho de 2008 Rogério Rodrigues de Vargas 27