A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Linguaguem de Programação II

Apresentações semelhantes


Apresentação em tema: "Linguaguem de Programação II"— Transcrição da apresentação:

1 Linguaguem de Programação II
Aula 6 Funções Prof. Luiz José Hoffmann Filho

2 O Que é uma função? Funções são os blocos de contrução de C e o local onde toda a atividade do programa ocorre. Elas são uma das características mais importantes do C.

3 Forma Geral de uma função
<tipo> nome_da_função(lista de parâmetros) { <Corpo da função> } Declaração do parâmetros: (<tipo> <nomevar1>, …, <tipo><nomevarN) Corpo da função: Declaração de variáveis locais. Incluisão de comandos (if else, while, for …)

4 Argumentos de funções Se uma função usa argumentos, ela deve declarar variáveis que aceitem os valores dos argumentos. Essas variáveis são chamadas de parâmetros formais da função. Elas se comportam como quaisquer outras variáveis locais dentro das função e são criadas na entrada e destruídas na saída. Exemplo: is_in(char *s, char c) { while(*s) { if(*s == c) return 1; else s++; } return 0;

5 Chamada por valor Esse método copia o valor de uma argumento no parâmetro fomal da sub- rotina. Assim, alterações feitas nos parâmetros das sub-rotina não têm nenhum efeito nas variáveis usadas para chamá-la.

6 Chamada por valor Exemplo: #include <stdio.h> int sqr( int x) {
x =x *x; return x; } int main () { int t = 10; printf(“%d %d”, sqr(t), t); return 0;

7 Chamada por referência
Nesse método, o endereço de um argumento é copiado no parâmetro. Dentro da sub-rotina, o endereço é usado para acessar o argumento real utilizado na chamada. Isso significa que alterações feitas no parâmetro afetam a veriável usada para chamar a rotina.

8 Chamada por referência
Exemplo: #include <stdio.h> void swap(int *x, int *y) { int temp; temp = *x; *x = *y; *y = temp; } int main() { int i, j; i = 10; j = 20; swap(&I, &j); printf(“%d %d”, i, j); return 0;

9 Chamando funções com Matrizes
A passagem de matrizes, como argumentos, para funções, é uma exceção à conveção de passagem de parâmetros com chamada por valor. Quando uma matriz é usada um argumento para um função, apenas o endereço da matriz é passado para a função. Isso significa que a declaração de parâmetros deve ser de um tipo ponteiro compatível. Existem 3 maneiras de declarar um parâmetro que receberá um ponteiro para matriz.

10 Exemplo : Primeira forma
#include <stdio.h> void display( int num[10]) { int i; for(i=0;i<10;i++) printf(“%d”, num[i]); } int main() { int t[10], i; for(i=0; i<10;i++) { t[i] = i; display(t); return 0;

11 Exemplo: Segunda Forma
#include <stdio.h> void display( int num[]) { int i; for(i=0;i<10;i++) printf(“%d”, num[i]); } int main() { int t[10], i; for(i=0; i<10;i++) { t[i] = i; display(t); return 0; Declarado com tamanho desconhecido

12 Exemplo: Terceira Forma
#include <stdio.h> void display( int *num) { int i; for(i=0;i<10;i++) printf(“%d”, num[i]); } int main() { int t[10], i; for(i=0; i<10;i++) { t[i] = i; display(t); return 0; Com ponteiro, e poderá utilizar o [] sem problemas.

13 Chamando Funções com Matrizes
Importante: Uma matriz é usada como um argumento para uma função, seu endereço é passado para a função. Isso é uma exceção à convernção de C no que diz respeito a passar parâmetros. Nesse caso, o código dentro da função está operando com, e pontecialmente alterando, o conteúdo real da matriz usada para chamar a função

14 argv e argc – Argumentos para main
Geralemente, você passa informações para a função main() via argumentos da linha de comando. Um argumento da linha de comando é a informação que segue o nome do programa na linha de comando do sistema operacional. O parâmentro argc contém o número de argumentos da linha de comando e é um inteiro. Ele é sempre pelo menos 1 por que é o nome do programa é qualificado como primeiro argumento. O parâmetro argv é um ponteiro para uma vetor de ponteiros para caractere. Cada elemento nese vetor aponta para um argumento da linha de comando. Todos os argumentos da linha de comando são strings – quaisquer números terão de ser convertidos pelo programa no formato interno apropriado.

15 Exemplo: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { if(argc !=2) { printf(“Você esqueceu de digitar seu nome”); return 1; } printf(“Ola %s”, argv[1]); return 0;

16 Importante Se tiver mais de um argumento de ser utilizado o “espaço” para separa-los. Exemplo: Run Sport, run - > são 3 argumentos Herb,rick,fred -> é apenas 1 argumento.

17 Comando return O comando return tem dois importantes usos:
Ele provoca uma saída imediata da função que o contém. Isto é, faz com que a execução do programa retorne ao código chamador. Ele pode ser usado para devolver um valor.

18 Exemplo 1: finalizado um programa
int find(char *s1, char *s2) { int t; char *p, *p2; for(t=0;s1[t];t++){ p = &s1[t]; p2 = s2; while(*p2 && *p2==*p) { p++; p2++; } if(!*p2) return t; return -1;

19 Exemplo 2: Retornando valores
#include <stdio.h> int mul(int a, int b) { return a*b; } int main() { int x, y, z; x = 10; y = 20; x = mul(x, y); printf(“%d”, mul(x, y)); mul(x, y); return;

20 Protótipo de funções É a declaração da função no inicio do arquivo. Exemplo: #include <stdio.h> void sqrt_int(int *i); int main(){ int x; x = 10; sqr_it(&x); return; } void sqr_it(int *i) { *i = *i * *i;

21 Exercícios Escreva uma funçã que recebe as 3 notas de um aluno por parâmetro e uma letra. Se a letra for A o procedimento calcula a média aritmética das notas do aluno, se for P, a sua média ponderada (pesos: 5, 3 e 2) e se for H, a sua média harmônica. A média calculada também deve retornar por parâmetro. Faça uma função que recebe por parâmetro um valor inteiro e positivo e retorna o valor lógico Verdadeiro caso o valor seja primo e Falso em caso contrário. Faça uma função que recebe a idade de uma pessoa em anos, meses e dias e retorna essa idade expressa em dias.

22 Exercícios Faça uma função que recebe um vetor X(15) de inteiros , por parâmetro, e retorna a quantidade de valores pares em X. Faça uma função que recebe um vetor X(20) de reais , por parâmetro, e retorna a soma dos elementos de X; Faça uma função que receba, por parâmetro, uma matriz A(7,7)e retorne o menor valor dos elementos abaixo da diagonal secundária. Faça uma função que receba, por parâmetro, uma matriz A(8,8) e retorne o menor valor dos elementos acima da diagonal secundária.


Carregar ppt "Linguaguem de Programação II"

Apresentações semelhantes


Anúncios Google