Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Tamanho: px
Começar a partir da página:

Download "Computadores Digitais 2. Prof. Rodrigo de Souza Couto"

Transcrição

1 Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista

2 Aula de Hoje Funções padrão do C Definição de funções Pilha de execução Ponteiros de variáveis Variáveis globais Variáveis estáticas Escopo de funções Recursividade Pré-processador e macros Módulos e compilação em separado

3 ATENÇÃO Esta apresentação foi baseada nos seguinte trabalhos: Notas de aula do Prof. Miguel Campista da UFRJ Notas de aula do Prof. Marco Casanova da PUC-Rio Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus, 2004

4 Parte 1 Programação (linguagem C) Funções

5 Funções Facilitam o projeto, a implementação, a operação e a manutenção de programas grandes Técnica dividir para conquistar Constrói um grande programa por meio de peças simples e pequenas Ex: Programa de uma calculadora simples Função de Soma e Subtração Função de Divisão e Multiplicação Função de entrada de operandos Função de exibição de resultados Funções da C Standard Library Ex: printf e scanf

6 Funções Uma função é chamada por uma chamada de função A função chamada retorna um resultado ou simplesmente retorna o controle ao chamador As chamadas de função formam relacionamentos hierárquicos Função Principal Função 1 Função 2 Função 3 Função 4 Função 5

7 C Standard Library É uma coleção de funções para a execução de operações comuns como Cálculos matemáticos Manipulação de strings Manipulação de caracteres Entrada/Saída Verificação de erros É fornecida como parte do ambiente de programação do C

8 Exemplo de funções da C Standard Library Funções da biblioteca de matemática Diversas funções matemáticas não especificadas nativamente em C Seno, Cosseno, Raiz Quadrada, etc. Para utilizá-la é necessário incluir seu cabeçalho disponível no math.h #include <math.h> Similar ao caso de printf e scanf incluídas com stdio.h Veremos mais à frente detalhes sobre cabeçalhos!

9 Exemplo de uso da biblioteca Impressão de 900 e 2 7 matemática #include <stdio.h> #include <math.h> printf ( %.2f,sqrt(900)); printf ( %.2f,pow(2,7));

10 Algumas funções da biblioteca matemática Função Descrição ceil(x) Arredonda x para o menor inteiro maior ou igual a x cos(x) Co-seno de x (x em radianos) exp(x) Função exponencial (e x ) fabs(x) Valor absoluto de x floor(x) Arredonda x para o maior inteiro menor ou igual a x fmod(x, y) Resto de x/y como um número de ponto flutuante log(x) Logaritmo natural (base e) de x log10(x) Logaritmo na base 10 de x pow(x, y) x elevado a y sin(x) Seno de x (x em radianos) sqrt(x) Raiz quadrada de x tan(x) Tangente de x (x em radianos)

11 Algumas funções da biblioteca matemática Função Descrição ceil(x) Arredonda x para o menor inteiro maior ou igual a x cos(x) Co-seno de x (x em radianos) exp(x) Função exponencial (e x ) fabs(x) Valor absoluto de x floor(x) Vejam Arredonda mais formalismos, x para o como maior tipo inteiro retornado menor e ou argumentos, igual a x em: fmod(x, y) Resto de x/y como um número de ponto flutuante log(x) Logaritmo natural (base e) de x log10(x) Logaritmo na base 10 de x pow(x, y) x elevado a y sin(x) Seno de x (x em radianos) sqrt(x) Raiz quadrada de x tan(x) Tangente de x (x em radianos)

