ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_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)