Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
c:numeros_racionais_-_ponteiros [2024/09/24 19:15] – maziero | c:numeros_racionais_-_ponteiros [2024/10/15 14:05] (atual) – maziero | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== Números racionais - ponteiros ====== | ||
+ | |||
+ | |||
+ | {{ homer-computer.png? | ||
+ | |||
+ | 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 < | ||
+ | |||
+ | Você deve baixar {{tp2.tgz|este arquivo}} e abri-lo para poder fazer o trabalho, pois irá precisar de todos os arquivos ali contidos: | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | No arquivo '' | ||
+ | |||
+ | ==== Programa principal ==== | ||
+ | |||
+ | O programa principal ('' | ||
+ | |||
+ | < | ||
+ | defina um vetor para até 100 números racionais | ||
+ | |||
+ | leia um valor n tal que 0 < n < 100 | ||
+ | |||
+ | preencha o vetor com n números racionais lidos da entrada | ||
+ | (leia o numerador e o denominador de cada racional) | ||
+ | |||
+ | imprima "VETOR = " e o conteúdo do vetor lido | ||
+ | |||
+ | elimine deste vetor os elementos inválidos | ||
+ | imprima "VETOR = " e o conteúdo do vetor resultante | ||
+ | |||
+ | ordene este vetor | ||
+ | imprima "VETOR = " e o conteúdo do vetor resultante | ||
+ | |||
+ | calcule a soma de todos os elementos do vetor | ||
+ | imprima "SOMA = " e a soma calculada acima | ||
+ | nova linha | ||
+ | |||
+ | retorne 0 | ||
+ | </ | ||
+ | |||
+ | <note important> | ||
+ | O acrônimo **NaN** significa [[https:// | ||
+ | </ | ||
+ | |||
+ | ==== Exemplo de funcionamento ==== | ||
+ | |||
+ | Considerando que o usuário digitou a seguinte entrada (que está no arquivo '' | ||
+ | |||
+ | < | ||
+ | 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 1 | ||
+ | 4 9 | ||
+ | 5 0 | ||
+ | </ | ||
+ | |||
+ | A saída correspondente deve ser: | ||
+ | |||
+ | < | ||
+ | VETOR = -1/3 NaN 2/7 1/9 NaN -8/5 NaN 0 6/11 -7/17 NaN 1/3 -5 4/9 NaN | ||
+ | VETOR = -1/3 4/9 2/7 1/9 -5 -8/5 1/3 0 6/11 -7/17 | ||
+ | VETOR = -5 -8/5 -7/17 -1/3 0 1/9 2/7 1/3 4/9 6/11 | ||
+ | SOMA = -331343/ | ||
+ | </ | ||
+ | |||
+ | Para a entrada de dados contida no arquivo '' | ||
+ | |||
+ | < | ||
+ | VETOR = NaN NaN | ||
+ | VETOR = | ||
+ | VETOR = | ||
+ | SOMA = 0 | ||
+ | </ | ||
+ | |||
+ | Para a entrada de dados contida no arquivo '' | ||
+ | |||
+ | < | ||
+ | VETOR = 19/3 16/3 2/9 11/16 -9 -7/19 15/16 1/13 -7/18 13/20 11/9 16/15 -17/15 2/7 7/4 5/6 -9/10 NaN 1/12 3/2 -17/12 8/3 5/3 14/13 -9 2/9 1/9 18/19 -13/10 -7 -11/17 17/20 -1/14 1/6 NaN -12/7 0 4/7 -2/7 -7/15 1/11 11/2 8/3 19/11 19/2 2/7 8/19 -1 -1 -3/11 | ||
+ | VETOR = 19/3 16/3 2/9 11/16 -9 -7/19 15/16 1/13 -7/18 13/20 11/9 16/15 -17/15 2/7 7/4 5/6 -9/10 -3/11 1/12 3/2 -17/12 8/3 5/3 14/13 -9 2/9 1/9 18/19 -13/10 -7 -11/17 17/20 -1/14 1/6 -1 -12/7 0 4/7 -2/7 -7/15 1/11 11/2 8/3 19/11 19/2 2/7 8/19 -1 | ||
+ | VETOR = -9 -9 -7 -12/7 -17/12 -13/10 -17/15 -1 -1 -9/10 -11/17 -7/15 -7/18 -7/19 -2/7 -3/11 -1/14 0 1/13 1/12 1/11 1/9 1/6 2/9 2/9 2/7 2/7 8/19 4/7 13/20 11/16 5/6 17/20 15/16 18/19 16/15 14/13 11/9 3/2 5/3 19/11 7/4 8/3 8/3 16/3 11/2 19/3 19/2 | ||
+ | SOMA = 82626407/ | ||
+ | </ | ||
+ | |||
+ | ===== Entregáveis ===== | ||
+ | |||
+ | Entregue um único arquivo '' | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||