INF P4-12/12/09 Questão 1 Nome:

Documentos relacionados
INF 1620 P4-06/12/02 Questão 1 Nome:

PRIMEIRA AVALIAÇÃO IDENTIFICAÇÃO. Nome: 22/09/2010

INF1007 Programação 2 9 Pilhas. (c) Dept. Informática - PUC-Rio 1

INF 1007 Programação II

Departamento 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 23/06/2010

INF 1620 P4 11/12/06 Questão 1 Nome:

Estruturas de Dados. Módulo 11 Pilhas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

INF 1620 P2-01/11/03 Questão 1 Nome:

INF 1620 P3-29/06/04 Questão 1 Nome:

INF 1620 P4-13/12/01 Questão 1 Nome:

Introdução a Programação. Tipos Abstratos de Dados Implementando Pilha e Fila

INF 1620 P2-14/10/05 Questão 1 Nome:

INF 1620 P3-27/11/04 Questão 1 Nome:

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P4 07/12/2010

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

2. Considerando as seguintes declarações de uma lista encadeada

INF 1620 P3-02/07/02 Questão 1 Nome:

INF 1620 P3-06/12/03 Questão 1 Nome:

Estruturas de Dados. Módulo 12 - Filas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

INF 1007 Simulado P2 Nome: Instruções

Instituto de C. Filas. Luis Martí Instituto de Computação Universidade Federal Fluminense -

P3 Programação II Departamento de Informática/PUC-Rio 27 de junho de 2013

a) Implemente uma função que retorne uma aproximação do valor de π, de acordo com a F órmula de Leibniz: ( 1)

INF 1620 P1-14/04/07 Questão 1 Nome:

INF P3-23/06/07 Questão 1 Nome:

INF 1620 P2-17/05/08 Questão 1 Nome:

1. Faça um programa que leia uma string digitada pelo usuário e salve em um arquivo em branco.

INF 1620 Estruturas de Dados Semestre Segundo Trabalho: Jogo de Caça-Palavras

INF1007: Programação 2 8 Listas Encadeadas. (c) Dept. Informática - PUC-Rio 1

Lista de Exercícios sobre Listas Implementadas por Encadeamento

Alocação dinâmica. PUC-Rio, , INF H: Programação 2 Lista 1: Alocação dinâmica, recursão e estruturas

Listas (Parte 1) Túlio Toffolo BCC202 Aula 09 Algoritmos e Estruturas de Dados I

INF 1620 P3-25/11/05 Questão 1 Nome:

LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS. Estrutura de Dados

BCC202 - Estrutura de Dados I

1. Selecione a Estrutura de Dados que melhor representa os diretórios ou pastas de arquivos do computador.

Funções em Linguagem C Parte II

Lista de Exercícios 04

Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1

Métodos Computacionais. Listas Encadeadas

Aula 7 Encadeamento de Memória

SCC Algoritmos e Estruturas de Dados I

cadeia de caracteres (string) INF Programação I Prof. Roberto Azevedo

char* prefixo (char* str, int n);

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)

Aluno: Valor Nota Q1 3.0 Q2 2.5 Q3 2.5 Q4 2.0 Total 10.0

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

INF 1007 P2 23/10/10 Nome: Instruções:

ASSOCIAÇÃO PARAIBANA DE ENSINO RENOVADO FACULDADE PARAIBANA DE PROCESSAMENTO DE DADOS ESTRUTURA DE DADOS

Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I

Lista de Exercícios 1

Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

UNIVERSIDADE DA BEIRA INTERIOR

Lista: conceito, representação e algoritmos

22/08/2011. Fila. SCC0202 Algoritmos e Estruturas de Dados I. Prof. Thiago A. S. Pardo. Fila. O que é? Para que serve?

Sistema Rodoviário Tabajara

Instituto de C. Linguagem C: Listas. Luis Martí Instituto de Computação Universidade Federal Fluminense -

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Módulo 10 Listas Encadeadas

GEQ Prof. Paulo R. Coelho. Lista para prova

Lista de Exercícios - Listas Aula de Laboratório. 1. Considerando as seguintes declarações de uma lista encadeada:

INF 1620 P1-04/10/03 Questão 1 Nome:

INF 1620 P3-21/06/08 Questão 1 Nome:

ALGORITMOS E ESTRUTURAS DE DADOS CES-11

Estrutura de Dados (DPADF 0056)

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P1 17/04/2010

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

INF 1007 Programação II

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

INF 1007 Programação II Semestre 09.2

Listas Lineares. Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1

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

INF PROGRAMAÇÃO II LISTA DE EXERCÍCIOS DE REVISÃO

Estruturas de Dados Filas

