63
Introdução à Linguagem C Funções Básicas Luis Antonio Tavares luistavares.com

Funções Básicas Luis Antonio Tavares luistavares.com

Embed Size (px)

Citation preview

Page 1: Funções Básicas Luis Antonio Tavares luistavares.com

Introdução à Linguagem C

Funções BásicasLuis Antonio Tavares

luistavares.com

Page 2: Funções Básicas Luis Antonio Tavares luistavares.com

Conceitos Ambiente de desenvolvimento Estrutura de um programa Tipos e variáveis Instruções básicas Operadores Condições Laços de repetição Funções

Tópicos

luistavares.com

Page 3: Funções Básicas Luis Antonio Tavares luistavares.com

Como escrevemos programasem Linguagem C?

Codificação Compilação Executável

luistavares.com

Page 4: Funções Básicas Luis Antonio Tavares luistavares.com

Como escrevemos programas?

Codificação Compilação Executável

#include <stdio.h>#include <conio.h>int main (void) {

printf("Ola Mundo");

getch( ); return 0;

}luistavares.com

Page 5: Funções Básicas Luis Antonio Tavares luistavares.com

Estrutura Inicial de Um Programa

#include <stdio.h>#include <conio.h>int main (void) {

getch( );

return 0;

}

Instruções

luistavares.com

Page 6: Funções Básicas Luis Antonio Tavares luistavares.com

Estrutura Inicial de Um Programa

#include <stdio.h> /* Inclusão de Biblioteca */#include <conio.h> /* Inclusão de Biblioteca */

int main (void) { /* Chave delimita o início do código */

getch( ); /* Função que mantém a tela aberta*/

return 0; /* Retorno informando sucesso */} /* Chave delimita o fim do código */

luistavares.com

Page 7: Funções Básicas Luis Antonio Tavares luistavares.com

printf() – escreve uma mensagem na tela.

scanf() – lê um valor do teclado.

Porém para o uso dessas função é necessário incluir as bibliotecas às quais as funções básicas pertencem:

#include <stdio.h> /* Contém a printf e a scanf */

#include <conio.h> /* Contém a getch */

Funções Básicas

luistavares.com

Page 8: Funções Básicas Luis Antonio Tavares luistavares.com

Primeiro Programa em C

#include <stdio.h>#include <conio.h>int main(void) {

printf(“Ola Mundo!");getch();return 0;

}

luistavares.com

Page 9: Funções Básicas Luis Antonio Tavares luistavares.com

Declarando Variáveis Inteiras

#include <stdio.h>#include <conio.h>

int main(void) {

int a; /* Declarando uma variável inteira */

return 0;}

luistavares.com

Page 10: Funções Básicas Luis Antonio Tavares luistavares.com

Variáveis Inteiras Em Um Programa

#include <stdio.h>#include <conio.h>

