Você está na página 1de 5

INSTITUTO SUPERIOR DE CONTABILIDADE E ADMINISTRAÇÃO DE COIMBRA

Algoritmos e Programação II
3.º Ano da Licenciatura Bi-Etápica em Informática de Gestão

Folha Prática n.º 6 2006/2007

Objectivos: Ser capaz de ... • utilizar convenientemente ficheiros de texto e binários


• utilizar as operações básicas sobre ficheiros: abrir, ler,
escrever, acrescentar e fechar
• definir modos adequados para acesso a ficheiros
• utilizar outras funções relativas a ficheiros

Exercício 1
a) Escreva uma função que peça frases ao utilizador e as guarde num ficheiro de texto
(FRASES.TXT). A introdução termina com a frase Sair. A função não deve ser case
sensitive.
b) Escreva uma função que receba o nome de um ficheiro de texto e que apresente o seu
conteúdo.
c) Escreva um programa que utilize as funções definidas nas alíneas anteriores.

Exercício 2
Faça um programa para transformar em minúsculas as letras presentes num ficheiro de texto.
Para testar o seu programa, utilize o ficheiro FRASES.TXT que gerou no exercício 1.

Exercício 3
a) Escreva uma função para eliminar de um ficheiro de texto todos os caracteres que não
sejam letras do alfabeto ou dígitos. A função recebe o nome do ficheiro e deve
considerar maiúsculas e minúsculas e colocar o resultado noutro ficheiro.
b) Faça um programa que utilize a função em a) e para gerar um novo ficheiro (a partir
do FRASES.TXT), cujo nome é pedido ao utilizador, onde não existam caracteres que
não sejam letras do alfabeto ou dígitos.

Exercício 4
Escreva um programa que faça a fusão de dois ficheiros de texto cujos nomes são pedidos
ao utilizador e mostre o resultado do ficheiro final utilizando a função definida em 1.b).

Exercício 5
Faça um programa que determine a taxa de espaços em branco existentes num ficheiro de
texto, cujo nome é pedido ao utilizador. Utilize o ficheiro FRASES.TXT para testar o seu
programa.

Exercício 6
a) Escreva uma função que peça n números inteiros ao utilizador e que armazene num
ficheiro de texto apenas os que forem superiores a um determinado valor que é
passado à função. A função recebe o nome do ficheiro, o número de números a pedir
e o valor para estabelecer comparação;
b) Faça uma função que intercale o conteúdo de dois ficheiros onde se encontram
valores armazenados com recurso à função da alínea anterior. Apenas são escritos

1
INSTITUTO SUPERIOR DE CONTABILIDADE E ADMINISTRAÇÃO DE COIMBRA
Algoritmos e Programação II
3.º Ano da Licenciatura Bi-Etápica em Informática de Gestão

Folha Prática n.º 6 2006/2007

valores enquanto houver elementos nos 2 ficheiros simultaneamente. A função devolve


um ponteiro para o ficheiro criado.
c) Faça um programa que utilize as funções anteriores e que apresente o resultado do
ficheiro final no ecrã.

Exercício 7
Pretende-se guardar em disco, num ficheiro de texto, informação relativa a pessoas, utilizando
para isso uma estrutura idêntica que permita armazenar nome, cidade, telefone e data de
nascimento. Os elementos pertencentes a uma mesma pessoa devem ser guardados, como
texto e na mesma linha do ficheiro, segundo o exemplo seguinte:

Ana Maria Lopes Coimbra 239700900 1 6 1970


Clara Pinto dos Santos Leiria 244890456 12 7 1975
Ricardo Teixeira Figueira da Foz 233234790 26 8 1971
Sónia Costa Lisboa 218998770 2 1 1976

São reservados 40 caracteres para o nome, 20 para a cidade, 10 para o telefone, 3 para dia e
mês e 5 para ano.
a) Escreva uma função que peça ao utilizador os dados de uma pessoa e os grave num
ficheiro. A função deverá prever que, em situações em que os campos não atinjam a
capacidade máxima, sejam colocados espaços para os separar. O nome do ficheiro é
passado à função;
b) Escreva uma função que faça o mesmo que na alínea a) mas que separe o conteúdo
dos campos com o carácter ‘,’ (vírgula);
c) Escreva uma função que apresente no ecrã os dados de todas as pessoas guardadas no
ficheiro conforme a alínea a). A função recebe como parâmetro o nome do ficheiro.
d) Implemente uma função que faça o mesmo da da alínea c) mas desta vez para o
ficheiro com os campos separados por ‘,’.
e) Escreva um pequeno programa que implemente uma base de dados, que terá a
capacidade de:
- guardar dados de uma nova pessoa;
- ler os dados de todas as pessoas guardadas em disco e mostrá-los um a um.
O programa deverá usar um menu com as seguintes opções:

MENU
N – Introduz dados duma nova pessoa
L – Lista dados de todas as pessoas
S - Sair

2
INSTITUTO SUPERIOR DE CONTABILIDADE E ADMINISTRAÇÃO DE COIMBRA
Algoritmos e Programação II
3.º Ano da Licenciatura Bi-Etápica em Informática de Gestão

