SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
Programação de
Computadores
Aula 3
16/08/2012
Profª Ms. Engª Elaine Cecília Gatto
Unidade 3: Funções
Curso de Bacharelado em Engenharia de Computação
Universidade do Sagrado Coraçã – USC
Bauru/SP
Introdução
• Os programas C normalmente são escritos combinando-se
  novas funções com funções pré-definidas, disponíveis na
  biblioteca-padrão de C.
• A biblioteca padrão de C oferece uma rica coleção de funções
  para realização de cálculos matemáticos comuns, manipulação
  de strings, manipulação de caracteres, entrada/saída e muitas
  outras operações úteis.
• Isso torna seu trabalho mais fácil, pois essas funções oferecem
  muitas das capacidades de que você precisa.
Introdução
• Funções são chamadas, ou invocadas, por uma chamada de
  função, que especifica o nome da função e oferece
  informações, como argumentos, de que a função chamada
  precisa para realizar sua tarefa designada.

• Analogia: chefe e subordinado. O chefe é a função chamadora,
  o subordinado é a função chamada. O chefe pede a um
  subordinado que realize uma tarefa e informe quando ela tiver
  sido concluída. O chefe não sabe exatamente como o
  subordinado realiza suas tarefas. O subordinado pode chamar
  outros para ajudá-lo a realizar as tarefas sem o chefe saber.
Introdução
• As funções permitem a criação de um programa em módulos.
  Todas as variáveis descritas nas definições de função são
  variáveis locais – elas são conhecidas apenas na função em
  que são definidas.
• A maioria das funções possui uma lista de parâmetros que
  oferecem meios de transmissão de informações entre as
  funções. Os parâmetros de uma função também são variáveis
  locais dessa função.
• Nos programas que contém muitas funções, MAIN,
  normalmente é implementada como um grupo de chamadas
  para funções que realizzam a maior parte do trabalho no
  programa.
Introdução
• Evite reinventar a roda. Quando possível, use as funções da
  biblioteca-padrão de C em vez de escrever nonvas funções.
  Isso pode reduzir o tempo de desenvolvimento do programa.
• O uso das funções das bibliotecas padrão de C ajuda a tornar
  os programas mais portáteis.
• Cada função deve ser limitada a realizar uma única tarefa bem
  sucedida, e o nome dela deve expressar essa tarefa. Isso
  facilita a abstração e promove a reutilização do software.
• Se você não puder escolher um nome curto que expresse o
  que a função faz, é possível que sua função esteja tentando
  realizar muitas tarefas diversas. Normalmente, é melhor
  quebrar essa função em várias funções menores – às vezes
  chamamos isso de decomposição.
Introdução
• Uma função é um conjunto de instruções desenhadas para
  cumprir uma tarefa particular e agrupadas numa unidade com
  um nome para referenciá-la.
• Funções dividem grandes tarefas de cmputação em tarefas
  menores, e permitem às pessoas trabalharem sobre o que
  outras já fizeram, em vez de partir do nada.
• Uma das principais razões para escrever funções é permitir
  que todos os outros programadores C a utilizem em seus
  programas.
• Funções apropriadas podem frequentemente esconder
  detalhes de operação de partes do programa que não
  necessitam conhecê-las
Introdução
• Você já usou a função printf() sem conhecer detalhes de sua
  programação.
• A existência de funções evita que o programador tenha de
  escrever o mesmo código repetidas vezes.
• Qualquer sequencia de instruções que apareça mais de uma
  vez no programa é condidata a ser uma função.
• O código de uma função é agregado ao programa uma única
  vez e pode ser executado muitas vezes no decorrer do
  programa.
• O uso de funções reduz o tamanho do programa.
Funções da biblioteca
    matemática
função      descrição                                                 exemplo

sqrt(x)     raíz quadrada de x                                        sqrt(900,0) = 30,0

exp(x)      exponencial ex                                            exp(1,0) = 2,718

log(x)      logarítimo natural de x (base e)                          log(2,718) = 1,0

log10(x)    logarítimo de x (base 10)                                 lo10(1,0) = 0,0

fabs(x)     valor absoluto de x                                       fabs(-13,5) = 13,5

ceil(x)     arredonda x ao menor inteiro não menor que x              ceil(9,2) = 10,00
                                                                      ceil(-9,8) = 9,00

floor(x)    arredonda x ao maior inteiro não maior que x              floor(9,2) = 9,00
                                                                      floor(-9,8) = 10,00

pow(x,y)    x elevado à potência y (xy)                               pow(2,7) = 128,0

fmod(x,y)   módulo, resto, de x/y como um número em ponto flutuante   fmod(13,657, 2,33) =
                                                                      1,992

