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

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

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

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

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

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

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

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

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

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

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

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

INF 1620 P1-16/09/06 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

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

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

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

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

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 P1-11/04/08 Questão 1 Nome:

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

INF 1620 P2-01/11/03 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)

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

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

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

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

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

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

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

Aluno: Matrícula: Turma:

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

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

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

INF 1007 Simulado P2 Nome: Instruções

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

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

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

Caracteres e Cadeias de Caracteres

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

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

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

Capítulo 6: Arquivos

Capítulo 06: Arquivos

INF 1005 Programação I lista 09

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

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

Introdução à Programação

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

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

Fundamentos de Programação 1

Aula 16: Manipulação de Arquivos em C

Aula 26: Arquivos de texto

Mestrado em Engenharia Física Tecnológica

Programação II. Arquivos - Conceito. Arquivos

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

Tabelas de Dispersão (hash tabels)

UNIVERSIDADE DA BEIRA INTERIOR

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

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

Apêndice B. Cadeias de Caracteres (Strings)

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

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

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

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

Estrutura de um programa em linguagem C

TÉCNICAS DE PROGRAMAÇÃO

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

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

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

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

Programação de Computadores II

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

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

Métodos Computacionais. Arquivos

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

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

3ra. Avaliação - Grupo A

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

CURSO BÁSICO DE PROGRAMAÇÃO AULA 11. Revisão Aula Anterior Vetores Cadeia de Caracteres

O que é a modularização

Módulo 18 - Tabelas de Dispersão

Resumo - Funções e bibliotecas

Aula teórica: /6. Enunciado

Métodos Computacionais. Tipos Estruturados

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

Copiar para o ficheiro ArvoreBinaria.h e adaptar as funções associadas às operações sobre árvores binárias (3.1 a 3.12)

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

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

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

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

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

Transcrição:

INF 1620 P3-27/11/04 Questão 1 Considere um arquivo texto com as notas dos alunos de uma disciplina. Os dados de cada aluno são armazenados em duas linhas do arquivo: uma com o seu nome (cadeia com até 80 caracteres), e outra com suas três notas (P1, P2 e P3). Considere ainda que não existem linhas em branco no arquivo. Um exemplo desse formato é mostrado abaixo. João da Silva 2.0 4.3 6.5 Manuel Santos 7.0 8.2 8.6 Fulana de Tal 6.0 7.5 7.8 Escreva um programa completo que leia o arquivo entrada.txt, que contém as notas de uma disciplina no formato descrito acima, e escreva no arquivo texto saida.txt o nome de cada aluno com sua respectiva média ((P1+P2+P3)/3 ) e um caractere indicando se o aluno foi aprovado ou reprovado na disciplina (use A para indicar aprovação e R para indicar reprovação). Considere que um aluno está aprovado se tiver média maior ou igual a 5.0. Para o exemplo acima, o programa deve criar um arquivo saida.txt com o seguinte conteúdo: João da Silva 4.3 R Manuel Santos 7.9 A Fulana de Tal 7.1 A Observe que as médias são escritas no arquivo saida.txt com apenas uma casa decimal. Se não for possível abrir um dos arquivos, o programa deve imprimir a mensagem ERRO e terminar sua execução

INF 1620 P3-27/11/04 Questão 2 Considere um tipo que representa um registro de uma agenda de telefones (com nome, telefone e data da nascimento) definido pela estrutura a seguir: struct contato { char nome[81]; char telefone[21]; int dia; int mes; int ano; }; typedef struct contato Contato; Usando alguma das técnicas de ordenação vistas no curso, escreva uma função para ordenar um vetor de contatos, em ordem crescente de data de nascimento. A função deve receber como parâmetros o número de contatos e um vetor que armazena ponteiros para estruturas do tipo Contato, de acordo com o protótipo definido a seguir: void ordena (int n, Contato** v);

INF 1620 P3-27/11/04 Questão 3 Considere um vetor de números inteiros ordenado em ordem crescente, onde não existem valores repetidos. Utilizando a técnica de busca binária em vetores, implemente uma função que determine o índice em que um novo elemento deve ser inserido no vetor de tal forma que a ordenação do vetor seja preservada (assuma que o novo elemento é diferente dos demais). Por exemplo, para o vetor {1,3,6,8,9,12} e um novo elemento com valor 5, sua função deve retornar o índice 2. Sua função recebe como parâmetros um número inteiro n com a quantidade de elementos correntemente no vetor, o vetor de inteiros v e o número inteiro x a ser inserido no vetor, e retorna o índice da posição do novo elemento, de acordo com o cabeçalho a seguir: int indice (int n, int* v, int x);

INF 1620 P3-27/11/04 Questão 4 Considere uma árvore binária de busca que armazena valores inteiros, onde os valores associados aos nós da sub-árvore à esquerda são menores que o valor associado à raiz e que os valores dos nós da sub-árvore à direita são maiores (considere que a árvore não possui valores repetidos). O tipo que representa um nó da arvore é dado por: struct arv { int val; struct arv* esq; struct arv* dir; }; typedef struct arv Arv; Escreva uma função que retorne o número de nós da árvore cuja informação armazenada seja menor que um dado valor x. A função deve tirar proveito da ordenação da árvore e obedecer ao seguinte protótipo: int menores_x (Arv* a, int x);

INF 1620 P3-27/11/04 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 nome de um aluno, retorne o índice do aluno na tabela, de acordo com protótipo definido a seguir: int hash (char* nome); 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 do nome do aluno a ser inserido já cons tar 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); stdlib.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 caderno.