Folha Prática n.º 6 2006/2007

Exercício 8
Escreva um programa que utilize funções adequadas para:
• ler valores inteiros e guardá-los num ficheiro binário de nome NUMEROS.DAT. A
introdução dos valores termina com -1;
• determinar o número de elementos que compõem o ficheiro;

Exercício 9
Escreva um programa que, a partir do ficheiro anterior NUMEROS.DAT, utilize funções
adequadas para:
• apresentar o conteúdo do ficheiro pela ordem sequencial existente no ficheiro;
• apresentar o conteúdo do ficheiro por ordem inversa à do armazenamento no ficheiro;
• apresentar apenas os elementos que se encontram a partir do meio do ficheiro até ao
último elemento.

Exercício 10
Implemente um programa que utilize funções adequadas para:
• determinar se um número inteiro é divisível por um valor (ambos passados à função);
• contar o número de elementos presentes num ficheiro de inteiros que são divisíveis por
um valor introduzido pelo utilizador, utilizando a função implementada em a). Esta função
recebe o nome do ficheiro e o valor introduzido pelo utilizador;
• gerar um novo ficheiro (MULTIPLOS.DAT) que contenha apenas os números que são
múltiplos do valor introduzido pelo utilizador;
Utilize o ficheiro NUMEROS.DAT para testar o seu programa.

Exercício 11
Escreva um programa que analise um ficheiro de números inteiros e crie dois novos ficheiros,
um com os números pares (PAR.DAT) e outro com os números ímpares (IMPAR.DAT), que
constam do ficheiro original. O seu programa deve utilizar uma função par (desenvolvida por
si) que recebe um número inteiro e que retorna 1 (um) se o número for par e 0 (zero) se não
o for.
Utilize o ficheiro NUMEROS.DAT para testar o seu programa.

Exercício 12
Escreva um programa que leia e guarde números reais num ficheiro binário e que utilize as
seguintes funções:
• função que gera aleatoriamente n valores reais, utilizando para o efeito a função rand(), e
os guarde num ficheiro binário. São passados à função o nome do ficheiro e o número de
elementos que se quer criar;
• função que calcula a média dos números guardados no ficheiro;

3
INSTITUTO SUPERIOR DE CONTABILIDADE E ADMINISTRAÇÃO DE COIMBRA
Algoritmos e Programação II
3.º Ano da Licenciatura Bi-Etápica em Informática de Gestão

Folha Prática n.º 6 2006/2007

• função que devolve o último valor presente no ficheiro;


• função que conte quantos números reais presentes num ficheiro binário são inferiores ao
último;

O programa deverá utilizar as funções anteriores e basear-se no seguinte menu:

MENU
G – Gerar ficheiro M – Calcula a Média V- Ver último S – Sair

Exercício 13
Pretende-se implementar um programa para gerir uma base de dados mais eficiente que a do
último exercício da folha prática n.º 8, utilizando, desta vez, um ficheiro binário, permitindo
também a Consulta e Eliminação de um registo por nome. O menu de opções deverá ser o
seguinte:

MENU
N – Introduzir dados duma nova pessoa
L – Listar dados de todas as pessoas
T – Actualizar pessoa
C – Consultar dados por nome
A – Apagar dados da pessoa
S - Sair

Para executar estas acções o programa terá de usar funções para:


• Introdução de dados de uma pessoa;
• Listagem de todos os dados guardados;
• Actualização dos dados de uma pessoa. Devem ser pedidos nome, cidade, telefone e data
de nascimento e serem sobrepostos esses campos aos existentes no ficheiro para a
pessoa. A indicação da pessoa a alterar deve ser dada pelo nome;
• Consulta de dados de uma pessoa. Esta consulta é feita com base no nome da pessoa.
• Apagar os dados de uma pessoa. A pessoa em causa é localizada através do seu nome.

4
INSTITUTO SUPERIOR DE CONTABILIDADE E ADMINISTRAÇÃO DE COIMBRA
Algoritmos e Programação II
3.º Ano da Licenciatura Bi-Etápica em Informática de Gestão

Folha Prática n.º 6 2006/2007

Exercício 14
Consideremos a estrutura que permite guardar os dados de um piloto de Fórmula 1, usando
para o efeito os seguintes campos:
- Nome (string de 40 caracteres)
- Nacionalidade (string de 15 caracteres)
- Idade (inteiro)
- Equipa (string de 20 caracteres)
- Se é ou não primeiro piloto (caracter)
- Número do seu automóvel (inteiro)
- Número de pontos no mundial (inteiro)

a) Escreva uma função para ler os dados relativos ao piloto.


b) Escreva uma função que permita apresentar os dados de um piloto previamente
pesquisado através do seu nome (use a pesquisa sequencial para o efeito).
c) Escreva uma função que liste todos os pilotos de uma mesma equipa. São passados à
função o nome do ficheiro e a equipa.
d) Escreva uma função que leia a informação sobre os pilotos e que apresente nomes,
equipa e pontos, ordenando os pilotos por ordem decrescente do n.º de pontos.
e) Escreva um programa que utilize as funções anteriormente escritas.