Ficheiros binários 1. Ficheiros binários



Documentos relacionados
Ficheiros de texto 1. Ficheiros de texto. 1. Implementar um programa que leia uma frase do teclado e a escreva num ficheiro.

Ficheiros binários 1. Ficheiros binários

Cap Escrever uma função que aceite como parâmetro um número inteiro e retorne o número que corresponde a trocar os dígitos do parâmetro (por exe

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

INFORMÁTICA PARA GESTÃO II Curso Superior de Gestão de Marketing

Programação. Folha Prática 10. Lab. 10. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.

Lista de Exercícios 04 Estruturas de Dados Homogêneas - Vetores

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

Algoritmia e Programação

Objectos Gráficos 1. APROG (Civil) Aula 4. Friday, November 2, 12

Microsoft Excel Ficha prática n. 1

FOLHA DE CÁLCULO VAMOS APRENDER

2ª Lista de Exercícios

Microsoft Excel Ficha prática n. 8

Linguagem de Programação C. Fluxo de Saída Padrão. Linguagem de Programação C. printf. Fluxo de Saída Padrão. Algoritmos e Lógica de Programação

1. Como fazer uma pesquisa

2ª Lista de Exercícios

Programação. Folha Prática 9. Lab. 9. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.

1. Manual Resumido de Gestão de Contratos

Nº horas ESTRATÉGIAS RECURSOS AVALIAÇÃO

Ciclo com Contador : instrução for. for de variável := expressão to. expressão do instrução

Estruturas de Repetição

Exercícios: variáveis e expressões

Lista 4 Introdução à Programação Entregar até 07/05/2012

Programação. Folha Prática 4. Lab. 4. Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved.

Orientação a Objetos

Versão 2 COTAÇÕES pontos pontos pontos pontos pontos pontos

1 Cálculo do valor à vista

Exercícios de revisão da Linguagem C

Introdução à Programação. Microsoft WINDOWS XP Eng. Ambiente CA

O Correio Electrónico ( ) é um dos serviços mais populares da Internet.

Calculadora Virtual HP Prime

AC05 Lista de Exercícios sobre Sequências, Condições e Repetição Em C++

Tabelas de dispersão/hash

6.1 Arranjos (arrays)

PROVA DE NOÇÕES DE INFORMÁTICA

MOVIMENTAÇÃO DIÁRIA DE COMBUSTÍVEIS

PAGAMENTO DE IMPOSTOS

Cópia de Segurança e Recuperação Manual do utilizador

Documento Geral Explicativo. GS1 Portugal

Exercícios: Vetores e Matrizes

Guia do Brother ScanViewer para ios/os X

Exercícios (if/ if else/ if elseif else)

Dicas para pesquisa no Catálogo Colectivo

PYTHON Compreensão de Listas. Introdução à Programação SI2

Trabalho Prático II - Resta 1 Data de Entrega: Conferir no calendário!

Programação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO

4. Álgebra Booleana e Simplificação Lógica. 4. Álgebra Booleana e Simplificação Lógica 1. Operações e Expressões Booleanas. Objetivos.

Plataforma Moodle ESTeSL

Microsoft Excel Ficha prática n. 2

Os dados quantitativos também podem ser de natureza discreta ou contínua.

Programação. Folha Prática 5. Lab. 5. Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved.

Exercícios: Comandos de Repetição

TUTORIAL MATLAB Victor Breder 2016

Exercícios: Recursão

Matemática Básica Intervalos

GIAE ONLINE ( Atualização disponibilizada em 8 de Novembro de 2011 )

Centro de Competência da Beira Interior Setembro de 2005 João Carlos Antunes

DEPARTAMENTO DE ENGENHARIA ELECTROTÉCNICA

17. Faça um programa que escreve na tela a mesma frase 10vezes. E depois faça com que o programa mostre o número de cada linha no início e no final

Exercícios: comandos de repetição

ATIVIDADE DE MATEMÁTICA (PARA CASA) Data de entrega 18/04/2012

Parabéns pela escolha do cartão TOURS.

Programação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009

INFORMAÇÃO PROVA DE EQUIVALÊNCIA À FREQUÊNCIA

Tutorial Extra sobre C. Felipe Santos da Silva

Programação em FORTRAN V. João Manuel R. S. Tavares

Exame de Equivalência à Frequência do Ensino Secundário

Conteúdo: Função Inversa Duração: 3 horas-aula. Desenvolvimento Metodológico:

PROGRAMAÇÃO DE COMPUTADORES I - BCC Lista de Exercícios do Módulo 1 - Preparação para a Prova 1

BC-0505 Processamento da Informação

1 - Enviar dinâmico

Microsoft Excel INTRODUÇÃO PARTE 1 SUMÁRIO

Análise e Desenho de Algoritmos Enunciado do Trabalho Prático

X-CONFIG PROGRAMA DE CONFIGURAÇÃO

Permite o retorno de Mercadorias de Terceiros com uma nota fiscal de cliente em todas as rotinas que fazem estes retornos.

A. Equações não lineares

Diário Oficial Digital. Sistema web para pesquisa de mátérias Manual do usuário

Conhecendo Seu Telefone

1. Escreva um programa em Pascal que leia três valores inteiros e mostre-os em ordem crescente. Utilize seleção encadeada.

Introdução a Funções

Aula Extra. Depurador Code::Blocks. Monitoria de Introdução à Programação

Conceitos c++ Prof. Demétrios Coutinho INFORMÁTICA BÁSICA

Objectivos. Programação I (2010/2011) 2 o Trabalho de Programação

Referências. Programação de Computadores II. Cap. 7 Cadeias de Caracteres. Caracteres. Tópicos

Produção de documentos acessíveis com Microsoft Word. Gabinete para a Inclusão (GPI)

Área Reservada do Beneficiário da ADM Informação em Tempo Real.

4ª Lista de Exercícios de Programação I

22 SET Área Cliente. Manual do Utilizador

MODELO DE DADOS RASTER OU VECTORIAL NO DESENVOLVIMENTO DE UM SIG

LISTA DE EXERCÍCIOS - ro. 04

Universidade Federal do ABC Disciplina: Natureza da Informação Lista de Exercícios 02 Códigos e conversão A/D Prof. João Henrique Kleinschmidt

Cartão Millennium bcp Free Refeição

Comandos de Desvio 1

Ministério Público. Guia de Consulta Rápida

O Manual do Ark. Matt Johnston Tradução: José Pires

Lista de Exercícios - Programação I (Pascal/ Python)

A prova é constituída por duas partes, prova escrita e prova oral, a ter lugar em datas distintas.

Transcrição:

Ficheiros binários 1 Ficheiros binários 1. Considere que dispõe de ficheiros binários cujo conteúdo é constituído por uma ou mais estruturas como a indicada a seguir struct registo { }; int ref; float var; int tm; A informação constante dos ficheiros representa medições de uma dada experiência de laboratório. O campo ref representa o número de referência da medição e var e tm os valores medidos em duas variáveis da experiência. Pretende-se fazer um programa que: a) aceite um parâmetro na linha de comando que representa o nome do ficheiro de entrada com o formato descrito; b) determine a média dos valores de cada uma das variáveis da experiência; c) determine a medição com o melhor (menor) coeficiente de aproximação, sendo este dado pela expressão: 1 var mvar mvar tm mtm mtm em que mvar e mtm representam as médias calculadas anteriormente e que se assume serem diferentes de zero; d) imprima as médias calculadas e os dados da medição com o melhor coeficiente de aproximação. 2. Implementar um programa que leia uma frase do teclado e a escreva num ficheiro. 3. Implementar um programa que procure num ficheiro uma palavra lida do teclado. Deve mostrar o número de vezes que a palavra existe no ficheiro. 4. Implementar um programa que conte o número de linhas de um ficheiro, usando (a) fgetc, (b) fgets. 5. Implementar: a) Uma função que permita copiar um ficheiro para um outro. b) Uma função que anexe um ficheiro ao final de outro. 6. Considere que o écran tem 25 linhas. Implementar um programa que leia um ficheiro de texto (nome passado via linha de comandos) usando fgets e o escreva no terminal de forma a que o texto do ficheiro seja visto um écran de cada vez. O programa deve esperar que o utilizador prima <enter> para mostrar o écran seguinte. Esta funcionalidade deve ser implementada sob a forma de função.

