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

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

V Procedimentos – são estruturas que agrupam um conjunto de comandos, que são executados quando o procedimento é chamado. v Funções – são procedimentos.

Apresentações semelhantes


Apresentação em tema: "V Procedimentos – são estruturas que agrupam um conjunto de comandos, que são executados quando o procedimento é chamado. v Funções – são procedimentos."— Transcrição da apresentação:

1 v Procedimentos – são estruturas que agrupam um conjunto de comandos, que são executados quando o procedimento é chamado. v Funções – são procedimentos que retornam um valor ao seu término. Procedimentos e Funções

2 v Evitar que os blocos do programa fiquem grandes demais e mais difíceis de ler e entender. v Ajudam a organizar o algoritmo. v Permitem reaproveitamento de códigos construídos anteriormente. vPermitir que um bloco de código de programa seja usado diversas vezes em sua execução, evitando repetição de trechos de códigos. v Fazer com que o programa fique mais legível, mais bem estruturado. Porque utilizar procedimentos e funções?

3 nome_da_função ( parâmetro1, parâmetro2,..., parâmetroN) { return valor_de_retorno; } nome_da_função ( parâmetro1, parâmetro2,..., parâmetroN) { return valor_de_retorno; } Funções :: Como declarar

4 int soma(int a, int b) { int c; c = a + b; return c; } int soma(int a, int b) { int c; c = a + b; return c; } v Exemplo de uma função: Funções :: Como declarar

5 v Toda função deve ter um tipo (char, int, float), o qual indicará o tipo de seu valor de retorno. v Os parâmetros (ou argumentos) indicam o tipo e quais valores são esperados para serem manipulados pela função. v Uma função pode não ter parâmetros, basta não informá-los. Funções :: Como declarar

6 A expressão contida no comando return é chamado de valor de retorno da função. A expressão contida no comando return é chamado de valor de retorno da função. v Esse comando é sempre o último a ser executado por uma função. Nada após ele será executado. vAs funções só podem ser declaradas fora de outras funções. O corpo do programa principal ( main() ) é uma função! O corpo do programa principal ( main() ) é uma função! Funções :: Como declarar

7 v Uma forma clássica de realizarmos a invocação (ou chamada) de uma função é atribuindo o seu valor a uma variável: vUma função pode ser usada em qualquer lugar que aceite uma expressão: resultado = soma(x,y); printf("Soma: %d\n", soma(a,b) ); Funções :: Invocando

8 int x, y, resultado; int soma(int a, int b){ return (a + b); } int main(){ x = 3; y = 5; resultado = soma(x, y); printf("%d\n", resultado); } int x, y, resultado; int soma(int a, int b){ return (a + b); } int main(){ x = 3; y = 5; resultado = soma(x, y); printf("%d\n", resultado); } v v Função que calcula a soma dos valores de x e y Funções :: Invocando

9 vAs variáveis x e y no exemplo anterior são chamadas de parâmetros reais. vConforme exemplo anterior, os argumentos não possuem necessariamente os mesmos nomes que os parâmetros que a função espera. v Seus valores são apenas copiados para a função chamada, sem ser afetados pelas alterações nos parâmetros dentro da função. Funções :: Invocando

10 Funções :: Pré-definidas para strings FunçãoDescrição strlen(var)Retorna o o tamanho de uma string strcpy(var2,var1)Copia uma string em outra ( var2 <- var1 ) strcat(var1,var2)Concatena duas strings strupr(var)Converte uma string para maiúsculas strlwr(var)Converte uma string para minusculo strchr( var,caracter )Localiza 1a ocorrência de um caractere em uma string strrchr( var,caracter )Localiza última ocorrência de um caractere numa string strstr( var,substr)Localiza uma substring dentro da string strcmp(var1,var2)Compara duas strings atoi(var)Converte string em int atof(var)Converte string em float

11 Funções Pré-definidas para strings :: Retorna o tamanho de uma string #include #include int main() { char string[20]; char string[20]; printf("\n"); printf("\n"); printf("Determinando o tamanho de uma string\n"); printf("Determinando o tamanho de uma string\n"); printf("------------------------------------\n"); printf("------------------------------------\n"); printf("\n"); printf("\n"); printf("Digite a string :"); printf("Digite a string :"); gets(string); gets(string); printf("\n"); printf("\n"); printf("A string tem %d carateres.\n\n",strlen(string)); printf("A string tem %d carateres.\n\n",strlen(string)); system("pause"); system("pause"); return(0); return(0);} #include #include int main() { char string[20]; char string[20]; printf("\n"); printf("\n"); printf("Determinando o tamanho de uma string\n"); printf("Determinando o tamanho de uma string\n"); printf("------------------------------------\n"); printf("------------------------------------\n"); printf("\n"); printf("\n"); printf("Digite a string :"); printf("Digite a string :"); gets(string); gets(string); printf("\n"); printf("\n"); printf("A string tem %d carateres.\n\n",strlen(string)); printf("A string tem %d carateres.\n\n",strlen(string)); system("pause"); system("pause"); return(0); return(0);}