12 Definição de Funções Tipo Retornado Tipo do valor retornado ao fim da execução da função Nome da função Nome utilizado para chamar a função no programa Lista de parâmetros Parâmetros recebidos pela função Tipo e nome dos parâmetros tiporetornado nomefuncao (listaparametros){ corpo da função...

13 Exemplo: Cálculo de Fatorial #include <stdio.h> void fatorial (int n); /*Função principal */ int n; scanf ( %d,&n); fatorial(n); /*Função para imprimir o valor do fatorial */ void fatorial (int n) { int i; int f = 1; for (i = 1; i <= n; i++) f *= i; printf ( Fatorial = %d\n, f);

14 Exemplo: Cálculo de Fatorial #include <stdio.h> void fatorial (int n); /*Função principal */ int n; scanf ( %d,&n); fatorial(n); Protótipo da função. Deve ser incluído antes de a função ser chamada. É comum incluir protótipos em um arquivo.h, como será visto mais tarde /*Função para imprimir o valor do fatorial */ void fatorial (int n) { int i; int f = 1; for (i = 1; i <= n; i++) f *= i; printf ( Fatorial = %d\n, f);

15 Exemplo: Cálculo de Fatorial #include <stdio.h> void fatorial (int n); /*Função principal */ int n; scanf ( %d,&n); fatorial(n); void é uma palavra reservada que indica ausência de parâmetros ou de valor de retorno /*Função para imprimir o valor do fatorial */ void fatorial (int n) { int i; int f = 1; for (i = 1; i <= n; i++) f *= i; printf ( Fatorial = %d\n, f);

16 Exemplo: Cálculo de Fatorial #include <stdio.h> void fatorial (int n); /*Função principal */ int n; scanf ( %d,&n); fatorial(n); Chamada da Função /*Função para imprimir o valor do fatorial */ void fatorial (int n) { int i; int f = 1; for (i = 1; i <= n; i++) f *= i; printf ( Fatorial = %d\n, f);

17 Exemplo: Cálculo de Fatorial #include <stdio.h> void fatorial (int n); /*Função principal */ int n; scanf ( %d,&n); fatorial(n); main retorna um inteiro. Por convenção, retorna 0 caso a execução seja bem sucedida. Esse inteiro pode ser utilizado pelo Sistema Operacional /*Função para imprimir o valor do fatorial */ void fatorial (int n) { int i; int f = 1; for (i = 1; i <= n; i++) f *= i; printf ( Fatorial = %d\n, f);

18 Exemplo: Cálculo de Fatorial #include <stdio.h> void fatorial (int n); /*Função principal */ int n; scanf ( %d,&n); fatorial(n); /*Função para imprimir o valor do fatorial */ void fatorial (int n) { int i; int f = 1; for (i = 1; i <= n; i++) f *= i; printf ( Fatorial = %d\n, f); fatorial não retorna valores

19 Exemplo: Cálculo de Fatorial #include <stdio.h> void fatorial (int n); /*Função principal */ int n; scanf ( %d,&n); fatorial(n); /*Função para imprimir o valor do fatorial */ void fatorial (int n) { int i; int f = 1; for (i = 1; i <= n; i++) f *= i; printf ( Fatorial = %d\n, f); fatorial recebe parâmetro do tipo int

20 Exemplo: Cálculo de Fatorial #include <stdio.h> void fatorial (int n); /*Função principal */ int n; scanf ( %d,&n); fatorial(n); /*Função para imprimir o valor do fatorial */ void fatorial (int n) { int i; int f = 1; for (i = 1; i <= n; i++) f *= i; printf ( Fatorial = %d\n, f); Variável n na função fatorial é uma variável diferente da função main

21 Exemplo: Cálculo de Fatorial #include <stdio.h> void fatorial (int n); /*Função principal */ int n; scanf ( %d,&n); fatorial(n); /*Função para imprimir o valor do fatorial */ void fatorial (int n) { int i; int f = 1; for (i = 1; i <= n; i++) f *= i; printf ( Fatorial = %d\n, f); Para evitar confusões, é bom sempre evitar repetir nomes de variáveis

22 Cálculo de Fatorial: Outra Forma de implementar #include <stdio.h> int fatorial (int n); /*Função principal */ Função fatorial retorna o valor e função main o int n, r; exibe scanf ( %d,&n); r = fatorial(n); printf ( Fatorial = %d\n, r); /*Função para imprimir o valor do fatorial */ int fatorial (int n) { int i; int f = 1; for (i = 1; i <= n; i++) f *= i; return f;

23 Cálculo de Fatorial: Outra Forma de implementar #include <stdio.h> int fatorial (int n); /*Função principal */ int n, r; scanf ( %d,&n); r = fatorial(n); printf ( Fatorial = %d\n, r); /*Função para imprimir o valor do fatorial */ int fatorial (int n) { int i; int f = 1; for (i = 1; i <= n; i++) f *= i; return f; Melhor prática de programação: Apenas função main imprime resultados

24 Exercício A partir da função fatorial, escreva uma função que calcule o número de combinações de n elementos tomados k a k, na qual a ordem é relevante Arranjo Fórmula:

25 Resposta do Exercício int arranjo(int n, int k) { int a; a = fatorial(n)/fatorial(n-k); return a; Ou int arranjo(int n, int k) { return fatorial(n)/fatorial(n-k);

26 Boas Práticas com Funções As funções devem ser limitadas à realização de uma tarefa bem definida Programas simples são mais fáceis de escrever, testar, depurar e manter Dica: O nome da função deve expressar essa tarefa efetivamente Caso isso não seja possível, é provável que a função esteja tentando realizar um número muito grande de tarefas Nesse caso, é melhor dividir essa função em funções menores

27 Comunicação entre Funções Funções são independentes entre si Transferência de dados entre funções Através dos parâmetros e do valor de retorno da função chamada Passagem de parâmetros é feita por valor

28 Comunicação entre Funções Funções são independentes entre si Transferência de dados entre funções Através dos parâmetros e do valor de retorno da função chamada Passagem de parâmetros é feita por valor... int n, r; scanf ( %d,&n); r = dobro(n); printf ( Dobro de %d = %d\n,n, r); int dobro (int b) { b = b*2; return b; Função dobro não altera o valor de n, pois não recebeu de fato a variável, e sim seu valor

29 Comunicação entre Funções Variáveis locais a uma função Definidas dentro do corpo de uma função Incluindo os parâmetros Não existem fora da função São criadas cada vez que a função é executada Deixam de existir quando a execução da função terminar

30 Exercício #include <stdio.h> int dobrar (int n); int r, i; i = 1; while (i < 10) { r = dobrar(i) printf ( %d,r); int dobrar (int i) { i = i * 2; return i; Qual a saída do programa?

31 Exercício #include <stdio.h> int dobrar (int n); int r, i; i = 1; while (i < 10) { r = dobrar(i) printf ( %d,r); int dobrar (int i) { i = i * 2; return i; E nunca termina, pois valor de i não se altera!!!

32 Comunicação entre Funções Como é implementada a comunicação entre funções?

33 Comunicação entre Funções Como é implementada a comunicação entre funções? Pilha de Execução!

34 Pilha de Execução Cada variável local de uma função é colocada na pilha de execução Ao chamar uma função, os parâmetros são copiados para a pilha Parâmetros são tratados como variáveis locais da função Variáveis da pilha referentes à função são liberadas após seu término c b a x

35 Exemplo de Pilha #include <stdio.h> int fatorial (int n); int n = 5; int r; r = fatorial(n); printf ( Fatorial de %d = %d\n, n, r); int fatorial (int n) { int f = 1; while ( n!= 0 ) { f *= n; n--; return f;

36 Exemplo de Pilha #include <stdio.h> int fatorial (int n); Atenção: A pilha está representada aqui de forma bem simplificada para fins int n = 5; didáticos!! int r; r = fatorial(n); printf ( Fatorial de %d = %d\n, n, r); int fatorial (int n) { int f = 1; while ( n!= 0 ) { f *= n; n--; return f;

37 Exemplo de Pilha #include <stdio.h> int fatorial (int n); int n = 5; int r; r = fatorial(n); printf ( Fatorial de %d = %d\n, n, r); int fatorial (int n) { int f = 1; while ( n!= 0 ) { f *= n; n--; return f; main > Início do programa: pilha vazia

38 Exemplo de Pilha #include <stdio.h> int fatorial (int n); Declaração de variáveis: n, r int n = 5; int r; r = fatorial(n); printf ( Fatorial de %d = %d\n, n, r); int fatorial (int n) { int f = 1; while ( n!= 0 ) { f *= n; n--; return f; r main > n xxxxxx 5

39 Exemplo de Pilha #include <stdio.h> int fatorial (int n); int n = 5; int r; r = fatorial(n); printf ( Fatorial de %d = %d\n, n, r); int fatorial (int n) { int f = 1; while ( n!= 0 ) { return f; f *= n; n--; Chamada de função: cópia do parâmetro n fatorial > r main > n 5 xxxxxx 5

40 Exemplo de Pilha #include <stdio.h> int fatorial (int n); int n = 5; int r; r = fatorial(n); printf ( Fatorial de %d = %d\n, n, r); int fatorial (int n) { int f = 1; while ( n!= 0 ) { f 1 f *= n; n 5 n--; fatorial > r xxxxxx return f; main > n 5 Declaração da variável local: f

41 Exemplo de Pilha #include <stdio.h> int fatorial (int n); Final do laço while int n = 5; int r; r = fatorial(n); printf ( Fatorial de %d = %d\n, n, r); int fatorial (int n) { int f = 1; while ( n!= 0 ) { f 120 f *= n; n 0 n--; fatorial > r xxxxxx return f; main > n 5

42 Exemplo de Pilha #include <stdio.h> int fatorial (int n); int n = 5; int r; r = fatorial(n); printf ( Fatorial de %d = %d\n, n, r); int fatorial (int n) { int f = 1; while ( n!= 0 ) { f *= n; n--; return f; Retorno da função: desempilha r main > n 120 5

43 Comunicação entre Funções Até agora, passamos valores para as funções. E se desejássemos que a função alterasse o valor da própria variável? Retorno de mais de uma variável Uma função pode retornar apenas um valor Em alguns casos é desejável o retorno de mais valores Ex: Função que calcula a soma E o produto de 2 valores Variáveis grandes P.ex. Vetores Realizar sua cópia para a pilha é ineficiente

44 Ponteiros de Variáveis Variável do tipo ponteiro Permite o armazenamento e a manipulação de endereços de memória Para cada tipo existente (int, float, etc.), existe um tipo de ponteiro /* Declaracao de uma variável int */ int a; /* Declaracao de um ponteiro para int */ int *p; /* Declaracao de uma variável float */ float f; /* Declaracao de um ponteiro para float */ float *r;

45 Ponteiros de Variáveis Operadores & ( endereço de ) Aplicado a variáveis, resulta no endereço da posição de memória reservada para a variável * ( conteúdo de ) Aplicado a ponteiros, acessa o conteúdo do endereço de memória apontado pelo ponteiro int a = 5; int c; int *p; p = &a; *p = 6; c = *p;

46 Ponteiros de Variáveis Operadores & ( endereço de ) Aplicado a variáveis, resulta no endereço da posição de memória reservada para a variável * ( conteúdo de ) Aplicado a ponteiros, acessa o conteúdo do endereço de memória apontado pelo ponteiro int a = 5; int c; int *p; p = &a; *p = 6; c = *p; Nomes c p a Endereços xxxxxxx 112 xxxxxxx

47 Ponteiros de Variáveis Operadores & ( endereço de ) Aplicado a variáveis, resulta no endereço da posição de memória reservada para a variável * ( conteúdo de ) Aplicado a ponteiros, acessa o conteúdo do endereço de memória apontado pelo ponteiro int a = 5; int c; int *p; p = &a; *p = 6; c = *p; p aponta para a c p a xxxxxxx

48 Ponteiros de Variáveis Operadores & ( endereço de ) Aplicado a variáveis, resulta no endereço da posição de memória reservada para a variável * ( conteúdo de ) Aplicado a ponteiros, acessa o conteúdo do endereço de memória apontado pelo ponteiro int a = 5; int c; int *p; p = &a; *p = 6; c = *p; conteúdo de p recebe o valor 6. Acessar a é equivalente a acessar *p. c p a xxxxxxx

49 Ponteiros de Variáveis Operadores & ( endereço de ) Aplicado a variáveis, resulta no endereço da posição de memória reservada para a variável * ( conteúdo de ) Aplicado a ponteiros, acessa o conteúdo do endereço de memória apontado pelo ponteiro int a = 5; int c; int *p; p = &a; *p = 6; c = *p; c recebe o conteúdo de p c 6 p a

50 Ponteiros de Variáveis Operadores & ( endereço de ) Aplicado a variáveis, resulta no endereço da posição de memória reservada para a variável * ( conteúdo de ) Aplicado a ponteiros, acessa o conteúdo do endereço de memória apontado pelo ponteiro int a = 5; int c; int *p; p = &a; *p = 6; c = *p; Representação gráfica c 6 p a 6

51 Exercício 1 Qual é a saída do programa abaixo? #include <stdio.h> int a = 5; int *p; p = &a; *p = 2; printf ( Saida %d, a);

52 Exercício 1 Qual é a saída do programa abaixo? #include <stdio.h> int a = 5; int *p; p = &a; *p = 2; printf ( Saida %d, a); Saida 2

53 Exercício 2 O que há de errado com o programa abaixo? Ele poderia funcionar? #include <stdio.h> int a, b, *p; a = 2; *p = 3; b = a + (*p); printf ( Saida %d, b);

54 Exercício 2 O que há de errado com o programa abaixo? Ele poderia funcionar? #include <stdio.h> int a, b, *p; a = 2; *p = 3; b = a + (*p); printf ( Saida %d, b); Endereço armazenado em p não é conhecido (no início possui valor lixo, que pode ser qualquer posição de memória)

55 Exercício 2 O que há de errado com o programa abaixo? Ele poderia funcionar? #include <stdio.h> int a, b, *p; a = 2; *p = 3; b = a + (*p); printf ( Saida %d, b); Programa pode funcionar, mas seu comportamento é inesperado. Por exemplo, o endereço de memória apontado por p pode estar em uso.

56 Passando ponteiros para funções Permite que a função altere as variáveis Útil quando é necessário retornar mais de um valor

57 Passando ponteiros para funções #include <stdio.h> void somaprod (int a, int b, int *p, int *q); int s,z; somaprod(3,5,&s,&z); printf ( Soma = %d Produto = %d \n, s,z); void somaprod (int a, int b, int *p, int *q){ *p = a + b; *q = a * b; main >

58 Passando ponteiros para funções #include <stdio.h> void somaprod (int a, int b, int *p, int *q); int s,z; somaprod(3,5,&s,&z); printf ( Soma = %d Produto = %d \n, s,z); void somaprod (int a, int b, int *p, int *q){ *p = a + b; *q = a * b; Declaração das variáveis s,z sem inicialização z s main > xxxxxxx xxxxxxx

59 Passando ponteiros para funções #include <stdio.h> void somaprod (int a, int b, int *p, int *q); int s,z; somaprod(3,5,&s,&z); printf ( Soma = %d Produto = %d \n, s,z); void somaprod (int a, int b, int *p, int *q){ *p = a + b; *q = a * b; Chamada da função: recebe valores e endereços somaprod > q p b a z s main > xxxxxxx xxxxxxx

60 Passando ponteiros para funções #include <stdio.h> void somaprod (int a, int b, int *p, int *q); int s,z; somaprod(3,5,&s,&z); printf ( Soma = %d Produto = %d \n, s,z); void somaprod (int a, int b, int *p, int *q){ *p = a + b; *q = a * b; Conteúdo de s,z recebem soma e produto, respectivamente somaprod > q p b a z s 8 main >

61 Passando ponteiros para funções #include <stdio.h> void somaprod (int a, int b, int *p, int *q); int s,z; somaprod(3,5,&s,&z); printf ( Soma = %d Produto = %d \n, s,z); void somaprod (int a, int b, int *p, int *q){ *p = a + b; *q = a * b; Finalização da função: variáveis locais desempilhadas z 15 s 8 main >

62 #include <stdio.h> Exercício Descreva o passo a passo do preenchimento da pilha void troca (int *px, int *py); int a = 5, b = 7; troca(&a,&b); printf ( %d %d \n, a, b); void troca (int *px, int *py){ int temp; temp = *px; *px = *py; *py = temp;

63 Exercício Descreva o passo a passo do preenchimento da pilha #include <stdio.h> void troca (int *px, int *py); int a = 5, b = 7; troca(&a,&b); printf ( %d %d \n, a, b); void troca (int *px, int *py){ int temp; temp = *px; *px = *py; *py = temp; Declaração de variáveis a, b b 7 a 5 main >

64 Exercício Descreva o passo a passo do preenchimento da pilha #include <stdio.h> void troca (int *px, int *py); int a = 5, b = 7; troca(&a,&b); printf ( %d %d \n, a, b); void troca (int *px, int *py){ int temp; temp = *px; *px = *py; *py = temp; Chamada da função py 108 px 104 troca > b 7 a main >

65 Exercício Descreva o passo a passo do preenchimento da pilha #include <stdio.h> void troca (int *px, int *py); int a = 5, b = 7; troca(&a,&b); printf ( %d %d \n, a, b); void troca (int *px, int *py){ int temp; temp = *px; *px = *py; *py = temp; Declaração de temp temp xxxxxxx py 108 px 104 troca > b 7 a main >

66 Exercício Descreva o passo a passo do preenchimento da pilha #include <stdio.h> void troca (int *px, int *py); int a = 5, b = 7; troca(&a,&b); printf ( %d %d \n, a, b); void troca (int *px, int *py){ int temp; temp = *px; *px = *py; *py = temp; temp recebe conteúdo de px temp py px troca > b a 5 main >

67 Exercício Descreva o passo a passo do preenchimento da pilha #include <stdio.h> void troca (int *px, int *py); int a = 5, b = 7; troca(&a,&b); printf ( %d %d \n, a, b); void troca (int *px, int *py){ int temp; temp = *px; *px = *py; *py = temp; Conteúdo de px recebe conteúdo de py temp 5 py 108 px 104 troca > b 7 a main >

68 Exercício Descreva o passo a passo do preenchimento da pilha #include <stdio.h> void troca (int *px, int *py); int a = 5, b = 7; troca(&a,&b); printf ( %d %d \n, a, b); void troca (int *px, int *py){ int temp; temp = *px; *px = *py; *py = temp; Conteúdo de py recebe temp temp 5 py 108 px 104 troca > b 5 a main >

69 Exercício Descreva o passo a passo do preenchimento da pilha #include <stdio.h> void troca (int *px, int *py); int a = 5, b = 7; troca(&a,&b); printf ( %d %d \n, a, b); void troca (int *px, int *py){ int temp; temp = *px; *px = *py; *py = temp; Função termina b 5 a 7 main >

70 Variáveis Globais Variáveis declaradas fora do corpo das funções Visível a todas funções subsequentes à declaração Não são armazenadas na pilha de execução Não deixam de existir quando a função termina Existem durante toda a execução do programa

71 Variáveis Globais #include <stdio.h> int s,z; void somaprod (int a, int b); int x,y; scanf( %d %d, &x, &y) somaprod(x,y); printf ( Soma = %d Produto = %d \n, s,z); void somaprod (int a, int b){ s = a + b; z = a * b;

72 Variáveis Globais Úteis quando utilizadas por muitas funções do programa Recomenda-se evitar o uso desnecessário dessas variáveis!!!! Ocupam a memória durante toda a execução do programa Tornam a função menos geral Dependência de variáveis definidas fora da função Dificulta o reuso da função Perda do controle do comportamento da variável Quando muitas funções a utilizam, pode ser difícil depurar seu comportamento

73 Pré-processador e macros Pré-processador Reconhece determinadas diretivas Altera o código antes de enviá-lo ao compilador programa.c Préprocessador C Compilador C programa.o Ligador (linker) programa.exe Figura adaptada do livro Sistemas Operacionais Modernos, Andrew S. Tanenbaum, Terceira Edição, 2010.

74 Pré-processador e macros #include nomedoarquivo Pré-processador substitui o include pelo corpo do arquivo especificado O texto do arquivo passa a fazer parte do código fonte

75 Exemplo: Protótipo de função separado Relembrando o exemplo da função troca Protótipo declarado na própria função #include <stdio.h> void troca (int *px, int *py); int a = 5, b = 7; troca(&a,&b); printf ( %d %d \n, a, b); void troca (int *px, int *py){ int temp; temp = *px; *px = *py; *py = temp;

76 Exemplo: Protótipo de função separado Arquivo troca.h void troca (int *px, int *py); Arquivo exemplo.c #include <stdio.h> #include troca.h Arquivo troca.c #include troca.h void troca (int *px, int *py){ int temp; temp = *px; *px = *py; *py = temp; int a = 5, b = 7; troca(&a,&b); printf ( %d %d \n, a, b);

77 Exemplo: Protótipo de função separado exemplo.c exemplo.o troca.c Préprocessador C Compilador C Ligador (linker) programa.exe troca.o troca.h libc.a Figura adaptada do livro Sistemas Operacionais Modernos, Andrew S. Tanenbaum, Terceira Edição, 2010.

78 Pré-processador e macros #include nomedoarquivo Pré-processador substitui o include pelo corpo do arquivo especificado O texto do arquivo passa a fazer parte do código fonte

79 Exemplo no Dev C++

80 Pré-processador e macros #include nomedoarquivo Pré-processador substitui o include pelo corpo do arquivo especificado O texto do arquivo passa a fazer parte do código fonte O nome do arquivo entre aspas (#include arquivo.h ) Pré-processador procura o arquivo primeiro no diretório local Diretório de Trabalho Caso não encontre, procura nos diretórios especificados na compilação Nome do arquivo entre sinais de menor e maior (#include <arquivo.h>) C Standard Library

81 Pré-processador e macros Macro Fragmento de código que recebe um nome Em qualquer lugar que esse nome é utilizado o préprocessador substituiu pelo código Utilização Definições de constantes Definições de parâmetros

82 Pré-processador e macros Macro para definição de constantes No exemplo abaixo toda a ocorrência da macro PI será substituída por F Facilita a manutenção e acrescenta clareza no código #define PI F float area(float r) { float a = PI * r * r; return a;

83 Módulos e Compilação em Seprado other.c Funções podem ser módulos separados definidos em.c help.c other.o main.c Préprocessador C Compilador C help.o Ligador (linker) programa.exe mac.h main.o a.out defs.h Figura adaptada do livro Sistemas Operacionais Modernos, Andrew S. Tanenbaum, Terceira Edição, 2010.

84 Módulos e Compilação em Seprado other.c help.c other.o Arquivos.h indicam o protótipo e devem ser documentados main.c Préprocessador C Compilador C help.o Ligador (linker) programa.exe mac.h main.o a.out defs.h Figura adaptada do livro Sistemas Operacionais Modernos, Andrew S. Tanenbaum, Terceira Edição, 2010.

Estruturas de Dados. Módulo 4 Funções. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Módulo 4 Funções. 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Módulo 4 Funções 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

Leia mais

Programação de Computadores II. Cap. 4 Funções

Programação de Computadores II. Cap. 4 Funções Programação de Computadores II Cap. 4 Funções Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:

Leia mais

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas 03/03/2010 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa

Leia mais

Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011

Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa

Leia mais

Estruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char?

Estruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? 1 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa o

Leia mais

ESTRUTURA DE DADOS (TCC )

ESTRUTURA DE DADOS (TCC ) ESTRUTURA DE DADOS (TCC-00.319) Ponteiros e funções Cristina Boeres 2 Ponteiros Variável do tipo ponteiro:! Linguagens como C permite o armazenamento e a manipulação de valores de endereços de memória!

Leia mais

LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO

LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO VARIÁVEL LINGUAGEM C Aula 3 TECNOLOGIA EM JOGOS DIGITAIS LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO Marcelo Henrique dos Santos Marcelo Henrique dos Santos Mestrado em Educação (em andamento) MBA em Negócios

Leia mais

Métodos Computacionais. Funções, Escopo de Variáveis e Ponteiros

Métodos Computacionais. Funções, Escopo de Variáveis e Ponteiros Métodos Computacionais Funções, Escopo de Variáveis e Ponteiros Tópicos da Aula Hoje vamos detalhar funções em C Escrevendo funções Comando return Passagem de argumentos por valor Execução de uma função

Leia mais

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 4

Estrutura de Dados. Ricardo José Cabeça de Souza   Parte 4 Estrutura de Dados Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Parte 4 As funções dividem grandes tarefas de computação em tarefas menores Criação de funções evita a repetição de código Exemplo

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Tipos Estruturados Tipo estrutura Definição de novos tipos Aninhamento de Estruturas Vetores de estruturas

Leia mais

Introdução à Linguagem C

Introdução à Linguagem C Introdução à Linguagem C 1 Histórico da Linguagem C Criada por Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da linguagem C O sistema Unix é escrito

Leia mais

Ponteiros de Variáveis

Ponteiros de Variáveis Ponteiros de Variáveis C++ permite o armazenamento e a manipulação de valores de endereços de memória. Para cada tipo existente, há um tipo ponteirocapaz de armazenar endereços de memória em que existem

Leia mais

Introdução a Linguagem C

Introdução a Linguagem C Introdução a Linguagem C Professor: Juliano Lucas Gonçalves juliano.goncalves@ifsc.edu.br Agenda Histórico Estrutura básica de um programa em C Diretivas para o processador Bibliotecas Ambiente de desenvolvimento

Leia mais

Algoritmos RESUMO - LINGUAGEM C

Algoritmos RESUMO - LINGUAGEM C Algoritmos RESUMO - LINGUAGEM C 1 Sintaxe da linguagem C Componentes reconhecidos pela linguagem C (sintaxe da linguagem): tipos propriedades dos dados; declarações partes do programa, podendo dar significado

Leia mais

Introdução à Linguagem C. Adaptado de Deise Saccol

Introdução à Linguagem C. Adaptado de Deise Saccol Introdução à Linguagem C Adaptado de Deise Saccol 1 Tradução CÓDIGO FONTE... LET SOMA = VAR1 + TOTAL... TRADUTOR CÓDIGO OBJETO... 00010110111001011001011010... MONTADOR (assembler) Tradutor para linguagens

Leia mais

facilita o trabalho em equipe, com diferentes grupos trabalhando em cada módulo independente.

facilita o trabalho em equipe, com diferentes grupos trabalhando em cada módulo independente. Estruturação do Programa Queremos organizar um programa de forma a: dividi-lo em partes que realizem tarefas específicas, resumindo um problema complexo a vários problemas mais simples simplifica a elaboração

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Vetores e alocação dinâmica Vetores Alocação dinâmica Vetores locais e funções ATENÇÃO Esta apresentação

Leia mais

Introdução à Linguagem C. Adaptado de slides das Profas. Patrícia Jaques, Mônica Py, Deise Saccol e Vania Bogorny

Introdução à Linguagem C. Adaptado de slides das Profas. Patrícia Jaques, Mônica Py, Deise Saccol e Vania Bogorny Introdução à Linguagem C Adaptado de slides das Profas. Patrícia Jaques, Mônica Py, Deise Saccol e Vania Bogorny 1 Histórico da Linguagem C Criada por Denis Ritchie, na década de 1970, para uso em um computador

Leia mais

Linguagem C: Introdução

Linguagem C: Introdução Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais

Leia mais

Introdução à Programação. Funções e Escopo de Variáveis

Introdução à Programação. Funções e Escopo de Variáveis Introdução à Programação Funções e Escopo de Variáveis Funções em C Funções constituem programas em C 2 Tópicos da Aula Hoje vamos detalhar funções em C Importância Escrevendo funções Comando return Passagem

Leia mais

Declarações. C diferencia letras maiúsculas de minúsculas! int n, N; n é diferente de N!

Declarações. C diferencia letras maiúsculas de minúsculas! int n, N; n é diferente de N! Declarações Os nomes das variáveis devem conter apenas letras, dígitos e o símbolo _ Os principais tipos são: int, float, double e char Exemplos: int n; int quantidade_valores; float x, y, somavalores;

Leia mais

Programação: Vetores

Programação: Vetores Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia

Leia mais

INF1005: PROGRAMAÇÃO I. Capítulo 12. Ivan Mathias Filho Funções Matemáticas

INF1005: PROGRAMAÇÃO I. Capítulo 12. Ivan Mathias Filho Funções Matemáticas INF1005: PROGRAMAÇÃO I Capítulo 12 Ivan Mathias Filho ivan@inf.puc-rio.br 1 Funções Matemáticas Função é uma relação de um ou vários valores de argumentos de entrada em um ÚNICO resultado de saída. O conjunto

Leia mais

Programação de Computadores II. Cap. 5 Vetores

Programação de Computadores II. Cap. 5 Vetores Programação de Computadores II Cap. 5 Vetores Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:

Leia mais

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1 INF1007: Programação 2 0 Revisão 06/08/2015 (c) Dept. de Informática - PUC-Rio 1 Tópicos Principais Variáveis e Constantes Operadores e Expressões Entrada e Saída Tomada de Decisão Construção com laços

Leia mais

Módulo 5 Vetores e Alocação Dinâmica

Módulo 5 Vetores e Alocação Dinâmica Estruturas de Dados Módulo 5 Vetores e Alocação Dinâmica 1/9/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Matrizes Alocação estática versus dinâmica Vetores bidimensionais matrizes Matrizes dinâmicas ATENÇÃO

Leia mais

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

Algoritmos e Técnicas de Programação. Professora: Luciana Faria

Algoritmos e Técnicas de Programação. Professora: Luciana Faria Algoritmos e Técnicas de Programação Professora: Luciana Faria Entrada e Saída de Dados Funções matemáticas #include Função ceil cos exp fabs floor log log10 pow sin sqrt tan Exemplo ceil(x)

Leia mais

Capítulo 4: Programando com Funções. Pontifícia Universidade Católica Departamento de Informática

Capítulo 4: Programando com Funções. Pontifícia Universidade Católica Departamento de Informática Capítulo 4: Programando com Funções Pontifícia Universidade Católica Departamento de Informática Organização de Código Um programa de computador representa a implementação de uma solução de um determinado

Leia mais

Introdução a Programação. Tipos Estruturados de Dados

Introdução a Programação. Tipos Estruturados de Dados Introdução a Programação Tipos Estruturados de Dados Tópicos da Aula Hoje aprenderemos a trabalhar com tipos de dados mais complexos Tipos Primitivos x Tipos Estruturados Conceito de Tipos Estruturados

Leia mais

Segundo programa: media.c

Segundo programa: media.c Segundo programa: media.c Vamos analisar um programa que calcula a média ponderada entre dois números: media.c Linhas de comentário: Num arquivo com o código de um programa C (código fonte), um comentário

Leia mais

Capítulo 3: Programando com Funções

Capítulo 3: Programando com Funções Capítulo 3: Programando com Funções INF1004 e INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Organização de Código Um programa de computador representa a implementação

Leia mais

CCO 016 / COM 110 Fundamentos de Programação

CCO 016 / COM 110 Fundamentos de Programação CCO 016 / COM 110 Fundamentos de Programação Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 06 Operações matemáticas Comandos Sequenciais Comandos Sequenciais na Linguagem de

Leia mais

Aula 08: Funções (Parte II)

Aula 08: Funções (Parte II) Aula 08: Funções (Parte II) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Introdução a Funções Aula prática

Leia mais

5 Funções. Site: BAC004 at Source page: 5 Funções at

5 Funções. Site: BAC004 at   Source page: 5 Funções at 5 Funções Site: BAC004 at http://bac004.wikidot.com Source page: 5 Funções at http://bac004.wikidot.com/funcoes Fold Table of Contents 5.1 Funções Sem Passagem de Parâmetros e Sem Retorno Exemplo 1 Chamada

Leia mais

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO LÓGICA DE PROGRAMAÇÃO PROFª. M.Sc. JULIANA H Q BENACCHIO Primeiro programa em C #include int main() { int num1, num2, result; scanf("%d",&num1); scanf("%d",&num2); result = num1 + num2; printf("%d",

Leia mais

Introdução a Programação. Ponteiros e Passagem de Argumentos por Referência

Introdução a Programação. Ponteiros e Passagem de Argumentos por Referência Introdução a Programação Ponteiros e Passagem de Argumentos por Referência Tópicos da Aula Hoje aprenderemos a manipular endereços de memória ou ponteiros Variáveis e Endereços Conceito de Ponteiro Operadores

Leia mais

Introdução à Computação

Introdução à Computação Introdução à Computação Tipos de Dados, Expressões, Operadores e Comandos Básicos Prof.: Julliano Rosa Nascimento julliano.rn@gmail.com Roteiro Tipos de Dados: Revisão Expressões Operadores Comandos Básicos

Leia mais

Ambiente de desenvolvimento

Ambiente de desenvolvimento Linguagem C Ambiente de desenvolvimento Um programa em C passa por seis fases até a execução: 1) Edição 2) Pré-processamento 3) Compilação 4) Linking 5) Carregamento 6) Execução Etapa 1: Criação do programa

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: funções Prof. Renato Pimentel 1 Subprogramas Subprograma: programa que auxilia o programa principal na realização de uma determinada