sin(x)      Seno trigonométrico de x (x em radianos)                  Sin(0,0) = 0,0
Definição
• Main: função principal que chama funções da biblioteca padrão para
  realizar suas tarefas. Exemplo de programa que utiliza função:


A função square é chamada
ou invocada em main dentro
da instrução printf. A função
square recebe uma cópia do
valor de x no parâmetro y.
Deopis, square calcula y*y. O
resultado é passado de volta
à função printf em main,
onde square foi chamada, e
printf exibe o resultado. O
processo é repetido 10 vezes,
usando for.
Definição
• A definição da função square mostra que square espera por
  um parâmetro inteiro y. A palavra-chave int antes do nome da
  função indica que square retorna um resultado inteiro. A
  instrução return dentro de squar passa o resultado do cálculo
  de volta à função chamadora.
• FORMATO DE UMA DEFINIÇÃO DE FUNÇÃO:
tipo-valor-retorno nome-função( lista-de-parametros)
{
   definições
   instruções
}
Dicas!
• Esquecer de retornar um valor de uma função que deveria
  retornar um valor pode gerar erros inespserados.
• Retornar um valor de uma função com um tipo de retorno
  void é um erro de compilação.
• Especificar parâmetros de função do mesmo tipo como
  double x, y e vez de double x, double y, resulta em um erro de
  compilação.
• Colocar um ponto e vírgula após o parêntese à direita que
  delimita a lista de parâmetros de uma definição de função é
  um erro de sintaxe.
• Definir, novamente, um parâmetro como uma variável local
  em uma função é um erro de compilação.
Dicas!
• Embora não seja errado, não use os mesmos nomes para os
  argumentos de uma função e para os parâmetros
  correspondentes na definição da função. Isso ajuda a evitar
  ambiguidades.
• As definições e instruções dentro das chaves formam o corpo
  da função. O corpo da função também é chamado de bloco.
  As variáveis podem ser declaradas em qualquer bloco, e os
  blocos podem ser aninhados. Uma função não pode ser
  definida dentro de outra função.
• Escolher nomes de função e de parâmetro significativos torna
  os programas mais legíveis e evita o uso excessivo de
  comentários.
Dicas!
• Geralmente, uma função não deve ocupar mais que uma
  página. Melhor ainda, as funções não devem ocupar mais que
  meia página. Funções pequenas promovem a reutilização de
  software.
• Os programas devem ser escritos como coleções de pequenas
  funções. Isso os torna mais fáceis de serem escritos,
  depurados, mantidos e modificados.
• Uma função que exige um grande número de parâmetros
  pode estar realizando tarefas demais. Considere dividí-la em
  funções menores, que realizem as tarefas separadamente. O
  cabeçalho da função deverá caber em uma linha, se possível.
Exemplo 2
Exemplo 3
Protótipos de funções
• O protótipo de função diz ao compilar o tipo de dado
  retornado pela função, o número de parâmetros que a função
  espera receber, os tipos dos parâmetros e a ordem em que
  esses parâmetros são esperados.
• O compilador utiliza protótipos de função para validar as
  chamadas de função.
• As versões anteriores de C não realizavam esse tipo de
  verificação, de modo que era possível chamar funções
  incorretamente sem que o compilador detectasse os erros.
• Essas chamadas poderiam resultar em erros fatais no tempo
  de execução, ou em erros não fatais que causavam erros
  lógicos sutis e dificieis de detectar.
• Os protótipos de funções corrigem essa deficiência.
Protótipos de funções
• Inclua protótipos de função em todas as funções para tirar
  proveito das capacidades de verificação de tipo da linguagem
  C.
• Utilize diretivas do pré-processador #include para obter
  protótipos de função para as funções da biblioteca padrão a
  partir dos cabeçalhos para as bibliotecas apropriadas, ou para
  obter cabeçalhos que contenham protótipos de função para
  funções desenvolvidas por você e/ou pelos membros do seu
  grupo.
• Às vezes, os nomes de parâmetros são incluídos nos
  protótipos de função, nossa preferência, para fins de
  documentação. O compilador ignora esses nomes.
• Esquecer de colocar o ponto e vírgula ao final de um protótipo
  de função é um erro de sintaxe.
• Uma chamada de função que não corresponde ao protótipo
  de função consiste em um erro de compilação.
Protótipos de funções
• Uma função não pode ser chamada sem antes ter sido
  declarada.
• A declaração de uma função é dita protótipo da função, é uma
  instrução geralmente colocada no início do programa que
  estabelece o tipo da função e os argumentos que ela recebe.
• O protótipo da função permite que o compilador verifique a
  sintaxe de chamada à função.
• O propósito principal de escrita de protótipos de funções em C
  é o de fornecer ao compilador as informações necessárias
  sobre o tipo da função, o número e o tipo dos argumentos.
• Assim, tornamos possível a verificação da sintaxe de chamada
  à função.
