Informática para Ciências e Engenharias B

Documentos relacionados
Informática para Ciências e Engenharias-B 2017/18

Informática para Ciências e Engenharias-B 2018/19

Informática para Ciências e Engenharias (C) Trabalho Prático /18

17 - Consultas em SQL

CI218 - Trabalho - 2 o sem/2016

1 - Ambiente de desenvolvimento

Informática para Ciências e Engenharias 2013/14. Teórica 3

Introdução ao MatLab Gráficos e manipulação de dados

Fundamentos de Programação

Tarefa Orientada 7 Consultas de selecção

Introdução à Programação. João Manuel R. S. Tavares

Informática para Ciências e Engenharias - 2º semestre 2018/2019

Laboratório 5 Estruturas de Selecção

Introdução à Programação Estruturada Parte 2. Material da Prof. Ana Eliza

Informática para Ciências e Engenharias - 2º semestre 2016/2017

Informática para Ciências e Engenharias - 2º semestre 2016/2017

Estruturas de Dados I Enunciado do Trabalho Prático

Ficha 1 Noções de sequência e decisão em algoritmia

Ficheiros de texto 1. Ficheiros de texto. 1. Implementar um programa que leia uma frase do teclado e a escreva num ficheiro.

Concepção e Fabrico Assistido por Computador

Métodos de Programação I Ana Maria de Almeida

Prática 10 - Funções

Quinto Trabalho Prático. Este trabalho tem como objetivo indexar arquivos de dados usando um índice árvore-b.

Informática para Ciências e Engenharias - 2º semestre 2017/2018

Programação 2010/2011 MEEC

Informática para Ciências e Engenharias - 2º semestre 2017/2018

Tarefa Orientada 9 Base de Dados Pagamentos

Importar e Exportar Dados

Inventários no Sistema Lasernet 2000

Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas

X-IntegConfig. Configuração da integração do X-Mobile. Versão 1.0.7

Objectivos. Programação I (2010/2011) 2 o Trabalho de Programação

Trabalho Prático 2015 Simulador de Circuitos Opção 1 Versão /11/2013

O Manual do Kanagram. Danny Allen Tradução: José Pires

Introdução aos Algoritmos e Estruturas de Dados 2011/2012

Informática para Ciências e Engenharias B

Interpolação polinomial

Introdução à Programação

2 o Teste de ICE-B, 8 de Junho de 2019 (Versão B)

Processamento Simbólico Polinómios e Equações Gráficos

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

Cálculos. Área de superfície corporal (BSA): Dose com base na área de superfície corporal: Dose aproximada = BSA (m 2 ) x dose adulta normal 1,73 m 2

O Manual do KSystemLog. Nicolas Ternisien

COMPUTAÇÃO E PROGRAMAÇÃO 1º Semestre 2010/2011 MEMec, LEAN

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2006/2007

Configuração da Notificação do Sistema. Mike McBride Tradução: José Pires

Fundamentos de Programação

Aula 6: Entrada e Saída

1 Como compilar seu código? 2 Comandos de terminal:

Realização: Apoio: Patrocínio:

Desenvolvimento de programas

Programação de Computadores

Atalhos Personalizados. Subhashish Pradhan T.C. Hollingsworth Tradução: José Pires

Informática II Cap. 5-2 Bases de Dados - MsAccess

Exercícios: Arquivos

Procalc v1.0. Versão Utilizador (Manual de Utilizador)

Processamento de Linguagens I LESI + LMCC (3 o ano)

Algoritmos - 3. Alexandre Diehl. Departamento de Física - UFPel

Introdução à Computação Engenharia Civil

Técnicas de Programação

Informá(ca para as Ciências e Engenharias Versão : C (Engenharia Civil) Pedro Barahona 2016 / 17

Sistema de Controlo de Voluntários de Campanhas. Banco Alimentar Contra a Fome Porto Módulo de acesso público

Introdução a Algoritmos Parte 08

Introdução à Informática Engenharia Agrícola

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS

Windows 95/98/Me/2000

Para cada programa, por mais simples que seja, comece sempre por esboçar a solução desenhando um fluxograma.

PDA - Repetição. Estruturas de repetição. Slides adaptação de Deise Saccol

aplicação arquivo Condições Gerais de Utilização

Informática para Ciências e Engenharias 2014/15. Teórica 4

ESTRUTURA CONDICIONAL E SELEÇÃO

iportaldoc - Tarefas

2 o Teste de ICE-B, 6 de Junho de 2018 (Versão B)

O Manual do KNotes. Fabian Dal Santo Greg M. Holmes Revisão: Lauri Watts Tradução: José Pires

Ficheiros. Capítulo 8

Informática para as Ciências e Engenharias - 2º semestre 2015/2016

Associações de Ficheiros. Mike McBride Tradução: José Pires

Aula 4B. Lógica e Algoritmos. Profª. Fabiany

Figura 3.42 Resultados das medidas de tendência central.

Neste exercício, vamos criar uma Folha de Cálculo, onde vamos utilizar alguns Controlos de Formulários.

Exercícios Repetição

Introdução à Pseudo-código PROGRAMAÇÃO I (COM06842) LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039)

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Aprender a utilizar o aplicativo Gnuplot para fazer gráficos