12 Funções Pré-definidas para strings :: Localiza 1a ocorrência de um caracter uma string #include #include int main() { char string[30] = "Teste da funcao strchr()."; char string[30] = "Teste da funcao strchr()."; char *ptr; char *ptr; printf("\n%s\n",string); printf("\n%s\n",string); ptr = strchr(string,'d'); ptr = strchr(string,'d'); if (ptr != NULL) if (ptr != NULL) { printf("\n"); printf("\n"); printf("Posicao de memoria de d %d\n",ptr ); printf("Posicao de memoria de d %d\n",ptr ); printf("1a posicao de memoria de string %d\n",string ); printf("1a posicao de memoria de string %d\n",string ); printf(1a ocorrencia de d posicao %d\n",(ptr-string)+1); printf(1a ocorrencia de d posicao %d\n",(ptr-string)+1); } else else printf("Caractere não encontrado.\n"); printf("Caractere não encontrado.\n"); system("pause"); system("pause"); return(0); return(0); } #include #include int main() { char string[30] = "Teste da funcao strchr()."; char string[30] = "Teste da funcao strchr()."; char *ptr; char *ptr; printf("\n%s\n",string); printf("\n%s\n",string); ptr = strchr(string,'d'); ptr = strchr(string,'d'); if (ptr != NULL) if (ptr != NULL) { printf("\n"); printf("\n"); printf("Posicao de memoria de d %d\n",ptr ); printf("Posicao de memoria de d %d\n",ptr ); printf("1a posicao de memoria de string %d\n",string ); printf("1a posicao de memoria de string %d\n",string ); printf(1a ocorrencia de d posicao %d\n",(ptr-string)+1); printf(1a ocorrencia de d posicao %d\n",(ptr-string)+1); } else else printf("Caractere não encontrado.\n"); printf("Caractere não encontrado.\n"); system("pause"); system("pause"); return(0); return(0); }

13 Funções Pré-definidas para strings :: Compara duas strings #include #include int main() { char string1[20],string2[20]; char string1[20],string2[20]; int retorno; int retorno; printf("\n Comparando duas strings\n"); printf("\n Comparando duas strings\n"); printf("\n Entre com a primeira string :"); printf("\n Entre com a primeira string :"); scanf("%s",&string1); scanf("%s",&string1); printf("\n Entre com a segunda string :"); printf("\n Entre com a segunda string :"); scanf("%s",&string2); scanf("%s",&string2); retorno = strcmp(string1,string2); retorno = strcmp(string1,string2); if(retorno == 0) if(retorno == 0) printf("\n As strings sao iguais.\n"); printf("\n As strings sao iguais.\n"); else else printf("\n As strings sao diferente.\n"); printf("\n As strings sao diferente.\n"); system("pause"); system("pause"); return(0); return(0); } #include #include int main() { char string1[20],string2[20]; char string1[20],string2[20]; int retorno; int retorno; printf("\n Comparando duas strings\n"); printf("\n Comparando duas strings\n"); printf("\n Entre com a primeira string :"); printf("\n Entre com a primeira string :"); scanf("%s",&string1); scanf("%s",&string1); printf("\n Entre com a segunda string :"); printf("\n Entre com a segunda string :"); scanf("%s",&string2); scanf("%s",&string2); retorno = strcmp(string1,string2); retorno = strcmp(string1,string2); if(retorno == 0) if(retorno == 0) printf("\n As strings sao iguais.\n"); printf("\n As strings sao iguais.\n"); else else printf("\n As strings sao diferente.\n"); printf("\n As strings sao diferente.\n"); system("pause"); system("pause"); return(0); return(0); }

14 Funções matemática

15 Exercícios: :: Exercícios 1.Fazer um programa que calcule o quadrado de um número lido. O cálculo do quadrado do número deverá ser feito através da chamada a uma função que recebe como parâmetro, o número lido no programa principal. 2.Faça um programa que leia 5 números e calcule o seu fatorial. O cálculo do fatorial deverá ser feito através de uma função 3.Faça um programa para ler uma string econverter para miusculas. 4.Fazer um programa para ler 2 strings e verificar se uma esta dentro da outra

16 O tipo void vÉ utilizado em procedimentos. vÉ um tipo que representa o nada, ou seja: wuma variável desse tipo armazena conteúdo indeterminado, wuma função desse tipo retorna um conteúdo indeterminado. vIndica que uma função não retorna nenhum valor, ou seja, é um procedimento.

17 void nome_do_procedimento ( parâmetro1, parâmetro2,..., parâmetroN) { } void nome_do_procedimento ( parâmetro1, parâmetro2,..., parâmetroN) { } Procedimentos :: Como declarar