• Sem o protótipo da função, o compilador não tem como
  verificar e checar se há erros em seu uso.
Conversão de tipos
• Os valores de argumentos que não correpondem exatamente
  aos tipos de parâmetro no protótipo de função são
  transformados no tipo apropriado antes que a função seja
  chamada.
• Essas conversões podem gerar resultados incorretos se as
  regras de promoção não forem seguidas. Essas regras
  especificam como os tipos podem ser convertidos para outros
  sem que haja perda de dados.
• Um int é convertido automaticamente para double sem
  mudar seu valor. Porém, um double convertido para int trunca
  a parte fracionária do valor double.
• Converter tipos inteiros grandes para tipos inteiros pequenos
  também pode resultar em valores alterados
Conversão de tipos
• As regras de promoção se aplicam automaticamente a
  expressões que contenha valores de dois ou mais tipos de
  dados, ou expressões de tipo misto.
• O tipo de cada valor em uma expressão de tipo misto é
  automaticamente promovido para o tipo mais alto na
  expressão – na realidade, uma versão temporária de cada
  valor é criada e usada na expressão, os valores originais
  permanecem inalterados.
• A conversão de valores em tipos inferiores normalmente
  resulta em um valor incorreto. Portanto, um valor pode ser
  convertido em um tipo inferior somente pela atribuição
  explícita do valor a uma variável do tipo inferior, ou usando-se
  um operador de coerção.
Conversão de tipos
• Os valores de argumentos de função são convertidos para
  tipos de parâmetro de um protótipo de função como se
  estivessem sendo atribuídos diretamente às variáveis desses
  tipos.
• Converter um tipo de dados mais alto na hierarquia de
  promoção em um tipo inferior pode alterar o valor do dado.
  Muitos compiladores emitem advertência nesses casos.
• Sempre inclua protótipos de função nas funções que você
  define ou usa em seu programa; isso ajuda a evitar erros e
  advertências na compilação
• Um protótipo de função colocado fora de qualquer definição
  de função se aplica a todas as chamadas para a função que
  aparecem após o protótipo de função no arquivo.
Conversão de tipos
• Um protótipo de função colocado dentro de uma função se
  aplica apenas às chamadas feitas nessa função.
• Se não há protótipo de função par auma função, o compilador
  forma seu próprio protótipo, usando a primeira ocorrência da
  função – ou a definição de função, ou uma chaamada para a
  função. Normalmente, isso causa advertência ou erros, a
  depender do compilador.
Chamada por valor e referência
• Existem duas formas de se chamar funções, a chamada por valor e a
  chamada por referência.
• Quando os argumentos são passados por valor, uma cópia do valor
  do argumento é feita e passada para a função chamada.
• As mudanças na cópia não afetam o valor original da variável na
  chamadora.
• Quando um argumento é passado por referência, o chamador
  permite que a função chamada modifique o valor da variável
  original.
• A chamada por valor deverá ser usada sempre que a função
  chamada não precisar modificar o valor da vari´vel original da
  chamadora.
• Isso evita efeitos colaterais acidentais que tanto atrapalham o
  desenvolvimento de sistemas de software corretos e confiáveis.
• A chamada por referência deve ser usada apenas nos casos de
  funções chamadas confiáveis, que precisam modificar a variável
  original. Em C, todas as chamadas são feitas por valor.
O tipo de uma função
• O tipo de uma função é definido pelo tipo de valor que ela
  retorna por meio do comando return.
• Uma função é do tipo float quando retorna um valor do tipo
  float.
• Os tipos de funções C são os mesmos tipos que o das
  variáveis, exceto quando a função não retorna nada.
• Nesse caso, ela é do tipo void.
• O tipo de uma função é determinado pelo valor que ela
  retorna via comando return, e não pelo tipo de argumentos
  que ela recebe.
O comando return
• O comando return termina a execução da função e retorna o
  controle para a instrução seguinte do código de chamada.
• Se, após a palavra return, houver uma expressão, o valor desta
  é retornado à função que chama.
• Esse valor é convertido para o tipo da função, especificado no
  seu protótipo.
• A sintaxe de uma instrução return tem uma das três seguintes
  formas:

  return;
  return expressão;
  return (expressão);
O comando return
• Funções do tipo void podem ter um comando return
  desacompanhado de expressão.
• Nesse caso, o comando return serve para terminar a execução
  da função.
