Nesta tarefa você deverá desenvolver um programa que calcule o número total de mortes
infantis relatadas no arquivo. Um primeiro passo consiste na leitura do arquivo, isto é,
consiste em colocar em variáveis Scilab informações presentes no arquivo. A figura abaixo
ilustra o que desejamos desta etapa..
=====================================================================
==
Parte 1: Extração de campos
Vamos começar pela extração dos campos de uma linha do arquivo de entrada. Construa
uma função [codigoIBGE,municipio,obitos] =
extraiCamposObitos(linha) que receba em linha um string com uma linha do
arquivo, e dessa linha extraia valores para os
campos codigoIBGE (string), municipios (string) e obitos (numérico)
Veja abaixo um exemplo de uso desta função:
-->linha = "315350; Alto Jequitibá;1";
-->[codigoIBGE,municipio,obitos] = extraiCamposObitos(linha)
obitos =
1.
municipio =
Alto Jequitibá
codigoIBGE =
315350
=====================================================================
=
Parte 2: Leitura do arquivo
Construa uma função [tabCodigosIBGE,tabMunicipios,tabObitos] =
leArquivoObitos() que utilize a função uigetfile para localizar um arquivo com
dados sobre óbitos infantis, e dali extrair os vetores
coluna tabCodigosIBGE, tabMunicipios e tabObitos, com os valores dos códigos
IBGE, nomes de municípios e número de mortes infantis presentes no arquivo. Sua função
deve funcionar para qualquer tamanho de arquivo, e deve fazer uso da
função extraiCamposObitos para extrair os campos de cada linha. Você deve
entretanto submeter um arquivo fonte contendo somente a função leArquivoObitos;
nós forneceremos a extraiCamposObitos.
Se você utilizar o comando mgetl para a leitura de todas as linhas do arquivo, como
aconselhamos acima, você deve eliminar o primeiro elemento do vetor de strings lido, que
corresponde à linha com o cabeçalho.
Para isso, você pode atribuir ao vetor linhas o vetor formado por seus elementos, do
segundo até o último.
Veja abaixo um teste feito utilizando o arquivo ÓbitosInfantisMG2013.csv:
-->[tabCodigosIBGE,tabMunicipios,tabObitos] = leArquivoObitos();
-->size(tabMunicipios)
ans =
587. 1.
-->tabCodigosIBGE(1:4)
ans =
!310020 !
! !
!310030 !
! !
!310050 !
! !
!310060 !
-->tabMunicipios(585:587)
ans =
!Virginópolis !
! !
!Visconde do Rio Branco !
! !
!Wenceslau Braz !
===================================================
Parte 3: Programa que lê o arquivo e calcula o número total de óbitos infantis.
Faça agora um programa que leia um arquivo com dados de óbitos infantis por município,
e imprima uma frase indicando o número de municípios presentes no arquivo, e o total de
óbitos infantis. Seu programa deve utilizar a função leArquivoObitos, mas você não
precisa submetê-la junto com o programa principal; nós forneceremos esta função.
Em um teste com o arquivo ÓbitosInfantisMG2013.csv nosso programa gabarito
imprimiu:
Em 587 municípios presentes no arquivo, encontramos 3141 óbitos infantis
Atenção: