IFSP Campus Guarulhos

Documentos relacionados
Respostas Exercício: Cobertura Teste Caixa Branca

Aula 2 Comandos de Decisão

Laboratório de 13 de maio de 2019

Programação de Computadores I Funções na Linguagem C PROFESSORA CINTIA CAETANO

Aula 13 Oficina de Programação Modularização. Profa. Elaine Faria UFU

Modularidade - Funções e Procedimentos

PROTÓTPOS DE FUNÇÕES/PROCEDIMENTOS

Introdução à Computação

5 Operações e Funções Matemáticas. Unesp Campus de Guaratinguetá

Exemplo. início variável C: inteiro; // tamanho do lado C

Fundamentos de Programação 1

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

Programação de Computadores II

Linguagem de Programação C

Faculdade de Computação

Introdução a Computação

Cap. 3 Entrada e Saída e Controle de Fluxo

Algoritmos e Programação

Algoritmos RESUMO - LINGUAGEM C

Modularidade - Fun ções e Procedimentos

Curso de Introdução à Liguagem de. Grupo PET-Tele. Universidade Federal Fluminense. July 16, 2012

Aula 12- Variáveis e valores reais

Sub Rotinas. Estrutura de Dados. Prof. Kleber Rezende

Introdução à Linguagem C

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

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

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

Sub-rotinas David Déharbe

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

Programação de Computadores II Aula 03. Linguagem C I

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

Vetores(Arrays) Olimpíadas de Informática. Aulas preparatórias Introdução a Programação em C.

Aula 02 -Introdução àlinguagc Programação: Estrutura-Seleção. OPL e IC1 Prof: Anilton Joaquim da Silva

Introdução à linguagem de programação C. Alexandre Mota

Programação Modular: Exercício T4 e Considerações Finais

Simulado da Prova Parcial 2 (01/08/2013)

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

Solucionário de. Programação

imprimir seus quadrados.

Computação 2. Diego Addan Aula 3. Funções

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Lógica de Programação Atividade Avaliativa 1 RESPOSTAS

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

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Terceira Aula Prática - 10 de setembro de 2010

MAC2166 Introdução à Computação

Material sobre Funções AEDS 1

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

(SCC-0120) Linguagem C

Estrutura de Dados. Struct (Registro) Lais Farias Alves

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Introdução à Computação

15/03/2018. Professor Ariel da Silva Dias Paradigma Imperativo

Olimpíadas de Informática Aulas preparatórias Introdução a Programação em C.

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

scanf () Funções de Entrada e Saída Formatada leitura de dados; formato geral: scanf (string_de_controle,lista_de_argumentos);

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02

1) Operadores de auto incremento ++ e auto decremento --

Computação El E etrônic i a If-Else

Comandos de entrada. e saída. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada.

Introdução a Programação na Linguagem C.

INTRODUÇÃO À PROGRAMAÇÃO

Estruturas de Dados. Nem sempre, a manipulação de dados é feita por simples elementos...

Estruturas de Controle de Fluxo

CCO 016 Fundamentos de Programação

Exercícios Repetição

Estruturas de Dados. Nem sempre, a manipulação de dados é feita por simples elementos... Vetores, Matrizes e Strings Introdução à Computação 1 de 27

SSC304 Introdução à Programação Para Engenharias. Variáveis e I/O em C. GE4 Bio

Fundamentos de Programação 1

Linguagem C. Funções. Prof. Maurício Dias

MAC2166 Introdução à Computação

Linguagem C: Introdução

Módulo 3 Controle de Fluxo

Conceitos básicos. Computação eletrônica: Gurvan Huiban

Fundamentos de Programação1

3.1 - Funções para manipular dados de entrada e saída padrão

Algoritmos e Programação

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

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

Aula 03 -Introdução àlinguagc Programação: Estrutura-Repetição. OPL e IC1 Prof: Anilton Joaquim da Silva

Subprogramas. Prof. Carlos Lopes