Introdução à Programação Orientada a Objetos. Prof. Leonardo Barreto Campos 1

Análise do problema. Desenvolvimento de programas. Desenvolvimento do algoritmo. Análise do problema

Software for glucose data management. Manual

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Aula Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof.

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

Linguagem de Descrição de algoritmos

Apresentação. Informação geral + Conceitos iniciais

Programação II. Aula 3

Aula 5 do módulo I Dr. Sidney Rosa Vieira 29/03/2005 a 04/04/2005

Análise de complexidade

FUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara

RESOLUÇÃO. Computação e Programação (2009/2010-1º Semestre) 1º Teste (11/11/2009) Nome. Número. Leia com atenção os pontos que se seguem:

Transcrição:

Informática para Ciências e Engenharias B Trabalho Prático 2016/17 1 Objetivo do Trabalho A depuração plasmática é o processo de remoção de uma substância do plasma sanguíneo, principalmente por acção dos rins. A constante de depuração plasmática é normalmente calculada em mililitro por minuto e representada pela letra C (de clearance em Inglês). Esta constante corresponde ao volume de plasma do qual a substância pode ser eliminada em cada unidade de tempo. O objectivo deste trabalho é criar um programa em Matlab e SQL que facilite a organização de dados sobre a eliminação de um fármaco do sangue de um conjunto de pacientes voluntários. Como os médicos responsáveis não sabem programar mas precisam de obter vários relatórios, gráficos e processar vários conjuntos de dados, o programa irá ler um ficheiro com um conjunto de comandos, escrito pelos médicos, e irá executar cada um desses comandos pela ordem dada. 1.1 Cálculo das constantes de depuração Se um fármaco estiver presente no sangue com concentração [F ], a variação na sua concentração é dada pela equação: V d[f ] = C [F ] (1) dt onde V é o volume total de plasma sanguíneo e C a constante de depuração plasmática. Integrando esta equação, considerando que o fármaco foi introduzido no sangue com concentração inicial F 0, a sua concentração plasmática ao longo do tempo é dada por: [F ] t = [F ] 0 e C V t (2) onde C é a constante de depuração, t o tempo, [F ] 0 a concentração inicial do fármaco e V o volume plasmático total. Também é útil considerar um parâmetro independente do volume de plasma. Assim, podemos definir a constante relativa de depuração, C r, como sendo: C r = C V (3) Desta forma, podemos escrever assim a equação diferencial 2: e calcular C r pela regressão linear dos logaritmos das concentrações: C r = 1 N [F ] t = [F ] 0 e Crt (4) N n=1 ln([f ] n /[F ] 0 ) t n (5) onde C r é a constante relativa de depuração, N o número de amostras consideradas, [F ] n a concentração da amostra n, t n o tempo da amostra n (em horas) e [F ] 0 a concentração inicial do fármaco, nas mesmas unidades que [F ] n (mg/l, neste caso). Note que o logaritmo é o logaritmo natural, de base e. 1