Ficheiros binários 2 7. Suponha que as linhas de um ficheiro contêm a designação de uma tarefa realizada durante um mês, seguida de quantos trabalhadores estiveram envolvidos nessa tarefa em cada um dos dias úteis do mês. Um valor negativo significa que a tarefa foi terminada. Exemplo: Polimento 0 1 2 2 1 3 2-1 significa que a tarefa Polimento envolveu 0 trabalhadores no 1º dia útil do mês, 1 no 2ª dia útil, etc., e terminou no 8º dia útil. Escrever e testar um programa que leia o ficheiro e calcule: qual o dia em que se trabalharam mais tarefas; qual o dia em que se terminaram mais tarefas; qual a tarefa que ocupou mais trabalhadores. 8. Pretende-se obter estatísticas de ocorrências de letras em textos na língua portuguesa. Para tal, criar um programa que leia um ficheiro e obtenha médias de ocorrências de todas as letras do alfabeto. Ter em conta que todas as letras devem ser convertidas para o mesmo caso (maiúscula ou minúscula), todas as vogais acentuadas devem ser convertidas para não acentuadas e todas as cedilhas devem ser retiradas dos cês com cedilha. 9. Uma revista musical organiza, semanalmente, uma pesquisa de opinião sobre a popularidade de discos. Os resultados da pesquisa são guardados num ficheiro discos.txt, com a seguinte informação por linha: nome do disco, nome do autor, discos vendidos. Escrever um programa que leia esta informação para um vector de registos e escreva os discos que têm vendas superiores a um certo valor. 10. Uma empresa possui representantes em várias cidades e pretende implantar a sua sede numa delas, de acordo com o critério: o custo anual das deslocações dos representantes das várias cidades à cidade sede deverá ser o menor possível. a) Escrever um programa que crie um ficheiro contendo a seguinte informação: nome da cidade; coordenadas da cidade (x, y); número de deslocações por ano dos representantes da cidade. b) Completar o programa por forma a ler o ficheiro e determinar a cidade a ser escolhida como sede. 11. Implementar um programa que: a) Se se chamar ordem devolve a maior palavra (usando a ordem alfabética rato é maior que elefante ) dos argumentos fornecidos. Tome esta opção como sendo a opção por omissão; b) Se se chamar conta devolve o número de argumentos com que foi invocado; c) Se se chamar lista manda para a saída standard os seus argumentos.