int main(void) {int a, q; /* Declarando variável inteira */printf("Informe um valor inteiro: ");scanf("%d", &a); /* Função Leia */q = a * a;printf(“Esse valor ao quadrado eh: %d", q);return 0;

}

luistavares.com

Page 11: Funções Básicas Luis Antonio Tavares luistavares.com

Comparativo com Pseudocódigo

printf("Informe um valor inteiro: ");ESCREVA (“Informe um valor inteiro: ”)

scanf("%d", &a); LEIA (a);

printf(“Esse valor ao quadrado eh: %d", q);ESCREVA (“Esse valor ao quadrado eh: ”, q);

luistavares.com

Page 12: Funções Básicas Luis Antonio Tavares luistavares.com

Declarando Variáveis Reais#include <stdio.h>#include <conio.h>

int main(void) {

float a; /* Declarando uma variável real */

return 0;}

luistavares.com

Page 13: Funções Básicas Luis Antonio Tavares luistavares.com

Variáveis Reais Em Um Programa#include <stdio.h>#include <conio.h>

int main(void) {float a, q; /* Declarando variável real */printf("Informe um valor real: ");scanf("%f", &a);q = a * a;printf(" Esse valor ao quadrado eh: %f", q);return 0;

}

luistavares.com

Page 14: Funções Básicas Luis Antonio Tavares luistavares.com

Comparativo com Pseudocódigo

printf("Informe um valor real: ");ESCREVA (“Informe um valor real: ”)

scanf("%f", &a); LEIA (a);

printf(“Esse valor ao quadrado eh: %f", q);ESCREVA (“Esse valor ao quadrado eh: ”, q);

luistavares.com

Page 15: Funções Básicas Luis Antonio Tavares luistavares.com

Exemplo da Soma de Dois Nos

#include <stdio.h>#include <conio.h>int main(void) {

int a, b, soma; printf("Informe o primeiro numero: ");scanf("%d", &a);printf("Informe o segundo numero: ");scanf("%d", &b);soma = a + b;printf("O salario novo eh: %d", soma);return 0;}

luistavares.com

Page 16: Funções Básicas Luis Antonio Tavares luistavares.com

Sem a Parte que Delimita o Programa

#include <stdio.h>#include <conio.h>int main(void) {

return 0;}

luistavares.com

Page 17: Funções Básicas Luis Antonio Tavares luistavares.com

Apenas o Corpo do Programaint a, b, soma; printf("Informe o primeiro numero: ");scanf("%d", &a);printf("Informe o segundo numero: ");scanf("%d", &b);soma = a + b;printf("O salario novo eh: %d", soma);

luistavares.com

Page 18: Funções Básicas Luis Antonio Tavares luistavares.com

Calcular a idade daqui a 15 anos.Calcular o quadrado de um número simples.

Implementar o problema do salário + abono em Linguagem C.

Implementar o problema do dólar em Linguagem C.

Exemplos que vamos implementar no Laboratório

luistavares.com

Page 19: Funções Básicas Luis Antonio Tavares luistavares.com

Introdução à Linguagem C

CondiçõesLuis Antonio Tavares

luistavares.com

Page 20: Funções Básicas Luis Antonio Tavares luistavares.com

Condições serão usadas sempre que precisarmos testar o valor de uma variável.

Desta forma podemos definir instruções que serão executadas caso um condição seja verdadeira e instruções alternativas, caso a condição não seja verdadeira.

Condições

luistavares.com

Page 21: Funções Básicas Luis Antonio Tavares luistavares.com

Fluxograma Maior Número

Início

Escreva o 1º

número:

A

Escreva o 2º

número:

B

A > B

B

A

Fim

Verdadeiro

Falso

luistavares.com

Page 22: Funções Básicas Luis Antonio Tavares luistavares.com

Algoritmo MAIOR_NUMEROVariaveis

A, B: REAIS;

Inicio ESCREVA ("Digite o primeiro numero: "); LEIA ( A ); ESCREVA ("Digite o segundo numero: "); LEIA ( B ); SE ( A > B ) ENTAO

ESCREVA (“O maior numero eh: ”, A);SENAO

ESCREVA (“O maior numero eh: ”, B);FIM_SE

Fim

luistavares.com

Page 23: Funções Básicas Luis Antonio Tavares luistavares.com

#include <conio.h>#include <stdio.h>int main (void){

float a, b;printf ("Informe o primeiro numero: ");

scanf ("%f", &a);

printf ("Informe o segundo numero: ");

scanf ("%f", &b);

if (a > b){

printf ("O maior numero eh: %f", a);}

else {

printf ("O maior numero eh: %f", b);}

getch( );

return 0;

}luistavares.com

Page 24: Funções Básicas Luis Antonio Tavares luistavares.com

Fluxograma Média

Início

Escreva o 1º

número:

A

Escreva o 2º

número:

B

MEDIA (A+B) / 2

MEDIA

MEDIA >= 60

Reprovado

Aprovado

Fim

Verdadeiro

Falso

luistavares.com

Page 25: Funções Básicas Luis Antonio Tavares luistavares.com

Pseudocódigo ExemploAlgoritmo PROGRAMA_EXEMPLOVariaveis

A, B, MEDIA: REAIS;

Inicio ESCREVA ("Digite a nota da primeira prova:"); LEIA ( A ); ESCREVA("Digite a nota da segunda prova:"); LEIA ( B ); MEDIA (A + B) / 2;ESCREVA (“A MEDIA EH: “, MEDIA);SE (MEDIA >= 60) ENTAO

ESCREVA (“APROVADO!”);SENAO

ESCREVA (“REPROVADO!”);FIM_SE

Fim

luistavares.com

Page 26: Funções Básicas Luis Antonio Tavares luistavares.com

#include <conio.h>#include <stdio.h>int main (void){

float a, b, media;printf ("Informe o primeiro numero: ");

scanf ("%f", &a);

printf ("Informe o segundo numero: ");

scanf ("%f", &b);