Leia mais

Introdução à Linguagem C

Introdução à Linguagem C Introdução à Linguagem C Simone Ceolin UNIFRA Adaptado de slides das Profas. Patrícia Jaques, Mônica Py e Deise Saccol 1 Histórico da Linguagem C Criada por Denis Ritchie, na década de 1970, para uso em

Leia mais

LINGUAGEM C: FUNÇÕES FUNÇÃO 08/01/2018. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

LINGUAGEM C: FUNÇÕES FUNÇÃO 08/01/2018. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. LINGUAGEM C: FUNÇÕES Prof. André Backes FUNÇÃO Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. printf(): função que escreve na tela scanf(): função que lê o teclado

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Aula 08 Ponteiros Edirlei Soares de Lima Endereço de uma Variável Toda variável definida em um programa ocupa uma área de memória; A cada área de memória

Leia mais

LINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

LINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. LINGUAGEM C: FUNÇÕES Prof. André Backes FUNÇÃO Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. printf(): função que escreve na tela scanf(): função que lê o teclado

Leia mais

Escopo das Variáveis. Funções. Funções. Funções. Funções. Algoritmos e Lógica de Programação. Programação Estruturada Funções Recursividade

Escopo das Variáveis. Funções. Funções. Funções. Funções. Algoritmos e Lógica de Programação. Programação Estruturada Funções Recursividade Algoritmos e Lógica de Programação Escopo das Variáveis Linguagem C Escopo de Programa Escopo de Arquivo Escopo de Função Programação Estruturada id d Escopo de Bloco static global Reinaldo Gomes reinaldo@cefet-al.br

