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.

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.

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

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

Entregue um único arquivo tp2.tgz que contenha por sua vez os seguintes arquivos:

  • racionais.h: o mesmo arquivo fornecido, não o modifique
  • racionais.c: sua implementação das funções definidas em racionais.h
  • tp2.c: contém a função main que usa os racionais
  • makefile
  • c/numeros_racionais_-_ponteiros.txt
  • Última modificação: 2023/09/20 11:35
  • por maziero