ALGORITMOS E ESTRUTURAS DE DADOS CES-11
|
|
|
- Luiz Gustavo Bentes Silva
- 9 Há anos
- Visualizações:
Transcrição
1 ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro [email protected] Sala 110 Prédio da Computação IECE - ITA
2 Revisão CES-11 Tipos escalares primitivos Tipos constituídos de uma linguagem Ponteiros Alocação estática versus dinâmica Encadeamento de estruturas Passagem de parâmetros Recursividade
3 Tipos escalares primitivos Tipo Inteiro: Domínio: números inteiros entre - e + Operações: + - * / % = < > Exemplos: 7 / 3 = 2 7 % 3 = 1 Tipo Real: Domínio: números reais entre - e + Operações: + - * / = < >
4 Tipos escalares primitivos Tipo Lógico: Domínio: Verdadeiro e Falso Operações: =,, and, or, not, nand, nor e xor Os resultados das comparações são valores lógicos Tipo Caractere: Domínio: Dígitos decimais: 0, 1,..., 9 Letras: A, B,..., Z, a, b,..., z Sinais especiais:.,,, ;, +, -, *, /, (, ), [, ],... Operações: = ( < > + - * / %)
5 CAPACIDADE DE REPRESENTAÇÃO LINGUAGEM C 5
6 Revisão CES-11 Tipos escalares primitivos Tipos constituídos de uma linguagem Ponteiros Alocação estática versus dinâmica Encadeamento de estruturas Passagem de parâmetros Recursividade
7 Tipos constituídos de uma linguagem Vetores: Tipo_primitivo V[30], W[50], X[200]; Matrizes: ou typedef int vetor[30]; vetor V1, V2, V3; Tipo_primitivo M1[10, 10, 10], M2[5, 4]; ou typedef int matriz[10, 10]; matriz M3, M4; Vetores e matrizes são chamados de variáveis indexadas
8 Tipos constituídos de uma linguagem Cadeias de caracteres: typedef char cadeia[15]; cadeia nome, rua, aux; Estruturas simples: struct Funcionario { char nome[30], endereco[30], setor[15]; char sexo, estcivil; int idade; }; Funcionario F1, F2, F3, empregados[200];... empregados[1] = F1; F2.sexo = M ; strcpy (empregados[3].nome, José da Silva );
9 Tipos constituídos de uma linguagem Outros: Estruturas de campos alternativos (UNION) Ex.: union int_or_float { int i; float f; } Tipos enumerativos (ENUM) Ex.: enum diasemana {dom, seg, ter, qua, qui, sex, sab};
10 Estruturas versus implementações Listas lineares Pilhas Filas Árvores Grafos Variáveis indexadas Ponteiros etc.
11 Revisão CES-11 Tipos escalares primitivos Tipos constituídos de uma linguagem Ponteiros Alocação estática versus dinâmica Encadeamento de estruturas Passagem de parâmetros Recursividade
12 PONTEIROS Ponteiros (ou apontadores) são variáveis que armazenam endereços de outras variáveis. No exemplo ao lado, p e q são ponteiros. Declarações: float a; int c; float *p; int *q; p = &a; q = &c;
13 PONTEIROS Principais utilidades de ponteiros: Passagem de parâmetros por referência, em sub-programação Alocação dinâmica de variáveis indexadas Encadeamento de estruturas
14 PONTEIROS: NOTAÇÃO Se p é um ponteiro, *p é o valor da variável apontada por p. Se a é uma variável, &a é o seu endereço. Exemplos: int a, b=2, *p; a? b 2 p? p = &a; a? b 2 p *p = 1; a 1 b 2 p b = *p; a 1 b 1 p
15 PONTEIROS: EXEMPLO Sejam as declarações abaixo: int a=2, b=5, *p=&a; *q=&b; A inicialização é de p e q, não de *p e *q: p 2 a q 5 b
16 PONTEIROS E VARIÁVEIS INDEXADAS Sejam as declarações abaixo: int a[7], *p, b[5]; a p b Situação inicial p = a; b; p tornou-se equivalente a a ab As atribuições a = p e b = p são proibidas!
17 OUTRAS SEMELHANÇAS Ponteiros podem ter índices, e variáveis indexadas admitem o operador unário *. Por exemplo, suponha as declarações abaixo: int i, a[50], *p; a[i] é equivalente a *(a+i) *(p+i) é equivalente a p[i] acontém o endereço de a[0]: p = a equivale a p = &a[0] p = a+1 equivale a p = &a[1]
18 QUAL É A DIFERENÇA, ENTÃO? Constante versus variável: a é o endereço inicial de um vetor estático: seu valor não pode ser alterado p é uma variável: seu conteúdo pode mudar Atribuições: p = &i é permitido a = &i não é permitido Endereços na memória: a[1] tem sempre o mesmo endereço p[1] pode variar de endereço
19 Revisão CES-11 Tipos escalares primitivos Tipos constituídos de uma linguagem Ponteiros Alocação estática versus dinâmica Encadeamento de estruturas Passagem de parâmetros Recursividade
20 ALOCAÇÃO ESTÁTICA VERSUS DINÂMICA Variáveis estáticas: têm endereço determinado em tempo de compilação São previstas antes da compilação do programa Ocupam uma área de dados do programa, determinada na compilação Existem durante toda a execução do programa Variáveis dinâmicas: têm endereço determinado em tempo de execução São alocadas de uma área extra da memória, chamada heap, através de funções específicas (malloc, new, etc.) Sua eventual existência depende do programa, e seu endereço precisa ser armazenado em outra variável Exige uma política de administração da memória
21 PILHA DE EXECUÇÃO
22 ALOCAÇÃO DINÂMICA DE MEMÓRIA Muitas vezes é interessante alocar memória apenas em tempo de execução, neste caso deve-se utilizar ponteiros Durante a execução do programa, o espaço de memória necessário para essa variável pode ser alocado através da função malloc.
23 EXEMPLO typedef int *vetor; void main () { int m, i; vetor A, B, C; printf("tamanho dos vetores: "); scanf("%d",&m); A = (int *) malloc (m*sizeof(int)); B = (int *) malloc (m*sizeof(int)); C = (int *) malloc (m*sizeof(int)); printf("vetor A: "); for (i = 0; i < m; i++) scanf("%d",&a[i]); printf("vetor B: "); for (i = 0; i < m; i++) scanf("%d",&b[i]); printf("vetor C: "); for (i = 0; i < m; i++) C[i] = (A[i] > B[i])? A[i]: B[i]; for (i = 0; i < m; i++) printf("%d",c[i]); }
24 ALOCAÇÃO DINÂMICA DE MATRIZES Uma matriz também pode ser alocada em tempo de execução, de modo análogo aos vetores. Exemplo: matriz m x n. Gasta-se mais espaço: um ponteiro para cada linha
25 EXEMPLO typedef int *vetor; typedef vetor *matriz; void main () { int m, n, i, j; matriz A; printf("dimensoes da matriz: "); scanf("%d%d",&m,&n); A = (vetor *) malloc (m * sizeof(vetor)); for (i = 0; i < m; i++) A[i] = (int *) malloc (n * sizeof(int)); printf("elementos da matriz:"); for (i = 0; i < m; i++) { printf("linha %d ", i); for (j = 0; j < n; j++) scanf("%d",&a[i][j]); } } Dimensões da matriz: m 5 n 4 A??????
26 Revisão CES-11 Tipos escalares primitivos Tipos constituídos de uma linguagem Ponteiros Alocação estática versus dinâmica Encadeamento de estruturas Passagem de parâmetros Recursividade
27 ENCADEAMENTO DE ESTRUTURAS Considere o código abaixo: struct st {int a; float b}; st *p; p = (st *) malloc (sizeof(st)); p a b?? (*p).a = 5; (*p).b = 17.3; p a 5 b 17.3 Código equivalente às atribuições acima: p->a = 5; p->b = 17.3;
28 OUTRO EXEMPLO struct noh {int a; noh *prox}; noh *p; p = (noh *) malloc (sizeof(noh)); p->a = 2; p->prox = (noh *) malloc (sizeof(noh)); p->prox->a = 3; p->prox->prox = (noh *) malloc (sizeof(noh)); p->prox->prox->a = 5; p->prox->prox->prox = NULL; p a prox a prox a prox 2? 3? 5?
29 CONTINUANDO p a prox a prox a prox 2? 3? 5? Escrita do campo a de todos os nós: noh *q; for (q=p; q!=null; q=q->prox) printf("%d",q->a); Acesso ao campo a do último nó: p->prox->prox->a ou (*(*(*p).prox).prox).a mais simples
30 ENCADEAMENTO DE ESTRUTURAS Baseia-se na utilização de variáveis ponteiros Proporciona muitas alternativas para estruturas de dados É usado em listas lineares, árvores e grafos
31 Revisão CES-11 Tipos escalares primitivos Tipos constituídos de uma linguagem Ponteiros Alocação estática versus dinâmica Encadeamento de estruturas Passagem de parâmetros Recursividade
32 Passagem de parâmetros Declaração de funções: Tipo Nome_de_função (Lista_de_parâmetros) { } Corpo_de_função Funções que não retornam valores são do tipo void A lista de parâmetros pode ser vazia ou não Parâmetros sempre são alocados dinamicamente, e recebem os valores que lhe são passados na chamada Duas formas de passagem: por valor ou por referência
33 Passagem de parâmetros Passagem por valor void ff (int a) { a += 1; printf ("Durante ff: a = %d \n", a); } a 56 void main ( ) { int a = 5; printf ("Antes de ff: a = %d \n", a); ff (a); printf ("Depois de ff: a = %d \n", a); } Antes de ff: a = 5 Durante ff: a = 6 Depois de ff: a = 5 a 5 outra variável!
34 Passagem de parâmetros Passagem por referência void trocar (int *p, int *q) { int aux; aux = *p; *p = *q; *q = aux; } aux 3 p q void main ( ) { int i = 3, j = 8; printf ("Antes: i = %d, j = %d \n", i, j); trocar (&i, &j); printf ("Depois: i = %d, j = %d", i, j); } Antes: i = 3, j = 8 Depois: i = 8, j = 3 j i Outra vantagem: economia de memória ao se trabalhar com grandes estruturas
35 Passagem de parâmetros Passagem por referência Variável indexada como parâmetro #include <stdio.h> void alterar (int B[]) { B[1] = 5; B[3] = 5; } void main ( ) { int i, j, A[10] = {0}; //imprimir vetor A alterar(a); //imprimir vetor A alterar(&a[4]); //imprimir vetor A }
36 Revisão CES-11 Tipos escalares primitivos Tipos constituídos de uma linguagem Ponteiros Alocação estática versus dinâmica Encadeamento de estruturas Passagem de parâmetros Recursividade
37 Recursividade Uma função é recursiva se fizer alguma chamada a si mesma. Ex1: soma dos n primeiros números naturais int soma (int n) { int i, resultado = 0; for (i=1; i<=n; i++) resultado = resultado + i; return resultado; } Mais elegante! int somarecursiva (int n) { if (n==1) return 1; return n + somarecursiva(n-1); } Cuidado com loop infinito
38 Recursividade Ex2: cálculo de potência Ex3: cálculo de fatorial de números positivos
39 Recursividade Ex4: máximo divisor comum 42 = 2 * 3 * 7 30 = 2 * 3 * 5 MDC(42,30) MDC(30,12) m = n * q + r 42 = 30 * = 12 * MDC(42,30) = 6 MDC(12,6) 12 = 6 * MDC(6,0) Retorna 6 Será que funciona se calcularmos MDC(30,42)?
40 Recursividade Ex4: máximo divisor comum 42 = 2 * 3 * 7 30 = 2 * 3 * 5 MDC(30,42) MDC(42,30) m = n * q + r 30 = 42 * = 30 * MDC(30,42) = 6 MDC(30,12) MDC(12,6) 30 = 12 * = 6 * MDC(6,0) Retorna 6
41 Recursividade Ex5: busca binária em vetor ordenado medio = (inf + sup) /2
42 Recursividade Ex5: busca binária em vetor ordenado Procura(28,vet,0,9) vet: medio inf medio inf sup medio sup Achou!
43 Recursividade Ex6: reconhecimento de cadeias de caracteres Uma cadeia contendo apenas uma letra ou dígito é válida. Se α é uma cadeia válida, então (α) também será. #include <stdio.h> #include <conio.h> #include <ctype.h> typedef char cadeia[30]; cadeia cad; int i; bool erro; void testarcadeia (void); Contém printf Contém getche() e gets() Contém operações para string Variáveis globais Protótipo de função
44 Recursividade Ex6: reconhecimento de cadeia de caracteres void main() { char c; printf ("Testar cadeia? (s/n): "); do c = getche ( ); while (c!='s' && c!='n'); while (c == 's') { clrscr (); printf ("Digite a cadeia: "); fflush (stdin); gets (cad); i = 0; erro=false; testarcadeia (); if (cad[i]!= '\0') erro = true; if (erro) printf ("cadeia reprovada!"); else printf ("cadeia valida!"); printf ("\n\ntestar nova cadeia? (s/n): "); do c = getche ( ); while (c!='s' && c!='n ); } }
45 Recursividade Ex6: reconhecimento de cadeia de caracteres void testarcadeia () { if (isalpha(cad[i]) isdigit(cad[i])) i++; else if (cad[i] == '(') { i++; testarcadeia (); if (erro==false && cad[i] == ')') i++; else erro = true; } else erro = true; }
46 Recursividade Ex6: reconhecimento de cadeia de caracteres O código funciona, mas não é elegante. Pontos fracos: Não verifica se a cadeia excede 30 caracteres cad, i e erro são variáveis globais O ideal seria: bool testarcadeia(cadeia,indice) Para que o código abaixo está na função main? if (cad[i]!= '\0') erro = true; Gera erro em casos com 2 letras/números seguidos. Ex: aa, (bb) Isso deveria ser escopo da função testarcadeia.
47 Recursividade Ex7: reconhecimento de expressões aritméticas Uma expressão com apenas uma letra ou dígito é válida. Se α e β são expressões válidas, então (α+β), (α-β), (α*β) e (α/β) também serão. Ex8: cadeias com n zeros iniciais (n 0) seguidos de 2n um s Uma cadeia vazia é válida. Se α é uma cadeia válida, então 0α11 também é.
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
Linguagem C: Ponteiros - Alocação Dinâmica
Prof. Paulo R. S. L. Coelho [email protected] Faculdade de Computação Universidade Federal de Uberlândia GEQ007 Organização 1 Ponteiros Alocação Dinâmica de Memória 2 3 4 Organização Ponteiros Alocação
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
CES-11. Algoritmos e Estruturas de Dados. Esclarecimento sobre notação. Revisão. Revisão
CES-11 Algoritmos e Estruturas de Dados Aula de revisão sobre rogramação Carlos Forster Carlos Alonso Juliana Bezerra Revisão CES-11 Tios escalares rimitivos Tios constituídos de uma linguagem Ponteiros
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
Variáveis, Tipos de Dados e Operadores
! Variáveis, Tipos de Dados e Operadores Engenharias Informática Aplicada 2.o sem/2013 Profa Suely (e-mail: [email protected]) VARIÁVEL VARIÁVEL É um local lógico, ligado a um endereço físico da 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
Linguagens de Programação Conceitos e Técnicas. Amarrações
Linguagens de Programação Conceitos e Técnicas Amarrações Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável e seu valor ou entre um identificador
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
ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro Sala 110 Prédio da Computação IECE - ITA
ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro [email protected] Sala 110 Prédio da Computação www.comp.ita.br/~pauloac IECE - ITA MÉTODOS MAIS EFICIENTES QUE O(N 2 ) Método Quicksort Método
Métodos Computacionais. Tipos Estruturados
Métodos Computacionais Tipos Estruturados Tipos Estruturados C oferece tipos primitivos que servem para representar valores simples Reais (float, double), inteiros (int), caracter (char) C oferece também
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
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
PONTEIROS E LISTAS. Kalinka Regina Lucas Jaquie Castelo Branco
PONTEIROS E LISTAS Kalinka Regina Lucas Jaquie Castelo Branco [email protected] ALOCAÇÃO DINÂMICA DE MEMÓRIA Pode-se assumir que as variáveis declaradas na cláusula variável do pseudo-código do algoritmo
Alocação de Memória. Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR)
Alocação de Memória Linguagem de Programação Estruturada 1 Alocação dinâmica e ponteiros Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR) Sumario Introdução Alocação Estática
ponteiros INF Programação I Prof. Roberto Azevedo
ponteiros INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo [email protected] ponteiros tópicos o que são ponteiros operadores usados com ponteiros passagem de ponteiros para funções referência
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
PLANO DE UNIDADE DIDÁTICA- PUD
Professor: Marcus Vinícius Midena Ramos Coordenação: Ricardo Argenton Ramos Data: 03/08/2010 Página: 1 de 5 EMENTA: Conceitos básicos de linguagens. Histórico, classificação e principais aplicações de
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
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
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
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
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:
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: [email protected] Sumário Ponteiros Ponteiros e Vetores Funções para alocação
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
Algoritmos e Estruturas de dados
Algoritmos e Estruturas de dados Listas Encadeadas Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas) 1 / 21 Definição: Anteriormente estudamos listas encadeadas que foram implementadas como vetores
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
INF 1620 P4 30/06/07 Questão 1 Nome:
INF 1620 P4 30/06/07 Questão 1 O maior divisor comum (MDC) de dois números inteiros é o maior número inteiro que faz uma divisão exata (com resto zero) desses dois números. Por exemplo, o MDC de 32 e 40
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
Programação Estruturada
Programação Estruturada Recursão Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Recursão Recursão 1 Recursão 2
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
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
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
Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória
Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Alocação Dinâmica de Memória Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática e Dinâmica Na alocação estática, o espaço
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
Capacitação em Linguagem C Parte 1
Capacitação em Linguagem C Parte 1 Andrey Souto Maior Giuseppe Portolese Universidade Estadual de Maringá - Centro de Tecnologia Departamento de Informática 21 de outubro de 2015 Sumário I Definição e
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
Carlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB [email protected] Aritmética de ponteiros em C (continuação) O que acontece na memória? Ponteiro para ponteiro etc. Métodos de pesquisa
Computação I - C Prova /10/ Profs. Adriano Cruz e Valeria Bastos
Computação I - C Prova 2 2016-2 14/10/2016 - Profs. Adriano Cruz e Valeria Bastos Nome: DRE: Observação: Justifique todas as respostas dadas. Some nte serão aceitas respostas com justificativas. Questão
INF 1620 P2-01/11/03 Questão 1 Nome:
INF 1620 P2-01/11/03 Questão 1 Considere a implementação de uma lista encadeada para armazenar as notas dos alunos de uma turma dada pelo tipo abaixo: struct lista { char nome[81]; int mat; float p1, p2,
Linguagens de Programação I
Linguagens de Programação I Tema # 4 Operadores em C Susana M Iglesias FUNÇÕES ENTRADA-SAÍDA I/O printf(), utilizada para enviar dados ao dispositivo de saída padrão (stdout), scanf(), utilizada para ler
#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C
#include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que
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];
BCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 02: Alocação Dinâmica de Memória Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes
Estruturas de Dados. Módulo 11 Pilhas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 11 Pilhas 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)
Estruturas de Dados Aula 16: Árvores com Número Variável 13/06/2011
Estruturas de Dados Aula 16: Árvores com Número Variável de Filhos 13/06/2011 1 Fontes Bibliográficas Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos
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
Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas
Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas SCC-502 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Lista com nó de cabeçalho Nó de cabeçalho Header, sentinela, etc.
Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas. SCC-502 Algoritmos e Estruturas de Dados I
Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas SCC-502 Algoritmos e Estruturas de Dados I Lista com nó de cabeçalho Nó de cabeçalho Header, sentinela, etc. Para que? Sentinela Beth
A regra de acesso aos dados de uma fila é a seguinte: O primeiro elemento que entra (na fila) é o primeiro que sai (FIFO first in, first out).
Fila Algumas aplicações impõem regras de acesso às informações armazenados em estruturas de dados, restringindo como os dados são inseridos e removidos da estrutura. A fila, também conhecida como QUEUE,
INF 1007 Programação II
INF 1007 Programação II Aula 08 Vetor de Ponteiros Edirlei Soares de Lima Vetor de Cadeia de Caracteres Um vetor de cadeia de caracteres pode ser alocado de duas formas: Alocação
