Você está na página 1de 6

Funcoes em #C

(Resumo das vídeo aulas – “De aluno para aluno” )

Aula 28:Introdução Funções


#include <stdio.h>
#include <stdlib.h>

void imprima_mensagem(void){
printf("Teste.")
}

int main(void){

imprima_mensagem()

return 0:
}

Aula 29:Utilizando Funções

#include <stdio.h>
#include <stdlib.h>

Int gVariavelGlobal = 2;

void calcularAreaRetang(float base, float altura){


float area = base * altura
return area;
}

int main(void){

//float calcularAreaRetang(float x, float y)


float area = calcularAreaRetang(10.0, 20.0);

printf("A area eh: %f", area);

return 0:
}
/*void calcularAreaRetang(float base, float altura){
float area = base * altura
return area;
} */

Aula 34:Funções que chamam funções

#include <stdio.h>
#include <stdlib.h>

float valorAbsoluto(float x)
returnx*-1

float somaDeDigitos(float num1, float num2){


if (num1<0)
num1=valorAbsoluto(num1);
if (num2<0)
num2=valorAbsoluto(num2);
return num1+num2;
}

int main(void){

float a, b, soma;

printf("Digite 2 numeros:");
scanf("%f", &a);
scanf("%f", &b);

soma=somaDeDigitos(a, b);
printf("A soma eh: %f", soma);

return 0:
}
Aula 35:Função recursiva

#include <stdio.h>
#include <stdlib.h>

int fatorial(int x){


if(x == 0) {
resultado = 1;
} else {
resultado = x * fatorial(x-1)}
/* 3 * ? (lugar alocado na memória - "MODO ESPERA") --> 2
(x-1) 2 * ? (lugar alocado na memoria - "MODO ESPERA") --> 1
(x-1) 1 * ? (lugar alocado na memoria - "MODO ESPERA") --> 1
(x-1) 0 (JÁ TEM O RESULTADO 1)

Entra x = 3 sai resultado = 6


*/
return resultado;

int main()
{
//FUNÇÃO RECURSIVA --> função que chama ela mesmo.

int num, resultado;

printf("Entre um número inteiro: ")


scanf("%d", &num);

resultado = fatorial(num);

printf("O fatorial eh: %d", resultado);

return 0;

}
Aula 36:Funções que Recebem Vetores como Argumento

#include <stdio.h>
#include <stdlib.h>

void ordemCrescente(int vetor[], int quantNum){ // vetor[] = vetor[10]


int i, j, temp; //i--> representa o 1º número e j o próximo número.

for (i=0;i<quantNum;++i) {
for (j=i+1;j<quantNum;++j){
if(vetor[i]>vetor[j]){ //o primeiro termo (votor[i] é maior que o segundo
termo(vetor[j])
temp = vetor[i]; //temp = 1º termo
vetor[i] = vetor[j]; // troca do 1º termo pelo 2º
vetor[j] = temp;
}
}
}
}

int main()
{
//Programa que coloca em ordem o vetor. --> NÃO É A MANEIRA MIS
EFICIENTE!!!

int vetor[10] = {6,4,1,9,8,0,5,7,3,2};


int i; //var. para criar o ciclo

ordemCrescente(vetor, 10); // I.Quando passar um vetor para uma função é so passar


o NOME!

for (i=0;i<10;++i)
printf("%d ", vetor[i]);

return 0;

}
Aula 37:Funções que recebem Matrizes como Argumento

#include <stdio.h>
#include <stdlib.h>

void funcaoPrint(int x[][3]){ // x(matriz)[][3]--> MINIMO!!! = x[3][3] -->2 FORMAS


DE PASSAR COMO ARGUMENTO
int i, j;
for (i=0;i<3;++i){
for (j=0;j<3;++j){
printf("%d ", X[i][j]);
}
printf("\n");
}
}

int main()
{
int matriz[3][3] = {1,2,3}
{4,5,6}
{7,8,9}

funcaoPrint(matriz); //não precisa informar as linhas e colunas da matriz indicada


quando chamar a função

return 0;
}
Aula 38:Comportamento de Argumentos com Funções

#include <stdio.h>
#include <stdlib.h>

void funcaoPrint(int x, int vetor[]){


//ALTERAM OS VALORES DAS VAR. DA FUNÇÃO MAIN!!!
x = x + 10 //X é só uma copia do x que entrou na função -- var. dep., portanto o
valor não sera mudado
vetor[1] = 20 //o vetor[3] = {10} não é uma copia e sim o endereço de memoria do
seu comp. onde esta o vetor[3], portanto o valor vai ser mudado

printf("Variavel int na função print: %d\n", x);


printf("Vetor na função print: %d\n\n", vetor[1]);

int main(){

int x = 10;
int vetor[3] = {10};

funcaoPrint(x, vetor)

printf("Variavel int na função print: %d\n", x);


printf("Vetor na função print: %d\n\n", vetor[1]);

return 0;
}

Você também pode gostar