Ficheiros binários 3 12. Escreva um programa que permita construir uma lista de todas as palavras contidas num ficheiro, assim como o número de ocorrências de cada uma delas. 13. Escreva um programa que solicite um valor inteiro ao utilizador e apresente os múltiplos desse valor que estiverem presentes no ficheiro de texto dados1.txt (uma sua cópia pode ser encontrada na página Web da disciplina). 14. Implementar um programa que simule o funcionamento do comando wc do sistema Unix com a restrição que as opções aceites são -l, -w e -c para respectivamente linhas, palavras e caracteres. Assume-se que a entrada é a entrada standard se nenhum ficheiro for indicado na linha de comando. 15. Considere um programa de gestão de stocks em que cada componente do stock é identificado pelo nome, número de ordem e preço. a) Defina um tipo de registo, tstock, adequado à representação de um componente do stock e implemente uma rotina que leia um elemento deste tipo (passado por parâmetro). b) Implemente um procedimento que escreva componentes do stock num ficheiro stock.dat até o utilizador especificar um número de ordem igual a zero.

Ficheiros binários 4 1. Considere o ficheiro binário dados2.dat (uma sua cópia pode ser encontrada na página Web da disciplina). Os dados guardados neste ficheiro sãao estruturas do seguinte tipo: struct { int BI; char nome[100]; float peso, altura; }; Utilizando funções implemente um programa que: a) Liste o conteúdo do ficheiro. b) Solicite ao utilizador uma letra e copie todos os registos cujo campo nome comece por essa letra para o ficheiro $_inicial.dat (onde $ representa a letra escolhida pelo utilizador). c) Apresente o campo nome para o registo com o valor de peso mais elevado. d) Acrescente um novo registo (campos introduzidos pelo utilizador) ao ficheiro dados2.dat. 2. Altere o programa anterior de forma a que o programa permaneça em ciclo e, através dum menu, o utilizador possa escolher qual a tarefa a realizar. 3. Implementar um programa que use uma estrutura que permita guardar o nome, a morada e o número de telefone duma pessoa. Deve permitir, através de um menu, ler dados para uma estrutura desse tipo que sejam automaticamente guardados num ficheiro. O programa deve permitir mostrar o conteúdo do ficheiro da seguinte forma: ********** Registo 1 Nome : Morada : Telefone : ********** Registo 2 Nome : Morada : Telefone :... Assim, o menu deve ter as seguintes opções: inserir dados, mostrar dados, terminar. O menu, a inserção de dados e a exibição dos dados devem ser implementados usando funções.