Leia mais

Linguagem C. André Tavares da Silva.

Linguagem C. André Tavares da Silva. Linguagem C André Tavares da Silva dcc2ats@joinville.udesc.br Variáveis Posição nomeada de memória que é usada para guardar um valor que pode ser modificado pelo programa. Todas as variáveis devem ser

Leia mais

REVISÃO DE C. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

REVISÃO DE C. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REVISÃO DE C Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REVISÃO DE C Ponteiros Alocação dinâmica de memória Recursão INSTITUTO DE COMPUTAÇÃO - UFF 2 PONTEIROS PONTEIROS C permite o armazenamento

Leia mais

Cap. 3 Entrada e Saída e Controle de Fluxo

Cap. 3 Entrada e Saída e Controle de Fluxo Programação de Computadores II Cap. 3 Entrada e Saída e Controle de Fluxo Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados

Leia mais

Aula 10: Funções (Parte III)

Aula 10: Funções (Parte III) Aula 10: Funções (Parte III) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Baseado nos slides do Prof. Guillermo Cámara-Chávez Aulas anteriores Funções Ponteiros

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 9 Subalgoritmos, funções e passagem de parâmetros Profa. Marina Gomes marinagomes@unipampa.edu.br 22/06/2017 Engenharia de Computação - Unipampa 1 Modularização Facilita a