media = (a + b) / 2;if (media >= 60){

printf (“Aprovado");}

else {

printf (“Reprovado");}

getch( );

return 0;

}luistavares.com

Page 27: Funções Básicas Luis Antonio Tavares luistavares.com

Maior > Ex.: A > B Maior Igual >= Ex.: A >= B Menor < Ex.: A < B Menor Igual <= Ex.: A <= B Diferente != Ex.: A != B Igual == Ex.: A == B

Exemplo:if ( NUM == 20 ) {

printf(“O NUMERO INFORMADO EH O NUMERO 20!”);

}

Operadores Relacionais

luistavares.com

Page 28: Funções Básicas Luis Antonio Tavares luistavares.com

Operador E Ex.: A > 60 && B < 40

Operador OU Ex.: A > 60 || B < 40

Operador NÃO Ex.: ! (A > 60)

Operadores Lógicos

luistavares.com

Page 29: Funções Básicas Luis Antonio Tavares luistavares.com

Exemplo Operador E:if ( NUM > 20 && NUM < 30 ) {

printf (“O NUMERO EH MAIOR QUE 20 E MENOR QUE 30!”);

}

Exemplo Operador OU:if ( NUM > 20 || NUM < 30 ) {

printf (“O NUMERO EH MAIOR QUE 20 OU MENOR QUE 30!”);

}

Operadores Lógicos

luistavares.com

Page 30: Funções Básicas Luis Antonio Tavares luistavares.com

Algoritmo PROGRAMA_EXEMPLOVariaveis

A, B, MEDIA: REAIS;

Inicio ESCREVA ("Digite a nota da primeira prova:"); LEIA ( A ); ESCREVA("Digite a nota da segunda prova:"); LEIA ( B ); MEDIA (A + B) / 2;ESCREVA (“A MEDIA EH: “, MEDIA);SE ( MEDIA >= 60 ) ENTAO

ESCREVA (“Aprovado!”);SENAO SE ( MEDIA >= 30 ) ENTAO

ESCREVA (“Recuperação!”);SENAO

ESCREVA (“Reprovado!”);FIM_SE

Fimluistavares.com

Page 31: Funções Básicas Luis Antonio Tavares luistavares.com

#include <conio.h>#include <stdio.h>int main (void){

float a, b, media;printf ("Informe o primeiro numero: ");

scanf ("%f", &a);

printf ("Informe o segundo numero: ");

scanf ("%f", &b);

media = (a + b) / 2;printf (“A media eh: %f\n", media);

if (media >= 60){

printf ("Aprovado");}

else if (media >= 30) {

printf ("Recuperacao");}

else {

printf ("Reprovado");}

getch( );

return 0;

}luistavares.com

Page 32: Funções Básicas Luis Antonio Tavares luistavares.com

Introdução à Linguagem C

Laços de RepetiçãoLuis Antonio Tavares

luistavares.com

Page 33: Funções Básicas Luis Antonio Tavares luistavares.com

Os laços de repetição ou loops se encarregam de repetir determinado bloco de instruções enquanto uma condição for verdadeira.

Temos basicamente dois tipos de loops em Linguagem C: O for (para) e o while (enquanto).

Laços de Repetição

luistavares.com

Page 34: Funções Básicas Luis Antonio Tavares luistavares.com

O loop while se trata-se do loop mais simples.

Funcionamento: O bloco de código definido neste loop fica em execução enquanto uma determinada condição for verdadeira. Cada vez que o bloco é iniciado, a condição é novamente testada, quando não for mais verdadeira, o loop é encerrado.

Laço de Repetição WHILE

luistavares.com

Page 35: Funções Básicas Luis Antonio Tavares luistavares.com

Sintaxe Loop WHILE

while (condição) {

bloco de código;

}

luistavares.com

Page 36: Funções Básicas Luis Antonio Tavares luistavares.com

Loop ENQUANTO em pseudocódigoALGORITMO LOOP_ENQUANTOVARIAVEIS

CONT : INTEIRO;INICIO

CONT 1;ENQUANTO ( CONT < 5 ) FAÇA

ESCREVA (“Numero: ”, CONT);CONT CONT + 1;

FIM_ENQUANTOFIM

luistavares.com

Page 37: Funções Básicas Luis Antonio Tavares luistavares.com

Loop ENQUANTO em linguagem C#include <conio.h>#include <stdio.h>int main (void){

int cont = 1;while (cont < 5){

printf("Numero: %d\n", cont);

cont = cont + 1;}getch( );return 0;

}

luistavares.com

Page 38: Funções Básicas Luis Antonio Tavares luistavares.com

Exemplo Programa MédiaALGORITMO PROGRAMA_MEDIA_COM_LOOPVARIAVEIS

MEDIA, N1, N2: REAIS;NUM: INTEIRO;

INICIONUM 1;ENQUANTO ( NUM == 1 ) FAÇA

ESCREVA (“Informe a primeira nota: ”); LEIA ( N1 ); ESCREVA (“Informe a segunda nota: ”); LEIA ( N2 ); MEDIA ( N1 + N2 ) / 2; ESCREVA (“Sua media eh: ”, MEDIA); ESCREVA (“Digite 1 se deseja continuar no programa”); LEIA ( NUM );

FIM_ENQUANTOFIM

luistavares.com

Page 39: Funções Básicas Luis Antonio Tavares luistavares.com

#include <conio.h>#include <stdio.h>int main (void) {

float media, n1, n2;int num = 1;while (num == 1) {

printf ("Informe a primeira nota: ");scanf ("%f", &n1);printf ("Informe a segunda nota: ");scanf ("%f", &n2);media = ( n1 + n2 ) / 2;printf ("Sua media eh: %f\n", media);printf ("Digite 1 se deseja continuar no programa: ");scanf ("%d", &num);

}return 0;

}

luistavares.com

Page 40: Funções Básicas Luis Antonio Tavares luistavares.com

O loop for trabalha de uma forma um pouco diferente do loop while.

Funcionamento: No loop for, uma variável pode ser inicializada com um valor qualquer, e o bloco de código definido neste loop vai ser executado enquanto uma determinada condição for verdadeira. Neste loop também definidos uma operação de incremento de uma variável que será feita cada vez que o loop for executado.

Laço de Repetição FOR

luistavares.com

Page 41: Funções Básicas Luis Antonio Tavares luistavares.com

Sintaxe Loop FOR

for (inicialização; condição; incremento) {

bloco de código;}

Exemplo:for (cont=1; cont<=5; cont++) {

bloco de código;}

luistavares.com

Page 42: Funções Básicas Luis Antonio Tavares luistavares.com

Loop PARA em pseudocódigoALGORITMO LOOP_PARAVARIAVEIS

CONT : INTEIRO;INICIO

PARA CONT 1 ATÉ 5, PASSO 1, FAÇAESCREVA (“Numero: ”, CONT);

FIM_PARAFIM

A cada execução do loop dá-se o nome de iteração (iteração sem o N mesmo, não confunda com interação.)

luistavares.com

Page 43: Funções Básicas Luis Antonio Tavares luistavares.com

#include <conio.h>#include <stdio.h>int main (void){

int cont;for (cont=1; cont<=5; cont++){

printf (“Numero: %d”, cont);}

getch( );

return 0;

}

