Aula 18: Funções em C

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

Download "Aula 18: Funções em C"

Transcrição

1 Aula 18: Funções em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Funções em C Programação de Computadores IV 1 / 38

2 Agenda 1 Revisão e Contexto 2 Módulos 3 Funções 4 Vetores/Matrizes como Parâmetros 5 Parâmetros do Programa Fernanda Passos (UFF) Funções em C Programação de Computadores IV 2 / 38

3 Agenda 1 Revisão e Contexto 2 Módulos 3 Funções 4 Vetores/Matrizes como Parâmetros 5 Parâmetros do Programa Fernanda Passos (UFF) Funções em C Programação de Computadores IV 3 / 38

4 Aula Anterior: Ponteiros: Vimos como ponteiro está relacionado a memória. Ponteiro é uma variável que guarda endereço de outra variável. Ele serve para referenciar uma outra variável. Operações com ponteiros: operadores (* e &), atribuição e aritméticas de ponteiros. Alocação dinâmica: Podemos alocar dinamicamente memória. Funções vistas: malloc() e free(). Usamos ponteiro para referenciar a área alocada. Fernanda Passos (UFF) Funções em C Programação de Computadores IV 4 / 38

5 Foco da Aula de Hoje Funções: Rever conceitos de funções e procedimentos em algoritmos. Conhecer como eles são implementados em C. Estudar a passagem de parâmetros em C. Por valor e referência. Retorno de valor em funções. Parâmetros do programa: pela função main. Objetivos: Aprender como usar funções: declaração e chamada. Como passar diversos tipos de parâmetros. Fernanda Passos (UFF) Funções em C Programação de Computadores IV 5 / 38

6 Agenda 1 Revisão e Contexto 2 Módulos 3 Funções 4 Vetores/Matrizes como Parâmetros 5 Parâmetros do Programa Fernanda Passos (UFF) Funções em C Programação de Computadores IV 6 / 38

7 Módulos Ao estudarmos algoritmo, vimos noções de módulos: Funções: retornam um valor. Procedimentos: sem retorno. Módulos recebem parâmetros e a passagem pode ser: por valor: cópia do valor do parâmetro e por referência: referência ao parâmetro. Na passagem por valor, as alterações nos parâmetros sofridas dentro do módulo não causam efeito fora dele. Na passagem por referência, as alterações nos parâmetros permanecem nas variáveis passadas após processamento do módulo. Fernanda Passos (UFF) Funções em C Programação de Computadores IV 7 / 38

8 Agenda 1 Revisão e Contexto 2 Módulos 3 Funções 4 Vetores/Matrizes como Parâmetros 5 Parâmetros do Programa Fernanda Passos (UFF) Funções em C Programação de Computadores IV 8 / 38

9 Funções em C declarações globais Em aulas anteriores, vimos que um programa em C é formado por uma ou mais funções. Função principal (requerida): main. Pode possuir mais N funções. As funções devem ser escritas uma após a outra. Não existe a escrita de funções dentro de outras. tipo retorno f1(lista de parâmetros){ sequência de comandos } tipo retorno f2(lista de parâmetros){ sequência de comandos }. tipo retorno fn(lista de parâmetros){ sequência de comandos } tipo retorno main(lista de parâmetros){ sequência de comandos } Fernanda Passos (UFF) Funções em C Programação de Computadores IV 9 / 38