Leia mais

Função. Unidade autônoma do programa desenvolvida para executar alguma atividade. A estrutura de uma função C é semelhante à da função main( )

Função. Unidade autônoma do programa desenvolvida para executar alguma atividade. A estrutura de uma função C é semelhante à da função main( ) Função Unidade autônoma do programa desenvolvida para executar alguma atividade Evita que se escreva o mesmo código inúmeras vezes em um mesmo programa A estrutura de uma função C é semelhante à da função

Leia mais

Introdução a Programação de Jogos

Introdução a Programação de Jogos Introdução a Programação de Jogos Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição

Leia mais

Programação Imperativa. Lição n.º 3 Operações aritméticas

Programação Imperativa. Lição n.º 3 Operações aritméticas Programação Imperativa Lição n.º 3 Operações aritméticas Operações aritméticas Aritmética em C. Aritmética int. Aritmética double. Aritmética mista. Funções matemáticas de biblioteca. Funções max e min.

Leia mais

Programação de Computadores II. Cap. 9 Tipos Abstratos de Dados (TAD)

Programação de Computadores II. Cap. 9 Tipos Abstratos de Dados (TAD) Programação de Computadores II Cap. 9 Tipos Abstratos de Dados (TAD) Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados

Leia mais

Linguagem C: Elementos fundamentais

