AV 09 - Programação de Computadores UFMG
Universidade Federal de Minas Gerais
Departamento de Ciência da Computação
Avaliação: AV-09 – Questão Aberta
Problema
Fazer um programa que leia os arquivos:
TabelaSUS.csv (contém as colunas Código e Procedimento);
ProduçaoSUS.txt (contém as colunas Código e Valor);
Os quais se encontram no material do aluno, e produzir como arquivo de saída uma tabela que contenha as seguintes colunas: Código, Gastos e Procedimento, em que cada linha da nova tabela deve conter o gasto mensal por procedimento.
Solução
Utilizamos o comando ‘uigetfile’ para abrir os arquivos. Entretanto o arquivo ProduçãoSUS.txt pode ser aberto com o uso do comando ‘fscanMat’, ao passo que para o arquivo TabelaSUS.csv tivemos que utilizar o comando ‘read_csv’ devido ao seu formato.
Depois definimos o tamanho das matrizes, e criamos uma terceira coluna na matriz TabelaSUS com os valores dos gastos.
O programa deverá ler todas as linhas da TabelaSUS e comparar com os códigos da tabela ProduçaoSUS somando os valores de gasto para códigos iguais. A leitura da matriz TabelaSUS começa na linha 2 e vai até a última linha porque a primeira linha é apenas o cabeçalho e não deve, portanto, ser lida. Enquanto a matriz ProduçaoSUS não contém cabeçalho e portanto sua leitura vai da primeira linha à última.
Agregamos a coluna ‘Gastos’ o valor inicial = 0 ao passo que a cada leitura o programa realizará a soma para códigos iguais.
A matriz final será a TabelaSUS + a coluna de gastos agregada a esta. O comando ‘disp’ igualmente o comando ‘fprintfmat’ é utilizado para imprimir a nova tabela: tab1.
Teste
Executamos a função:
Selecionamos o arquivo TabelaSUS.csv:
Selecionamos o arquivo ProduçaoSUS.txt:
Em seguida a nova tabela foi carregada: