Atividade de laboratório listas encadeadas simples
|
|
- Agustina Leal Farinha
- 5 Há anos
- Visualizações:
Transcrição
1 Atividade de laboratório listas encadeadas simples 1. Estrutura básica Uma lista encadeada simples é uma estrutura de dados composta de uma seqüência de estruturas elementares chamadas nós. Cada nó contém a) uma informação útil (um dado) e b) a localização na memória do próximo nó na seqüência. Naturalmente, a informação da localização do próximo nó deve ser guardada em um ponteiro. Assim, cada nó deve ser uma struct que contenha estes dois campos a) e b). Vamos dar exemplos de tais structs, variando o tipo de informação contida nos nós: 1. A informação é um número inteiro. Neste caso, podemos escrever a struct como struct no { ; int info; struct no *prox; A informação é guardada no campo info, que é um int, e a localização do próximo nó é guardada no campo prox, que é um ponteiro. Este ponteiro deve ser do tipo struct no, já que vai apontar para o próximo nó. 2. A informação é uma string: struct no { ; char info[80]; struct no *prox; Neste caso, o campo info é uma string de 80 caracteres. 3. A informação consiste de vários dados, por exemplo nome e número de alunos: struct no { ; char nome[80]; int ra; struct no *prox; Neste caso, a informação guardada em cada nó consiste do conjunto da string nome e do inteiro ra. Além da definição da struct no, definiremos também um tipo para o ponteiro que aponta para um nó como pno typedef struct no * pno; Vamos representar por meio de um diagrama o primeiro caso. No diagrama abaixo está representada uma estrutura elementar e uma lista encadeada cujos dois primeiros elementos são 7 e 5 e o último é 9. O acesso ao primeiro elemento da lista é feito através do ponteiro inicial. O último elemento é marcado por seu ponteiro prox ter o valor inválido NULL, ao invés de apontar para um próximo elemento:
2 2. Adição de elementos à lista Uma lista tem duas operações fundamentais: adição de um elemento no começo da lista e remoção do primeiro elemento da lista. O diagrama abaixo mostra os passos para a inserção de um elemento da lista:
3 3. Exercícios adição de nós a uma lista. 1. Digite o programa a seguir que cria uma lista com um único elemento e a imprime: #include <stdio.h> #include <stdlib.h> struct no { int info; struct no *prox; ; typedef struct no * pno; int main() { /* Chamamos o ponteiro inicial de lista */ /* inicializamos com NULL, o que significa que a lista é vazia */ pno lista = NULL; pno n; /* usado para alocar um novo nó */ pno p; /* usado para imprimir a lista */ /* Um novo nó é criado e sua info é definida */ n = malloc(sizeof(struct no)); n->info = 10; /* O nó é adicionado à lista */ n->prox = lista; lista = n; /* A lista é imprimida */ printf("imprimindo lista:\n"); p = lista; /* começamos com o elemento inicial */ while(p!= NULL) { printf("%d ", p->info); /* imprimimos a info de cada elemento */ p = p->prox; /* avançamos para o próximo elemento da lista */ printf("\n"); system("pause"); return 0;
4 2. Repita na main() apenas a parte de criação de um novo nó e de adição à lista para que sejam inseridos os valores 20 e No programa resultante da questão 2, isole a criação de um novo nó dentro de uma função chamada get_node(). A função deve ser chamada assim: n = get_node(10). Esta chamada cria um novo nó cujo info é 10 e retorna um ponteiro para a localização deste nó. Isole também a adição de um novo nó dentro de uma função chamada push(). Esta função deve ser chamada assim: push(&lista, 10); para inserir o número 10 no início da lista (note que o argumento lista é passado por referência). Dica: os protótipos das funções devem ser: pno get_node(int); void push(pno *, int); A função push () deve chamar a função get_node() e a função main() deverá apenas chamar a função push(). 4. Isole a impressão da lista em uma função chamada print_list() que deve ser chamada assim: 5. Exercício resolvido: modifique a estrutura de dados para que a informação de cada nó seja um float. Escreva um programa que lê números digitados pelo usuário em qualquer quantidade, usando um laço (em cada laço, o programa deve perguntar se mais um número deve ser inserido). Dica: o laço deve ter uma forma assim: do { /* inserir aqui a entrada de dados na lista */ printf("mais um numero? (s/n): "); scanf(" %c", &c); /* atenção, o espaço antes do %c é importante */ while(c!= 'n'); Crie duas funções, uma que calcula a média e outra que calcula o desvio padrão dos valores da lista. Estas funções devem ser usadas assim: m = media(lista); s = desvio_padrao(lista, media); printf("media = %f, desvio padrao = %f\n", m, s); Dica: estas duas funções percorrem toda a lista, até o final, e portanto são parecidas com a print_list(). No final, o programa deve imprimir a lista de valores digitados, sua média e seu desvio padrão. Solução: veja no final.
5 4. Remoção de elementos de uma lista A operação fundamental de remoção de um elemento do início da lista é esquematizada no diagrama abaixo: Usando as funções definidas nos exercícios 3 e 4, podemos escrever um exemplo em que se retira o primeiro elemento de uma lista: main() { /* Ponteiro inicial da lista, inicialmente vazia: */ pno lista = NULL;
6 /* Será usado para guardar o endereço do primeiro elemento da lista */ pno p; /* Três elementos são inseridos: */ push(&lista, 10); push(&lista, 20); push(&lista, 30); /* A lista é imprimida: */ /* Remoção do primeiro elemento */ /* guarda a localização do primeiro elemento: */ p = lista; /* imprime o primeiro elemento: */ printf("removendo o elemento %d.\n", p->info); /* faz com que o ponteiro inicial aponte para o segundo elemento: */ lista = p->prox; /* devolve a memória ocupada pelo primeiro elemento: */ free(p); /* A lista é novamente imprimida: */ 5. Exercícios remoção de elementos 6. Faça o exemplo de remoção acima funcionar. Dica: parta do código resultante do exercício 4, onde já estão definidas todas as funções necessárias. 7. Exercício resolvido: no código do exercício 6, isole a retirada do primeiro elemento em uma função chamada pop(). Esta função deve retornar 0 se a lista já era vazia antes de se tentar a remoção, ou 1 se a lista não era vazia (chamamos este valor inteiro de status). Ao invés de imprimir o valor retirado, ela deve passar este valor por referência a um parâmetro. Ela deve ser chamada assim: status = pop(&lista, &x); Solução: veja no final. 8. Exercício resolvido: crie uma função que lê uma quantidade qualquer de números entrados pelo usuário e os imprime na ordem inversa de entrada, usando as funções push() e pop() (observação: com estas funções, implementamos uma pilha (LIFO)). Solução: veja no final.
7 6. Exercícios resolvidos Solução do exercício 5: #include <stdio.h> #include <stdlib.h> #include <math.h> struct no { float info; struct no *prox; ; typedef struct no * pno; pno get_node(float x) { pno n = malloc(sizeof(struct no)); n->info = x; return n; void push(pno *lis, float x) { pno n = get_node(x); n->prox = *lis; *lis = n; void print_list(pno p) { printf("imprimindo lista:\n"); while(p!= NULL) { printf("%f ", p->info); p = p->prox; printf("\n"); float media(pno p) { float m = 0; int n = 0; while(p!= NULL) { m = m + p->info; n = n + 1; p = p->prox;
8 return m / n; float desvio_padrao(pno p, float m) { float s = 0; int n = 0; while(p!= NULL) { s = s + (p->info - m) * (p->info - m); n = n + 1; p = p->prox; return sqrt(s / n); int main() { pno lista = NULL; float x; char c; float m, s; do { printf("digite um numero: "); scanf("%f", &x); push(&lista, x); printf("mais um numero? (s/n): "); scanf(" %c", &c); while(c!= 'n'); m = media(lista); s = desvio_padrao(lista, m); printf("media = %f, desvio padrao = %f\n", m, s); system("pause"); return 0;
9 Solução do exercício 7 (apenas a função pop() e a função main(), as outras funções, a struct e o typedef devem ser iguais aos do exercício acima). /* A função de remoção. */ /* l (o ponteiro inicial da lista) e n são passados por referência. */ int pop(pno *l, int *n) { /* guarda o endereço do elemento a ser retirado: */ pno p = *l; /* verifica se a lista era vazia: */ if(p == NULL) return 0; /* passa o valor a ser retirado à referência n: */ *n = p->info; /* altera o ponteiro inicial para apontar ao segundo elemento: */ *l = p->prox; /* libera a memória ocupada pelo primeiro elemento */ free(p); /* retorna 1, pois a lista não era vazia: */ return 1; int main() { /* Ponteiro inicial da lista, inicialmente vazia: */ pno lista = NULL; /* usados para guardar os valores recebidos pelo pop: */ int status, x; /* Três elementos são inseridos: */ push(&lista, 10); push(&lista, 20); push(&lista, 30); /* A lista é imprimida: */ /* Remoção do primeiro elemento */ status = pop(&lista, &x); printf("status = %d, elemento removido: %d\n", status, x); /* A lista é novamente imprimida: */ system("pause"); return 0;
10 Solução do exercício 8 (apenas a função main(). O programa deve ser completado com o que falta) int main() { pno lista = NULL; int x; char c; /* Insere números na lista até que o usuário digite n */ do { printf("digite um numero: "); scanf("%d", &x); push(&lista, x); printf("mais um numero? (s/n): "); scanf(" %c", &c); /* atenção, o espaço antes de %c é importante! */ while(c!= 'n'); /* retira os elementos da lista e os imprime um por um */ /* até que pop() retorne 0 (isto é, a lista fique vazia) */ printf("numeros na ordem inversa: "); while(pop(&lista, &x)!= 0) { printf("%d ", x); printf("\n"); system("pause"); return 0;
Métodos Computacionais. Listas Encadeadas
Métodos Computacionais Listas Encadeadas Vetores Declaração de vetor implica na especificação de seu tamanho Não se pode aumentar ou diminuir tamanho Outra alternativa no uso de vetores é alocar dinamicamente
Leia maisINF 1620 P2-23/10/04 Questão 1 Nome:
INF 1620 P2-23/10/04 Questão 1 Considere um tipo abstrato de dados para representar uma disciplina da PUC-Rio, com as seguintes informações: Nome da disciplina: com até 50 caracteres Código da disciplina:
Leia maisINF 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,
Leia maisIntrodução a Programação. Listas Encadeadas
Introdução a Programação Listas Encadeadas Tópicos da Aula Hoje aprenderemos que existem, além de vetores, estruturas de dados dinâmicas que podem armazenar coleções de dados Estruturas Dinâmicas e Vetores
Leia maisProgramação II. Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Listas Encadeadas (Linked Lists) Bruno Feijó Dept. de Informática, PUC-Rio Vetores vs Estruturas Dinâmicas Vetores (arrays): Ocupa um espaço contíguo de memória Permite acesso randômico
Leia maisA 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,
Leia maisDepartamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010
Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010 Aluno: Instruções: 1) Escreva seu nome completo, matrícula e turma em todas as folhas desta prova; 2) A prova deve ser completamente
Leia maisProgramação Estruturada Prof. Rodrigo Hausen Agregados de Dados Heterogêneos (structs)
Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Agregados de Dados Heterogêneos (structs) 1 AGREGADO HOMOGÊNEO Um agregado homogêneo de dados é um conjunto de dados que são necessariamente
Leia maisListas Ligadas (Encadeadas) Listas Simplesmente Encadeadas
Listas Ligadas (Encadeadas) Matrizes são estruturas de dados muito úteis fornecidas nas linguagens de programação. No entanto, elas têm pelo menos duas limitações: 1- Seu tamanho tem que ser conhecido
Leia maisREVISÃ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 maisREVISÃO DE PILHAS E FILAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
REVISÃO DE PILHAS E FILAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos PILHAS E FILAS São tipos especiais de listas com disciplina restrita de acesso Acesso Consulta Inserção Remoção Disciplina
Leia maisLista: conceito, representação e algoritmos
Lista: conceito, representação e algoritmos SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Problema Imaginem a situação da automação de uma biblioteca Todos os livros devem ser cadastrados
Leia maisPRIMEIRA AVALIAÇÃO IDENTIFICAÇÃO. Nome: 22/09/2010
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA Bacharelado em Ciência da Computação e Engenharia da Computação INF 01203 Estruturas de Dados Profa. Renata Galante (galante@inf.ufrgs.br
Leia maisListas ligadas/listas encadeadas
1 Listas ligadas/listas encadeadas Leitura recomendada: http://www.ime.usp.br/~pf/algoritmos/aulas/lista.html 2 Processamento elementar de listas Definição mais restritiva (tipo de lista possivelmente
Leia maisLinguagem C: Listas Encadeadas
Prof. Paulo R. S. L. Coelho paulo@facom.ufu.br Faculdade de Computação Universidade Federal de Uberlândia GEQ007 Organização 1 Introdução 2 3 Organização Introdução 1 Introdução 2 3 Introdução Introdução
Leia maisEstruturas 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)
Leia maisComputadores 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 maisINF 1620 P4 11/12/06 Questão 1 Nome:
INF 1620 P4 11/12/06 Questão 1 Considere que o cálculo da multa para o pagamento de um determinado imposto varia de acordo com a tabela a seguir: Valor do Imposto Original Multa por mês de atraso até R$
Leia maisSuponha 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 maisLista: conceito, representação e algoritmos
Lista: conceito, representação e algoritmos SCC0502 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Problema Imaginem a situação da automação de uma biblioteca Todos os livros devem ser cadastrados
Leia maisAula 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 maisINF 1620 P2-14/10/05 Questão 1 Nome:
INF 1620 P2-14/10/05 Questão 1 Considere um cadastro de produtos de um estoque, com as seguintes informações para cada produto: Código de identificação do produto: representado por um valor inteiro Nome
Leia maisINF 1620 P3-29/06/04 Questão 1 Nome:
INF 1620 P3-29/06/04 Questão 1 Considere um arquivo texto que descreve um conjunto de retângulos e círculos. Cada linha do arquivo contém a descrição de uma figura. O primeiro caractere da linha indica
Leia maisDepartamento de Informática - PUC-Rio INF 1007 Programação 2 P3 26/11/2010
Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 26/11/2010 Aluno: Matrícula: Turma: Instruções: 1) Escreva seu nome completo, matrícula e turma em todas as folhas desta prova; 2) A prova
Leia maisSCC 202 Prova 1. 28/9/2010 Resolução e Comentários
SCC 202 Prova 1 28/9/2010 Resolução e Comentários Questão 1) (3.5) Sobre TADs. a) O que é e quais são as vantagens de se utilizar Tipos Abstratos de Dados (TADs) no projeto de desenvolvimento de software?
Leia maisAlocaçã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
Leia mais2. Considerando as seguintes declarações de uma lista encadeada
Departamento de Informática PUC-Rio INF1620 - Estruturas de Dados Terceira Lista de Exercícios 2005.1 1. Considerando as seguintes declarações de uma lista encadeada char matricula[8]; char turma; float
Leia maisProfessora Jeane Melo
Professora Jeane Melo Roteiro Lista Encadeada Alocação: Estática x Dinâmica O que são Ponteiros? Ponteiros Variáveis que Armazenam Endereços de Memória Mas, toda variável não é armazenada na memória? Ponteiros
Leia maisMC-102 Aula 13. Instituto de Computação Unicamp. 29 de Setembro de 2016
MC-102 Aula 13 Funções I Instituto de Computação Unicamp 29 de Setembro de 2016 Roteiro 1 Funções Definindo uma função Invocando uma função 2 O tipo void 3 A função main 4 Protótipo de funções 5 Funções
Leia maisLinguagem C. Ponteiros. Alex Vidigal Bastos.
Linguagem C Ponteiros Alex Vidigal Bastos alexvbh@gmail.com Ponteiros Ponteiros são variáveis que contém endereços. Estas variáveis apontam para algum determinado endereço da memória. Em geral, o ponteiro
Leia maisAula 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 maisInstituto de C. Linguagem C: Listas. Luis Martí Instituto de Computação Universidade Federal Fluminense -
Instituto de C Linguagem C: Listas Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Listas Encadeadas Definição Funções básicas Tópicos Principais
Leia maisEstruturas de Dados Filas
Estruturas de Dados Filas Roteiro Introdução Definição de Fila (Queue) Aplicações Operações sobre Fila Implementação de Fila Com vetores Com listas encadeadas Exercícios Introdução Estamos acostumados
Leia maisSuponha 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 maisINF 1007 Programação II
INF 1007 Programação II Aula 13 Pilhas Edirlei Soares de Lima Pilha Uma pilha é uma estrutura de dados dinâmica na qual novos elementos são sempre inseridos no topo da pilha e acessados
Leia maisINF 1620 P1-13/09/02 Questão 1 Nome:
INF 1620 P1-13/09/02 Questão 1 Considere que o cálculo da multa para o pagamento de um determinado imposto varia de acordo com a tabela a seguir: Valor do Imposto Original Multa por mês de atraso até R$
Leia maisPonteiros 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 maisListas Encadeadas. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Listas Encadeadas David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Listas Encadeadas Características: Tamanho da lista não é pré-definido Cada elemento guarda quem é o próximo Elementos não
Leia maisINF 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 maisAlgoritmos 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
Leia maisINF1007: Programação 2 8 Listas Encadeadas. (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 8 Listas Encadeadas (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Motivação Listas encadeadas Implementações recursivas Listas de tipos estruturados (c) Dept. Informática
Leia maisMódulo 10 Listas Encadeadas
Estruturas de Dados Módulo 10 Listas Encadeadas 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
Leia maisPonteiros. 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 maisComputadores Digitais 2. Prof. Rodrigo de Souza Couto
Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Tópicos Listas Encadeadas Introdução às listas encadeadas Manipulação de elementos Implementações recursivas Listas
Leia maisINF 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 maisFaculdade 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 maisSubprogramas. 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 maisESTRUTURA DE DADOS LISTAS LINEARES
ESTRUTURA DE DADOS LISTAS LINEARES Prof. Dr. Daniel Caetano 2014-2 Objetivos Compreender as listas sequenciais Implementar uma Lista Sequencial com Vetor Compreender o uso de listas sequenciais Material
Leia maisINF1007: Programação 2. 4 Tipos Estruturados. 10/23/09 (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 4 Tipos Estruturados 10/23/09 (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Tipo estrutura Definição de novos tipos Aninhamento de estruturas Vetores de estruturas Vetores
Leia maisDepartamento de Informática - PUC-Rio INF 1007 Programação 2 P4 07/12/2010
Departamento de Informática - PUC-Rio INF 1007 Programação 2 P4 07/12/2010 Aluno: Matrícula: Turma: Instruções: 1) Escreva seu nome completo, matrícula e turma; 2) A prova deve ser completamente resolvida
Leia maisLinguagem C: Ponteiros - Alocação Dinâmica
Prof. Paulo R. S. L. Coelho paulo@facom.ufu.br 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
Leia maisINF 1620 P4-09/07/03 Questão 1 Nome:
INF 1620 P4-09/07/03 Questão 1 Um ponto geométrico no espaço 2D é representado pelas coordenadas reais x e y. Considere uma aplicação que precisa manipular pontos, através da implementação de duas funções.
Leia maisVetores(Arrays) Olimpíadas de Informática. Aulas preparatórias Introdução a Programação em C.
Olimpíadas de Informática Aulas preparatórias Introdução a Programação em C. Vetores(Arrays) Prof. Gemilson George gemilson@colegiogeo.com.br Blog: informaticageo.wordpress.com GEO.OBI Aula 05 Definição:
Leia maisProgramação Estruturada
Programação Estruturada Entrada e Saída. Mais sobre dados Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Saída
Leia maisAula 16: Laços aninhados e desvios
Aula 16: Laços aninhados e desvios 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 Comandos de Repetição (Parte
Leia maisIntrodução a Programação. Tipos Abstratos de Dados Implementando Pilha e Fila
Introdução a Programação Tipos Abstratos de Dados Implementando Pilha e Fila Abstração Abstração é o processo ou resultado de generalização por redução do conteúdo da informação de um conceito ou fenômeno
Leia mais1 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 maisComputaçã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 maisProgramação: Entrada e Saída de Dados
Programação de Computadores I Aula 06 Programação: Entrada e Saída de Dados José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/41 Saída de dados I Podemos imprimir,
Leia maisAula 26: Arquivos de texto
Aula 26: Arquivos de texto 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 heterogêneas Alocação
Leia maisINF 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
Leia maisLaboratório de 13 de maio de 2019
Laboratório de 13 de maio de 2019 O laboratório de hoje irá permitir que o aluno revise diversos dos conceitos e ferramentas estudados ao longo do curso. São 6 atividades em níveis crescentes de dificuldade,
Leia maisEstruturas de Dados Aula 11: TAD Pilha
Estruturas de Dados Aula 11: TAD Pilha Fontes Bibliográficas Livros: Projeto de Algoritmos (Nivio Ziviani): Capítulo 3; Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 10; Estruturas
Leia maisAluno: Valor Nota Q1 3.0 Q2 2.5 Q3 2.5 Q4 2.0 Total 10.0
P4 Programação II 2012.2 Departamento de Informática/PUC- Rio Aluno: Matrícula: Turma: 1. A prova é sem consulta e sem perguntas. A interpretação do enunciado faz parte da prova. 2. A prova deve ser completamente
Leia maisINF 1620 P4-06/12/02 Questão 1 Nome:
INF 1620 P4-06/12/02 Questão 1 (a) Escreva uma função em C que receba como parâmetro um número inteiro não negativo e retorne, como resultado da função, o valor do seu fatorial. O cabeçalho desta função
Leia maisSimulado da Prova Parcial 2 (01/08/2013)
Simulado da Prova Parcial 2 (01/08/2013) A prova consiste na elaboração de algoritmos para resolução dos problemas descritos a seguir. Você deve usar a linguagem C para escrever os algoritmos. Seus algoritmos
Leia maisLista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função.
Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função. Funções e estruturas básicas 1. Faça uma função que recebe a idade de uma
Leia maisMAC 2166 Introdução à Computação para Engenharia Escola Politécnica Primeiro Semestre de 2006 Prova Substitutiva 3 de julho de 2006
MAC 2166 Introdução à Computação para Engenharia Escola Politécnica Primeiro Semestre de 2006 Prova Substitutiva 3 de julho de 2006 1. (valor 2 pontos) Simule a execução do programa abaixo, destacando
Leia maisINF1007 Programação 2 9 Pilhas. (c) Dept. Informática - PUC-Rio 1
INF1007 Programação 2 9 Pilhas (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Introdução Interface do tipo pilha Exemplo de uso: verificação de expressões Implementação de pilha com lista encadeada
Leia maisPilhas Acesso. Pilha. Fila. Listas lineares especiais. Pilhas e Filas. Listas lineares especiais mais usuais. Disciplina restrita
Listas lineares especiais s Acesso consulta inserção remoção Disciplina restrita de acesso Disciplina restrita acesso permitido somente em alguns nós Listas lineares especiais mais usuais LIFO Last In
Leia maisLinguagem 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 maisPONTEIROS E LISTAS. Kalinka Regina Lucas Jaquie Castelo Branco
PONTEIROS E LISTAS Kalinka Regina Lucas Jaquie Castelo Branco kalinka@icmc.usp.br 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
Leia maisEstrutura 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 maisGilberto A. S. Segundo. 24 de agosto de 2011
Exercícios - Alocação Dinâmica Gilberto A. S. Segundo Programação Aplicada de Computadores Engenharia Elétrica Universidade Federal do Espírito Santo - UFES 24 de agosto de 2011 1 / 23 Grupo de e-mail
Leia maisAula 2 Comandos de Decisão
Departamento de Sistemas de Computação Universidade de São Paulo SSC 502 Laboratório de Introdução a Ciência de Computação I Aula 2 Comandos de Decisão Responsável Prof. Seiji Isotani (sisotani@icmc.usp.br)
Leia maisEstrutura de Dados I Bacharelado em Sistemas de Informação FACOM UFU Lista de Exercícios
Estrutura de Dados I Bacharelado em Sistemas de Informação FACOM UFU Lista de Exercícios Prof. Flávio de Oliveira Silva, M.Sc. 1. Crie uma função chamada somavetor. Esta função deve receber dois vetores
Leia maisMó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 maisMódulo 8 Tipos Estruturados
Estruturas de Dados Módulo 8 Tipos Estruturados 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
Leia maisFunções de Entrada e Saída
inicio Escrita no ecrã (Saída de dados) Escrever( introduza o valor do raio ) Raio Leitura do valor do raio S Raio < 0 N O utilizador insere o valor do raio (Entrada de dados do teclado) Escrita no ecrã
Leia maisMétodos Computacionais. Variações de Listas Encadeadas
Métodos Computacionais Variações de Listas Encadeadas Variações de Listas Encadeadas Listas podem variar quanto ao: Tipo de encadeamento Simples Circulares Duplas Circulares e Duplas Conteúdo Tipos Primitivos
Leia maisComputadores Digitais 2. Prof. Rodrigo de Souza Couto
Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Arquivos Funções para abrir e fechar arquivos Arquivos em modo texto Arquivos em modo binário ATENÇÃO
Leia maisTipos abstratos de dados
Pilhas Considere uma pilha de elementos. O tipo do elemento é definido dentro de um arquivo de nome elemento.h. Portanto a definição é externa ao programa. Podemos fazer as funções de pilha abstraindo
Leia maisLinguagem 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 maisProgramação II. Vetor de Tipo Estruturado e Vetor de Ponteiros. Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Vetor de Tipo Estruturado e Vetor de Ponteiros Bruno Feijó Dept. de Informática, PUC-Rio Vetores e Tipos Estruturados Dado um tipo estruturado T (com 3 campos, por exemplo), podemos ter
Leia maisEstruturas Compostas Parte II
Estruturas Compostas Parte II Filas e Pilhas Leonardo Tórtoro Pereira Slides fortemente baseados no material do professor Ricardo Farias: http://www.cos.ufrj.br/~rfarias/cos121/ Pilhas Pilhas Também conhecida
Leia maisLista com descritor (continuação)
Lista com descritor (continuação) Rotina para remover o eiro elemento de uma LLSECD: char removeiniciollsecd(tdescritor *l, TInfo val) { p = l->; l->=p->prox; if (l->==1) Rotina para remover o último nó
Leia maisVetores(Arrays) Olimpíadas de Informática. Aulas preparatórias Introdução a Programação em C.
Olimpíadas de Informática Aulas preparatórias Introdução a Programação em C. Vetores(Arrays) Prof. Gemilson George gemilson@colegiogeo.com.br Blog: informaticageo.wordpress.com GEO.OBI Aula 05 Vetores
Leia maisProgramação de Computadores II Lista de Exercícios 03
Programação de Computadores II Lista de Exercícios 03 Karina Mochetti 1. Qual a diferença ao declaramos uma string como char *str ou como char str[100]. Explique em detalhes. 2. Ao passar uma variável
Leia maisListas: a última das 3 estruturas lineares (Pilhas, Filas e Listas)... árvores e grafos são não lineares!
Listas: a última das 3 estruturas lineares (Pilhas, Filas e Listas)... árvores e grafos são não lineares! 28/9/, 30/9/ e 5/10/2010 Representação/Implementação: Encadeada dinâmica Exercícios Lista Simplesmente
Leia maisEstrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Listas e Filas Estruturas de Dados 2 Estrututuras de dados lineares Pilhas (stack) Estrutura de dados onde a inserção
Leia maisComputaçã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 maisAula 14: Estruturas de Seleção e Controle em C
Aula 14: Estruturas de Seleção e Controle em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Estruturas de Seleção e Controle Programação de Computadores
Leia maisProgramaçã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 maisLista Encadeada (Linked List)
Lista Encadeada (Linked List) As listas ou listas encadeadas são a estrutura de dados mais simples concebível excetuando-se naturalmente os arrays. Listas encadeadas nada mais são que uma seqüência de
Leia maisINF 1620 P1-04/10/03 Questão 1 Nome:
INF 1620 P1-04/10/03 Questão 1 a) Implemente uma função para calcular as raízes de uma equação do segundo grau do tipo ax 2 +bx+c=0. O protótipo dessa função deve ser: void raizes (float a, float b, float
Leia maisComputação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010
Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010 1 Introdução O objetivo desta aula prática é exercitar o uso de variáveis de vários tipos
Leia mais