Linguagem C: Elementos fundamentais Instituto de C Linguagem C: Elementos fundamentais Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Tópicos Principais Variáveis e Constantes Operadores

Leia mais

Apontadores/ponteiros

Apontadores/ponteiros Apontadores/ponteiros 1 Apontadores/ponteiros 1. Um ponteiro pode ser manipulado como sendo um vetor. #include int v[5] = { 10, 20, 30, 40, 50 ; int p, i; p = v; for (i = 1; i < 5; i++) printf

Leia mais

SSC304 Introdução à Programação Para Engenharias. Introdução a Linguagem C. GE4 Bio

SSC304 Introdução à Programação Para Engenharias. Introdução a Linguagem C. GE4 Bio Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Introdução à Para Engenharias Introdução a Linguagem C GE4 Bio GE4Bio Grupo de Estudos

Leia mais

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes? Introdução à Ciência da Computação Ponteiros em C Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: funções Prof. Renato Pimentel 1 Linguagem C: funções Definição: blocos de código que podem ser chamados de dentro de um programa.

Leia mais

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Introdução à Programação Operadores, Expressões Aritméticas e Entrada/Saída de Dados Programa em C #include int main main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius

Leia mais

OPL e IB.

OPL e IB. Aula 01 - Introdução à Linguag C Programação: Estrut. Sequencial OPL e IB Prof: Anilton Joaquim da Silva anilton.ufu@outlook.com 1 A linguagem C++ A linguagem C foi desenvolvida no fim da década de 60;

