Buscar

Linguagem C - Aula 2/5

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Linguagem de 
Programação
Aula 2 – Funções
Prof.: Teresinha Letícia da Silva
leticia@cafw.ufsm.br
UFSM
COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN
CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET
Lógica de Programação Prof. Teresinha Letícia da Silva
Revisão... Funções
 As funções formam o alicerce da programação em C e C++. 
 Conforme vamos aumentando a prática em programação, os 
programas começam a tomar uma aparência modular quando 
programamos com funções.
 Podemos fazer toda a programação em C e C++ dentro de 
uma função. Isto porque todos os programas devem incluir 
main, que é uma função.
 O modo como as funções trabalham determina o alto grau de 
eficiência, legibilidade e portabilidade do código do programa 
em C.
Lógica de Programação Prof. Teresinha Letícia da Silva
Revisão... Funções
 Uma função é um bloco de código de programa que 
pode ser usado diversas vezes em sua execução. 
 O uso de funções permite que o programa fique mais 
legível, mais bem estruturado. 
 Um programa em C consiste, no fundo, de várias 
funções colocadas juntas. 
Lógica de Programação Prof. Teresinha Letícia da Silva
Revisão... Funções
 Uma função no C tem a seguinte forma geral: 
tipo_de_retorno nome_da_função (declaração_de_parâmetros)
{
corpo_da_função;
}
 O tipo-de-retorno é o tipo de variável que a função vai 
retornar. O default é o tipo int, ou seja, uma função para 
qual não declaramos o tipo de retorno é considerada 
como retornando um inteiro. 
Lógica de Programação Prof. Teresinha Letícia da Silva
Revisão... Funções tipo void
 Em inglês, void quer dizer vazio e é isto mesmo que o void é. 
 Ele nos permite fazer funções que não retornam nada e funções que 
não têm parâmetros.
#include <stdio.h> 
void mensagem() //definição da função
{ 
printf ("Ola! Eu estou vivo.\n"); 
} 
int main () 
{ 
mensagem(); //chamada da função
printf ("Diga de novo:\n"); 
mensagem(); //chamada da função
return 0; 
} 
Lógica de Programação Prof. Teresinha Letícia da Silva
Exercício funções void
Faça um programa que leia um número inteiro,
e escreva, através de uma função, todos os
valores inteiros de 1 até o número lido.
Lógica de Programação Prof. Teresinha Letícia da Silva
Revisão... Funções que 
retornam valores
 Funções de outros tipos, que não void, devem retornar um valor
para o programa que a chamou.
 O Comando return
 O comando return tem a seguinte forma geral:
return valor_de_retorno; ou return;
 Digamos que uma função está sendo executada. Quando se chega a
uma declaração return a função é encerrada imediatamente e, se o
valor de retorno é informado, a função retorna este valor.
 É importante lembrar que o valor de retorno fornecido tem que ser
compatível com o tipo de retorno declarado para a função.
 Uma função pode ter mais de uma declaração return.
Lógica de Programação Prof. Teresinha Letícia da Silva
Revisão... Funções que 
retornam valores
 Exemplo:
#include <stdio.h>
int num;
int quadrado ()
{
return (num*num);
}
int main ()
{
printf ("Entre com um numero: ");
scanf ("%d",&num);
num=quadrado();
printf ("\n\nO seu quadrado vale: %d\n",num);
return 0;
}
Lógica de Programação Prof. Teresinha Letícia da Silva
Exercício- funções com retorno 
de valores
Faça um programa em C que leia dois números inteiros e 
chame uma função que calcule e retorne a soma dos 
dois números. 
Lógica de Programação Prof. Teresinha Letícia da Silva
Protótipos de Funções
 Até agora, nos exemplos apresentados, escrevemos as funções
antes de escrevermos a função main(). Isto é, as funções estão
fisicamente antes da função main().
 Isto foi feito por uma razão. Imagine-se na pele do compilador. Se
