SlideShare ist ein Scribd-Unternehmen logo
1 von 6
Downloaden Sie, um offline zu lesen
1
Subalgoritmos
Profª. Leticia Lopes Leite
Programação para Engenharia I
O que é uma função?
São blocos de códigos (módulos) que
podem ser chamados dentro de um
programa.
“Dividir para conquistar”
Vantagens da Modularização*
• Economia de tempo de criação do programa;
• Economia de tempo de manutenção do
programa;
• Organização do código;
- Evitar que um trecho de código seja repetido várias
vezes;
- Evitar que os blocos fiquem extensos demais;
- Facilitar a leitura do programa fonte;
• Reutilização de módulos;
• Construção de Bibliotecas.
* Retirado das transparências da Profª. Silvia e Profª. Maria Luiza
Formato Geral de Uma
Função
tipo_da_funcao NomeDaFuncao(Lista_de_Parametros)
{
// corpo da função
}
Chamada Lista
de Argumentos
Parâmetros Atuais e Formais
Parâmetros formais: utilizados na
declaração das funções.
Parâmetros atuais: utilizados na
chamada das funções.
Observações Importantes
As funções devem ser declaradas ANTES
de serem utilizadas.
Diz-se que se insere o protótipo da
função.
Exemplo:
valor_retornado Nome_da_função (parâmetros);
Abaixo das
definições de
bibliotecas
2
Tipos
Funções que não retornam nada (void)
Funções que retornam um valor:
indicação do tipo de valor a ser retornado.
Funções do Tipo Void
São as funções que não retornam
qualquer valor.
Definir como tipo de retorno a palavra
void.
A palavra “void” também deverá ser
utilizada caso a função não apresente
parâmetros.
Exemplo de Void
#include <stdio.h>
void quadrado (void);
void quadrado(void)
{
int k;
for (k=1; k<=10; k++)
printf("%dn", k*k);
}
void main(void)
{
quadrado( );
}
Exemplo de Void
. . .
void quadrado(void)
{
int k;
for (k=1; k<=10; k++)
printf("%dn", k*k);
}
void main(void)
{
quadrado( );
}
Definição da Função
Sem valor de retorno
Exemplo de Void
. . .
void quadrado(void)
{
int k;
for (k=1; k<=10; k++)
printf("%dn", k*k);
}
void main(void)
{
quadrado( );
}
Sem parâmetros
de entrada
Exemplo de Void
. . .
void quadrado(void)
{
int k;
for (k=1; k<=10; k++)
printf("%dn", k*k);
}
void main(void)
{
quadrado( );
}
Chamada
da função
3
Exemplo de Void
. . .
void quadrado(void)
{
int k;
for (k=1; k<=10; k++)
printf("%dn", k*k);
}
void main(void)
{
quadrado( );
}
Obrigatório para funções
sem argumentos
Uso de Parâmetros em
Funções
Os parâmetros indicam sobre quais dados a função
trabalha.
A declaração dos parâmetros é semelhante a
declaração de variáveis.
Local da declaração: entre os parênteses do
cabeçalho da função.
Utilização de mais de um parâmetro: separação por
vírgulas.
Passagem de Parâmetros Por
Valor
Também chamada by value
Um cópia do conteúdo da variável é
feita para o parâmetro da função.
Implicações: o valor da variável não é
modificado.
Exemplo:
void SOMA(float val1, int val2)
{
float result;
result = val1+val2;
printf(“A soma de %6.3f com %d é
%6.3fn”, val2,val1,result);
}
Passagem de Parâmetros por valor
Observações na Passagem
de Parâmetros
Os parâmetros são passados para uma
função de acordo com a sua posição.
Os nomes dos parâmetros na chamada
não têm relação com os nomes dos
parâmetros na definição da função.
Exemplo
#include <stdio.h>
void SOMA(float val1, int val2);
void SOMA(float val1, int val2)
{
float result;
result = val1+val2;
printf("A soma de %d com %6.3f é %6.3fn”, val2,val1,result);
}
void main()
{
int a;
float b;
a = 10;
b = 12.3;
SOMA(b,a);
}
4
Exemplo
#include <stdio.h>
void SOMA(float a, int b);
void SOMA(float val1, int val2)
{
float result;
result = a+b;
printf("A soma de %d com %6.3f é %6.3fn, val2,val1,result);
}
void main()
{
int a;
float b;
a = 10;
b = 12.3;
SOMA(b,a);
}
PROTÓTIPO
Importante:
As variáveis declaradas dentro de uma
função só valem dentro da mesma.
Mesmo que os nomes sejam idênticos?
SIM
São chamadas Variáveis LOCAIS
Existem outros tipos de
variáveis?
Sim, as Variáveis GLOBAIS.
São definidas logo após os protótipos
das funções.
Abrangência: TODO O PROGRAMA
Exemplo#include <stdio.h>
void SOMA(float a, int b);
float result;
void SOMA(float val1, int val2)
{
result = val1+val2+result;
printf("A soma de %d com %6.3f é %6.3fn, val2,val1,result);
}
void main()
{
int a;
float b;
a = 10;
b = 12.3;
SOMA(b,a);
}
Variável Global
Funções que Retornam
Valor
Declaração
tipo_de_retorno nome_da_função (parâmetros)
{
corpo_da_função
}
Tipo de variável que a função retornará
5
Exemplo
. . .
int quadrado (int a)
{
return (a*a);
}
int main ()
{
int num;
printf ("Entre com um numero: ");
scanf ("%d",&num);
num=quadrado(num);
printf ("nn O seu quadrado vale: %dn",num);
}
Exemplo
. . .
int quadrado (int a)
{
return (a*a);
}
int main ()
{
int num;
printf ("Entre com um numero: ");
scanf ("%d",&num);
num=quadrado(num);
printf ("nn O seu quadrado vale: %dn",num);
}
Atribuição do resultado da função
“quadrado” para a variável “num”
Return???
Retorna um valor desejado
OU
Convenção:
Se o programa retornar 0 término
normal
Se o programa retornar ≠ 0 término
anormal
Passagem de Parâmetros por
Referência
Passa o endereço de memória da
variável.
Parâmetros são do tipo Ponteiro.
Implicação: modificação do conteúdo
da variável
O que é um Ponteiro?
É um apontador para um endereço de
memória.
Declaração:
tipo_do_ponteiro &nome_da_variável;
Indica ao compilador que a variável
vai armazenar um endereço
O que é um Ponteiro?
É um apontador para um endereço de
memória.
Declaração:
tipo_do_ponteiro &nome_da_variável;
Indica para que tipo de variável
que será retornada
6
Em que lugar da função
utilizar o ponteiro???
Na definição da função e nos
protótipos.
Ponteiro na Chamada da
Função
Utilizar o símbolo “&” para passagem
de parâmetros na chamada da função.
Exemplo:
. . .
valor=funcao(a, &total);
. . .
Exemplo:
Função que lê 10 valores inteiros e retorna por parâmetro o maior e o menor
#include <stdio.h>
void FuncaoMaiorMenor(int &maior, int &menor) {
int num, i;
for(i=0; i<10; i++) {
printf("Digite um numero:");
scanf("%d", &num);
if (i==0) {
maior = menor = num;
}
else {
if (num>maior)
maior = num;
else if (num<menor)
menor = num;
}
}
} ...
...
main() {
int maior, menor;
FuncaoMaiorMenor(maior, menor);
printf("Maior=%d, Menor=%d", maior, menor);
}
Exercícios Passagem por
Referência
Faça um programa que apresente uma
função que retorna através dos parâmetros a
soma dos números pares e a soma dos
números ímpares entre 10 e 100.
Escreva um programa que apresente uma
função que recebe, por parâmetro, dois
valores X e Z e calcula e retorna Xz . (sem
utilizar funções ou operadores de potência
prontos)

Weitere ähnliche Inhalte

Was ist angesagt?

Aula6 - Linguagem C
Aula6 - Linguagem CAula6 - Linguagem C
Aula6 - Linguagem C
apolllorj
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
apolllorj
 
53392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-200953392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-2009
starley lobo
 

Was ist angesagt? (20)

Java4
Java4Java4
Java4
 
Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
 
Aula c++ estruturas de dados
Aula c++   estruturas de dadosAula c++   estruturas de dados
Aula c++ estruturas de dados
 
Linguagem C - Ponteiros
Linguagem C - PonteirosLinguagem C - Ponteiros
Linguagem C - Ponteiros
 
Aula6 - Linguagem C
Aula6 - Linguagem CAula6 - Linguagem C
Aula6 - Linguagem C
 
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
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros
 
Linguagem C 06 Funcoes
Linguagem C 06 FuncoesLinguagem C 06 Funcoes
Linguagem C 06 Funcoes
 
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de VariaveisAlgoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
 
Aula09 traducaosin110
Aula09 traducaosin110Aula09 traducaosin110
Aula09 traducaosin110
 
Revisão sobre ponteiros em C
Revisão sobre ponteiros em CRevisão sobre ponteiros em C
Revisão sobre ponteiros em C
 
Introdução ao desenvolvimento com PHP
Introdução ao desenvolvimento com PHPIntrodução ao desenvolvimento com PHP
Introdução ao desenvolvimento com PHP
 
Aula de C e C++
Aula de C e C++Aula de C e C++
Aula de C e C++
 
Aula 4
Aula 4Aula 4
Aula 4
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Guia rapido de_pascal
Guia rapido de_pascalGuia rapido de_pascal
Guia rapido de_pascal
 
JAVA - Controle de programa
JAVA - Controle de programaJAVA - Controle de programa
JAVA - Controle de programa
 
Funções em C - Prof. Yandre
Funções em C - Prof. YandreFunções em C - Prof. Yandre
Funções em C - Prof. Yandre
 
Java3
Java3Java3
Java3
 
53392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-200953392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-2009
 

Ähnlich wie Subalgoritmos Profª Letíca Lopes

Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducao
mmind
 
Linguagem de Programação - aula 04
Linguagem de Programação - aula 04Linguagem de Programação - aula 04
Linguagem de Programação - aula 04
Willian Carvalho
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
Carlos Santos
 

Ähnlich wie Subalgoritmos Profª Letíca Lopes (20)

Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
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
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
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
 
Funções PHP - Criação de sites II
Funções PHP - Criação de sites II Funções PHP - Criação de sites II
Funções PHP - Criação de sites II
 
Java2
Java2Java2
Java2
 
Algoritmo e Complexidade - texto Aula1.docx
Algoritmo e Complexidade - texto Aula1.docxAlgoritmo e Complexidade - texto Aula1.docx
Algoritmo e Complexidade - texto Aula1.docx
 
Aula 4 php
Aula 4 phpAula 4 php
Aula 4 php
 
PHP - Funções
PHP - FunçõesPHP - Funções
PHP - Funções
 
Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducao
 
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
 
Cap 2
Cap 2Cap 2
Cap 2
 
Cap 2
Cap 2Cap 2
Cap 2
 
M5 php rc
M5 php rcM5 php rc
M5 php rc
 
Linguagem de Programação - aula 04
Linguagem de Programação - aula 04Linguagem de Programação - aula 04
Linguagem de Programação - aula 04
 
RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptx
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
 
Introdução a php
Introdução a phpIntrodução a php
Introdução a php
 
Ud3
Ud3Ud3
Ud3
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-c
 

Kürzlich hochgeladen

Kürzlich hochgeladen (8)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Subalgoritmos Profª Letíca Lopes

  • 1. 1 Subalgoritmos Profª. Leticia Lopes Leite Programação para Engenharia I O que é uma função? São blocos de códigos (módulos) que podem ser chamados dentro de um programa. “Dividir para conquistar” Vantagens da Modularização* • Economia de tempo de criação do programa; • Economia de tempo de manutenção do programa; • Organização do código; - Evitar que um trecho de código seja repetido várias vezes; - Evitar que os blocos fiquem extensos demais; - Facilitar a leitura do programa fonte; • Reutilização de módulos; • Construção de Bibliotecas. * Retirado das transparências da Profª. Silvia e Profª. Maria Luiza Formato Geral de Uma Função tipo_da_funcao NomeDaFuncao(Lista_de_Parametros) { // corpo da função } Chamada Lista de Argumentos Parâmetros Atuais e Formais Parâmetros formais: utilizados na declaração das funções. Parâmetros atuais: utilizados na chamada das funções. Observações Importantes As funções devem ser declaradas ANTES de serem utilizadas. Diz-se que se insere o protótipo da função. Exemplo: valor_retornado Nome_da_função (parâmetros); Abaixo das definições de bibliotecas
  • 2. 2 Tipos Funções que não retornam nada (void) Funções que retornam um valor: indicação do tipo de valor a ser retornado. Funções do Tipo Void São as funções que não retornam qualquer valor. Definir como tipo de retorno a palavra void. A palavra “void” também deverá ser utilizada caso a função não apresente parâmetros. Exemplo de Void #include <stdio.h> void quadrado (void); void quadrado(void) { int k; for (k=1; k<=10; k++) printf("%dn", k*k); } void main(void) { quadrado( ); } Exemplo de Void . . . void quadrado(void) { int k; for (k=1; k<=10; k++) printf("%dn", k*k); } void main(void) { quadrado( ); } Definição da Função Sem valor de retorno Exemplo de Void . . . void quadrado(void) { int k; for (k=1; k<=10; k++) printf("%dn", k*k); } void main(void) { quadrado( ); } Sem parâmetros de entrada Exemplo de Void . . . void quadrado(void) { int k; for (k=1; k<=10; k++) printf("%dn", k*k); } void main(void) { quadrado( ); } Chamada da função
  • 3. 3 Exemplo de Void . . . void quadrado(void) { int k; for (k=1; k<=10; k++) printf("%dn", k*k); } void main(void) { quadrado( ); } Obrigatório para funções sem argumentos Uso de Parâmetros em Funções Os parâmetros indicam sobre quais dados a função trabalha. A declaração dos parâmetros é semelhante a declaração de variáveis. Local da declaração: entre os parênteses do cabeçalho da função. Utilização de mais de um parâmetro: separação por vírgulas. Passagem de Parâmetros Por Valor Também chamada by value Um cópia do conteúdo da variável é feita para o parâmetro da função. Implicações: o valor da variável não é modificado. Exemplo: void SOMA(float val1, int val2) { float result; result = val1+val2; printf(“A soma de %6.3f com %d é %6.3fn”, val2,val1,result); } Passagem de Parâmetros por valor Observações na Passagem de Parâmetros Os parâmetros são passados para uma função de acordo com a sua posição. Os nomes dos parâmetros na chamada não têm relação com os nomes dos parâmetros na definição da função. Exemplo #include <stdio.h> void SOMA(float val1, int val2); void SOMA(float val1, int val2) { float result; result = val1+val2; printf("A soma de %d com %6.3f é %6.3fn”, val2,val1,result); } void main() { int a; float b; a = 10; b = 12.3; SOMA(b,a); }
  • 4. 4 Exemplo #include <stdio.h> void SOMA(float a, int b); void SOMA(float val1, int val2) { float result; result = a+b; printf("A soma de %d com %6.3f é %6.3fn, val2,val1,result); } void main() { int a; float b; a = 10; b = 12.3; SOMA(b,a); } PROTÓTIPO Importante: As variáveis declaradas dentro de uma função só valem dentro da mesma. Mesmo que os nomes sejam idênticos? SIM São chamadas Variáveis LOCAIS Existem outros tipos de variáveis? Sim, as Variáveis GLOBAIS. São definidas logo após os protótipos das funções. Abrangência: TODO O PROGRAMA Exemplo#include <stdio.h> void SOMA(float a, int b); float result; void SOMA(float val1, int val2) { result = val1+val2+result; printf("A soma de %d com %6.3f é %6.3fn, val2,val1,result); } void main() { int a; float b; a = 10; b = 12.3; SOMA(b,a); } Variável Global Funções que Retornam Valor Declaração tipo_de_retorno nome_da_função (parâmetros) { corpo_da_função } Tipo de variável que a função retornará
  • 5. 5 Exemplo . . . int quadrado (int a) { return (a*a); } int main () { int num; printf ("Entre com um numero: "); scanf ("%d",&num); num=quadrado(num); printf ("nn O seu quadrado vale: %dn",num); } Exemplo . . . int quadrado (int a) { return (a*a); } int main () { int num; printf ("Entre com um numero: "); scanf ("%d",&num); num=quadrado(num); printf ("nn O seu quadrado vale: %dn",num); } Atribuição do resultado da função “quadrado” para a variável “num” Return??? Retorna um valor desejado OU Convenção: Se o programa retornar 0 término normal Se o programa retornar ≠ 0 término anormal Passagem de Parâmetros por Referência Passa o endereço de memória da variável. Parâmetros são do tipo Ponteiro. Implicação: modificação do conteúdo da variável O que é um Ponteiro? É um apontador para um endereço de memória. Declaração: tipo_do_ponteiro &nome_da_variável; Indica ao compilador que a variável vai armazenar um endereço O que é um Ponteiro? É um apontador para um endereço de memória. Declaração: tipo_do_ponteiro &nome_da_variável; Indica para que tipo de variável que será retornada
  • 6. 6 Em que lugar da função utilizar o ponteiro??? Na definição da função e nos protótipos. Ponteiro na Chamada da Função Utilizar o símbolo “&” para passagem de parâmetros na chamada da função. Exemplo: . . . valor=funcao(a, &total); . . . Exemplo: Função que lê 10 valores inteiros e retorna por parâmetro o maior e o menor #include <stdio.h> void FuncaoMaiorMenor(int &maior, int &menor) { int num, i; for(i=0; i<10; i++) { printf("Digite um numero:"); scanf("%d", &num); if (i==0) { maior = menor = num; } else { if (num>maior) maior = num; else if (num<menor) menor = num; } } } ... ... main() { int maior, menor; FuncaoMaiorMenor(maior, menor); printf("Maior=%d, Menor=%d", maior, menor); } Exercícios Passagem por Referência Faça um programa que apresente uma função que retorna através dos parâmetros a soma dos números pares e a soma dos números ímpares entre 10 e 100. Escreva um programa que apresente uma função que recebe, por parâmetro, dois valores X e Z e calcula e retorna Xz . (sem utilizar funções ou operadores de potência prontos)