Leia mais

Conhecendo a Linguagem de Programação C

Conhecendo a Linguagem de Programação C Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Conhecendo a Linguagem de Programação C DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros 1 Como

Leia mais

6 Alguns conceitos e comandos em programação

6 Alguns conceitos e comandos em programação 6 Alguns conceitos e comandos em programação 6.1 Diretivas Diretivas são instruções que permitem ao programador efetuar algum tipo de modificação à compilação, sendo analisadas e executadas pelo pré-compilador,

Leia mais

PCI- Operadores, Expressões e Funções. Profa. Mercedes Gonzales Márquez

PCI- Operadores, Expressões e Funções. Profa. Mercedes Gonzales Márquez PCI- Operadores, Expressões e Funções. Profa. Mercedes Gonzales Márquez Constantes São valores previamente determinados e que não se alteram ao longo do programa. Assim como as variáveis, as constantes

Leia mais

Programação de Computadores II. Cap. 5 Alocação Dinâmica

Programação de Computadores II. Cap. 5 Alocação Dinâmica Programação de Computadores II Cap. 5 Alocação Dinâmica Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais

Leia mais

CCO 016 / COM 110 Fundamentos de Programação

CCO 016 / COM 110 Fundamentos de Programação CCO 016 / COM 110 Fundamentos de Programação Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 06 Operações matemáticas Comandos Sequenciais Comandos Sequenciais na Linguagem de

Leia mais

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 03 - Ponteiros Edirlei Soares de Lima Endereço de uma Variável Toda variável definida em um programa ocupa uma área de memória; A cada área de memória

Leia mais

Módulo 3 Controle de Fluxo

Módulo 3 Controle de Fluxo Estruturas de Dados Módulo 3 Controle de Fluxo 16/8/2005 (c) Marco A. Casanova - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus

Leia mais

Aula 08: Repetição (Parte 3)

Aula 08: Repetição (Parte 3) Aula 08: Repetição (Parte 3) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula Anterior Breve Revisão Comandos de Decisão

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.7. Funções 3.7.1. Introdução 3.7.2. Uso de

Leia mais

INF 1620 P1-13/09/02 Questão 1 Nome:

INF 1620 P1-13/09/02 Questão 1 Nome: INF 1620 P1-13/09/02 Questão 1 Considere que o cálculo da multa para o pagamento de um determinado imposto varia de acordo com a tabela a seguir: Valor do Imposto Original Multa por mês de atraso até R$

Leia mais

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Programação em C Variáveis e Expressões DCA0800 Algoritmos e Lógica de Programação Heitor Medeiros Florencio

Leia mais

Introdução a Programação. Ponteiros e Vetores, Alocação Dinâmica

Introdução a Programação. Ponteiros e Vetores, Alocação Dinâmica Introdução a Programação Ponteiros e Vetores, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos que existe uma forte relação entre ponteiros e vetores Associação entre ponteiros e vetores Ponteiros constantes