ponteiros INF Programação I Prof. Roberto Azevedo

Modulo 4: while do while (limites de variáveis)

LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO

controle de fluxo - condicionais

Aula 4. Comandos de Repetição. Prof. Filipe Mutz.

Algoritmos e Programação Parte 02 Vetores e Matrizes

Engenharia de Software

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal

Introdução a Linguagem C (Parte I) UFPA Sistemas de Informação. Roberto Araujo 2013

Linguagem C ponteiros

SSC 0301 IC para Engenharia Ambiental

Modulo 3: Else, Case, For...

Ocorrem em três tipos:

Introdução à Programação I

Controle de Fluxo Utilizando C

MC102 Algoritmos e Programação de Computadores

Transcrição:

IFSP Campus Guarulhos TLP Técnica e Linguagem de Programação Prof: Dennis Funções

Dividir para conquistar... René Descartes, em seu tratado O discurso sobre o método, diz que uma das regras para atacar um problema qualquer é: "dividir cada uma das dificuldades em tantas parcelas quantas forem possíveis Fonte: google imagens O uso de subrotinas (chamadas de funções em C) tem eatamente essa idéia: dividir o algoritmo em quantas partes forem possíveis, solucioná-lo em separado e então construir o algoritmo completo.

A função em linguagem C As subrotinas em C são chamadas de funções. A maioria das tarefas eecutas por programas em C são realizadas por funções já definidas em bibliotecas como: printf, scanf, getch, pow, etc... Cada função possui variáveis de entrada e de saída. As variáveis de entrada são dadas pelo programa principal e usadas pela função. As variáveis de saída são dadas pela função e usadas pelo programa principal.

Eemplo de função 2 O programa abaio encontra o quadrado de um número utilizando uma função criada pelo usuário para isso: Float a,b; float quadrado(float ); //prototipo da função printf("digite um numero"); scanf("%f",&a); printf("\n"); b=quadrado(a); printf("o quadrado de %0.2f vale: %0.2f \n",a,b); //função quadrado float quadrado(float )

Eemplo de função 2 : fluograma Quando se usa funções, o fluograma desta fica separado do principal: float,y; float quadrado(float ); //prototipo da função printf("digite um numero"); scanf("%f",&); printf("\n"); y=quadrado(); printf("o quadrado de %0.2f vale: %0.2f \n",,y); //função quadrado float quadrado(float ) INICIO Bem vindo Digite um numero Obtém y=quadrado() O quadrado de vale y Obtém um caractere do teclado FIM quadrado () saida = * retorna saida fim

Variáveis locais e globais Utilizando a idéia de funções podem entender a diferença entre variáveis locais e globais. Uma variável global é declarada fora de qualquer função, mesmo fora da função main. Estas variáveis podem ser utilizadas por qualquer função do programa. Uma variável local é declarada dentro de uma função e só pode ser utilizada dentro desta função.

Variáveis locais e globais float,y; float quadrado(float ); //prototipo da função printf("digite um numero"); scanf("%f",&); printf("\n"); y=quadrado(); printf("o quadrado de %0.2f vale: %0.2f \n",,y); //função quadrado float quadrado(float ) e y são variáveis globais, portanto podem ser utilizadas tanto pela função main quanto pela função quadrado. saida é uma variável local, portanto só pode ser utilizada pela função quadrado.

Variáveis locais e globais Como é uma variável global, os dois códigos são equivalentes. No entanto o recomendado é o código a esquerda, pois a função não depende de variáveis globais para funcionar e, consequentemente pode ser utilizada mais facilmente em outros códigos. float,y; float quadrado(float ); printf("digite um numero"); scanf("%f",&); printf("\n"); y=quadrado(); printf("o quadrado de %0.2f vale: %0.2f \n",,y); float quadrado(float ) float,y; float quadrado(); printf("digite um numero "); scanf("%f",&); printf("\n"); y=quadrado(); printf("o quadrado de %f vale: %f \n",,y); float quadrado()