10 Implementação de Funções em C Forma geral da escrita de uma função: tipo retorno nome da função(lista de parâmetros) { corpo da função } tipo retorno: é o tipo de retorno da função. nome da função: é um identificador para a função. lista de parâmetros: lista de parâmetros da função composta pelo tipo e nome de variáveis separados por vírgula. A lista pode conter quantos parâmetros forem necessários e pode ser vazia também. Exemplo: int f1(char a, int n, float f){ // corpo da funcao } Fernanda Passos (UFF) Funções em C Programação de Computadores IV 10 / 38

11 Implementação de Funções em C (II) No corpo da função, podemos inserir código que ela irá executa quando for chamada. Uma função só é executada se for chamada direta ou indiretamente na função main. No corpo, podemos fazer declaração de variáveis. Convenciona-se realizá-la no início. Mas é possível declarar variáveis em qualquer lugar do código em C. Todas as variáveis declaradas dentro da função são locais. Isto quer dizer que só valem dentro da função. Quando a função termina, elas deixam de existir: memória é desalocada automaticamente. Se houver tipo a ser retornado, deve-se usar o comando return. Este comando faz com que o programa saia da função e retorne para a função que o chamou. O valor retornado deve condizer com o valor indicado na declaração da função. Fernanda Passos (UFF) Funções em C Programação de Computadores IV 11 / 38

12 Implementação de Funções em C: Exemplo 1 Função que realiza a potência de número real através de multiplicações sucessivas. Ela retorna o valor de n e para e 0. 1 float potencia(float n, int e){ 2 int i; 3 float resultado = 1; 4 5 for(i=0; i<e; i++){ 6 resultado = resultado * n; 7 } 8 return(resultado); 9 } Fernanda Passos (UFF) Funções em C Programação de Computadores IV 12 / 38

13 Procedimentos em C Procedimentos não são puramente suportados em C. Para produzi-lo, deve-se especificar um tipo de retorno void para uma função. Dentro da função, o retorno pode ser feito através de um return vazio. Ou simplesmente não usá-lo, se o retorno é no fim da função. Exemplo: 1 void imprimetabuadan(int n){ 2 int i; 3 4 for(i=1; i<=10; i++){ 5 printf(" %2d x %2d = %3d\n", n, i, n*i); 6 } 7 return; // Esta linha pode ser removida. 8 } Fernanda Passos (UFF) Funções em C Programação de Computadores IV 13 / 38

14 Chamada de Funções A chamada de uma função pode ser realizada dentro de qualquer função. Podemos, inclusive, ter uma hierarquia de chamadas. Isto é, chamar uma função dentro de outra em vários níveis. Toda vez que uma função é chamada, um novo escopo é criado para ela. Escopo é a região de memória definida no bloco da função. Portanto, a cada chamada da função, um novo bloco é alocado com novas variáveis locais. Mas para ser executada, deve-se começar a chamada pelo main. Pois o main é a função iniciada quando o programa começa a executar. Fernanda Passos (UFF) Funções em C Programação de Computadores IV 14 / 38

15 Chamada de Funções: Exemplo 2 Chamando a função potencia(): 1 #include <stdio.h> 2 3 float potencia(float n, int e){ 4 int i; 5 float resultado = 1; 6 7 for(i=0; i<e; i++){ 8 resultado = resultado * n; 9 } 10 return(resultado); 11 } int main(int argc, char * argv[]){ printf("%.2fˆ%d = %.2f\n", 3.0, 4, potencia(3.0, 4)); 16 printf("%.2fˆ%d = %.2f\n", 2.5, 2, potencia(2.5, 2)); 17 return(0); 18 } Fernanda Passos (UFF) Funções em C Programação de Computadores IV 15 / 38

16 Passagem Parâmetros Em C, toda passagem de parâmetro é por valor. Os parâmetros são variáveis locais que identificam os argumentos das funções. Assim sendo, é realizada uma cópia do valor passado para a função nas variáveis declaradas na função. Produz o efeito desejado da passagem por valor. Isto é, não alterar o parâmetro passado. Na chamada de uma função, qualquer expressão pode ser passada. Expressões podem ser quaisquer combinações de: constantes, expressões numéricas ou lógicas, variáveis, funções. Fernanda Passos (UFF) Funções em C Programação de Computadores IV 16 / 38

17 Passagem Parâmetros: Exemplo 3 Exemplo de passagens de parâmetros diversas: 1 #include <stdio.h> 2 3 int f1(int a, int b){ 4 return(a+2*b); 5 } 6 void f2(int a, int b, int c){ 7 printf("a: %d, b: %d e c: %d\n", a, b, c); 8 } 9 10 int main(int argc, char *argv[]){ 11 int val1, val2; printf("digite um inteiro: "); 14 scanf("%d", &val1); 15 val2 = f1(val1, 10); 16 f2(val1, val2-val1, f1(5, val1)); 17 return(0); 18 } Fernanda Passos (UFF) Funções em C Programação de Computadores IV 17 / 38

18 Passagem Parâmetros: Exemplo 3 Se entrada for o número 0, saída será: Digite um inteiro: 0 a: 0, b: 20 e c: 5 Se entrada for o número 2, saída será: Digite um inteiro: 2 a: 2, b: 20 e c: 9 Se entrada for o número -1, saída será: Digite um inteiro: -1 a: -1, b: 20 e c: 3 Fernanda Passos (UFF) Funções em C Programação de Computadores IV 18 / 38

19 Passagem Parâmetros: Tipos dos Valores Os valores passados para uma função devem casar com os tipos dos parâmetros declarados na função. Caso contrário, serão convertidos ou truncados. Pode causar resultado inesperado, se não respeitado. 1 #include <stdio.h> 2 3 int f1(int a, int b){ 4 return(a+2*b); 5 } 6 int main(int argc, char *argv[]){ 7 int val; 8 9 val = f1(1, 7.0/2.0); 10 // Se b fosse float, resultado seria 8 (1+2*3.5) 11 // Como b é int, resultado é 7 (1 + 2*3). 12 printf("val: %d\n", val); 13 return(0); 14 } Fernanda Passos (UFF) Funções em C Programação de Computadores IV 19 / 38

20 Entendendo Chamadas de Funções Hierárquicas void f1(int a) f2(a+1, a-1); void f2(int a, int b) f3(f4(a), b); int f4(int a) Suponha o seguinte esboço de código: return(a*2); void f3(int a, int b) printf("%d %d\n", a, b); Fernanda Passos (UFF) Funções em C Programação de Computadores IV 20 / 38

21 Entendendo Chamadas de Funções Hierárquicas void f1(int a) f2(a+1, a-1); void f2(int a, int b) f3(f4(a), b); Execução: int f4(int a) return(a*2); void f3(int a, int b) printf("%d %d\n", a, b); Fernanda Passos (UFF) Funções em C Programação de Computadores IV 21 / 38

22 Entendendo Chamadas de Funções Hierárquicas void f1(int a) f2(a+1, a-1); Execução: void f2(int a, int b) f3(f4(a), b); int f4(int a) return(a*2); void f1(int a) f2(a+1, a-1); a = 2 void f3(int a, int b) printf("%d %d\n", a, b); Fernanda Passos (UFF) Funções em C Programação de Computadores IV 21 / 38

23 Entendendo Chamadas de Funções Hierárquicas void f1(int a) f2(a+1, a-1); void f2(int a, int b) f3(f4(a), b); int f4(int a) return(a*2); void f3(int a, int b) printf("%d %d\n", a, b); void f1(int a) f2(a+1, a-1); Execução: a = 2 void f2(int a, int b) a = 3, b = 1 f3(f4(a), b); Fernanda Passos (UFF) Funções em C Programação de Computadores IV 21 / 38

24 Entendendo Chamadas de Funções Hierárquicas void f1(int a) f2(a+1, a-1); void f2(int a, int b) f3(f4(a), b); int f4(int a) return(a*2); void f3(int a, int b) printf("%d %d\n", a, b); void f1(int a) f2(a+1, a-1); Execução: a = 2 void f2(int a, int b) a = 3, b = 1 f3(f4(a), b); int f4(int a) return(a*2); a = 3 Fernanda Passos (UFF) Funções em C Programação de Computadores IV 21 / 38

25 Entendendo Chamadas de Funções Hierárquicas void f1(int a) f2(a+1, a-1); void f2(int a, int b) Execução: f3(f4(a), b); int f4(int a) void f1(int a) f2(a+1, a-1); a = 2 return(a*2); void f3(int a, int b) void f2(int a, int b) a = 3, b = 1 f3(f4(a), b); 6 printf("%d %d\n", a, b); Fernanda Passos (UFF) Funções em C Programação de Computadores IV 21 / 38

26 Entendendo Chamadas de Funções Hierárquicas void f1(int a) f2(a+1, a-1); void f2(int a, int b) Execução: f3(f4(a), b); int f4(int a) void f1(int a) f2(a+1, a-1); a = 2 return(a*2); void f3(int a, int b) printf("%d %d\n", a, b); void f2(int a, int b) a = 3, b = 1 f3(f4(a), b); 6 void f3(int a, int b) a = 6, b = 1 printf("%d %d\n", a, b); Saída: 6 1 Fernanda Passos (UFF) Funções em C Programação de Computadores IV 21 / 38

27 Entendendo Chamadas de Funções Hierárquicas void f1(int a) f2(a+1, a-1); void f2(int a, int b) Execução: f3(f4(a), b); int f4(int a) void f1(int a) f2(a+1, a-1); a = 2 return(a*2); void f3(int a, int b) void f2(int a, int b) a = 3, b = 1 f3(f4(a), b); 6 printf("%d %d\n", a, b); Saída: 6 1 Fernanda Passos (UFF) Funções em C Programação de Computadores IV 21 / 38

28 Entendendo Chamadas de Funções Hierárquicas void f1(int a) f2(a+1, a-1); void f2(int a, int b) Execução: f3(f4(a), b); int f4(int a) return(a*2); void f1(int a) f2(a+1, a-1); a = 2 void f3(int a, int b) printf("%d %d\n", a, b); Saída: 6 1 Fernanda Passos (UFF) Funções em C Programação de Computadores IV 21 / 38

29 Entendendo Chamadas de Funções Hierárquicas void f1(int a) f2(a+1, a-1); void f2(int a, int b) Execução: f3(f4(a), b); int f4(int a) return(a*2); void f3(int a, int b) printf("%d %d\n", a, b); Saída: 6 1 Fernanda Passos (UFF) Funções em C Programação de Computadores IV 21 / 38

30 Entendendo Chamadas de Funções Hierárquicas void f1(int a) f2(a+1, a-1); void f2(int a, int b) f3(f4(a), b); int f4(int a) Execução: void f2(int a, int b) a = 3, b = 2 f3(f4(a), b); return(a*2); void f3(int a, int b) printf("%d %d\n", a, b); Saída: 6 1 Fernanda Passos (UFF) Funções em C Programação de Computadores IV 21 / 38

31 Entendendo Chamadas de Funções Hierárquicas void f1(int a) f2(a+1, a-1); void f2(int a, int b) f3(f4(a), b); int f4(int a) Execução: void f2(int a, int b) a = 3, b = 2 f3(f4(a), b); return(a*2); int f4(int a) a = 3 void f3(int a, int b) return(a*2); printf("%d %d\n", a, b); Saída: 6 1 Fernanda Passos (UFF) Funções em C Programação de Computadores IV 21 / 38

32 Entendendo Chamadas de Funções Hierárquicas void f1(int a) f2(a+1, a-1); void f2(int a, int b) f3(f4(a), b); int f4(int a) return(a*2); void f3(int a, int b) Execução: void f2(int a, int b) a = 3, b = 2 f3(f4(a), b); 6 void f3(int a, int b) a = 6, b = 2 printf("%d %d\n", a, b); printf("%d %d\n", a, b); Saída: Fernanda Passos (UFF) Funções em C Programação de Computadores IV 21 / 38

33 Entendendo Chamadas de Funções Hierárquicas void f1(int a) f2(a+1, a-1); void f2(int a, int b) f3(f4(a), b); int f4(int a) Execução: void f2(int a, int b) a = 3, b = 2 f3(f4(a), b); return(a*2); void f3(int a, int b) printf("%d %d\n", a, b); Saída: Fernanda Passos (UFF) Funções em C Programação de Computadores IV 21 / 38

34 Entendendo Chamadas de Funções Hierárquicas void f1(int a) f2(a+1, a-1); void f2(int a, int b) Execução: f3(f4(a), b); int f4(int a) return(a*2); void f3(int a, int b) printf("%d %d\n", a, b); Saída: Fernanda Passos (UFF) Funções em C Programação de Computadores IV 21 / 38

35 Passagem de Parâmetros por Referência A linguagem C permite simular a passagem de parâmetro por referência. Permite estipular outra forma de saída de dados da função. Isto é feito através de ponteiros. Na verdade, o valor de uma variável ponteiro é passada para a função. Ainda é passagem por valor: passa-se o valor endereço. Mas através dele, podemos referenciar uma outra variável. Fernanda Passos (UFF) Funções em C Programação de Computadores IV 22 / 38

36 Passagem de Parâmetros por Referência: Exemplo 4 Trocar o valor de duas variáveis. 1 #include <stdio.h> 2 3 void troca(int *x, int *y){ 4 int temp; 5 6 temp = *x; // Salva o valor que está em x 7 *x = *y; // põe o valor de y em x 8 *y = temp; // põe o valor de temp (x) em y 9 } 10 int main(int argc, char * argv[]){ 11 int a = 0, b = 1; // Deve-se passar o endereço das variáveis. 14 printf("a: %d e b: %d\n", a, b); 15 troca(&a, &b); 16 printf("a: %d e b: %d\n", a, b); 17 return(0); 18 } Fernanda Passos (UFF) Funções em C Programação de Computadores IV 23 / 38

37 Passagem de Parâmetros por Referência: Exemplo 5 Retornando resultado de uma função em um parâmetro: 1 #include <stdio.h> 2 3 void potencia(float *r, float n, int e){ 4 int i; 5 float resultado = 1; 6 7 for(i=0; i<e; i++) 8 resultado = resultado * n; 9 *r = resultado; 10 } 11 int main(int argc, char * argv[]){ 12 float res; potencia(&res, 3.0, 4); 15 printf("%.2fˆ%d = %.2f\n", 3.0, 4, res); 16 return(0); 17 } Fernanda Passos (UFF) Funções em C Programação de Computadores IV 24 / 38

38 Agenda 1 Revisão e Contexto 2 Módulos 3 Funções 4 Vetores/Matrizes como Parâmetros 5 Parâmetros do Programa Fernanda Passos (UFF) Funções em C Programação de Computadores IV 25 / 38

39 Vetores/Matrizes como Parâmetros Podemos passar vetores e matrizes como parâmetro para funções. Quando passamos um vetor ou matriz como parâmetro, o ponteiro é o valor copiado para a função. Deste modo, o vetor não é copiado. Modificar um vetor dentro de uma função altera o valor fora. Existem duas maneiras de declarar vetores/matrizes de acordo como elas foram declaradas: ou estaticamente, ou dinamicamente. Fernanda Passos (UFF) Funções em C Programação de Computadores IV 26 / 38

40 Declarar Vetores Estáticos como Parâmetros Existem 3 formas similares de se declarar uma função com vetor como parâmetro. com colchetes e tamanho definido: void mostravetor(int vet[10]){ int i; for(i=0; i<10; i++) printf("%d ", vet[i]); printf("\n"); } com colchetes vazio: void mostravetor(int vet[]){ int i; for(i=0; i<10; i++) printf("%d ", vet[i]); printf("\n"); } como ponteiro (asterisco): void mostravetor(int *vet){ int i; for(i=0; i<10; i++) printf("%d ", vet[i]); printf("\n"); } Fernanda Passos (UFF) Funções em C Programação de Computadores IV 27 / 38

41 Declarar Matrizes Estáticas como Parâmetros Para matriz, existem 2 maneiras similares: com colchetes e dimensões definidas: void mostramatriz(int mat[5][5]){ int i, j; for(i=0; i<5; i++){ for(j=0; j<5; j++) printf("%d ", mat[i][j]); printf("\n"); } com primeiro colchetes vazio e segundo com dimensão definida: void mostramatriz(int mat[][5]){ int i, j; for(i=0; i<5; i++){ for(j=0; j<5; j++) printf("%d ", mat[i][j]); printf("\n"); } Fernanda Passos (UFF) Funções em C Programação de Computadores IV 28 / 38

42 Passando Vetor como Parâmetro: Exemplo 6 Função que imprime um vetor. 1 #include <stdio.h> 2 3 void mostravetor(int vet[]){ 4 int i; 5 6 for(i=0; i<5; i++){ 7 printf("%d ", vet[i]); 8 } 9 printf("\n"); 10 } 11 int main(int argc, char * argv[]){ 12 int A[5], B[5], i; for(i=0; i<5; i++){ 15 A[i] = i; 16 B[i] = 4 - i; 17 } 18 printf("vetor A:\n"); 19 mostravetor(a); 20 printf("vetor B:\n"); 21 mostravetor(b); 22 return(0); 23 } Fernanda Passos (UFF) Funções em C Programação de Computadores IV 29 / 38

43 Passando Matriz como Parâmetro: Exemplo 7 Função que imprime uma matriz. 1 #include <stdio.h> 2 3 void mostramatriz(int mat[][5]){ 4 int i, j; 5 6 for(i=0; i<5; i++){ 7 for(j=0; j<5; j++) 8 printf("%4d ", mat[i][j]); 9 printf("\n"); 10 } 11 } 12 int main(int argc, char * argv[]){ 13 int A[5][5], B[5][5], i, j; for(i=0; i<5; i++) 16 for(j=0; j<5; j++){ 17 A[i][j] = i*5 + j; 18 B[i][j] = 2*(i*5 + j); 19 } printf("matriz A:\n"); 22 mostramatriz(a); 23 printf("matriz B:\n"); 24 mostramatriz(b); return(0); 27 } Fernanda Passos (UFF) Funções em C Programação de Computadores IV 30 / 38

44 Modificando Parâmetro Vetor: Exemplo 8 Exemplo em que modificamos o valor de um vetor (leitura de vetor de arquivo). 1 #include <stdio.h> 2 3 int levetor(char * nomearq, int vet[], int *tam_vet){ 4 FILE * arq; 5 int i = 0, valor; 6 7 arq = fopen(nomearq, "r"); 8 if(arq == NULL){ 9 printf("arquivo nao pode ser aberto\n"); 10 return(1); // Nao conseguiu ler. 11 } 12 while (fscanf(arq, "%d", &valor) > 0){ 13 vet[i] = valor; i++; 14 } 15 fclose(arq); 16 *tam_vet = i; 17 return(0); // Conseguiu ler. 18 } Fernanda Passos (UFF) Funções em C Programação de Computadores IV 31 / 38

45 Vetor como Parâmetro: Exemplo 8 (cont.) 19 void mostravetor(int vet[], int tam){ 20 int i; printf("vetor de tamanho %d:", tam); 23 for(i=0; i<tam; i++){ 24 printf(" %d", vet[i]); 25 } 26 printf("\n"); 27 } int main(int argc, char * argv[]){ 30 int A[100], tama; // Vetor tem, no maximo, tamanho if(levetor("vetor.txt", A, &tama) == 0){ 33 mostravetor(a, tama); 34 } 35 return(0); 36 } Fernanda Passos (UFF) Funções em C Programação de Computadores IV 32 / 38

46 Agenda 1 Revisão e Contexto 2 Módulos 3 Funções 4 Vetores/Matrizes como Parâmetros 5 Parâmetros do Programa Fernanda Passos (UFF) Funções em C Programação de Computadores IV 33 / 38

47 Parâmetros do Programa Algumas vezes é útil passar informação para um programa quando o executamos. Por exemplo, o nosso compilador gcc: gcc é um programa: o compilador que transforma código fonte em executável. Quando chamamos ele, passamos alguns argumentos para ele: gcc codigo.c -o executavel codigo.c, -o e executavel são parâmetros do programa gcc. Podemos passar, via console, argumentos para nosso programa também. Isto é feito através dos argumentos especiais argc e argv. São parâmetros para a função main. Fernanda Passos (UFF) Funções em C Programação de Computadores IV 34 / 38

48 argc e argv argc: é um inteiro que indica quantos argumentos tem o programa. Inclui o próprio nome do programa. Os argumentos são separados por espaço. argv: é um vetor de strings. Cada palavra é uma string. O argv[0] é o nome do programa. A partir da posição 1, temos os argumentos. Fernanda Passos (UFF) Funções em C Programação de Computadores IV 35 / 38

49 argc e argv: Exemplo 9 Imprimir Ola e o seu nome, passando ele como argumento do programa. Para rodar:./ola Maria 1 #include <stdio.h> 2 3 int main(int argc, char *argv[]){ 4 5 if(argc < 2){ 6 printf("modo de uso:\n\t%s <seu nome>\n", argv[0]); 7 return(1); 8 } 9 printf("ola %s!\n", argv[1]); 10 return(0); 11 } Fernanda Passos (UFF) Funções em C Programação de Computadores IV 36 / 38

50 Conversão de String para Valor Numérico O argv é um vetor de strings. Portanto, só podemos passar string para o programa. E se quisermos passar um valor numérico? Fernanda Passos (UFF) Funções em C Programação de Computadores IV 37 / 38

51 Conversão de String para Valor Numérico O argv é um vetor de strings. Portanto, só podemos passar string para o programa. E se quisermos passar um valor numérico? Para isso, existem funções de conversão de string para int, float, e outros. Na stdlib.h, temos: atoi: converte string para int. atol: converte string para long. atof : converte string para double. Na stdio.h, temos: sprintf: converte de acordo com o formato. Fernanda Passos (UFF) Funções em C Programação de Computadores IV 37 / 38

52 Exercícios Escreva um programa que receba por parâmetro (pelo console) o nome de dois arquivos. O primeiro é um arquivo que contém um vetor de inteiros. O segundo é um arquivo de saída. O programa deve: ler o arquivo com o vetor, calcular a média dos valores e escrever o resultado de cada valor dividido pela média no arquivo de saída. Fernanda Passos (UFF) Funções em C Programação de Computadores IV 38 / 38

Aula 17: Ponteiros e Alocação Dinâmica em C

Aula 17: Ponteiros e Alocação Dinâmica em C Aula 17: Ponteiros e Alocação Dinâmica em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores

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

Ponteiros e Tabelas. K&R: Capítulo 5

Ponteiros e Tabelas. K&R: Capítulo 5 Ponteiros e Tabelas K&R: Capítulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros

Leia mais

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

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica Introdução a Programação Ponteiros e Strings, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos a relação entre ponteiros e strings Ponteiros para strings X Vetores de Caracteres Vetores de ponteiros

Leia mais

Funções em C. Lucas Ferrari de Oliveira Professor Adjunto. Linguagem de Programação Estruturada I. Universidade Federal do Paraná

Funções em C. Lucas Ferrari de Oliveira Professor Adjunto. Linguagem de Programação Estruturada I. Universidade Federal do Paraná em C Linguagem de Programação Estruturada I Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná Sumário Funções: Conceitos; Forma Geral das funções; Regras de Escopo; Argumentos

Leia mais

Ponteiros. Baseado nos slides do Prof. Mauro.

Ponteiros. Baseado nos slides do Prof. Mauro. Baseado nos slides do Prof. Mauro. A memória do computador é uma sequência de bytes, na qual endereçamos cada um sequencialmente. Como vimos, uma variável é uma região da memória que reservamos para armazenar

Leia mais

prim = A ; prim = &A[0];

prim = A ; prim = &A[0]; 57 12 - MAIS SOBRE APONTADOR 12.1 - Ponteiros e arrays Em C, ponteiros e matrizes são tratados de maneira semelhante. 12.1.1 - Nome O nome é um ponteiro, ou seja, aponta (contém o endereço) para o primeiro

Leia mais

Ponteiros e alocação dinâmica de memória. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto

Ponteiros e alocação dinâmica de memória. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto Ponteiros e alocação dinâmica de memória Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto Agenda Ponteiros Ponteiros e vetores Passagem por cópia e por referência Alocação

Leia mais

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa? Funções Suponha um conjunto habitacional, com várias famílias...... imagina se todas elas morassem em uma única casa? Funções Programação de Computadores 1 de 28 Funções Na Programação, funções são conjuntos

Leia mais

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Introdução Copyright 2014 IFRN Agenda Conceitos básicos ANSI C Hello World Funções em C Exercícios 2 /26 A linguagem

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

Métodos Computacionais. Vetores e Matrizes Dinâmicas

Métodos Computacionais. Vetores e Matrizes Dinâmicas Métodos Computacionais Vetores e Matrizes Dinâmicas Vetores Um programa para o cálculo da média Média m n i= = 1 n x i Variância v n i= = 1 ( x i n m) 2 A forma mais simples de estruturar um conjunto de

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

Funções em Linguagem C Parte II

Funções em Linguagem C Parte II Slides inicialmente preparados pelo Prof. Dr. Claudio Fabiano Motta Toledo Funções em Linguagem C Parte II Profa. Dra. Elisa Yumi Nakagawa 1. Semestre 2017 Sumário Introdução a Ponteiros Escopo de Variáveis

Leia mais

Modularidade - Funções e Procedimentos

Modularidade - Funções e Procedimentos Modularidade - Funções e Procedimentos José Gustavo de Souza Paiva Problema Em diversas situações, é preciso executar uma tarefa específica diversas vezes em um programa, variando apenas os dados de entrada

Leia mais

Estruturas de Dados. Profa. Juliana Pinheiro Campos

Estruturas de Dados. Profa. Juliana Pinheiro Campos Estruturas de Dados Profa. Juliana Pinheiro Campos Vetores Forma mais simples de estruturar um conjunto de dados. Exemplo: int p[10]; // vetor de inteiros com 10 elementos Reserva de um espaço de memória

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

Aula 25: Alocação Dinâmica

Aula 25: Alocação Dinâmica Aula 25: Alocação Dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aulas anteriores Estruturas de memórias heterogêneas

Leia mais

1 Exercícios com ponteiros

1 Exercícios com ponteiros Computação para Informática Funções e Ponteiros1 EXERCÍCIOS COM PONTEIROS Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Funções e ponteiros O objetivo desta aula prática

Leia mais

Alocação Dinâmica em C

Alocação Dinâmica em C Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Alocação Dinâmica em C Profa Rosana Braga Adaptado de material preparado pela profa Silvana Maria Affonso de Lara

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

Aula 15: Vetores e Matrizes em C

Aula 15: Vetores e Matrizes em C Aula 15: Vetores e Matrizes em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Vetores e Matrizes Programação de Computadores IV 1 / 50 Agenda 1 Revisão

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

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 04 Alocação Dinâmica Edirlei Soares de Lima Vetores - Declaração e Inicialização Declaração de um vetor: int meu_vetor[10]; Reserva um espaço de memória

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

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

O que é um apontador em C (type pointer in C)?

O que é um apontador em C (type pointer in C)? O que é um apontador em C (type pointer in C)? Um apontador é uma variável que contém um endereço de outra variável. int x = 10;//variável inteira iniciada com o valor 10 int *px = &x;//variável apontadora

Leia mais

Exercícios. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal

Exercícios. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal Exercícios 1) Crie uma função que recebe os coeficientes de uma função do 2o. grau e retorna as raízes sem usar vetor. 2) Faça um programa que acha o maior e o menor inteiro dentro de um vetor de 10 inteiros,

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

Exercício. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal

Exercício. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal Exercício Crie uma função que recebe o número de dias até um determinado evento e calcula e retorna o equivalente em meses, semanas e dias, sem usar vetor ou o conceito de vetor. Considerar que todos os

Leia mais

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa? Funções Suponha um conjunto habitacional, com várias famílias...... imagina se todas elas morassem em uma única casa? Funções Introdução à Computação 1 de 28 Funções Na Programação, funções são conjuntos

Leia mais

11a. Aula Ponteiros e Vetores

11a. Aula Ponteiros e Vetores 11a. Aula Ponteiros e Vetores 2013.2 2 É um tipo de variável com uma ressalva...... armazena apenasendereçode memória (ou null) Se eu tiver o endereço da casa de Francisca, eu poderei visitá-la e lhe fazer

Leia mais

1 Exercícios com ponteiros

1 Exercícios com ponteiros Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Oitava Aula Prática - 29 de outubro de 2010 O objetivo desta aula prática é exercitar ponteiros e funções. 1 Exercícios com ponteiros

Leia mais

Aula 16: Manipulação de Arquivos em C

Aula 16: Manipulação de Arquivos em C Aula 16: Manipulação de Arquivos em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Manipulação de Arquivos Programação de Computadores IV 1 / 33

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

Computação 2. Aula 7. Profª. Fabiany Ponteiros

Computação 2. Aula 7. Profª. Fabiany Ponteiros Computação 2 Aula 7 Ponteiros Profª. Fabiany fabianyl@utfpr.edu.br O que são Ponteiros? Um ponteiro é uma variável que contém um endereço de memória. Este endereço é normalmente a posição de uma outra

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

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

Ponteiros & tabelas (cont.) K&R: Capítulo 5

Ponteiros & tabelas (cont.) K&R: Capítulo 5 Ponteiros & tabelas (cont.) K&R: Capítulo 5 Sinopse da aula de hoje Pointers in a nutshell & alocação dinâmica de memória Estruturas, funções e apontadores Estruturas auto-referenciadas Exemplo de aplicação:

Leia mais

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal ALGORITMOS AULA 01 Baseado nas aulas do Prof. Jorgiano Vidal LINGUAGEM C Uma das grandes vantagens do C é que ele possui tanto caracterìsticas de "alto nìvel" quanto de "baixo nìvel". Linguagem de propósito

Leia mais

Ponteiros e Alocação de Memória

Ponteiros e Alocação de Memória Algoritmos e Estrutura de Dados I Ponteiros e Alocação de Memória Prof. Paulo Henrique Pisani fevereiro/2019 Memória Podemos entender a memória como um grande vetor de bytes devidamente endereçados: 0x1051

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

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

Algoritmos e Programação. Linguagem C Procedimentos e. Eliane Pozzebon

Algoritmos e Programação. Linguagem C Procedimentos e. Eliane Pozzebon Algoritmos e Programação Linguagem C Procedimentos e Funções Eliane Pozzebon Procedimentos e Funções Procedimentos são estruturas que agrupam um conjunto de comandos, que são executados quando o procedimento

Leia mais

Linguagem e Técnicas de Programação

Linguagem e Técnicas de Programação Linguagem C Função Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 07 Função 1 Conceitos As técnicas de programação dizem que, sempre que possível, evite códigos extensos, separando o mesmo em funções,

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

Linguagens de Programação I

Linguagens de Programação I Linguagens de Programação I Tema # 7 Vetores ou Matrizes Unidimensionais Matrices Multidimencionais Susana M Iglesias 1 INTRODUÇÃO Um vetor geralmente é associado a uma lista ou conjunto de elementos similares,

Leia mais

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

Linguagem C ponteiros

Linguagem C ponteiros Linguagem C ponteiros IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Introdução à linguagem C... Vetores Matrizes Funções Recursão Registros Aula

Leia mais

Ponteiros - Parte I. Ponteiros, Ponteiros e Vetores, Algoritmo Bubble Sort, Alocação Dinâmica de Memória

Ponteiros - Parte I. Ponteiros, Ponteiros e Vetores, Algoritmo Bubble Sort, Alocação Dinâmica de Memória Ponteiros - Parte I Ponteiros, Ponteiros e Vetores, Algoritmo Bubble Sort, Alocação Dinâmica de Memória Ponteiros Um ponteiro é uma variável que contém um endereço de memória. Esse endereço é normalmente

Leia mais

Modularidade - Fun ções e Procedimentos

Modularidade - Fun ções e Procedimentos Modularidade - Fun ções e Procedimentos José Gustavo de Souza Paiva Problema Em diversas situa ções, é preciso executar uma tarefa específica diversas vezes em um programa, variando apenas os dados de

Leia mais

Linguagem de Programação I. Aula 08 Linguagem C: Arrays

Linguagem de Programação I. Aula 08 Linguagem C: Arrays Linguagem de Programação I Aula 08 Linguagem C: Arrays Da Aula Anterior Tipos de dados básicos em C Modificadores de tipo Declaração de Variáveis Operadores em C Estruturas de Controle Nesta Aula Arrays

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

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013 Ponteiros e Tabelas K&R: Capitulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros

Leia mais

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Estruturas de Dados Revisão de Ponteiros 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 e Arranjos

Leia mais

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013 Ponteiros e Tabelas K&R: Capitulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros

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

Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II. Ponteiros

Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II. Ponteiros Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II Ponteiros Profa.: Simone Ceolin Slides (Prof.Tiago Rios da Rocha) Primeiro Semestre 2011 Sumário

Leia mais

Subprogramas. (ou Sub-rotinas) em C: Procedimentos e Funções. 2015/1 Programação Básica de Computadores (INF 09325)

Subprogramas. (ou Sub-rotinas) em C: Procedimentos e Funções. 2015/1 Programação Básica de Computadores (INF 09325) Subprogramas (ou Sub-rotinas) em C: Procedimentos e Funções 2015/1 Programação Básica de Computadores (INF 09325) Archimedes Detoni www.inf.ufes.br/~archimedesdetoni archimedesdetoni@inf.ufes.br Programa

Leia mais

Faculdade de Computação

Faculdade de Computação Faculdade de Computação Programação Procedimental 1 o Laboratório de Programação C Prof. Cláudio C. Rodrigues 1. Introdução O objetivo desta aula prática é exercitar o uso de variáveis de vários tipos

Leia mais

Programação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio

Programação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio Programação II Vetores e Alocação Dinâmica Bruno Feijó Dept. de Informática, PUC-Rio Vetores (arrays) Vetor: estrutura de dados definindo um conjunto enumerável Exemplo: v = vetor de inteiros com 10 elementos

Leia mais

12 - Dados Estruturados Vetores, Matrizes e Strings

12 - Dados Estruturados Vetores, Matrizes e Strings 12 - Dados Estruturados Vetores, Matrizes e Strings Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante Vetores,

Leia mais

ALGORITMOS E ESRUTRA DE DADOS I. Ponteiros Passagem por Valor e Referência Alocação de Memória

ALGORITMOS E ESRUTRA DE DADOS I. Ponteiros Passagem por Valor e Referência Alocação de Memória ALGORITMOS E ESRUTRA DE DADOS I Ponteiros Passagem por Valor e Referência Alocação de Memória 2 Agenda Ponteiros Conceitos gerais O que é Ponteiro? Declaração de Ponteiros Operadores para Ponteiros Exemplos

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. Prof. Msc. Luis Filipe Alves Pereira 2015

INTRODUÇÃO À LINGUAGEM C. Prof. Msc. Luis Filipe Alves Pereira 2015 INTRODUÇÃO À LINGUAGEM C Prof. Msc. Luis Filipe Alves Pereira 2015 INTRODUÇÃO À LINGUAGEM C 02/23 INTRODUÇÃO Criada em 1972 na AT&T Bell Labs É uma das linguagens mais populares. Existem poucas arquiteturas

Leia mais

PROGRAMAÇÃO DE COMPUTADORES V - TCC Modulo 6 : Funções Escopo de Variáveis: Globais x Locais Aura - Erick

PROGRAMAÇÃO DE COMPUTADORES V - TCC Modulo 6 : Funções Escopo de Variáveis: Globais x Locais Aura - Erick PROGRAMAÇÃO DE COMPUTADORES V - TCC- 00.323 Modulo 6 : Funções Escopo de Variáveis: Globais x Locais Aura - Erick aconci@ic.uff.br, erickr@id.uff.br Roteiro Funções Escopo de Variáveis Variáveis Globais

Leia mais

ED1 - Aula 01 Introducao e revisão

ED1 - Aula 01 Introducao e revisão ED1 - Aula 01 Introducao e revisão Profa. Nádia Félix Hebert Coelho Instituto de Informática Universidade Federal de Goiás Roteiro Detalhes do curso Plano de Ensino sharif Revisão Tipos Construídos Alocação

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

Computação eletrônica: Funções

Computação eletrônica: Funções Computação eletrônica: Gurvan Huiban ghuiban@cin.ufpe.br 13 de maio de 2014 Plano de aula 1 Princípio 2 Declaração de funções 3 Escope de variáveis Introdução O que é? Bloco de instruções desenvolvido

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.6. Ponteiros 3.6.1. Introdução 3.6.2. Uso

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

Introdução à Programação Introdução à Programação 1.Ano LCC-MIERSI DCC - FCUP Nelma Moreira Aula 10 Ordenação 2 15-1 7 9 4 6 Existem muitos métodos de ordenar Bolha Inserção Seleção Quicksort etc... Bolha (bubble sort) Percorrer

Leia mais

MC-102 Aula 14. Instituto de Computação Unicamp. 29 de Setembro de 2016

MC-102 Aula 14. Instituto de Computação Unicamp. 29 de Setembro de 2016 MC-102 Aula 14 Funções II Instituto de Computação Unicamp 29 de Setembro de 2016 Roteiro 1 Escopo de Variáveis: variáveis locais e globais 2 Exemplo Utilizando Funções 3 Vetores, Matrizes e Funções Vetores

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: ponteiros e alocação dinâmica Prof. Renato Pimentel 1 Ponteiros 2 Prof. Renato Pimentel 1 Ponteiros: introdução Toda a informação

Leia mais

A sintaxe para se declarar uma variável do tipo ponteiro é dada por:

A sintaxe para se declarar uma variável do tipo ponteiro é dada por: Pense duas vezes e faça uma vez. Provérbio Chinês. PONTEIROS Um ponteiro nada mais é que uma variável capaz de armazenar um número hexadecimal que corresponde a um endereço de memória de outra variável.

Leia mais

Ponteiros em C. Adriano Joaquim de Oliveira Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ

Ponteiros em C. Adriano Joaquim de Oliveira Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ Ponteiros em C Adriano Joaquim de Oliveira Cruz 21 de julho de 2017 Instituto de Matemática Departamento de Ciência da Computação UFRJ 1 Resumo da Seção Introdução Declaração Incrementando e Decrementando

Leia mais

Ponteiro. Ponteiro. Objetivo. Compreender a definição e dominar a implementação de ponteiros em C.

Ponteiro. Ponteiro. Objetivo. Compreender a definição e dominar a implementação de ponteiros em C. Ponteiro Definição de variável apontadora Aritmética de ponteiros Ponteiros e vetores Funções e passagem por referência Structs e ponteiros Alocação dinâmica de memória Objetivo Ponteiro Ponteiro Compreender

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

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 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

Material sobre Funções AEDS 1

Material sobre Funções AEDS 1 Material sobre Funções AEDS 1 1 Funções - revisão 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 2 Funções -

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

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná Linguagem C IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Sabemos construir algoritmos que tenham: Variáveis Comandos sequenciais Entrada e saída

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

Alocação Dinâmica de Memória. Programação II

Alocação Dinâmica de Memória. Programação II Alocação Dinâmica de Memória Programação II Alocação dinâmica Uso da memória Uso de variáveis globais (e estáticas): Espaço reservado para uma variável global existe enquanto o programa estiver sendo executado.

Leia mais

Módulo 7 Cadeias de Caracteres

Módulo 7 Cadeias de Caracteres Estruturas de Dados Módulo 7 Cadeias de Caracteres 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

Leia mais

Objetivo. Compreender a definição e dominar a implementação de ponteiros em C. Dominar a manipulação de arquivos

Objetivo. Compreender a definição e dominar a implementação de ponteiros em C. Dominar a manipulação de arquivos Objetivo Compreender a definição e dominar a implementação de ponteiros em C. Dominar a manipulação de arquivos Motivação para a utilização de ponteiros O que precisamos para fazer para que uma função

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

TAD: Tipo Abstrato de Dados (parte 2)

TAD: Tipo Abstrato de Dados (parte 2) TAD: Tipo Abstrato de Dados (parte 2) SCC0502 Algoritmos e Estruturas de Dados I Programa em C pode ser dividido em vários arquivos Arquivos fonte com extensão.c Denominados de módulos Cada módulo deve

Leia mais

ponteiros INF Programação I Prof. Roberto Azevedo

ponteiros INF Programação I Prof. Roberto Azevedo ponteiros INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo razevedo@inf.puc-rio.br ponteiros tópicos o que são ponteiros operadores usados com ponteiros passagem de ponteiros para funções referência

Leia mais

Adriano Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ

Adriano Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ C Funções Adriano Cruz adriano@nce.ufrj.br 21 de julho de 2017 Instituto de Matemática Departamento de Ciência da Computação UFRJ 1 Resumo Seção Introdução Forma Geral Protótipos de Funções Escopo de Variáveis

Leia mais

Aula 27: Estruturas heterogêneas e alocação dinâmica

Aula 27: Estruturas heterogêneas e alocação dinâmica Aula 27: Estruturas heterogêneas e alocação dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória

Leia mais

Algoritmos e Estruturas de Dados I IEC012. Procedimentos e Funções. Prof. César Melo Todos os créditos para o professor Leandro Galvão

Algoritmos e Estruturas de Dados I IEC012. Procedimentos e Funções. Prof. César Melo Todos os créditos para o professor Leandro Galvão Algoritmos e Estruturas de Dados I IEC012 Procedimentos e Funções Prof. César Melo Todos os créditos para o professor Leandro Galvão Procedimentos e Funções Procedimentos são s estruturas que agrupam um

Leia mais

Computação 2. Aula 5. Profª. Fabiany defines vetor, strings e matriz por parâmetros de função

Computação 2. Aula 5. Profª. Fabiany defines vetor, strings e matriz por parâmetros de função Computação 2 Aula 5 defines vetor, strings e matriz por parâmetros de função Profª. Fabiany fabianyl@utfpr.com.br #define A diretiva #define define um identificador e uma string que o substituirá toda

Leia mais

Subprogramas. Prof. Carlos Lopes

Subprogramas. Prof. Carlos Lopes Subprogramas Prof. Carlos Lopes Motivação Escreva um programa C capaz de calcular a combinação de n valores tomados p a p. Para realizar este cálculo, você deverá utilizar a seguinte fórmula: C n n! p

Leia mais

Programação de Computadores I Funções na Linguagem C PROFESSORA CINTIA CAETANO

Programação de Computadores I Funções na Linguagem C PROFESSORA CINTIA CAETANO Programação de Computadores I Funções na Linguagem C PROFESSORA CINTIA CAETANO Introdução Funções são as estruturas que permitem ao usuário separar seus programas em blocos de construção. A principal característica

Leia mais

Tipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação

Tipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação Tipos de Dados, Variáveis e Entrada e Saída em C DCC 120 Laboratório de Programação Variáveis Uma variável representa um espaço na memória do computador para armazenar um determinado tipo de dado. Em C,

Leia mais

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C Sistemas Operacionais e Introdução à Programação Programação com linguagem C 1 Entrada e saída: escrevendo na tela Veja uma comparação entre um programa Portugol e seu equivalente em C: Inicio Inteiro

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