você fosse compilar a função main(), onde são chamadas as
funções, você teria que saber com antecedência quais são os tipos
de retorno e quais são os parâmetros das funções para que você
pudesse gerar o código corretamente.
 Foi por isto as funções foram colocadas antes da função main():
quando o compilador chegasse à função main() ele já teria compilado
as funções e já saberia seus formatos.
 Mas, muitas vezes, não poderemos nos dar ao luxo de escrever
nesta ordem. Muitas vezes teremos o nosso programa espalhado por
vários arquivos.
Lógica de Programação Prof. Teresinha Letícia da Silva
Protótipos de Funções
 A solução são os protótipos de funções. Protótipos são nada mais, 
nada menos, que declarações de funções. Isto é, você declara uma 
função que irá usar. 
 O compilador toma então conhecimento do formato daquela função 
antes de compilá-la. O código correto será então gerado. 
 Um protótipo tem o seguinte formato: 
tipo_de_retorno nome_da_função (declaração_de_parâmetros);
 onde o tipo-de-retorno, o nome-da-função e a declaração-de-
parâmetros são os mesmos que você pretende usar quando 
realmente escrever a função. 
Lógica de Programação Prof. Teresinha Letícia da Silva
Protótipos de Funções
 Exemplo:
#include <stdio.h> 
int num;
int quadrado (); 
int main () 
{ 
printf ("Entre com um numero: "); 
scanf ("%d",&num); 
num=quadrado(); 
printf ("\n\nO seu quadrado vale: %d\n",num);
getchar();
return 0; 
} 
int quadrado () 
{ 
return (num*num); 
} 
Lógica de Programação Prof. Teresinha Letícia da Silva
Escopo de Variáveis
 O escopo é o conjunto de regras que determinam o uso e a validade
de variáveis nas diversas partes do programa.
 Variáveis globais
 Variáveis globais são declaradas, fora de todas as funções do
programa.
 Elas são conhecidas e podem ser alteradas por todas as funções do
programa.
 Quando uma função tem uma variável local com o mesmo nome de
uma variável global a função dará preferência à variável local.
Lógica de Programação Prof. Teresinha Letícia da Silva
Escopo de Variáveis
 Variáveis globais
 Exemplo:
#include <stdio.h>
int num;
int quadrado ()
{
return (num*num);
}
int main ()
{
printf ("Entre com um numero: ");
scanf ("%d",&num);
num=quadrado();
printf ("\n\nO seu quadrado vale: %d\n",num);
getchar();
return 0;
}
Lógica de Programação Prof. Teresinha Letícia da Silva
Escopo de Variáveis
 Variáveis locais
 Estas variáveis só têm validade dentro do bloco no qual são
declaradas.
 Podemos declarar variáveis dentro de qualquer bloco. Só para
lembrar: um bloco começa quando abrimos uma chave e termina
quando fechamos a chave.
 Um comando for pode ter variáveis locais e que não serão conhecidas
fora dali. A declaração de variáveis locais é a primeira coisa que
devemos colocar num bloco.
 A característica que torna as variáveis locais tão importantes é
justamente a de serem exclusivas do bloco.
 Podemos ter quantos blocos quisermos com uma variável local
chamada x, por exemplo, e elas não apresentarão conflito entre elas.
Lógica de Programação Prof. Teresinha Letícia da Silva
Escopo de Variáveis
 Variáveis locais
 Exemplo:
