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

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

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

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

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

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

INF 1620 P3-25/11/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:

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)

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

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

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

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:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Questão 1.a) (2.5 pontos ) tipodabolsa matricula EhBolsista

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

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

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

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

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

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

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

Aluno: Matrícula: Turma:

Mestrado em Engenharia Física Tecnológica

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

Aula teórica: /6. Enunciado

Estrutura de um programa em linguagem C

INF 1007 Simulado P2 Nome: Instruções

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

Programação de Computadores II. Cap. 16 Ordenação

Resumo - Funções e bibliotecas

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

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

Fundamentos de Programação 1

Programação de Computadores II

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

Estruturas de Dados Aula 6: Cadeias de 28/03/2010

Estruturas de Dados Aula 6: Cadeias de Caracteres

Caracteres e Cadeias de Caracteres

Linguagem de Programação

Programação. MEAer e LEE. Bibliotecas e Funções Exercícios. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre

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

Bibliotecas e Funções Apresentação das bibliotecas de funções principais do C

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

Módulo 16 - Ordenação

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

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

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

MAC2166 Introdução à Computação para Engenharia Escola Politécnica Terceira Prova 20 de junho de 2011

Apêndice B. Cadeias de Caracteres (Strings)

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

INF 1007 Programação II

Programação II. Arquivos - Conceito. Arquivos

Introdução a Computação

Linguagem C: Ordenação

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

Programação II. Busca em Vetor (search) Bruno Feijó Dept. de Informática, PUC-Rio

9. Arquivos em C. Prof. Renato Tinós. Departamento de Computação e Matemática (FFCLRP/USP) Introdução à Computação II

Curso de C. Procedimentos e Funções. 6/4/200901/04/09 09:42 Copyright@Arnaldo V Moura, Daniel F Ferber 1

Módulo 7 Cadeias de Caracteres

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

3ra. Avaliação - Grupo A

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

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

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

Seqüências de Caracteres

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Manipulação de arquivos

Introdução a Computação

LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO

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

Módulo 16 - Ordenação. Referências

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computação 2. Aula 9. Diego Addan Arquivos

Introdução à Programação C

A modularização é uma técnica de programação usada para dividir um programa em partes menores, organizando-as de acordo com suas funcionalidades.

Programação II. Ordenação (sort) Bruno Feijó Dept. de Informática, PUC-Rio

INSTITUTO SUPERIOR TÉCNICO Introdução aos Algoritmos e Estruturas de Dados

13a. Aula Manipulação de arquivos

Curso de C para Engenharias

Lista de Exercícios para P1 INF1007 (Prog2) 15/04/2013. ATENÇÃO: O material a seguir não sofreu revisão e pode conter erros.

Departamento de Informática - PUC-Rio INF 1005 Programação 1 P1 26/04/2010

TÉCNICAS DE PROGRAMAÇÃO

Programação II. Ordenação (sort) Bruno Feijó Dept. de Informática, PUC-Rio

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

Transcrição:

P2 Programação II 2014.1 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 resolvida nas folhas que constam deste caderno, utilizando- se frente e/ou verso; 3. A prova pode ser feita utilizando- se lápis ou caneta (azul ou preta); 4. O aluno só pode manter junto a si lápis, borracha, e caneta. O empréstimo deste tipo de material para outro aluno é estritamente proibido. 5. Todo papel diferente do distribuído pelo fiscal (independentemente do conteúdo) e/ou qualquer dispositivo eletrônico (celular, tablet, etc.) (ligado ou não) encontrados junto ao aluno implicará no recolhimento imediato da prova e a atribuição de nota ZERO à mesma. Valor Nota Q1A 2.5 Q1B 3.0 Q1C 3.0 Q2 1.5 Total 10.0 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,...); stdlib.h: void* malloc (int nbytes); void free (void* p); Algumas Funções de Bibliotecas (NESTA PROVA VOCE PODE USÁ-LAS EM QUALQUER QUESTÃO) math.h: double sqrt (double x); double pow (double x, double exp); double cos (double radianos); double sin (double radianos); void qsort (void *v, int n, int tam, int (*cmp)(const void*, const void*)); Para todas as questões desta prova considere os tipos estruturados abaixo:. Bolsista, que representa um aluno que recebe uma bolsa numa certa universidade: struct data { int mes; /* mes de ingresso na universidade */ Int ano; /* ano de ingresso na universidade */ typedef struct data Data; struct bolsista { int matricula; /* numero de matricula do aluno */ char nome[51]; /* nome do aluno */ char tipodabolsa[21]; /* soc, ic, mest, dout */ Data datainicio; /* data de ingresso na universidade */ typedef struct bolsista Bolsista;. Pedido, que representa um pedido de bolsa por um aluno: struct pedido { int matricula; /* matricula do aluno que solicita a bolsa */ char tipodopedido[21]; /* soc, ic, mest, dout */ struct pedido *prox; /* ponteiro para o proximo pedido */ typedef struct pedido Pedido; string.h: int strlen (char* s); int strcmp (char* s, char *t); char* strcpy (char* destino, char* fonte); char* strncpy (char* destino, char* fonte, int n); char* strcat (char* destino, char* fonte); char* strdup (char* s); 1

Questão 1.a) (2.5 pontos ) Considere um vetor de ponteiros para Bolsista ordenado em ordem crescente (alfabética) por tipodabolsa. Para um mesmo tipo de bolsa, o vetor encontra- se ordenado crescentemente por matricula (ver exemplo na Figura 1). Escreva uma função EhBolsista que usando a técnica de busca binária verifica se já existe um determinado bolsista neste vetor, isto é, para um tipo de bolsa e uma matrícula. Você deve obrigatoriamente escrever uma função auxiliar de comparação. Figura 1 2

Questão 1.b) (3.0 pontos) Considere a existência de uma lista simplesmente encadeada com pedidos de bolsa. O tipo que representa o nó encadeado é o tipo estruturado Pedido (ver exemplo na Figura2). Figura 2 Usando obrigatoriamente a função desenvolvida na questão anterior, escreva a função eliminapedidosrepetidos que elimina da lista os pedidos já existentes no vetor de ponteiros para Bolsista e retorna a lista alterada. Note que é para alterar a lista recebida e não fazer uma nova lista. Exemplo: dado o vetor da Figura 1 e a lista da Figura 2, a função deve retornar a lista da Figura 3. Figura 3 3

Questão 1.c) (3.0 pontos) Considerando apenas o tipo estruturado Bolsista, escreva a função ordenadatainicio que ordena o vetor de ponteiros para Bolsista, pelo método de quick sort (ordenação rápida), de modo que os bolsistas mais antigos precedam os mais recentes. No caso de mesmo ano e mês de início da bolsa, os bolsistas devem ficar ordenados crescentemente por nome. Você deve obrigatoriamente escrever uma função auxiliar de comparação. Se você preferir, você pode usar a função qsort da biblioteca. Exemplo: Original Vetor de Bolsistas: 410 Duda dout 6 2010 411 Paulo dout 2 2014 201 Gina ic 6 2011 202 Andre ic 3 2011 203 Carlos ic 6 2010 301 Bia mest 5 2010 101 Ana soc 5 2010 102 Bela soc 6 2010 Após Ordenação Vetor de Bolsistas: 101 Ana soc 5 2010 301 Bia mest 5 2010 102 Bela soc 6 2010 203 Carlos ic 6 2010 410 Duda dout 6 2010 202 Andre ic 3 2011 201 Gina ic 6 2011 411 Paulo dout 2 2014 Figura 4 4

Questão 2 (1.5 ponto): Considere o tipo estruturado Pedido, que representa um nó de uma lista simplesmente encadeada de pedidos. Assumindo que a lista não está ordenada, escreva a função maiormatricula que recebe a lista (ou seja, o ponteiro para o primeiro elemento da lista) e retorna a maior matrícula (ou seja, a matrícula de maior valor). Caso não exista nenhum pedido a função retorna - 1. Exemplo: para uma lista de pedidos como a da Figura 2, a função deveria retornar o valor 415. 5