• Em função do tipo void, o comando return não é obrigatório.
• Uma função sem comando rturn termina quando encontra a
  chave de fechamento ( { )
• Enquanto vários valores podem ser passados para uma função
  como argumentos, não é permitido o retorno de mais de um
  valor por meio do comando return.
• O comando return pode retornar somente um único valor
  para a função que chama.
Exemplo 4
Exemplo 5
Exemplo 5
Exemplo 6
Exemplo 7
Exemplo 8
Exemplo 9
Exemplo 9
Exemplo 10
Exemplo 11
Exemplo 12
Exemplo 13
Exemplo 14

Mais conteúdo relacionado

Mais procurados

Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
TIC - Conceitos Básicos
TIC - Conceitos BásicosTIC - Conceitos Básicos
TIC - Conceitos BásicosAntonio Semedo
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoNorton Guimarães
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em pythonAlvaro Oliveira
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01 Léo Dias
 
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...Leinylson Fontinele
 
Avarias mais comuns nos computadores
Avarias mais comuns nos computadoresAvarias mais comuns nos computadores
Avarias mais comuns nos computadoresedlander
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Leinylson Fontinele
 
Introdução a Informática
Introdução a InformáticaIntrodução a Informática
Introdução a InformáticaDaniel Brandão
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisDaniel Brandão
 
Sistema Operacional Windows (versão 11)
Sistema Operacional Windows (versão 11)Sistema Operacional Windows (versão 11)
Sistema Operacional Windows (versão 11)DaviMatos25
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Karoline Tavares
 

Mais procurados (20)

Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
TIC - Conceitos Básicos
TIC - Conceitos BásicosTIC - Conceitos Básicos
TIC - Conceitos Básicos
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP Básico
 
Html Básico
Html BásicoHtml Básico
Html Básico
 
HTML/CSS Patterns
HTML/CSS PatternsHTML/CSS Patterns
HTML/CSS Patterns
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
 
Memória RAM
Memória RAMMemória RAM
Memória RAM
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01
 
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...
Banco de Dados II Aula 14 - Projeto de Banco de Dados e Estudo de Caso (Postg...
 
Avarias mais comuns nos computadores
Avarias mais comuns nos computadoresAvarias mais comuns nos computadores
Avarias mais comuns nos computadores
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
 
Aula03 - Informática Básica
Aula03 - Informática BásicaAula03 - Informática Básica
Aula03 - Informática Básica
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
Logica de Programacao
Logica de ProgramacaoLogica de Programacao
Logica de Programacao
 
Introdução a Informática
Introdução a InformáticaIntrodução a Informática
Introdução a Informática
 
Apresentação Linguagem C
Apresentação Linguagem CApresentação Linguagem C
Apresentação Linguagem C
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas Condicionais
 
Manual do Gimp
Manual do GimpManual do Gimp
Manual do Gimp
 
Sistema Operacional Windows (versão 11)
Sistema Operacional Windows (versão 11)Sistema Operacional Windows (versão 11)
Sistema Operacional Windows (versão 11)
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros
 

Destaque

Demonstração e argumentação
Demonstração e argumentaçãoDemonstração e argumentação
Demonstração e argumentaçãoPaulo Gomes
 
Discurso Argumentativo e Retórica (de acordo com manual "Pensar Azul")
Discurso Argumentativo e Retórica (de acordo com manual "Pensar Azul")Discurso Argumentativo e Retórica (de acordo com manual "Pensar Azul")
Discurso Argumentativo e Retórica (de acordo com manual "Pensar Azul")Jorge Barbosa
 
Slides das Aulas de Teoria e Prática da Argumentação Jurídica (2012)
Slides das Aulas de Teoria e Prática da Argumentação Jurídica (2012)Slides das Aulas de Teoria e Prática da Argumentação Jurídica (2012)
Slides das Aulas de Teoria e Prática da Argumentação Jurídica (2012)Luís Rodolfo A. de Souza Dantas
 
Aula sobre argumentação
Aula sobre argumentaçãoAula sobre argumentação
Aula sobre argumentaçãoJamille Rabelo
 

Destaque (6)

Demonstração e argumentação
Demonstração e argumentaçãoDemonstração e argumentação
Demonstração e argumentação
 
Linguagem C - Funções
Linguagem C - FunçõesLinguagem C - Funções
Linguagem C - Funções
 
Discurso Argumentativo e Retórica (de acordo com manual "Pensar Azul")
Discurso Argumentativo e Retórica (de acordo com manual "Pensar Azul")Discurso Argumentativo e Retórica (de acordo com manual "Pensar Azul")
Discurso Argumentativo e Retórica (de acordo com manual "Pensar Azul")
 
Slides das Aulas de Teoria e Prática da Argumentação Jurídica (2012)
Slides das Aulas de Teoria e Prática da Argumentação Jurídica (2012)Slides das Aulas de Teoria e Prática da Argumentação Jurídica (2012)
Slides das Aulas de Teoria e Prática da Argumentação Jurídica (2012)
 
Aula sobre argumentação
Aula sobre argumentaçãoAula sobre argumentação
Aula sobre argumentação
 
O que é argumentar
O que é argumentarO que é argumentar
O que é argumentar
 

Semelhante a Funções C biblioteca

Aula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptxAula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptxItamarGoncalves2
 
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdfAula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdfMauricio Wieler
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturadadiogoa21
 
Recursividade em linguagem C
Recursividade em linguagem CRecursividade em linguagem C
Recursividade em linguagem CLeonardo Lima
 
Subalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca LopesSubalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca Lopesmarcosnem
 
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)Filipe Chagas Ferraz
 
aula intro de Python sobre Funcoes.pdf
aula intro de  Python sobre  Funcoes.pdfaula intro de  Python sobre  Funcoes.pdf
aula intro de Python sobre Funcoes.pdfGabrielEduardo16342
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03thomasdacosta
 
Utilizando funções em C: modularizando os programas.
Utilizando funções em C: modularizando os programas.Utilizando funções em C: modularizando os programas.
Utilizando funções em C: modularizando os programas.SchoolByte
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em CElaine Cecília Gatto
 
Funções inline e Recursivas
Funções inline e RecursivasFunções inline e Recursivas
Funções inline e RecursivasKadzuwa Kuyeri
 
Desenvolvimento de função se37
Desenvolvimento de função se37Desenvolvimento de função se37
Desenvolvimento de função se37Luciana Bonganha
 

Semelhante a Funções C biblioteca (20)

Aula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptxAula 8 - Modularização e Funções.pptx
Aula 8 - Modularização e Funções.pptx
 
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdfAula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
Aula de Funções - 1ª Parte (2015_04_26 22_22_50 UTC).pdf
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturada
 
SubProgramas
SubProgramasSubProgramas
SubProgramas
 
Recursividade em linguagem C
Recursividade em linguagem CRecursividade em linguagem C
Recursividade em linguagem C
 
Modularização
ModularizaçãoModularização
Modularização
 
Subalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca LopesSubalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca Lopes
 
Aula 4
Aula 4Aula 4
Aula 4
 
Aula 4 | Funções
Aula 4 | Funções Aula 4 | Funções
Aula 4 | Funções
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
Aula - Funções (Curso de Python Básico -- FATEC SENAI MT)
 
aula intro de Python sobre Funcoes.pdf
aula intro de  Python sobre  Funcoes.pdfaula intro de  Python sobre  Funcoes.pdf
aula intro de Python sobre Funcoes.pdf
 
Ud2
Ud2Ud2
Ud2
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03
 
Utilizando funções em C: modularizando os programas.
Utilizando funções em C: modularizando os programas.Utilizando funções em C: modularizando os programas.
Utilizando funções em C: modularizando os programas.
 
M5 php rc
M5 php rcM5 php rc
M5 php rc
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em C
 
Aula09 traducaosin110
Aula09 traducaosin110Aula09 traducaosin110
Aula09 traducaosin110
 
Funções inline e Recursivas
Funções inline e RecursivasFunções inline e Recursivas
Funções inline e Recursivas
 
Desenvolvimento de função se37
Desenvolvimento de função se37Desenvolvimento de função se37
Desenvolvimento de função se37
 

Mais de Elaine Cecília Gatto

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaElaine Cecília Gatto
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaElaine Cecília Gatto
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Elaine Cecília Gatto
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCElaine Cecília Gatto
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxElaine Cecília Gatto
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Elaine Cecília Gatto
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarElaine Cecília Gatto
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesElaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationElaine Cecília Gatto
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfElaine Cecília Gatto
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Elaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoElaine Cecília Gatto
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsElaine Cecília Gatto
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoElaine Cecília Gatto
 

Mais de Elaine Cecília Gatto (20)

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etaria
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPC
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptx
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCar
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label Classification
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamento
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 

Último

ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptMaiteFerreira4
 
Descreve o conceito de função, objetos, imagens, domínio e contradomínio.
Descreve o conceito de função, objetos, imagens, domínio e contradomínio.Descreve o conceito de função, objetos, imagens, domínio e contradomínio.
Descreve o conceito de função, objetos, imagens, domínio e contradomínio.Vitor Mineiro
 
CLASSE DE PALAVRAS completo para b .pptx
CLASSE DE PALAVRAS completo para b .pptxCLASSE DE PALAVRAS completo para b .pptx
CLASSE DE PALAVRAS completo para b .pptxFranciely Carvalho
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
SEMINÁRIO QUIMICA AMBIENTAL - PPGEEA - FINAL.pptx
SEMINÁRIO QUIMICA AMBIENTAL -  PPGEEA - FINAL.pptxSEMINÁRIO QUIMICA AMBIENTAL -  PPGEEA - FINAL.pptx
SEMINÁRIO QUIMICA AMBIENTAL - PPGEEA - FINAL.pptxCompartilhadoFACSUFA
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfjanainadfsilva
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptxthaisamaral9365923
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxBeatrizLittig1
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxRonys4
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 

Último (20)

CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.ppt
 
Descreve o conceito de função, objetos, imagens, domínio e contradomínio.
Descreve o conceito de função, objetos, imagens, domínio e contradomínio.Descreve o conceito de função, objetos, imagens, domínio e contradomínio.
Descreve o conceito de função, objetos, imagens, domínio e contradomínio.
 
CLASSE DE PALAVRAS completo para b .pptx
CLASSE DE PALAVRAS completo para b .pptxCLASSE DE PALAVRAS completo para b .pptx
CLASSE DE PALAVRAS completo para b .pptx
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
SEMINÁRIO QUIMICA AMBIENTAL - PPGEEA - FINAL.pptx
SEMINÁRIO QUIMICA AMBIENTAL -  PPGEEA - FINAL.pptxSEMINÁRIO QUIMICA AMBIENTAL -  PPGEEA - FINAL.pptx
SEMINÁRIO QUIMICA AMBIENTAL - PPGEEA - FINAL.pptx
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docx
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 

Funções C biblioteca

  • 1. Programação de Computadores Aula 3 16/08/2012 Profª Ms. Engª Elaine Cecília Gatto Unidade 3: Funções Curso de Bacharelado em Engenharia de Computação Universidade do Sagrado Coraçã – USC Bauru/SP
  • 2. Introdução • Os programas C normalmente são escritos combinando-se novas funções com funções pré-definidas, disponíveis na biblioteca-padrão de C. • A biblioteca padrão de C oferece uma rica coleção de funções para realização de cálculos matemáticos comuns, manipulação de strings, manipulação de caracteres, entrada/saída e muitas outras operações úteis. • Isso torna seu trabalho mais fácil, pois essas funções oferecem muitas das capacidades de que você precisa.
  • 3. Introdução • Funções são chamadas, ou invocadas, por uma chamada de função, que especifica o nome da função e oferece informações, como argumentos, de que a função chamada precisa para realizar sua tarefa designada. • Analogia: chefe e subordinado. O chefe é a função chamadora, o subordinado é a função chamada. O chefe pede a um subordinado que realize uma tarefa e informe quando ela tiver sido concluída. O chefe não sabe exatamente como o subordinado realiza suas tarefas. O subordinado pode chamar outros para ajudá-lo a realizar as tarefas sem o chefe saber.
  • 4. Introdução • As funções permitem a criação de um programa em módulos. Todas as variáveis descritas nas definições de função são variáveis locais – elas são conhecidas apenas na função em que são definidas. • A maioria das funções possui uma lista de parâmetros que oferecem meios de transmissão de informações entre as funções. Os parâmetros de uma função também são variáveis locais dessa função. • Nos programas que contém muitas funções, MAIN, normalmente é implementada como um grupo de chamadas para funções que realizzam a maior parte do trabalho no programa.
  • 5. Introdução • Evite reinventar a roda. Quando possível, use as funções da biblioteca-padrão de C em vez de escrever nonvas funções. Isso pode reduzir o tempo de desenvolvimento do programa. • O uso das funções das bibliotecas padrão de C ajuda a tornar os programas mais portáteis. • Cada função deve ser limitada a realizar uma única tarefa bem sucedida, e o nome dela deve expressar essa tarefa. Isso facilita a abstração e promove a reutilização do software. • Se você não puder escolher um nome curto que expresse o que a função faz, é possível que sua função esteja tentando realizar muitas tarefas diversas. Normalmente, é melhor quebrar essa função em várias funções menores – às vezes chamamos isso de decomposição.
  • 6. Introdução • Uma função é um conjunto de instruções desenhadas para cumprir uma tarefa particular e agrupadas numa unidade com um nome para referenciá-la. • Funções dividem grandes tarefas de cmputação em tarefas menores, e permitem às pessoas trabalharem sobre o que outras já fizeram, em vez de partir do nada. • Uma das principais razões para escrever funções é permitir que todos os outros programadores C a utilizem em seus programas. • Funções apropriadas podem frequentemente esconder detalhes de operação de partes do programa que não necessitam conhecê-las
  • 7. Introdução • Você já usou a função printf() sem conhecer detalhes de sua programação. • A existência de funções evita que o programador tenha de escrever o mesmo código repetidas vezes. • Qualquer sequencia de instruções que apareça mais de uma vez no programa é condidata a ser uma função. • O código de uma função é agregado ao programa uma única vez e pode ser executado muitas vezes no decorrer do programa. • O uso de funções reduz o tamanho do programa.
  • 8. Funções da biblioteca matemática função descrição exemplo sqrt(x) raíz quadrada de x sqrt(900,0) = 30,0 exp(x) exponencial ex exp(1,0) = 2,718 log(x) logarítimo natural de x (base e) log(2,718) = 1,0 log10(x) logarítimo de x (base 10) lo10(1,0) = 0,0 fabs(x) valor absoluto de x fabs(-13,5) = 13,5 ceil(x) arredonda x ao menor inteiro não menor que x ceil(9,2) = 10,00 ceil(-9,8) = 9,00 floor(x) arredonda x ao maior inteiro não maior que x floor(9,2) = 9,00 floor(-9,8) = 10,00 pow(x,y) x elevado à potência y (xy) pow(2,7) = 128,0 fmod(x,y) módulo, resto, de x/y como um número em ponto flutuante fmod(13,657, 2,33) = 1,992 sin(x) Seno trigonométrico de x (x em radianos) Sin(0,0) = 0,0
  • 9. Definição • Main: função principal que chama funções da biblioteca padrão para realizar suas tarefas. Exemplo de programa que utiliza função: A função square é chamada ou invocada em main dentro da instrução printf. A função square recebe uma cópia do valor de x no parâmetro y. Deopis, square calcula y*y. O resultado é passado de volta à função printf em main, onde square foi chamada, e printf exibe o resultado. O processo é repetido 10 vezes, usando for.
  • 10. Definição • A definição da função square mostra que square espera por um parâmetro inteiro y. A palavra-chave int antes do nome da função indica que square retorna um resultado inteiro. A instrução return dentro de squar passa o resultado do cálculo de volta à função chamadora. • FORMATO DE UMA DEFINIÇÃO DE FUNÇÃO: tipo-valor-retorno nome-função( lista-de-parametros) { definições instruções }
  • 11. Dicas! • Esquecer de retornar um valor de uma função que deveria retornar um valor pode gerar erros inespserados. • Retornar um valor de uma função com um tipo de retorno void é um erro de compilação. • Especificar parâmetros de função do mesmo tipo como double x, y e vez de double x, double y, resulta em um erro de compilação. • Colocar um ponto e vírgula após o parêntese à direita que delimita a lista de parâmetros de uma definição de função é um erro de sintaxe. • Definir, novamente, um parâmetro como uma variável local em uma função é um erro de compilação.
  • 12. Dicas! • Embora não seja errado, não use os mesmos nomes para os argumentos de uma função e para os parâmetros correspondentes na definição da função. Isso ajuda a evitar ambiguidades. • As definições e instruções dentro das chaves formam o corpo da função. O corpo da função também é chamado de bloco. As variáveis podem ser declaradas em qualquer bloco, e os blocos podem ser aninhados. Uma função não pode ser definida dentro de outra função. • Escolher nomes de função e de parâmetro significativos torna os programas mais legíveis e evita o uso excessivo de comentários.
  • 13. Dicas! • Geralmente, uma função não deve ocupar mais que uma página. Melhor ainda, as funções não devem ocupar mais que meia página. Funções pequenas promovem a reutilização de software. • Os programas devem ser escritos como coleções de pequenas funções. Isso os torna mais fáceis de serem escritos, depurados, mantidos e modificados. • Uma função que exige um grande número de parâmetros pode estar realizando tarefas demais. Considere dividí-la em funções menores, que realizem as tarefas separadamente. O cabeçalho da função deverá caber em uma linha, se possível.
  • 16. Protótipos de funções • O protótipo de função diz ao compilar o tipo de dado retornado pela função, o número de parâmetros que a função espera receber, os tipos dos parâmetros e a ordem em que esses parâmetros são esperados. • O compilador utiliza protótipos de função para validar as chamadas de função. • As versões anteriores de C não realizavam esse tipo de verificação, de modo que era possível chamar funções incorretamente sem que o compilador detectasse os erros. • Essas chamadas poderiam resultar em erros fatais no tempo de execução, ou em erros não fatais que causavam erros lógicos sutis e dificieis de detectar. • Os protótipos de funções corrigem essa deficiência.
  • 17. Protótipos de funções • Inclua protótipos de função em todas as funções para tirar proveito das capacidades de verificação de tipo da linguagem C. • Utilize diretivas do pré-processador #include para obter protótipos de função para as funções da biblioteca padrão a partir dos cabeçalhos para as bibliotecas apropriadas, ou para obter cabeçalhos que contenham protótipos de função para funções desenvolvidas por você e/ou pelos membros do seu grupo. • Às vezes, os nomes de parâmetros são incluídos nos protótipos de função, nossa preferência, para fins de documentação. O compilador ignora esses nomes. • Esquecer de colocar o ponto e vírgula ao final de um protótipo de função é um erro de sintaxe. • Uma chamada de função que não corresponde ao protótipo de função consiste em um erro de compilação.
  • 18. Protótipos de funções • Uma função não pode ser chamada sem antes ter sido declarada. • A declaração de uma função é dita protótipo da função, é uma instrução geralmente colocada no início do programa que estabelece o tipo da função e os argumentos que ela recebe. • O protótipo da função permite que o compilador verifique a sintaxe de chamada à função. • O propósito principal de escrita de protótipos de funções em C é o de fornecer ao compilador as informações necessárias sobre o tipo da função, o número e o tipo dos argumentos. • Assim, tornamos possível a verificação da sintaxe de chamada à função. • Sem o protótipo da função, o compilador não tem como verificar e checar se há erros em seu uso.
  • 19. Conversão de tipos • Os valores de argumentos que não correpondem exatamente aos tipos de parâmetro no protótipo de função são transformados no tipo apropriado antes que a função seja chamada. • Essas conversões podem gerar resultados incorretos se as regras de promoção não forem seguidas. Essas regras especificam como os tipos podem ser convertidos para outros sem que haja perda de dados. • Um int é convertido automaticamente para double sem mudar seu valor. Porém, um double convertido para int trunca a parte fracionária do valor double. • Converter tipos inteiros grandes para tipos inteiros pequenos também pode resultar em valores alterados
  • 20. Conversão de tipos • As regras de promoção se aplicam automaticamente a expressões que contenha valores de dois ou mais tipos de dados, ou expressões de tipo misto. • O tipo de cada valor em uma expressão de tipo misto é automaticamente promovido para o tipo mais alto na expressão – na realidade, uma versão temporária de cada valor é criada e usada na expressão, os valores originais permanecem inalterados. • A conversão de valores em tipos inferiores normalmente resulta em um valor incorreto. Portanto, um valor pode ser convertido em um tipo inferior somente pela atribuição explícita do valor a uma variável do tipo inferior, ou usando-se um operador de coerção.
  • 21. Conversão de tipos • Os valores de argumentos de função são convertidos para tipos de parâmetro de um protótipo de função como se estivessem sendo atribuídos diretamente às variáveis desses tipos. • Converter um tipo de dados mais alto na hierarquia de promoção em um tipo inferior pode alterar o valor do dado. Muitos compiladores emitem advertência nesses casos. • Sempre inclua protótipos de função nas funções que você define ou usa em seu programa; isso ajuda a evitar erros e advertências na compilação • Um protótipo de função colocado fora de qualquer definição de função se aplica a todas as chamadas para a função que aparecem após o protótipo de função no arquivo.
  • 22. Conversão de tipos • Um protótipo de função colocado dentro de uma função se aplica apenas às chamadas feitas nessa função. • Se não há protótipo de função par auma função, o compilador forma seu próprio protótipo, usando a primeira ocorrência da função – ou a definição de função, ou uma chaamada para a função. Normalmente, isso causa advertência ou erros, a depender do compilador.
  • 23. Chamada por valor e referência • Existem duas formas de se chamar funções, a chamada por valor e a chamada por referência. • Quando os argumentos são passados por valor, uma cópia do valor do argumento é feita e passada para a função chamada. • As mudanças na cópia não afetam o valor original da variável na chamadora. • Quando um argumento é passado por referência, o chamador permite que a função chamada modifique o valor da variável original. • A chamada por valor deverá ser usada sempre que a função chamada não precisar modificar o valor da vari´vel original da chamadora. • Isso evita efeitos colaterais acidentais que tanto atrapalham o desenvolvimento de sistemas de software corretos e confiáveis. • A chamada por referência deve ser usada apenas nos casos de funções chamadas confiáveis, que precisam modificar a variável original. Em C, todas as chamadas são feitas por valor.
  • 24. O tipo de uma função • O tipo de uma função é definido pelo tipo de valor que ela retorna por meio do comando return. • Uma função é do tipo float quando retorna um valor do tipo float. • Os tipos de funções C são os mesmos tipos que o das variáveis, exceto quando a função não retorna nada. • Nesse caso, ela é do tipo void. • O tipo de uma função é determinado pelo valor que ela retorna via comando return, e não pelo tipo de argumentos que ela recebe.
  • 25. O comando return • O comando return termina a execução da função e retorna o controle para a instrução seguinte do código de chamada. • Se, após a palavra return, houver uma expressão, o valor desta é retornado à função que chama. • Esse valor é convertido para o tipo da função, especificado no seu protótipo. • A sintaxe de uma instrução return tem uma das três seguintes formas: return; return expressão; return (expressão);
  • 26. O comando return • Funções do tipo void podem ter um comando return desacompanhado de expressão. • Nesse caso, o comando return serve para terminar a execução da função. • Em função do tipo void, o comando return não é obrigatório. • Uma função sem comando rturn termina quando encontra a chave de fechamento ( { ) • Enquanto vários valores podem ser passados para uma função como argumentos, não é permitido o retorno de mais de um valor por meio do comando return. • O comando return pode retornar somente um único valor para a função que chama.