Para calcular a constante de depuração de um paciente podemos calcular a constante relativa de depuração pela equação (5) e depois multiplicar o resultado pelo volume plasmático do paciente. Se for do sexo masculino, o seu volume plasmático será aproximadamente 39ml por Kg de peso. Se for do sexo feminino, será 40ml por Kg de peso. Finalmente, é preciso notar que o tempo das amostras é dado em horas e a constante de depuração deve ter unidades de mililitro por minuto. Assim, é preciso dividir por 60 para converter as unidades antes de apresentar o resultado final. 2 Descrição do Problema 2.1 Programa Pretende-se um programa cuja função principal se chame processar receba como argumento o nome de um ficheiro com os comandos a processar: function processar(nomefichcomandos) O ficheiro nomefichcomandos contém um comando por linha. Os comandos podem surgir por qualquer ordem, sendo aceites os seguintes: CONFIG nomebd concinicial O comando CONFIG vem sempre seguido de um espaço, depois o nome da base de dados usar, outro espaço e o valor da concentração inicial do fármaco dada em miligrama por litro de plasma sanguíneo do paciente. Estes parâmetros são persistentes. Ou seja, para todos os comandos que se seguirem a um comando CONFIG deve ser considerada a base de dados e a concentração inicial indicadas nesse comando CONFIG até que seja encontrado outro comando CONFIG que especifique outros valores. CRIAR TABELAS Ao encontrar este comando o programa deve criar duas tabelas na base de dados indicada no parâmetro nomebd do último comando CONFIG encontrado até ao momento: Tabela Pacientes com campos para o identificador do paciente (um número inteiro único para cada paciente), o sexo (um carácter, M ou F), a idade (um número inteiro) e o peso (um número real). Tabela Amostra com campos para o identificador de cada amostra de plasma retirada do paciente (um número inteiro único para cada amostra), o identificador do paciente (um número inteiro), o número de horas após a administração do fármaco (um número real) e a concentração do fármaco no plasma, em miligrama por litro de plasma (um número real). PACIENTES nomeficheiro Ler um ficheiro com o nome indicado e carregar a informação para a tabelas dos pacientes na base de dados indicada pelo último comando CONFIG. Cada paciente está descrito numa linha do ficheiro com o seguinte formato: o identificador do paciente, o seu sexo, a sua idade (em anos) e o seu peso (em Kg), separados pelo carácter ; Exemplo de parte de um ficheiro dos pacientes: 2

1;F;53;56.1 2;M;66;87.8 3;F;54;50.0 4;M;38;85.6 5;F;54;55.4... AMOSTRAS nomeficheiro Ler um ficheiro com o nome indicado e carregar a informação para a tabelas das amostras na base de dados indicada pelo último comando CONFIG. Cada amostra está descrita numa linha do ficheiro com o seguinte formato: o identificador da amostra, o identificador do paciente, o tempo decorrido desde a injecção do fármaco (em hora) e a concentração do fármaco no plasma sanguíneo (em miligrama por litro), separados pelo carácter ; Exemplo de parte de um ficheiro das amostras: 1;8;15.01;101.34 2;28;10.11;100.61 3;21;12.80;74.92 4;10;14.61;72.63 5;20;18.05;42.61... RELATORIO nomeficheiro sexo minidade maxidade Escrever no ficheiro nomefich o identificador de cada paciente, e a constante de depuração calculada pelas amostras correspondentes, para cada paciente que cumpra as restrições indicadas nos argumentos do comando: sexo seleccionar apenas pacientes do sexo indicado (M ou F) ou qualquer sexo se o carácter neste argumento for *. minidade seleccionar apenas pacientes com idade maior ou igual ao valor indicado, ou sem mínimo de idade se o valor indicado for *. maxidade seleccionar apenas pacientes com idade menor ou igual ao valor indicado, ou sem máximo de idade se o valor indicado for *. Exemplos de comandos de relatório: RELATORIO todos.txt * * * RELATORIO masculino.txt M * * RELATORIO feminino.txt F * * RELATORIO menos_30.txt M * 30 RELATORIO mais_30.txt M 30 * 3

