1. Revisão de Vetores, Ponteiros, Funções e Estruturas em C

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

Download "1. Revisão de Vetores, Ponteiros, Funções e Estruturas em C"

Transcrição

1 Introdução à Computação II Revisão de Vetores, Ponteiros, Funções e Estruturas em C Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1

2 Principais Tópicos 1.1. Revisão de Vetores em C Strings Matrizes 1.2. Revisão de Ponteiros em C 1.3. Revisão de Funções em C 1.4. Revisão de Estruturas em C 1.5. Alocação Dinâmica de Vetores 2

3 1.1. Vetores Tipos de dados atômicos em C char 8 bits (1 byte) int 16 ou 32 bits (2 ou 4 bytes) short int 16 bits (2 bytes) long int 32 bits (4 bytes) float 32 bits (4 bytes) double 64 bits (8 bytes) long double 80 bits (10 bytes) 3

4 1.1. Vetores Definição: coleção de valores de dados individuais com as seguintes características: Contém tipos de dados homogêneos Ex.: vetor de inteiros só pode ter elementos do tipo inteiro Contém dados que podem ser ordenados 4

5 1.1. Vetores Pode-se pensar em um vetor como uma seqüência de dados atômicos Os dados atômicos em um vetor são chamados de elementos Vetor possui duas propriedades fundamentais Tipo de elemento Tamanho do vetor 5

6 1.1. Vetores Declaração tipo nome[tamanho] Ex.: int vetor[10]; Tamanho do vetor pode ser especificado como uma constante Facilita mudança do tamanho Ex.: #define NElementos 10 int vetor[nelementos]; 6

7 1.1. Vetores Indexação Cada elemento de um vetor é identificado por um índice Em C, o primeiro elemento tem índice igual a 0 e o último tem índice igual ao número de elementos 1 Ex. vetor de 4 elementos possui os índices 0, 1, 2, 3 7

8 1.1. Vetores Para se referir a um elemento específico de um vetor, devem ser fornecidos: Nome do vetor Índice correspondente à posição do elemento dentro do vetor Ex.: A nota do segundo juiz é dada por notas[1] 8

9 1.1. Vetores Expressão com seleção Funciona como uma simples variável Ex.: nota[2] = 9.4; É importante distinguir entre índice de um elemento e valor de um elemento nota Índice = 2 Valor = 9.4 9

10 1.1. Vetores Expressão com seleção É possível mudar os valores em um vetor, mas nunca o seu tamanho Valor do índice não precisa ser uma constante Pode ser qualquer expressão cujo resultado é um tipo escalar (Ex.: int, short, long) for (i = 0; i < NJuizes; i++){ notas[i] = 0.0; } 10

11 1.1. Vetores Tamanho do vetor Deve ser constante Muitas vezes não se sabe quantos elementos o vetor vai conter Estratégias Declarar tamanho como o número máximo de elementos possível (tamanho alocado)» Declarar um inteiro para indicar número de elementos utilizados (tamanho efetivo) Alocação dinâmica 11

12 1.1. Vetores Inicialização de vetores Valores iniciais podem ser atribuídos a uma variável do tipo vetor quando da sua declaração Ex.: int digitos[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } Neste caso, o tamanho do vetor pode ser omitido Ex.: int digitos[ ] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } Obs.: A Linguagem C não checa se você passou dos limites de um vetor 12

13 1.1. Vetores Exemplo Vetores /* Programa: Vetores*/ # include <stdio.h> main(){ int val[100]; int i; } for (i = 0; i < 100; ++i){ val[i] = i; } 13

14 Strings Strings são representados internamente como vetores de caracteres Caracteres são armazenados em bytes consecutivos Final de string é representado por \0 Ex.: Compilador C reserva 6 bytes para o string Hello Declaração: char hello = { H, e, l, l, o, \0 }; ou char str[6] = Hello ; H e l l o \0 14

15 Strings Como strings são vetores, elementos individuais podem ser selecionados e manipulados int i, n_espacos; n_espacos = 0; for (i = 0; str[i]!= \0 ; i++){ if (str[i] == ) n_espacos++; } 15

16 Strings Bibliotecas de operações sobre strings Exporta operações que permitem a manipulação de strings Interface ANSI string.h para manipular strings Biblioteca padrão da linguagem C Fornece um conjunto de operações avançadas Permite trabalhar com o string inteiro utilizando uma simples chamada de função 16