18 void imprime_dobro(int x) { printf("Dobro de x: ", 2*x); } void imprime_dobro(int x) { printf("Dobro de x: ", 2*x); } vExemplo de procedimento: Procedimentos :: Como declarar

19 vPara invocarmos um procedimento, devemos utilizá-lo como qualquer outro comando: vCompare a diferença de invocação de uma função: procedimento(parâmetros); resultado = função(parâmetros); Procedimentos :: Invocando

20 void soma() { int x, y, resultado; x = 3; y = 5; resultado = x + y; printf("%d\n", resultado); } main() { soma(); } void soma() { int x, y, resultado; x = 3; y = 5; resultado = x + y; printf("%d\n", resultado); } main() { soma(); } Procedimentos :: Invocando

21 vÉ uma função especial invocada automaticamente pelo sistema operacional (OS) ao iniciar o programa. Quando utilizado, o comando return informa ao OS se o programa funcionou corretamente ou não. Quando utilizado, o comando return informa ao OS se o programa funcionou corretamente ou não. vO padrão é que um programa: wretorne zero caso tenha funcionado corretamente, wqualquer outro valor caso contrário. A função main()

22 Funções e procedimentos podem ser definidos antes ou depois da função main(). Funções e procedimentos podem ser definidos antes ou depois da função main(). Em ambos os casos, as funções e/ou procedimentos devem ser declarados antes da função main(). Em ambos os casos, as funções e/ou procedimentos devem ser declarados antes da função main(). vO conjunto de comandos que constituem uma função ou procedimento pode ser definido em qualquer lugar do programa. Declaração de funções e procedimentos

23 Declaração de funções e procedimentos :: Exemplo void soma(); main() { soma(); } void soma() { int x, y, resultado; x = 3; y = 5; resultado = x + y; printf("%d\n", resultado); } void soma(); main() { soma(); } void soma() { int x, y, resultado; x = 3; y = 5; resultado = x + y; printf("%d\n", resultado); }

24 vUma variável é chamada local quando é declarada dentro de uma função. Nesse caso: wEla existe apenas dentro da função que a contém. wApós o término da execução da função, ela deixa de existir. vUma variável é chamada global quando é declarada fora de qualquer função. Nesse caso: wPode ser acessada em qualquer parte do programa. wEla existe durante toda a execução do programa. Variáveis locais e globais

25 int x, y, resultado; int soma() { resultado = x + y; } int main() { x = 3; y = 5; soma(); printf("%d\n", resultado); } int x, y, resultado; int soma() { resultado = x + y; } int main() { x = 3; y = 5; soma(); printf("%d\n", resultado); } Variáveis locais e globais :: Exemplo

26 vBoa prática de programação: wDeve-se evitar o uso de variáveis globais. wAs funções devem modificar apenas as suas variáveis locais e as variáveis passadas a elas como parâmetros. Variáveis locais e globais

27 vO escopo de uma variável determina de que partes do código ela pode ser acessada. vA regra de escopo em C é bem simples: wAs variáveis globais são visíveis por todas as funções. wAs variáveis locais são visíveis apenas na função onde foram declaradas. Escopo de variáveis

28 vÉ possível declarar variáveis locais com o mesmo nome de variáveis globais. vNesta situação, a variável local esconde a variável global. int nota; void funcao() { int nota; // Neste ponto, nota eh variavel local. } int nota; void funcao() { int nota; // Neste ponto, nota eh variavel local. } Escopo de variáveis

29 Escopo de variaveis :: Exemplo #include int a = 1; /* variável global */ void exibe() { int a = 10; /* variável local a função exibe() */ printf("a dentro da função = %d\n",a); /* vai mostra 10 */ } int main() { printf("\n"); printf("a dentro de main = %d\n",a); /* vai mostra 1 */ exibe(); printf("\n"); return(0); } #include int a = 1; /* variável global */ void exibe() { int a = 10; /* variável local a função exibe() */ printf("a dentro da função = %d\n",a); /* vai mostra 10 */ } int main() { printf("\n"); printf("a dentro de main = %d\n",a); /* vai mostra 1 */ exibe(); printf("\n"); return(0); }

30 Procedimentos :: Exercícios 1.Escreva um procedimento que troca dois valores A e B, mostrando o valor no programa principal. 2.Escreva um programa em C que possua um procedimento querecebe a idade de uma pessoa em anos, meses e dias e retorna essa idade expressa em dias. 3.Fazer um procedimento ou que recebe um vetor de números inteiros V de tamanho 10 e mostre este vetor. Os elementos do vetor deverão ser lidos no programa prinicipal.


Carregar ppt "V Procedimentos – são estruturas que agrupam um conjunto de comandos, que são executados quando o procedimento é chamado. v Funções – são procedimentos."

Apresentações semelhantes


Anúncios Google