Para calcular a constante de depuração para cada paciente deve calcular primeiro a constante relativa usando os dados para esse paciente (pela equação 5) e depois multiplicar pelo volume plasmático do paciente (39ml por Kg de peso se do sexo masculino; 40ml por Kg de peso se do sexo feminino). Finalmente, como isto irá dar a constante de depuração em mililitro por hora, deverá dividir por 60 para obter a constante nas unidades desejadas de mililitro por minuto. Este é o exemplo do relatório gerado com o comando RELATORIO menos 30.txt M * 30, em que cada linha tem o identificador do paciente e a constante de depuração calculada para esse paciente, com as suas amostras correspondentes: 19;2.778285 24;2.779689 GRAFICO nomeficheiro sexo minidade maxidade Gravar num ficheiro um gráfico com todos os valores obtidos para o conjunto seleccionado de pacientes, e indicando com uma linha a curva teórica prevista para a concentração do fármaco no sangue calculando a constante de depuração usando todos os pontos deste conjunto e traçando o gráfico para um período de 100 horas. As condições de selecção dos pacientes são as mesmas para o relatório, incluindo a possibilidade de usar um carácter * para indicar qualquer valor nesse parâmetro (sexo, idade mínima ou idade máxima). Para o cálculo da curva teórica, deve usar a equação 5 para obter a constante relativa de depuração usando todas as amostras dos pacientes seleccionados, e depois calcular a curva usando a equação 4. Note que, sendo as ordenadas em horas, esta constante C r deve estar nas unidades de hora 1, senão a curva não ficará correcta. O título do gráfico deve incluir o valor da constante de depuração C calculada a partir de todas as amostras de todos os pacientes seleccionados. Esta constante deve vir nas unidades de mililitro por minuto. Para obter a constante de depuração a partir da constante relativa C r calculada deverá considerar um valor de volume plasmático igual à média dos valores associados a todas as amostras. Para gravar o gráfico pode usar a função saveas. Esta função recebe o identificador do gráfico, que é fornecido pela função figure, e o nome do ficheiro onde gravar o gráfico. Por exemplo: id = figure; plot([1,2,3,4],[3,1,2,5]); saveas(id, teste.png ); As imagens abaixo mostram os dois gráficos do ficheiro de comandos fornecido, para pacientes com menos de 30 anos (esquerda) ou mais de 30 anos (direita). 4

3 Dados do Trabalho O arquivo trabalho.zip, disponibilizado no CLIP e na página da cadeira tem os ficheiros orders.txt, pacientes.txt e amostras.txt, que podem ser usados como exemplos para testar o seu programa. Deve também incluir na sua pasta de trabalho os ficheiros sqlite3.exe, sqlite.m e parserecords.m para o acesso às base de dados. Estes ficheiros foram usados na ficha 8 e estão disponíveis na página da cadeira. Além disso, sugerimos que crie também outros ficheiros de comandos para testar partes do seu programa. Por exemplo, um que apenas cria as tabelas e insere os dados; outro que usa uma base de dados já existente e só faz relatórios ou gráficos, e assim por diante. Desta forma pode ser mais fácil testar partes específicas do seu programa. 4 Critérios de Avaliação do Trabalho De acordo com o Regulamento de Avaliação de Conhecimentos da FCT/UNL, 1 os estudantes diretamente envolvidos numa fraude são liminarmente reprovados na disciplina. Em ICE, considera-se que um aluno que dá ou que recebe código num trabalho comete fraude. Os alunos que cometerem fraude num trabalho não obterão frequência. Os trabalhos serão avaliados de acordo com os seguintes critérios. Utilização correta dos elementos básicos da linguagem Matlab. Decomposição adequada do problema em sub-problemas. Código legível (nomes, indentação, etc.) e comentado. Criação correta da tabela Pacientes na base de dados nomebd. Criação correta da tabela Amostras na base de dados nomebd. Inserção correta dos dados dos ficheiros nas tabelas respectivas da base de dados nomebd. Criação dos ficheiros de relatórios e cálculo das constantes dos pacientes. Criação dos gráficos com os dados e a curva correctamente calculada. 1 Em http://www.fct.unl.pt/sites/default/files/documentos/estudante/informacao_academica/reg_ Aval.pdf 5

Selecção correcta dos registos usados no relatório e nos dados. Implementação genérica. O programa deve ser capaz de processar qualquer ficheiro de comandos cujos comandos possam ser processados. Só deve assumir que: as tabelas da base de dados são Pacientes e Amostras, com os campos indicados no enunciado; os comandos a processar são dos tipos indicados; os ficheiros referidos nos comandos PACIENTES e AMOSTRASexistem na pasta de trabalho; os comandos PACIENTES e AMOSTRAS só irão aparecer no ficheiro de comandos depois de seleccionada uma base de dados que já tenha as tabelas criadas. Para a nota do trabalho ser 20, tudo tem de estar certo. Mas a nota do trabalho será um número entre zero e vinte. Portanto, se o programa for decomposto em funções, a incorrecção de uma função não deve impedir a programação das outras. Por exemplo, é preferível fazer um programa que processe só alguns comandos a não fazer programa nenhum. Pode também simplificar o programa ignorando alguma funcionalidade. No entanto, estas simplificações penalizarão a nota final: Ignorar os critérios de selecção e usar todos os registos nos comandos RELATORIO e GRA- FICO: penaliza 3 valores. Ignorar o comando RELATORIO: penaliza 5 valores. Ignorar o comando GRAFICO: penaliza 3 valores. Não gravar o gráfico para ficheiro: penaliza 1 valor. 6