luistavares.com

Loop PARA em linguagem C

Page 44: Funções Básicas Luis Antonio Tavares luistavares.com

O loop do... while é uma derivação do loop while. A diferença é que com esse loop, o bloco de código é executado uma vez antes da condição ser verificada.

Laço de Repetição DO WHILE

luistavares.com

Page 45: Funções Básicas Luis Antonio Tavares luistavares.com

Sintaxe Loop DO WHILE

do {

bloco de código;

} while (condição);

luistavares.com

Page 46: Funções Básicas Luis Antonio Tavares luistavares.com

Loop FAÇA ENQUANTO pseudocódigo

ALGORITMO LOOP_FACA_ENQUANTOVARIAVEIS

CONT: INTEIRO;INICIO

CONT 0;FAÇA

ESCREVA (“Numero: ”, CONT);CONT CONT + 1;

ENQUANTO ( CONT < 5 )FIM

luistavares.com

Page 47: Funções Básicas Luis Antonio Tavares luistavares.com

Loop FAÇA ENQUANTO em C#include <conio.h>#include <stdio.h>int main (void){

int cont = 0;do{

printf("Numero: %d\n", cont);

cont = cont + 1;} while (cont < 5);getch( );return 0;

}

luistavares.com

Page 48: Funções Básicas Luis Antonio Tavares luistavares.com

Maior > Ex.: A > B Maior Igual >= Ex.: A >= B Menor < Ex.: A < B Menor Igual <= Ex.: A <= B Diferente != Ex.: A != B Igual == Ex.: A == B

Exemplo:while ( NUM < 20 ) {

printf(“O NUMERO INFORMADO EH MENOR QUE 20! ”);printf(“INFORME NOVAMENTE UM NUMERO: ”);scanf(“%d”, &NUM);

}

Operadores Relacionais

luistavares.com

Page 49: Funções Básicas Luis Antonio Tavares luistavares.com