17 Strings Funções mais comuns de string.h : Nome strcpy (s1, s2) strcat (s1, s2) strlen (s1) strcmp (s1, s2) strchr (s1, ch) strstr (s1, s2) Função Copia s2 em s1 Concatena s2 ao final de s1 Retorna o tamanho de s1 Retorna 0 se s1 ==s2; menor que 0 se s1<s2; maior que 0 se s1>s2 Retorna um ponteiro para a primeira ocorrência de ch em s1 Retorna um ponteiro para a primeira ocorrência de s2 em s1 17

18 Matrizes São vetores multi-dimensionais Quando os elementos de um vetores são vetores Ex.: double mat [3][3]; mat[0][0] mat[0][1] mat[0][2] mat[1][0] mat[1][1] mat[1][2] mat[2][0] mat[2][1] mat[2][2] 18

19 Matrizes mat [0] mat [1] mat [2] { { { mat [0] [0] mat [0] [1] mat [0] [2] mat [1] [0] mat [1] [1] mat [1] [2] mat [2] [0] mat [2] [1] mat [2] [2] Internamente, C representa mat como um vetor de três elementos Cada elemento é um vetor de três valores ponto-flutuantes Na memória, estes nove valores formam uma lista unidimensional 19

20 Matrizes Inicialização Como os vetores, podem ser inicializadas na declaração Para enfatizar a estrutura geral, valores de cada vetor interno são inicializados entre chaves double ident [3][3] = { {1.0, 0.0, 0.0 }, {0.0, 1.0, 0.0 }, {0.0, 0.0, 1.0 } }; 20

21 Matrizes Exemplo Matrizes /* Programa: Matrizes */ #include <stdio.h> main() { } int t, i, num[3][4]; for(t=0; t<3; ++t) { for(i=0; i<4; ++i) { num[t][i] = 0; } } 21

22 1.2. Ponteiros Apontadores Variável que contém um endereço de memória Este endereço é geralmente a posição de uma outra variável na memória Quando uma variável contém o endereço de uma outra, diz-se que a primeira variável aponta para a segunda 22

23 1.2. Ponteiros Endereço Valor de uma variável do tipo ponteiro Memória 23

24 1.2. Ponteiros Por que usar? Permitem que as funções possam modificar seus argumentos de chamada São usados para suportar rotinas de alocação de memória permitem que novos vetores sejam alocados durante a execução do programa Podem substituir as matrizes proporcionando aumento da eficiência 24

25 1.2. Ponteiros Por outro lado, ponteiros são perigosos Podem causar o travamento do sistema quando Não-inicializados São utilizados incorretamente (descuidados) Podem causar bugs nos programas quando São utilizados incorretamente 25

26 1.2. Ponteiros Variáveis ponteiros devem ser declaradas como tal tipo-base *nome-da-variavel O tipo base do ponteiro define que tipo de variáveis o ponteiro pode apontar Tecnicamente, qualquer tipo de ponteiro pode apontar para qualquer lugar na memória Aritmética de ponteiros é feita pelo tipo base, assim é importante declarar o ponteiro corretamente 26

27 1.2. Ponteiros Operadores de ponteiros Operador unário & fornece o endereço na memória de seu operando (variável ou constante) Ex.: m = &val; & pode ser lido como endereço de Operador unário * é o complemento de & Devolve o valor da variável armazenada no endereço que o segue Ex.: x = *val; * pode ser lido como no endereço 27

28 1.2. Ponteiros Exemplo Ponteiros /* Programa: ponteiro 1*/ #include <stdio.h> main( ){ int x, y; int *p1; x = 100; p1 = &x; / * pega o endereço de x! */ y = *p1; / * pega o valor de x! */ printf("%d", y); /* escreve o valor de x! */ } 28

29 1.2. Ponteiros Exemplo Ponteiros /* Programa: ponteiro 2*/ #include <stdio.h> void main(void){ int x; int *p1, *p2; p1 = &x; p2 = p1; } printf("%p", p2); /* escreve o valor hexadecimal do endereco de x! */ 29

30 1.2. Ponteiros Relacionamento entre ponteiros e vetores Em C, o nome de um vetor tem como valor o endereço do primeiro elemento deste vetor Ex.: int lista[5]; /* lista é idêntico a &lista[0] */ Nome de um vetor equivale a um ponteiro para o primeiro elemento do vetor Nome de um vetor pode ser atribuído a uma variável do tipo ponteiro Usado quando um vetor é passado de uma função para outra 30

31 1.2. Ponteiros Diferença entre ponteiros e vetores ocorre na alocação de memória durante a declaração Ex.: int vet[5]; Reserva 5 posições consecutivas, cada uma capaz de armazenar um valor do tipo inteiro Ex.: int *p; Reserva apenas uma palavra Suficiente para armazenar um endereço de memória 31

32 1.2. Ponteiros Como usar um ponteiro como um vetor: Atribuir ao ponteiro o endereço base do vetor Ex. p = vet; /*p e vetor se tornam sinônimos */ Ponteiro pode ser inicializado para uma nova memória que ainda não foi utilizada Permite a criação de novos vetores durante execução do programa (alocação dinâmica) 32

33 1.2. Ponteiros Funcionamento do tipo vetor Ex.: double lista [3]; Reserva espaço para três variáveis do tipo double (tipo double ocupa 8 bytes) Cada elemento de um vetor é um valor O vetor lista tem um endereço Endereço pode ser definido com o operador & lista [0] lista [1] lista [2] 33

34 1.2. Ponteiros Sejam as declarações: double lista [3]; double *p; lista [0] lista [1] 1016 lista [2] 1024 p 34

35 1.2. Ponteiros Um ponteiro pode indicar para outro ponteiro O primeiro ponteiro contém o endereço do segundo ponteiro, que aponta para uma variável com o valor desejado Declaração tipo **nome; Pode ser usado em matrizes 35

36 1.3. Funções Função ou Procedimento ou Sub-Rotina Agrupa um conjunto de comandos e associa a ele um nome O uso deste nome é uma chamada da função Após sua execução, programa volta ao ponto do programa situado imediatamente após a chamada A volta ao programa que chamou a função é chamada de retorno 36

37 1.3. Funções A chamada de uma função pode passar informações (argumentos) para o processamento da função Argumentos = lista de expressões Lista pode ser vazia Lista aparece entre parênteses após o nome da função Ex. int Soma(int x, int y) { 37

38 1.3. Funções Comando return Encerra a execução da função (procedimento) Função: valor da expressão retorna como o valor da função Procedimentos e Funções Em procedimentos return; Em funções return (expressão); Expressão não precisa estar entre parênteses 38

39 1.3. Funções Definições e protótipos de funções Funções são definidas de acordo com a seguinte sintaxe: tipo nome (lista de parâmetros) { corpo de função } 39

40 1.3. Funções Definições e protótipos de funções Tipo de resultado Quando a função é um procedimento (ou seja, não retorna nenhum valor), usa-se a palavra chave void Procedimento não retorna valor Lista de parâmetros Funcionam como variáveis locais com valores iniciais Quando função não recebe parâmetros, a lista de parâmetros é substituída pela palavra void 40

41 1.3. Funções Funcionamento de uma chamada: Cada expressão na lista de argumentos é avaliada O valor da expressão é convertido, se necessário, para o tipo de parâmetro formal Este tipo é atribuído ao parâmetro formal correspondente no início do corpo da função O corpo da função é executado 41

42 1.3. Funções Funcionamento de uma chamada: Se um comando return é executado, o controle é passado de volta para o trecho que chamou a função Se um comando return inclui uma expressão, o valor da expressão é convertido, se necessário, pelo tipo do valor que a função retorna O valor então é retornado para o trecho que chamou a função Se um comando return não inclui uma expressão nenhum valor é retornado ao trecho que chamou a função 42

43 1.3. Funções Funcionamento de uma chamada: Se não existir um comando return, o controle é passado de volta para o trecho que chamou a função após o corpo da função ser executado 43

44 1.3. Funções Passagem de informações Ocorre através da declaração de argumentos dentro da declaração Declaração de argumentos informa o número e tipo dos argumentos Conjunto de argumentos forma uma lista de declarações de variáveis separadas por vírgulas Ex.: double bolsa, double notas, int idade 44

45 Passagem de informações por valor 1.3. Funções Significa que uma nova variável será criada dentro da função e receberá o valor da variável passada como parâmetro As novas variáveis só existem dentro da função Caso não seja especificado, não poderá mais ser utilizada depois que a função foi finalizada Alterações nos valores das novas variáveis não alteram os valores da variável passada como parâmetro O mesmo vale quando usamos o return, só que agora no sentido inverso 45

46 1.3. Funções float media (float prova_1, float prova_2, float trabalho) { float final; } if (trabalho > 5){ final = 0.2*trabalho + 0.8*(prova_1+prova_2)/2 ; } else{ final = 0.1*trabalho + 0.9*(prova_1+prova_2)/2 ; } return final; void main(void) { for (i=0;i<nro_alunos;i++) { media_aluno[i]=media(p1[i],p2[i],t [i]); } } 46

47 1.3. Funções Passagem de informações por referência Permite que uma variável passada como referência possa ser manipulada dentro da função Utilização de ponteiros Em C, vetores inteiros podem ser passados como parâmetro Tamanho do vetor não precisa ser informado na declaração da função Geralmente, passa-se junto uma variável com o tamanho do vetor 47

48 1.3. Funções void norm(float *x, float *y) { } float N; N = 10.0; *x = *x / N; *y = *y / N void main(void) { float a, b, m; norm( &a, &b ); printf( Valores = %f, %f, a, b); } 48

49 1.3. Funções Se uma função recebe um vetor de uma dimensão, o parâmetro formal pode ser declarado como ponteiro ou vetor Exemplos (todos têm o mesmo efeito): func (int *x){... } func (int x[10]){... } func (int x[]){... } 49

50 1.3. Funções Protótipos Antes de usar uma função em C, é aconselhável declará-la especificando seu protótipo Tem a mesma forma que a função, só que substitui o corpo por um (;) Nomes das variáveis de um parâmetro são opcionais Fornecê-los ajuda a leitura do programa 50

51 1.3. Funções Mecanismo do processo de chamada de função 1. Valor dos argumentos é calculado pelo programa que está chamando a função 2. Sistema cria nova espaço para todas as variáveis locais da função (estrutura de pilha) 3. Valor de cada argumento é copiado na variável parâmetro correspondente na ordem em que aparecem 3.1 Realiza conversões de tipo necessárias 51

52 1.3. Funções Mecanismo do processo de chamada de função 4. Comandos do corpo da função são executados até: 4.1 Encontrar comando return 4.2 Não existirem mais comandos para serem executados 5. O valor da expressão return, se ele existe, é avaliado e retornado como valor da função 6. Pilha criada é liberada 7. Programa que chamou continua sua execução 52

53 1.3. Funções Projeto top-down Procedimentos e funções permitem dividir um programa em pedaços menores Facilita sua leitura É chamado de processo de decomposição Estratégia de programação fundamental Encontrar a decomposição certa não é fácil Requer experiência 53

54 1.3. Funções Projeto top-down Melhor estratégia para escrever programas é começar com o programa principal Pensar no programa como um todo Identificar as principais partes da tarefa completa Maiores pedaços são candidatos a funções Mesmos estas funções podem ser decompostas em funções menores Continuar até cada pedaço ser simples o suficiente para ser resolvido por si só 54

55 1.4. Estruturas Estrutura Coleção de variáveis referenciada sobre um mesmo nome Meio conveniente de manter informações relacionadas juntas Conhecida também como Registro (Pascal) ou Variável Composta Heterogênea Permite criar novos tipos de dados 55

56 1.4. Estruturas Declaração Forma uma fonte que pode ser usada para criar variáveis de estruturas struct nome_da_estrutura { tipo nome_da elemento_1; tipo nome_da elemento_2; }; 56

57 1.4. Estruturas O compilador define um novo tipo de dado a partir da definição da estrutura As variáveis da estrutura são conhecidas como elementos da estrutura ou membros da estrutura Os elementos da estrutura são logicamente relacionados entre si 57

58 1.4. Estruturas Para utilização da estrutura definida, variáveis do tipo de dado definido devem ser criadas struct nome_da_estrutura nome_da_variavel_estrutura; Isto declarará a variável estrutura nome_da_variável_estrutura do tipo nome_da_estrutura 58

59 1.4. Estruturas O compilador irá alocar automaticamente memória suficiente para acomodar todas as variáveis que compreendem a estrutura Exemplo Estruturas struct endereco { char nome[40]; char rua[50]; char cidade[20]; char estado[3]; unsigned long int cep; }; main( ){ struct endereco cliente; nome 40 bytes rua 50 bytes cidade 20 bytes estado 3 bytes cep 4 bytes cliente 117 bytes 59

60 1.4. Estruturas As variáveis podem ser declaradas logo depois da estrutura struct nome_da_estrutura { tipo nome_do_elemento_1; tipo nome_do_elemento_2; } nome_das_variaveis_estrutura; 60

61 1.4. Estruturas Referência As variáveis de uma estrutura são selecionadas através do operador ponto nome_da_estrutura.nome_do_elemento; 61

62 1.4. Estruturas Exemplo Estruturas struct endereco { char nome[40]; char rua[50]; char cidade[20]; char estado[3]; unsigned long int cep; }; main( ){ struct endereco cliente; strcpy(cliente.cidade, "Sao Paulo"); cliente.cep = ; 62

63 1.4. Estruturas Exemplo Estruturas struct endereco { char nome[40]; char rua[50]; char cidade[20]; char estado[3]; unsigned long int cep; }; main( ){ struct endereco cliente; gets(cliente.cidade); printf( Cidade: %s \n,cliente.cidade); 63

64 1.4. Estruturas Vetores e matrizes podem ser declarados como sendo do tipo de uma estrutura nome_da_estrutura nome_da_variavel_estrutura[tamanho]; Exemplo : struct endereco { ; }; main( ){ struct endereco cliente[25]; gets(cliente[i].nome); 64

65 1.4. Estruturas Ponteiros para estruturas Da mesma maneira que para qualquer outro tipo de variável, C permite ponteiros para estruturas Declaração: struct nome_da_estrutura *nome_da_variavel_estrutura; Quando ponteiro é utilizado para referenciar uma variável do tipo estrutura, o operador seta (->) deve ser utilizado para referenciar um de seus membros 65

66 1.4. Estruturas Ponteiros para estruturas Exemplo: struct saldo { float valor; char nome[100]; }; main( ){ struct saldo *p, cliente; p = &cliente; p->valor = ; 66

67 1.4. Estruturas Typedef Permite definir novos nomes de tipos de dados Forma geral typedef tipo nome; Exemplos: typedef float flutuante; main ( ) { flutuante a; } typedef struct cliente_tipo { } cliente; main ( ) { cliente clist[n]; } 67

68 Exercícios Exercício 1.1. Escreva um programa em C em que 1. o usuário possa entrar com o tamanho de um vetor e com seus elementos 2. tenha uma função que imprima os valores e os índices do maior elemento do vetor 3. tenha uma função que imprima os valores e os índices do menor elemento do vetor 68

69 Exercícios Exercício 1.2. Escreva um programa em C em que o usuário possa entrar com os elementos de um vetor e que ordene de forma crescente os seus elementos. Imprima o novo vetor. 69

70 Exercício 1.3. Escrever um programa C que 1. Possua uma estrutura chamada aluno com os seguintes elementos i. Nome (string) ii. Numero USP (long int) iii. Média Final (float) Exercícios 2. Tenha um menu que permita realizar as seguintes operações i. Entrar com dados dos aluno ii. Mostrar dados do aluno iii. Mostrar os dados de todos alunos ordenados de acordo com o valor das médias finais iv. Sair Observações: Procurar dados do aluno através de seu número USP Entrar com os dados de 5 alunos para teste 70

71 1.5. Alocação Dinâmica Permite a criação dinâmica de variáveis e vetores durante a execução do programa Se alocação dinâmica não é utilizada, o programador deve saber de antemão a quantidade de espaço necessária para cada variável ou vetor Em C, Variáveis globais são armazenadas em área de armazenamento de tamanho fixo Variáveis locais são armazenadas em uma pilha 71

72 Utilização da memória em C 1.5. Alocação Dinâmica Alta Pilha Espaço para Alocação Dinâmica Variáveis Globais Baixa Programa 72

73 1.5. Alocação Dinâmica Em C, podem ser usadas malloc( ) Aloca memória void *malloc(unsigned numero_bytes) free( ) Como o ponteiro é do tipo void, pode ser atribuído qualquer tipo de dado Desaloca memória 73

74 #include <stdlib> // Alocacao dinamica de vetor de inteiros int *aloc_vetor(int linhas){ int *vetor; 1.2. Ponteiros vetor = (int *)malloc(linhas*sizeof(int)); if (!vetor) { printf("erro de alocacao de vetor de inteiros!\n"); exit(1); } return vetor; } void main(void){ int tam, *v; v = aloc_vetor(tam); free(v); // desalocacao 74

75 #include <stdlib> // Alocacao dinamica de matriz de floats float **aloc_matriz(int linhas, int colunas){ int i; float **Matriz; Matriz = (float **)malloc(linhas*sizeof(float)); for (i=0;i<linhas;i++) { Matriz[i] = (float *)malloc(colunas*sizeof(float)); } if (!Matriz) { printf("erro de alocacao da matriz ( %d x %d )!", linhas, colunas); exit(1); } return Matriz; } // continuacao no proximo slide 75

76 // continuacao // Desalocacao dinamica de matriz de floats void desaloc_matriz(float **Matriz, int linhas) { int i; } for(i=0;i<linhas;i++) { free(matriz[i]); } void main(void){ int lin, col; float **M; M = aloc_matriz(lin, col); desaloc_matrizf(m, lin); 76

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.5. Vetores 3.5.1. Vetores 3.5.2. Strings 3.5.3.

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

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

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

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.8. Estruturas 3.8.1. Introdução 3.8.2. Uso

Leia mais

Introdução à Computação

Introdução à Computação Introdução à Computação Linguagem C Aula de hoje Introdução Vetores (revisão) Relacionamento entre vetores e ponteiros Professor: André de Carvalho Definição: coleção de valores de dados individuais com

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

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

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

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Material preparado pela profa Silvana Maria Affonso de Lara

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Material preparado pela profa Silvana Maria Affonso de Lara Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação FUNÇÕES EM C 1 Material preparado pela profa Silvana Maria Affonso de Lara 2º semestre de 2010 ROTEIRO DA AULA Definição

Leia mais

Introdução à Computação

Introdução à Computação Introdução à Computação Linguagem C Professor: André de Carvalho Aula de hoje Introdução Tipos compostos Tipo enumeração Conclusão Tipos compostos A Linguagem C permite criar tipos de dados definíveis

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.2. Estrutura de Programas e Representação

Leia mais

Introdução à Linguagem C

Introdução à Linguagem C Introdução à Linguagem C Eduardo Simões de Albuquerque Instituto de Informática UFG 13/03/2006 1 História Inventada e desenvolvida por Dennis Ritchie em um DEC- PDP 11 Originária de: BCPL desenvolvida

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

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

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

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

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

Programação I Matrizes e Strings. Prof. Carlos Alberto

Programação I Matrizes e Strings. Prof. Carlos Alberto Programação I Matrizes e Strings Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Matrizes Matriz é uma coleção de variáveis do mesmo tipo que é referenciada por um nome comum;

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

Introdução à Ciência da Computação. Sumário. Estruturas de Dados. Agradecimentos. Arranjos: Vetores, Strings & Matrizes em C

Introdução à Ciência da Computação. Sumário. Estruturas de Dados. Agradecimentos. Arranjos: Vetores, Strings & Matrizes em C Agradecimentos Introdução à Ciência da Computação Arranjos: Vetores, Strings & Matrizes em C Parte dos slides a seguir são adaptações dos originais gentilmente cedidos por: Prof. Rudinei Goularte Prof.

Leia mais

Ponteiros. Introdução e Alocação Dinâmica

Ponteiros. Introdução e Alocação Dinâmica Ponteiros Introdução e Alocação Dinâmica Conceito Um PONTEIRO ou APONTADOR é uma variável usada para armazenar um endereço de memória. Normalmente, o endereço armazenado em um PONTEIRO é a posição de uma

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

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

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

Aula 24 Ponteiros, vetores e structs

Aula 24 Ponteiros, vetores e structs Programação Aula 24 Ponteiros, vetores e structs Prof. Laura Silva de Assis Engenharia de Computação 2 o Período CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca UnED Petrópolis

Leia mais

Ponteiros. Introdução

Ponteiros. Introdução Ponteiros Introdução Conceito Um PONTEIRO ou APONTADOR é uma variável usada para armazenar um endereço de memória. Normalmente, o endereço armazenado em um PONTEIRO é a posição de uma outra variável na

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

Introdução à Linguagem C

Introdução à Linguagem C Engenharia de CONTROLE e AUTOMAÇÃO Introdução à Linguagem C Aula 03 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria beltrame@mail.ufsm.br

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

Estruturas Dinâmicas - Ponteiros

Estruturas Dinâmicas - Ponteiros SSC0800 - ICC1 Teórica Introdução à Ciência da Computação I Estruturas Dinâmicas - Ponteiros Prof. Claudio Fabiano Motta Toledo: claudio@icmc.usp.br Sumário Ponteiros Ponteiros e Vetores Funções para alocaçã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

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

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

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

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

DAS5102 Fundamentos da Estrutura da Informação

DAS5102 Fundamentos da Estrutura da Informação Ponteiros e Funções Funções ou sub-rotinas são parcelas de código que podem ser invocadas a partir do programa principal ou até mesmo por outras sub-rotinas. Elas têm como objetivo a execução de uma tarefa

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

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

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

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

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

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

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

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

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

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

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

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

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

Princípios de Desenvolvimento de Algoritmos MAC122

Princípios de Desenvolvimento de Algoritmos MAC122 Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Alocação Dinâmica de Memória Motivação: Nossos programas pré-fixavam o número de variáveis a serem utilizadas. No caso

Leia mais

Linguagem C: Ponteiros. Prof. Tiago Alves de Oliveira

Linguagem C: Ponteiros. Prof. Tiago Alves de Oliveira Linguagem C: Ponteiros 1 Sumário Ponteiros; Variáveis ponteiros; Operadores de ponteiros; Expressões com ponteiros; Atribuição de ponteiros; Aritmética de ponteiros; Comparação de ponteiros; Ponteiros

Leia mais

Estrutura de Dados. Cadeia de Caracteres. Roberto Araujo Ago/2013

Estrutura de Dados. Cadeia de Caracteres. Roberto Araujo Ago/2013 Estrutura de Dados Cadeia de Caracteres Roberto Araujo Ago/2013 Estrutura de Dados O que é uma estrutura de dados? É um arranjo pré-definido de um ou mais pedaços de dados Ex: Ex: Os carateres 'u', 'v',

Leia mais

Programação I Ponteiros e alocação dinâmica de memória. Prof. Carlos Alberto

Programação I Ponteiros e alocação dinâmica de memória. Prof. Carlos Alberto Programação I Ponteiros e alocação dinâmica de memória Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Ponteiros O ponteiro é um tipo de dado como int, char ou float; Variáveis

Leia mais

Ponteiros. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista

Ponteiros. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista Ponteiros SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências

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

Aula 06 Introdução à Programação Matrizes

Aula 06 Introdução à Programação Matrizes Aula 06 Introdução à Programação Matrizes Prof. Gustavo Callou gustavo.callou@ufrpe.br gcallou@gmail.com Roteiro Matrizes Unidimensionais (Vetor) Bidimensionais String Exercícios Gustavo Callou DEINFO/UFRPE

Leia mais

Linguagem C: Ponteiros. Prof. Leonardo Barreto Campos 1

Linguagem C: Ponteiros. Prof. Leonardo Barreto Campos 1 Linguagem C: Ponteiros Prof. Leonardo Barreto Campos 1 Sumário Ponteiros; Variáveis ponteiros; Operadores de ponteiros; Expressões com ponteiros; Atribuição de ponteiros; Aritmética de ponteiros; Comparação

Leia mais

Caracteres e Cadeias de Caracteres

Caracteres e Cadeias de Caracteres Caracteres e Cadeias de Caracteres INF1005 Programação I Prof. Hélio Lopes lopes@inf.puc-rio.br sala 408 RDC 1 caracteres e cadeias de caracteres tópicos caracteres cadeias de caracteres (strings) vetor

Leia mais

Tipos Abstratos de Dados. Estrutura de Dados

Tipos Abstratos de Dados. Estrutura de Dados Tipos Abstratos de Dados Tipo Abstrato de Dados ou TAD Idéia principal: desvincular o tipo de dado (valores e operações) de sua implementação: O que o tipo faz e não como ele faz! Vantagens da desvinculação:

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

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

Introdução à Ciência da Computação scc-120

Introdução à Ciência da Computação scc-120 ICMC USP 1.semestre/2011 Introdução à Ciência da Computação scc-120 Aula : Variáveis em C Profa. Roseli Romero mailto: rafrance@icmc.sc.usp.br Slides cedidos pela profa. Renata Fortes Variáveis variáveis

Leia mais

Reinaldo Gomes Alocação Dinâmica

Reinaldo Gomes Alocação Dinâmica Algoritmos e Lógica de Programação Linguagem C Alocação Dinâmica i de Memória Reinaldo Gomes reinaldo@cefet-al.br Alocação Dinâmica Quando declaramos uma variável ou um arranjo, o compilador automaticamente

Leia mais

Estruturas de Dados Aulas 3 e 4: Uso da. 14/03/2011 e 16/03/2011

Estruturas de Dados Aulas 3 e 4: Uso da. 14/03/2011 e 16/03/2011 Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores 14/03/2011 e 16/03/2011 Uso da memória Existem 3 maneiras de reservar o espaço da memória: Variáveis globais (estáticas) Espaço existe enquanto

Leia mais

Programação Estruturada

Programação Estruturada Programação Estruturada Introdução à linguagem C Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Programação estruturada

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

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

Algoritmos e Estruturas de Dados. Prof. Marcelo Zorzan Profa. Melissa Zanatta

Algoritmos e Estruturas de Dados. Prof. Marcelo Zorzan Profa. Melissa Zanatta Algoritmos e Estruturas de Dados Prof. Marcelo Zorzan Profa. Melissa Zanatta Assuntos da Aula Alocação de Memória Alocação estática de memória Alocação dinâmica de memória Malloc, Calloc, Free, Realloc

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

INF 1620 P1-16/09/06 Questão 1 Nome:

INF 1620 P1-16/09/06 Questão 1 Nome: INF 1620 P1-16/09/06 Questão 1 Considerando a fórmula para o cálculo da distância entre dois pontos (x 1, y 1 ) e (x 2, y 2 ) apresentada a seguir: d = (x 2 " x 1 ) 2 + (y 2 " y 1 ) 2 (a) Escreva uma funçã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 3.3. Conceitos Básicos de C: Expressões, Operadores e Bibliotecas

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

Aula 8 - Matrizes e Strings

Aula 8 - Matrizes e Strings Programação I Aula 8 - e Prof. Laura Silva de Assis Engenharia da Computação 2 o Período CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca UnED Petrópolis 2n o semestre - 2015 1

Leia mais

Introdução à Computação MAC0110

Introdução à Computação MAC0110 Introdução à Computação MAC0110 Prof. Dr. Paulo Miranda IME-USP Aula 2 Variáveis e Atribuições Memória Principal: Introdução Vimos que a CPU usa a memória principal para guardar as informações que estão

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

Matrizes em C. Lucas Ferrari de Oliveira Professor Adjunto. Universidade Federal do Paraná

Matrizes em C. Lucas Ferrari de Oliveira Professor Adjunto. Universidade Federal do Paraná em C Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná Uma matriz é uma coleção de variáveis do mesmo tipo que é referenciada por um nome comum; Em C todas as matrizes consistem

Leia mais

Essencialmente, um ponteiro nada mais é do que uma variável que ao invés de conter um valor, contém um endereço de memória.

Essencialmente, um ponteiro nada mais é do que uma variável que ao invés de conter um valor, contém um endereço de memória. Ponteiros e Arrays Ponteiros são fundamentais para a programação bem sucedida em C: Passagem de parâmetros por referência; Alocação dinâmica de memória; Aumentar a eficiência de certar rotinas. Essencialmente,

Leia mais

Linguagem C Princípios Básicos (parte 1)

Linguagem C Princípios Básicos (parte 1) Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos

Leia mais

SSC304 Introdução à Programação Para Engenharias. Ponteiros. GE4 Bio

SSC304 Introdução à Programação Para Engenharias. Ponteiros. 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 s GE4 Bio GE4Bio Grupo de Estudos em Sinais Biológicos Prof.Dr.

Leia mais

C++ - Matrizes. Observ.: C++ não avisa quando o limite de uma matriz foi excedido. Providenciar a verificação é responsabilidade do programador.

C++ - Matrizes. Observ.: C++ não avisa quando o limite de uma matriz foi excedido. Providenciar a verificação é responsabilidade do programador. C++ - Matrizes É um conjunto de variáveis, do mesmo tipo, referenciadas por um único nome, onde cada variável é diferenciada por meio de um número entre colchetes chamado índice. Declaração : tipo nome

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

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

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

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

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

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Estruturas em C

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Estruturas em C Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Estruturas em C 1 Material preparado pela profa Silvana Maria Affonso de Lara 2º semestre de 2010 ROTEIRO DA AULA

Leia mais

CURSO BÁSICO DE PROGRAMAÇÃO AULA 15. Revisão Vetores e Matrizes Trabalho

CURSO BÁSICO DE PROGRAMAÇÃO AULA 15. Revisão Vetores e Matrizes Trabalho CURSO BÁSICO DE PROGRAMAÇÃO AULA 15 Revisão Vetores e Matrizes Trabalho Definição: Introdução a Linguagem C Vetores Estrutura que permite armazenar um conjunto de dados do mesmo tipo na mesma variável;

Leia mais

Linguagem C Ponteiros

Linguagem C Ponteiros Linguagem C Ponteiros Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro Prof. Edwar Saliba Júnior Janeiro de 2018 Unidade 14 Linguagem C - Ponteiros 1/24 Identificadores e Endereços

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

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

INF 1620 P4-01/07/08 Questão 1 Nome:

INF 1620 P4-01/07/08 Questão 1 Nome: INF 1620 P4-01/07/08 Questão 1 Escreva uma função em C que receba duas strings, cujos caracteres estão ordenados em ordem crescente, e retorne uma nova string alocada dinamicamente, que contém todos os

Leia mais

Introdução à Ciência da Computação I. Alocação Dinâmica. Prof. Claudio Fabiano Motta Toledo

Introdução à Ciência da Computação I. Alocação Dinâmica. Prof. Claudio Fabiano Motta Toledo Introdução à Ciência da Computação I Alocação Dinâmica Prof. Claudio Fabiano Motta Toledo Sumário Funções para alocação de memória Ponteiros para ponteiros 8/12/16 2 Funções para alocação de memória malloc(),

Leia mais

Estrutura de dados 1. Ponteiros

Estrutura de dados 1. Ponteiros Estrutura de dados 1 Ponteiros Ponteiros Um ponteiro é um endereço de memória O valor de um ponteiro indica onde uma variável está armazenada Um ponteiro proporciona um modo de acesso a uma variável sem

Leia mais

Ponteiros e Alocação Dinâmica. Prof. Péricles Miranda

Ponteiros e Alocação Dinâmica. Prof. Péricles Miranda Ponteiros e Alocação Dinâmica Prof. Péricles Miranda pbcm@cin.ufpe.br Memória A memória é formada por várias células. Cada célula contém um endereço e um valor. Memória Endereço Ao declararmos uma variável

Leia mais