#include <stdio.h>
void funcao1 ()
{
int x;
x=10;
printf (“ A variável X vale: %d",x);
}
int main ()
{
int x;
x=50;
printf (“ A variável X vale: %d",x);
funcao1();
getchar();
return 0;
}
Lógica de Programação Prof. Teresinha Letícia da Silva
Passagem de parâmetros
 Parâmetros são um mecanismo de comunicação entre as 
funções;
 Os parâmetros são as informações necessárias para o 
funcionamento da função.
 Uma função pode receber qualquer número de parâmetros, 
ou mesmo nenhum. Na hora de definir a função, no 
cabeçalho, definem-se os parâmetros que vai receber;
 Parâmetros se comportam como variáveis locais, ou seja, 
variáveis que só tem validade no corpo da função.
Lógica de Programação Prof. Teresinha Letícia da Silva
Tipos de passagem de 
parâmetros
Passagem de Parâmetro por valor
 Apenas o valor é passado para a função;
 Após a execução da função a variável utilizada para passar como 
parâmetro não possui seu valor alterado.
 Ex:#include <stdio.h> 
void funcao1 (int x)
{
x=10;
}
int main ()
{
int x;
x=50;
printf (“ A variável X vale: %d",x);
funcao1(x);
printf (“ A variável X vale: %d",x);
getchar();
}
Lógica de Programação Prof. Teresinha Letícia da Silva
Tipos de passagem de 
parâmetros
 Passagem de Parâmetro por valor
 Exercício: Faça um programa em C que leia
dois valores inteiros (a,b) e chame uma
função Troca, que recebe os dois valores, e
troca os respectivos conteúdos.
Lógica de Programação Prof. Teresinha Letícia da Silva
Tipos de passagem de 
parâmetros
#include<stdio.h>
void troca(int a, int b){
int aux;
aux=a;
a=b;
b=aux;
}
int main(){
int a,b;
printf("\n Informe o valor de a: ");
scanf("%d",&a);
printf("\n Informe o valor de b: ");
scanf("%d",&b);
printf("Antes de chamar a funcao :\na=%d\nb=%d\n",a,b);
troca(a,b);
printf("Depois de chamar a funcao:\na=%d\nb=%d\n",a,b);
return 0;
}
Lógica de Programação Prof. Teresinha Letícia da Silva
Tipos de passagem de 
parâmetros
 Passagem de Parâmetro por referência
 Neste caso o endereço de memória da variável é passada a função, e 
não apenas seu valor;
 Ao final da execução da função o valor do parâmetro pode estar 
alterado.
 Ex:#include <stdio.h> 
void funcao1 (int *x)
{
*x=10;
}
int main ()
{
int x;
x=50;
printf (“ A variável X vale: %d",x);
funcao1(&x);
printf (“ A variável X vale: %d",x);
getchar();
}
& - endereço de memória 
da variável
* - ponteiro para a variável
Lógica de Programação Prof. Teresinha Letícia da Silva
Tipos de passagem de 
parâmetros
 Passagem de Parâmetro por referência
 A passagem de parâmetro por referência usa o conceito 
de ponteiros. 
 A presença do * na frente do nome dos parâmetros indica 
que esses são na verdade ponteiros. 
 Ao passar o parâmetro por referência a função 
chamadora deve passar o endereço da sua variável, para 
isso usa-se o &. 
 O scanf é um exemplo de função que altera o valor da 
variável passada como referência.
Lógica de Programação Prof. Teresinha Letícia da Silva
Tipos de passagem de 
parâmetros
 Passagem de Parâmetro por referência
 Exercício: Faça um programa em C que leia dois valores
inteiros (a,b) e chame uma função Troca, que recebe os
dois valores, e troca os respectivos conteúdos.
Lógica de Programação Prof. Teresinha Letícia da Silva
Tipos de passagem de 
parâmetros
#include<stdio.h>
void troca(int *a, int *b){
int aux;
aux=*a;
*a=*b;
*b=aux;
}
int main(){
int a,b;
printf("\n Informe o valor de a: ");
scanf("%d",&a);
printf("\n Informe o valor de b: ");
scanf("%d",&b);
printf("Antes de chamar a funcao :\na=%d\nb=%d\n",a,b);
troca(&a,&b);
printf("Depois de chamar a funcao:\na=%d\nb=%d\n",a,b);
return 0;
}
Lógica de Programação Prof. Teresinha Letícia da Silva
Exercícios

Outros materiais