MC-102 Aula 19 Ponteiros II

Fila. SCC0502 Algoritmos e Estruturas de Dados I. Prof. Thiago A. S. Pardo

INF 1007 Programação II Semestre 09.2

Atividade de laboratório listas encadeadas simples

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

Slide 01 16/03/2017. Estruturas de Dados. Prof. Cleziel Franzoni da /Cleziel.

Caracteres e Cadeias de Caracteres

Fila. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

08/08/2011. Pilha. SCC0202 Algoritmos e Estruturas de Dados I. Prof. Thiago A. S. Pardo. Pilha. O que é? Para que serve?

ESTRUTURA DE DADOS (TCC )

S U M Á R I O. Definição de Estrutura de Dados. Vetores. Listas Ligadas. Pilhas. Filas

Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros:

Lista: conceito, representação e algoritmos

Lista: conceito, representação e algoritmos

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior

Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Edital de Seleção 053/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Aplicações de listas e outras estruturas

Listas Lineares. continuando...

Transcrição:

INF 1007 - P4-12/12/09 Questão 1 QUESTÃO OBRIGATÓRIA [Valor: 2,5 pontos] Escreva um programa completo em C que leia do teclado um caractere e uma cadeia de caracteres e escreva quantas vezes aquele caractere aparece nessa cadeia. Assuma que a cadeia tem no máximo 20 caracteres, que serão apenas letras do alfabeto, maiúsculas ou minúsculas, e não contém espaços. O programa não deve fazer distinção entre maiúsculas e minúsculas. Por exemplo, para a entrada a seguir: A Abracadabra O programa deveria exibir a saída: A cadeia Abracadabra contem 5 vezes o caractere A. Já para a seguinte entrada: x PROVA A saída correspondente seria: A cadeia PROVA nao contem o caractere x. Considere que os valores fornecidos como entrada são sempre válidos, ou seja, não é necessário verificar a validade desses parâmetros.

INF 1007 - P4-12/12/09 Questão 2 QUESTÃO OBRIGATÓRIA [Valor: 2,5 pontos] Em uma prova de programação, o aluno deve implementar uma função que cria uma cópia de um vetor fornecido como parâmetro. Esse vetor, em que os elementos não estão em qualquer ordem especial, contém ponteiros para o tipo Conteudo, definido a seguir. typedef struct conteudo { int valor; } Conteudo; O vetor cópia deve ser alocado dinamicamente e, além disso, ordenado em ordem crescente de acordo com o campo valor. Assumindo que o aluno já tenha criado a função que copia e ordena o vetor e que a alocação do novo vetor tenha sido feita corretamente, escreva uma função em C que verifica se a função implementada pelo aluno funciona da forma esperada. Essa função deve receber como parâmetros o ponteiro vet, para o vetor original de ponteiros para Conteudo, o ponteiro ordenado, para o vetor de ponteiros para Conteudo que foi criado e ordenado pela função do aluno, e o inteiro n, que indica o número total de elementos de cada vetor. A função deve retornar 1, indicando que a ordenação foi executada corretamente ou 0, caso contrário, e deve ter o seguinte protótipo: int Testa_ordenacao(Conteudo** vet, Conteudo** ordenado, int n); Obs: O conteúdo e ordenação do vetor original e do vetor do aluno não devem ser modificados.

INF 1007 - P4-12/12/09 Questão 3 QUESTÃO OBRIGATÓRIA [Valor: 2,5 pontos] Um programa mantém as informações sobre os usuários de um sistema como uma lista encadeada onde cada elemento é do tipo Elemento, conforme definido a seguir: typedef struct elemento { char login[21]; /* login do usuario */ char senha[9]; /* senha do usuario */ struct elemento *prox; /* ponteiro para proximo elemento */ } Elemento; Os campos login e senha podem conter quaisquer letras e algarismos do alfabeto, maiúsculas ou minúsculas. Por exemplo, um usuário válido poderia ter login jsilva e senha AbC123. Considere que não existem dois logins iguais na lista encadeada. Escreva uma função em C que recebe como parâmetros o ponteiro lst, para o início da lista descrita, e os ponteiros para as cadeias de caracteres log e sen, representando o login e senha de um usuário. A função deve retornar um ponteiro para uma cadeia de caracteres alocada dinamicamente, contendo uma das seguintes mensagens: Senha correta, se na lista for encontrado um usuário cujo conteúdo do campo login seja igual à cadeia de caracteres apontada por log e o conteúdo do campo senha correspondente seja igual à cadeia de caracteres apontada por sen Senha incorreta, se for encontrado um usuário com login igual à log, mas cuja senha é diferente de sen Login inexistente, se não for encontrado um usuário com login igual à log. A função deve ter o seguinte protótipo: char* Verifica_senha(Elemento* lst, char* log, char* sen);

