Números racionais - ponteiros
Este projeto foi inicialmente proposto pelo prof. Marcos Castilho para a disciplina de Programação 1 (CI1001).
Este trabalho visa modificar o módulo de números racionais desenvolvido anteriormente para usar ponteiros e funções com passagem de parâmetros por referência.
Atividade
Você deve implementar um programa que manipule números racionais, que são números da forma a/b, onde a e b são números inteiros. Nesta versão, as funções que manipulam racionais usam passagem de parâmetros por referência.
Você deve baixar este arquivo e abri-lo para poder fazer o trabalho, pois irá precisar de todos os arquivos ali contidos:
racionais.h
: arquivo de cabeçalho com os protótipos das funções (não deve ser alterado).racionais.c
: arquivo que implementa as operações sobre números racionais (“esqueleto” a completar).tp2.c
: código que usa a biblioteca de racionais (“esqueleto” a completar).makefile
: arquivo do utilitário “make” para compilar seu código.
No arquivo racionais.h
foi definida uma estrutura (struct) para o tipo abstrato de dados racional e os protótipos das funções que permitem manipular essa estrutura. Você deve implementar essas funções no arquivo racionais.c
.
Este enunciado foi produzido pelo prof. Castilho para este projeto.
Programa principal
O programa principal (tp2.c
) contém a função main
. Ele deve incluir o header racionais.h
e implementar corretamente o seguinte pseudocódigo:
leia um n tal que 0 < n < 100 crie um vetor de n posicoes contendo numeros racionais - os racionais devem ser inicializados com valores lidos do teclado imprima este vetor elimine deste vetor os elementos inválidos imprima o vetor resultante ordene este vetor imprima o vetor resultante calcule e imprima a soma de todos os elementos do vetor retorne 0
Exemplo de funcionamento
Considerando que o usuário digitou a seguinte entrada:
15 -1 3 5 0 2 7 1 9 9 0 8 -5 -7 0 0 8 6 11 7 -17 1 0 12 36 -5 20 4 9 5 0
A saída correspondente deve ser:
-1/3 INVALIDO 2/7 1/9 INVALIDO -8/5 INVALIDO 0 6/11 -7/17 INVALIDO 1/3 -1/4 4/9 INVALIDO -1/3 4/9 2/7 1/9 -1/4 -8/5 1/3 0 6/11 -7/17 -8/5 -7/17 -1/3 -1/4 0 1/9 2/7 1/3 4/9 6/11 SOMA = -206177/235620
Entregáveis
Entregue um único arquivo tp2.tgz
que contenha por sua vez os seguintes arquivos:
racionais.h
: o mesmo arquivo fornecido, não o modifiqueracionais.c
: sua implementação das funções definidas emracionais.h
tp2.c
: contém a funçãomain
que usa os racionaismakefile