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

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

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

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

INF 1620 P4 30/06/07 Questão 1 Nome:

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

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

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

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

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

INF 1620 P4-09/07/03 Questão 1 Nome:

INF 1620 P2-23/10/04 Questão 1 Nome:

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

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

INF 1620 P1-18/09/04 Questão 1 Nome:

Departamento 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 P3 26/11/2010

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

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

INF 1620 P4-27/06/02 Questão 1 Nome:

INF 1620 P1-11/04/08 Questão 1 Nome:

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010

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

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

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

INF 1620 P1-17/09/05 Questão 1 Nome:

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

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

Aluno: Para todas as questões desta prova considere os tipos estruturados abaixo:

Departamento de Informática PUC-Rio INF Estruturas de Dados Lista 2 Completa (Gerada em 8 de maio de 2006)

P2 Programação II Departamento de Informática/PUC-Rio

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

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

P2 Programação II Departamento de Informática/PUC-Rio

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

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

SIMULADO PROVA. Questões Nota Revisão 1 (2.0) 2 (1.0) 3 (2.0) 4 (2.0) 5 (2.0) P1 (9,0)

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

PROVA P2 INF /10/2014 Programação II

Aluno: Matrícula: Turma:

Caracteres e Cadeias de Caracteres

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

INF1001: Introdução à Ciência da Computação P2 25/05/08 Nome:

INF1001: Introdução à Ciência da Computação P4 30/06/08 Nome:

CAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos:

Módulo 18 - Tabelas de Dispersão. Referências

Capítulo 6: Arquivos

MAC-115 Introdução à Computação para Ciências Exatas e Tecnologia IO Terceiro Exercício-Programa Entregar até 09/11/2007

UNIVERSIDADE DA BEIRA INTERIOR

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

Tabelas de Dispersão (hash tabels)

Capítulo 06: Arquivos

INF 1007 Simulado P2 Nome: Instruções

Mestrado em Engenharia Física Tecnológica

Introdução à Programação

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

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

CURSO BÁSICO DE PROGRAMAÇÃO AULA 16. Ordenação Revisão para a prova

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

Programação de Computadores II

Laboratório de Introdução à Ciência da Computação I

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

EPs 1 e 2. EP2: veja. EP1: veja

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

Métodos Computacionais. Arquivos

PROGRAMAÇÃO E ALGORITMOS (LEI) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2016/2017

INF1001: Introdução à Ciência da Computação P3 23/06/08 Nome:

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

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

INF1005: Programação 1. Arquivos. 02/05/10 (c) Paula Rodrigues 1

Aula 16: Manipulação de Arquivos em C

Cadeias de Caracteres (Strings)

Módulo 7 Cadeias de Caracteres

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

O que é a modularização

Aula 14 Oficina de Programação Tópicos Especiais em C: Arquivos. Profa. Elaine Faria UFU

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.

Linguagem de Programação

Introdução a Programação. Manipulando Arquivos em Modo Texto

Strings. Introdução. Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos.

Resumo - Funções e bibliotecas

Aula 26: Arquivos de texto

INF 1005 Programação I lista 09

Arquivos. Programação de Computadores I. Natália Batista.

Referências. Arquivos. Tópicos Principais. Programação de Computadores II. Motivação. Motivação. Abertura de arquivo. Slides da profa.

Fundamentos de Programação 1

INF 1005 Programação I

Computação 2. Aula 3. Diego Addan Vetores de caracteres (strings)

Vetores II. Strings Leitura e exibição Biblioteca string.h Operações com Strings. Matrizes Definição de Acesso Operações com Matrizes

Computação 2. Aula 8. Profª. Fabiany Arquivos

Programação II. Arquivos - Conceito. Arquivos

Primeiro Curso de Programação em C 3 a Edição

INF1001: Introdução à Ciência da Computação P1 07/04/08 Nome:

Computação I - C Prova /10/ Profs. Adriano Cruz e Valeria Bastos

Módulo 18 - Tabelas de Dispersão

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)

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

Manipulação de Arquivos. Técnicas de Programação

Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 13 Arquivos

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

Programação de Computadores II. Cap. 7 Cadeias de Caracteres

Transcrição:

INF 1620 P3-06/12/03 Questão 1 Considere um cadastro com as médias por disciplina dos alunos de uma universidade. Esse cadastro é originalmente armazenado em um arquivo texto que contém, para cada disciplina, a lista dos alunos com suas respectivas médias. Nesse arquivo, cada disciplina é identificada por seu código alfanumérico, e seu código é seguido pelo número de alunos que cursaram a disciplina. Em seguida, são listados os nomes dos alunos com suas respectivas médias. O nome do aluno é representado por uma string delimitada por aspas simples. Um exemplo de um arquivo nesse formato é mostrado abaixo: INF1001 2 'fulano de tal' 7.3 'sicrano silva' 8.7 CRE0700 2 'beltrano alves' 10.0 'fulano de tal' 9.2 INF1620 3 'beltrano alves' 3.4 'fulano de tal' 7.2 'sicrano silva' 6.7 Escreva um programa completo que leia um arquivo "entrada.txt", no formato descrito acima, e crie um novo arquivo "saida.txt", composto por linhas com o código de uma disciplina, o nome de um aluno, e sua média na disciplina, na mesma ordem do arquivo de entrada. Para o exemplo acima, esse programa deve gerar o seguinte arquivo de saída: INF1001 'fulano de tal' 7.3 INF1001 'sicrano silva' 8.7 CRE0700 'beltrano alves' 10.0 CRE0700 'fulano de tal' 9.2 INF1620 'beltrano alves' 3.4 INF1620 'fulano de tal' 7.2 INF1620 'sicrano silva' 6.7 Eventuais linhas em branco podem ocorrer no arquivo de entrada e devem ser desprezadas. Deve ser previsto o caso de um arquivo de entrada vazio ou inexistente. Se o arquivo for inexistente, não se deve gerar nenhum arquivo de saída. Se o arquivo de entrada for vazio, isto é, sem nenhum dado, a saída gerada deve ser também um arquivo vazio.

INF 1620 P3-06/12/03 Questão 2 Considere um arquivo texto onde cada linha contém a matrícula de um aluno e seu respectivo CR, como ilustra o exemplo a seguir: 9010087-2 7.3 8820324-3 8.7 9210478-5 9.2 9020256-8 6.7 Implemente uma função que receba como parâmetros o nome de um arquivo no formato descrito acima e a matrícula de um aluno, e retorne o CR do aluno. Se não for encontrado no arquivo a matr ícula procurada, a função deve retornar 1.0. Se não for possível abrir o arquivo, a função deve imprimir a mensagem "ERRO" e terminar a execução do programa. O protótipo dessa função deve ser: float busca (char* arquivo, char* matricula);

INF 1620 P3-06/12/03 Questão 3 Considere uma estrutura de árvore binária de busca definida pelo tipo abaixo: struct arv { int info; struct arv* esq; struct arv* dir; }; typedef struct arv Arv; Tirando proveito da ordenação dos nós, escreva uma função que retorne quantos nós de uma árvore binária de busca armazenam valores contidos em um intervalo [x1, x2]. Essa função deve receber como parâmetros a árvore de busca e dois valores inteiros x1 e x2, de acordo com o protótipo definido a seguir: int intervalo (Arv* a, int x1, int x2);

INF 1620 P3-06/12/03 Questão 4 Considere um tipo que representa os dados de um aluno definido pela estrutura a seguir: struct aluno { char nome[81]; int matricula; float cr; }; typedef struct aluno Aluno; Usando alguma das técnicas de ordenação vistas no curso, escreva uma função para ordenar um vetor de alunos, em ordem decrescente de número de matrícula. A função deve receber como parâmetros o número de alunos e um vetor que armazena ponteiros para estruturas do tipo Aluno, de acordo com o protótipo definido a seguir: void ordena (int n, Aluno** v);

INF 1620 P3-06/12/03 Questão 5 Considere um cadastro de alunos armazenado em uma tabela de dispersão (hash) que usa listas encadeadas para o tratamento de colisões, isto é, a tabela é implementada como um vetor de listas encadeadas. Considerando as seguintes declarações relativas à tabela hash dos alunos: struct aluno { char nome[81]; int matricula; float cr; struct aluno* prox; }; typedef struct aluno Aluno; #define N 127 typedef Aluno* Hash[N]; Implemente: a) Uma função de hash que, dado o número de matrícula do aluno, retorne o índice do aluno na tabela, de acordo com protótipo definido a seguir: int hash (int mat); Assumindo que os números de matrícula seguem o mesmo padrão utilizado na PUC, a função deve procurar a melhor dispersão dos alunos na tabe la. b) Uma função que insira um novo aluno na tabela hash. Para simplificar, considere que a função estará sempre adicionando um novo aluno ao cadastro, isto é, não existe a hipótese da matrícula do aluno a ser inserido já constar no cadastro. A função deve receber como parâmetros a tabela hash, o nome do aluno, sua matrícula e seu CR, e deve retornar um ponteiro para a estrutura criada para o novo aluno, de acordo com o protótipo definido a seguir: Aluno* insere(hash tab, char* nome, int mat, float cr);

RASCUNHO Respostas nesta folha não serão consideradas. Protótipos de funções que podem ser úteis: stdio.h: int scanf (char* formato,...); int printf (char* formato,...); FILE* fopen (char* nome, char* modo); int fclose (FILE* fp); int fscanf (FILE* fp, char* formato,...); int fprintf (FILE* fp, char* formato,...); char* fgets(char* str, int size, FILE* fp)); int sscanf(char* str, char* formato,...); math.h: double sqrt (double x); double pow (double x, double exp); string.h: int strlen (char* s); int strcmp (char* s, char *t); char* strcpy (char* destino, char* fonte); char* strcat (char* destino, char* fonte); sdtlib.h: void* malloc (int nbytes); void free (void* p); void qsort (void *vet, int n, int tam, int (*comp) (const void*, const void*)); Não separe as folhas deste cader no.