Ficheiros binários 5 4. Altere o programa anterior de forma a que seja possível: a) Alterar dados dum registo, indicando o número do registo a alterar; b) Apagar um registo, indicando o número do registo a apagar (tem de acrescentar um campo à estrutura original que lhe indique se o registo é válido ou foi apagado); c) Ver apenas um registo do ficheiro, indicando o seu número. Implemente estas funcionalidades sob a forma de funções. Devem estar disponíveis através do menu do programa. 5. Para se representar as medições de uma dada experiência de laboratório, usa-se a estrutura registo definida da seguinte forma: struct registo { }; int ref; double var; int tm; em que o campo ref representa o número de referência da medição e, var e tm os valores medidos em duas variáveis da experiência. Considere que dispõe de ficheiros binários cujo conteúdo é constituído por uma ou mais estruturas registo. A informação existente nos ficheiros representa medições de uma dada experiência de laboratório. Implementar um programa que: aceite um parâmetro na linha de comando que representa o nome do ficheiro de entrada com o formato descrito; determine a média dos valores de cada uma das variáveis da experiência; determine a medição com o melhor (menor) coeficiente de aproximação, sendo este dado pela expressão: 1 var mvar mvar tm mtm mtm, em que mvar e mtm representam as médias calculadas anteriormente e que se assume serem diferentes de zero; imprima as médias calculadas e os dados da medição com o melhor coeficiente de aproximação. 6. Considere que o ficheiro estrut.dat possui informação representada por uma ou mais estruturas do tipo registo (exercício 14.). Implementar um programa que: aceite um parâmetro na linha de comando que represente o nome de um ficheiro de entrada com o formato acima descrito; imprima no ecrã os registos constantes nesse ficheiro, em modo textual, na forma de uma tabela e de acordo com o formato apresentado no ficheiro fbin.txt.

Ficheiros binários 6 7. Considere que o ficheiro estrut.dat possui informação representada por uma ou mais estruturas do tipo registo (exercício 14.). Implementar um programa que: dois ou mais parâmetros na linha de comando, sendo que o primeiro representa o nome do ficheiro de entrada, com o formato acima descrito, e o segundo e restantes números de ordem de registos (o primeiro registo tem o número de ordem 1); imprima no ecrã os registos pretendidos. Nota: o programa não deve ler a totalidade dos registos, mas limitar-se a ler os registos pretendidos. Para isso use a função fseek. 8. Considere que o ficheiro estrut.dat possui informação representada por uma ou mais estruturas do tipo registo (exercício 14.). Implementar um programa que: aceite dois parâmetros na linha de comando, representando o primeiro o nome de um ficheiro de entrada com o formato acima descrito e o segundo o nome de um ficheiro de saída; realize as tarefas especificadas no ficheiro filt.txt, que são as seguintes: a) determinar a média dos valores da variável var b) seleccionar os registos constantes no ficheiro de entrada que satisfaçam a condição de estarem na vizinhança de 1% da média e i) imprimi-los no ecrã, usando o mesmo formato do exercício 2; ii) escrevê-los no ficheiro de saída, em modo binário e num formato igual ao do ficheiro de entrada. 9. Escreva um programa que lê a seguinte informação sobre alunos de Programação e Algoritmos: nome, código, classificação à disciplina e idade. A informação relativa a cada aluno é guardada numa estrutura apropriada e a informação de todos os alunos é mantida num vector de estruturas. No início do programa a informação existente sobre alunos é lida de um ficheiro binário para o vector de estruturas (caso o ficheiro não exista, o programa deve criar o ficheiro vazio, ficando o vector por preencher) e o ficheiro é actualizado quando o programa termina. Deve disponibilizar as operações de inserir novos alunos, listar os alunos existentes, remover alunos e alterar informação sobre os alunos existentes.