Leia mais

Métodos Computacionais em Física

Métodos Computacionais em Física Métodos Computacionais em Física Tatiana G. Rappoport tgrappoport@if.ufrj.br 2014-2 Determinação das raizes de uma função Em muitos problemas é necessáŕio encontrar a solução da equação f(x) = 0 e frequentemente

Leia mais

ECT1203 Linguagem de Programação

ECT1203 Linguagem de Programação Universidade Federal do Rio Grande do Norte Escola de Ciências e Tecnologia ECT1203 Linguagem de Programação Prof. Aquiles Burlamaqui Profa. Caroline Rocha Prof. Luiz Eduardo Leite Prof. Luciano Ferreira

Leia mais

Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses

Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses 1 3 Estrutura de dados 2 Ponteiro Ponteiro 2 O ponteiro é um tipo de dado como int, char ou float. A diferença do ponteiro ponteiro guardará um endereço de memória. Por meio deste endereço pode-se acessar

Leia mais

LP2 Laboratório de Programação 2 Ciência da Computação. Problema proposto

LP2 Laboratório de Programação 2 Ciência da Computação. Problema proposto Problema proposto Em um torneio de futebol a pontuação foi definida da seguinte maneira: vitória por goleada 6 pontos; vitória simples 3 pontos; empate 1 ponto. Como determinar a quantidade mínima de jogos

Leia mais

Introdução à Computação

Introdução à Computação Introdução à Computação Tipos de Dados, Expressões, Operadores e Comandos Básicos Prof.: Julliano Rosa Nascimento julliano.rn@gmail.com Roteiro Tipos de Dados: Revisão Expressões Operadores Comandos Básicos

Leia mais

Programação I Funções. Prof. Carlos Alberto

Programação I Funções. Prof. Carlos Alberto Programação I Funções Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Funções Funções são blocos de códigos que podem ser nomeados e chamados de dentro de um programa; Funções

Leia mais

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática Capítulo 1: Introdução à Linguagem C Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso caso, a linguagem C.

Leia mais

Linguagem C Funções. André Tavares da Silva.

Linguagem C Funções. André Tavares da Silva. Linguagem C Funções André Tavares da Silva andre.silva@udesc.br Funções É uma coleção de comandos identificados por um nome (identificador); As funções executam ações e podem retornar valores; main, printf

Leia mais

Conceitos Básicos de Programação

Conceitos Básicos de Programação BCC 201 - Introdução à Programação Conceitos Básicos de Programação Guillermo Cámara-Chávez UFOP 1/53 Conceitos básicos I Variável 2/53 Conceitos básicos II Posição de memoria, identificada através de

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5

Leia mais

Métodos Computacionais

Métodos Computacionais Métodos Computacionais Objetivos da Disciplina e Introdução a Linguagem C Construções Básicas Objetivos da Disciplina Objetivo Geral Discutir técnicas de programação e estruturação de dados para o desenvolvimento

Leia mais

Departamento de Engenharia Informática. Sistemas Operativos 1. Utilitário Make

Departamento de Engenharia Informática. Sistemas Operativos 1. Utilitário Make Departamento de Engenharia Informática Sistemas Operativos 1 Utilitário Make Março 2003 1. Modelo de Compilação da Linguagem C Compilar um programa muito simples em C requer, pelo menos, o ficheiro de

Leia mais

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO. Prof. Dr. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO. Prof. Dr. Daniel Caetano LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO Prof. Dr. Daniel Caetano 2013-2 Objetivos Entender como avaliar divisibilidade Conhecer as funções matemáticas prontas do C/C++ Capacitar o

Leia mais

Linguagem de Programação I. Aula 10 Funções

Linguagem de Programação I. Aula 10 Funções Linguagem de Programação I Aula 10 Funções Da Aula Anterior Tipos de dados básicos e operadores em C Declaração de variáveis e modificadores de tipo Estruturas de Controle Arrays unidimensionais Geração

Leia mais

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem

Leia mais

Linguagem C: funções e ponteiros. Prof. Críston Algoritmos e Programação

Linguagem C: funções e ponteiros. Prof. Críston Algoritmos e Programação Linguagem C: funções e ponteiros Prof. Críston Algoritmos e Programação Funções Recurso das linguagens de programação que permite dar um nome para um conjunto de instruções Facilita a reutilização de algoritmos

Leia mais

Aula 05. Modularização Função Subrotina Recursividade

Aula 05. Modularização Função Subrotina Recursividade Logo Aula 05 Modularização Função Subrotina Recursividade 2 Modularização A modularização é um processo que aborda os aspectos da decomposição de algoritmos em módulos. Módulo é um grupo de comandos, constituindo

Leia mais

FUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara

FUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara Universidade do Estado de Minas Gerais - UEMG Curso de Engenharia da Computação FUNÇÕES EM C 1 Material adaptado da profa Silvana Maria Affonso de Lara ROTEIRO DA AULA Definição de Função Argumentos, retornos

Leia mais

Programação Estruturada

Programação Estruturada Programação Estruturada Ponteiros Parte 1 Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Ponteiros Ponteiro Ponteiros

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação CP41F Aula 13 Prof. Daniel Cavalcanti Jeronymo Declaração de funções. Funções sem e com retorno. Parâmetros de funções. Ponteiros para funções. Universidade Tecnológica Federal

Leia mais

Programação imperativa. 3. Mais funções

Programação imperativa. 3. Mais funções Programação imperativa 3. Mais funções 3. Mais funções Funções. Escolha binária. Números inteiros. 2 3. Mais funções Funções. Escolha binária. Números inteiros. 3 As funções de cálculo As funções de cálculo

Leia mais

Programação Estruturada Prof. Rodrigo Hausen Organização e Gerenciamento de Memória

Programação Estruturada Prof. Rodrigo Hausen  Organização e Gerenciamento de Memória Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Organização e Gerenciamento de Memória 1 AULA PASSADA - vetores ou arrays Declaração de um vetor (array) em C: tipo nome[tamanho];

Leia mais

Explicação do programa:

Explicação do programa: Disciplina: Introdução à Programação. IPRJ/UERJ Professora: Sílvia Mara da Costa Campos Victer Índice: Aula10 Sub-rotina: Em algoritmos Em C Sub-rotinas subprograma - programação modularizada Definição:

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Funções

Algoritmos e Estruturas de Dados I (DCC/003) Funções Algoritmos e Estruturas de Dados I (DCC/003) Funções Funções Funções definem operações que são usadas frequentemente Funções, na matemática, requerem parâmetros de entrada, e definem um valor de saída

Leia mais