Exemplo Operador E:while( NUM > 20 && NUM < 30 ) {

printf (“O NUMERO EH MAIOR QUE 20 E MENOR QUE 30! ”);

printf(“INFORME NOVAMENTE UM NUMERO: ”);scanf(“%d”, &NUM);

}

Exemplo Operador OU:while ( NUM > 20 || NUM < 30 ) {

printf (“O NUMERO EH MAIOR QUE 20 OU MENOR QUE 30! ”);

printf(“INFORME NOVAMENTE UM NUMERO: ”);scanf(“%d”, &NUM);

}

Operadores Lógicos

luistavares.com

Page 50: Funções Básicas Luis Antonio Tavares luistavares.com

Comando break Também é possível deixar o loop rodando em

uma condição que será sempre verdadeira e usar uma condição if com o comando break para encerrar o loop.

Veja o exemplo:

while (1) {printf(“Mensagem Qualquer");cont = cont + 1;if (cont == 5) {

break;}

}luistavares.com

Page 51: Funções Básicas Luis Antonio Tavares luistavares.com

luistavares.com

Exercícios

Page 52: Funções Básicas Luis Antonio Tavares luistavares.com

Introdução à Linguagem C

FunçõesLuis Antonio Tavares

luistavares.com

Page 53: Funções Básicas Luis Antonio Tavares luistavares.com

São utilizadas para dividir um código maior (mais complexo) em partes menores (mais simples).

Quando uma mesma tarefa é realizada várias vezes em um programa, não é necessário duplicar o código, apenas faz-se a chamada da função que contém o código da tarefa.

Este processo é conhecido como modularização.

Funções

luistavares.com

Page 54: Funções Básicas Luis Antonio Tavares luistavares.com

Uma função deve vir externa ao escopo do main e deve receber um nome;

É necessário informar o tipo de seu retorno (retorno é o dado devolvido pela função), por exemplo:

◦ int para retorno do tipo inteiro;◦float para retorno do tipo real;◦void para função sem retorno.

Como criar uma função em C

luistavares.com

Page 55: Funções Básicas Luis Antonio Tavares luistavares.com

Também é necessário informar os tipos de seus argumentos, quando houver;

O escopo de uma função é delimitado por chaves { }. Exemplo:

void oi( ) {printf ("Oi! \n");

}

Como criar uma função em C

luistavares.com

Page 56: Funções Básicas Luis Antonio Tavares luistavares.com

#include<conio.h>#include<stdio.h>int main( void ) {

/* Chamada de Função Sem Retorno */

oi( ); getch( );return 0;

}luistavares.com

Chamada de função

Page 57: Funções Básicas Luis Antonio Tavares luistavares.com

A palavra int antes do nome da função indica que a função irá retornar um valor inteiro.

int calcula_quadrado(int a) {int result;result = a * a;return result;

}

Função com Retorno em C

luistavares.com

Page 58: Funções Básicas Luis Antonio Tavares luistavares.com

O retorno acontece através do comando return.

int calcula_quadrado(int a) {int result;result = a * a;return result;

}

Função com Retorno em C

luistavares.com

Page 59: Funções Básicas Luis Antonio Tavares luistavares.com

Observe que esta função está recebendo um valor inteiro como argumento, que foi chamado de a.

int calcula_quadrado(int a) {int result;result = a * a;return result;

}

Passagem de Parâmetros

luistavares.com

Page 60: Funções Básicas Luis Antonio Tavares luistavares.com

#include<conio.h>#include<stdio.h>

int calcula_quadrado (int a) {int result;result = a * a;return result;

}

int main (void) {int num, r;printf ("Informe um valor: ");scanf ("%d", &num);r = calcula_quadrado (num);printf ("Quadrado: %d", r);getch ( );return 0;

}

Exemplo Complet

o

luistavares.com

Page 61: Funções Básicas Luis Antonio Tavares luistavares.com

A palavra float antes do nome da função indica que a função irá retornar um valor real;

A função seguinte está dividindo um parâmetro por outro e retornando o resultado.

float divide (float a, float b) {float result;result = a / b;return result;}

Retorno de tipo real em C

luistavares.com

Page 62: Funções Básicas Luis Antonio Tavares luistavares.com

int main(void) {float n1, n2, r;printf ("Informe o primeiro numero: ");scanf ("%f", &n1);printf ("Informe o segundo numero: ");scanf ("%f", &n2);r = divide (n1, n2);printf (“Divisao: %f", r);getch ( );return 0;

}

Chamada para a função

Chamada para a função

luistavares.com

Page 63: Funções Básicas Luis Antonio Tavares luistavares.com

luistavares.com

Exercícios