Variáveis locais e globais No código abaio, como é uma variável local da função main, o programa não funciona pois a função quadrado não reconhece a variável. float quadrado(); float,y; printf("digite um numero "); scanf("%f",&); printf("\n"); y=quadrado(); printf("o quadrado de %f vale: %f \n",,y); float quadrado() Não funciona pois só eiste dentro da função main.

Variáveis locais e globais A partir deste ponto, recomenda-se sempre utilizar variáveis locais, a fim de evitar erros de interpretação da eecução do programa. Por eemplo, no código a seguir: float,y; float quadrado(float ); = 2; y=quadrado(4*); printf("o quadrado de %f vale: %f \n",,y); //função quadrado float quadrado(float ) Neste eemplo, a variável global vale 2 mas o parâmetro de entrada da função quadrado é 8. Qual será o valor de y? 4 ou 64?

Variáveis locais e globais A partir deste ponto, recomenda-se sempre utilizar variáveis locais, a fim de evitar erros de interpretação da eecução do programa. Por eemplo, no código a seguir: float,y; float quadrado(float ); = 2; y=quadrado(4*); printf("o quadrado de %f vale: %f \n",,y); //função quadrado float quadrado(float ) Neste eemplo, a variável global vale 2 mas o parâmetro de entrada da função quadrado é 8. Qual será o valor de y? 4 ou 64? Resposta: y irá valer 64. No entanto está claro que esse código dá margem a interpretações erradas e deve ser evitado.

Variáveis locais e globais O código adequado para programas com funções é, portanto aquele que não utiliza variáveis globais e todas as variáveis necessárias a cada função são passadas a ela através dos parâmetros de entrada. float quadrado(float ); float,y; printf("digite um numero "); scanf("%f",&); printf("\n"); y=quadrado(); printf("o quadrado de %f vale: %f \n",,y); float quadrado(float ) Note que é na verdade duas variáveis locais completamente diferentes, ocupando posições diferentes na memória! Esta variável apenas eiste e ocupa espaço na memória durante a eecução da função quadrado.

#include<stdio.h> #include<conio.h> #include<math.h> float delta(float v1,float v2,float v3); int main() float a, b, c, 1, 2; printf("este programa calcula a equacao do segundo grau com funcoes"); printf("digite os valores de a, b e c \n"); scanf("%f",&a); scanf("%f",&b); scanf("%f",&c); if (a==0) printf("equacao de 1 grau com = %f",-c/b); else printf("delta = %f",delta(a,b,c)); if (delta(a,b,c)<0) printf("nao eistem solucoes reais"); else 1 = (-b+sqrt(delta(a,b,c)))/(2*a); 2 = (-b-sqrt(delta(a,b,c)))/(2*a); printf ("As solucoes sao: 1 = %f e 2 = %f",1,2); float delta(float v1,float v2,float v3) float d; d=v2*v2-4*v1*v3; return d; Eemplo 2: Eq 2º grau

Eercícios: 1 Faça um programa com fluograma que, utilizando uma função calcula ^y, sendo y um numero inteiro positivo qualquer. Obs. Não utilize a função pow. 2 Utilizando a função do eercício anterior, faça um programa, com fluograma que calcula o valor de z dado : z 4 3 2 3- Faça um programa com fluograma que, utilizando uma função calcula o fatorial de um número dado pelo usuário. 4 Utilizando a função fatorial do eercício anterior, faça um programa, com fluograma que descobre o resultado da seguinte epressão com 9 casas decimais de precisão. Qual o resultado? 1 1 0! 1! 1 2! 1 3! 1 4! 1... 5! Etra Faça um programa com fluograma que calcula o seno de um numero real dado pelo usuário utilizando a epressão abaio. Não use funções matemáticas prontas, cries as funções de potencia e fatorial. 3 5 7 9 11 seno( ) 3! 5! 7! 9!... 11!