INF 1007 - P4-12/12/09 Questão 4 QUESTÃO OPCIONAL: O aluno deve escolher esta, a 5 a ou a 6 a questões. [Valor: 2,5 pontos] Considere um programa de gerenciamento comercial que armazena as informações referentes aos dados sobre os produtos em estoque como um vetor em que cada elemento é um ponteiro para o tipo Produto definido a seguir. typedef struct produto { int cod; /* codigo do produto */ char* descr; /* descricao do produto */ int quant; /* quantidade em estoque */ float valor; /* valor unitario do produto */ } Produto; Sabendo que o vetor encontra-se em ordem crescente de acordo com o código de cada produto (valor do campo cod), escreva uma função em C que verifica a quantidade de um produto em estoque. Esta função recebe como parâmetros o ponteiro estoque, para o primeiro elemento do vetor, o inteiro n, representando o tamanho do vetor, e o inteiro cod, indicando o código de um produto, e retorna a quantidade em estoque deste produto (valor do campo quant). Se o produto com o referido código não for encontrado no vetor, a função deve retornar -1. A função deve empregar a técnica de busca binária e seu protótipo é: int Consulta_estoque(Produto **estoque, int n, int cod); Obs.: Sua função NÃO deve utilizar a função bsearch da biblioteca padrão.

INF 1007 - P4-12/12/09 Questão 5 QUESTÃO OPCIONAL: O aluno deve escolher esta, a 4 a ou a 6 a questões. [Valor: 2,5 pontos] Considere um TAD do tipo Pilha --- que armazena caracteres ---, para o qual foram implementadas as seguintes funções: Pilha* pilha_cria (void); void pilha_push (Pilha* p, char c); char pilha_pop (Pilha* p); int pilha_vazia (Pilha* p); void pilha_libera (Pilha* p); Retorna o ponteiro para uma nova pilha alocada dinamicamente. Insere um caractere no topo de uma pilha. O ponteiro da pilha e o valor a ser inserido são passados como parâmetros. Retira um caractere do topo de uma pilha. O ponteiro da pilha é passado como parâmetro, e o retorno é o valor deste elemento. Esta função não deve ser chamada se a pilha estiver vazia. Retorna 1 se a pilha está vazia, ou 0, caso contrário. Libera toda a memória alocada para uma pilha. O ponteiro da pilha é passado como parâmetro. Sem conhecer a representação interna deste TAD e usando apenas as funções descritas acima, escreva uma função em C que compara duas pilhas. A função deve receber como parâmetro os ponteiros p1 e p2 para duas pilhas, e retornar 1 se o conteúdo das duas pilhas for idêntico, ou seja, se ambas contêm os mesmos valores armazenados na mesma ordem, ou 0, caso contrário. Após a execução dessa função, o conteúdo das pilhas originais deve continuar o mesmo. O protótipo da função é: int pilha_compara(pilha *p1, Pilha *p2);

INF 1007 - P4-12/12/09 Questão 6 QUESTÃO OPCIONAL: O aluno deve escolher esta, a 4 a ou a 5 a questões. [Valor: 2,5 pontos] Considere um TAD do tipo Fila --- para armazenar valores inteiros ---, para o qual foram implementadas as seguintes funções: Fila* fila_cria (void); void fila_insere (Fila* f, int x); int fila_retira (Fila* f); int fila_tamanho (Fila* f); void fila_libera (Fila* f); Retorna o ponteiro para uma nova fila alocada dinamicamente. Insere um valor inteiro no fim de uma fila. O ponteiro para a fila e o elemento a ser inserido são passados como parâmetros. Retira um valor do início de uma fila. O ponteiro da fila é passado como parâmetro, e o retorno é o valor inteiro retirado. Esta função não deve ser chamada se a fila estiver vazia. Retorna o número de elementos na fila. Libera toda a memória alocada para uma fila. O ponteiro da fila é passado como parâmetro. Sem conhecer a representação interna deste TAD e usando apenas as funções descritas acima, escreva uma função em C que cria a cópia de uma fila. A função deve receber como parâmetro o ponteiro f para uma determinada fila e retornar o ponteiro para uma nova fila cujo conteúdo é cópia do conteúdo daquela fornecida como parâmetro, ou seja, ambas (a fila recebida como parâmetro e a fila nova) contêm os mesmos valores e na mesma ordem. Após a execução dessa função, o conteúdo da fila original deve continuar o mesmo. O protótipo da função é: Fila *fila_copia(fila *f);