Ludwig Krippahl, 2009 Programação para as Ciências Experimentais 2008/9 Teórica 3.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.
Transcript of Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.
![Page 1: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/1.jpg)
Ludwig Krippahl, 2008
Programação para as Ciências Experimentais
2007/8
Teórica 5
![Page 2: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/2.jpg)
Ludwig Krippahl, 2008 2
Na aula de hoje...
Trabalho prático 1• Cálculo do ponto isoeléctrico de proteínas.
Como planear um programa• Exemplo do trabalho 1 de 06/07
![Page 3: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/3.jpg)
Ludwig Krippahl, 2008 3
Proteínas
Proteínas
![Page 4: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/4.jpg)
Ludwig Krippahl, 2008 4
Problema
Proteínas• Sequência de aminoácidos
http://en.wikipedia.org/wiki/Amino_acid
![Page 5: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/5.jpg)
Ludwig Krippahl, 2008 5
Problema
Ponto isoeléctrico• Dois grupos protonáveis
pKa=10
pKa=2
![Page 6: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/6.jpg)
Ludwig Krippahl, 2008 6
Problema
Ponto isoeléctrico• Henderson-Hasselbalch
http://en.wikipedia.org/wiki/Henderson-Hasselbalch_equation
![Page 7: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/7.jpg)
Ludwig Krippahl, 2008 7
Problema
Ponto isoeléctrico• pH=0, carga +1
pKa=10
pKa=2
+1
0
![Page 8: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/8.jpg)
Ludwig Krippahl, 2008 8
Problema
Ponto isoeléctrico• pH=2, carga +0.5
pKa=10
pKa=2
+1
-0.5
![Page 9: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/9.jpg)
Ludwig Krippahl, 2008 9
Problema
Ponto isoeléctrico• pH=7, carga 0
pKa=10
pKa=2
+1
-1
![Page 10: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/10.jpg)
Ludwig Krippahl, 2008 10
Problema
Ponto isoeléctrico• pH=10, carga -0.5
pKa=10
pKa=2
+0.5
-1
![Page 11: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/11.jpg)
Ludwig Krippahl, 2008 11
Problema
Ponto isoeléctrico• pH=12, carga -1
pKa=10
pKa=2
0
-1
![Page 12: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/12.jpg)
Ludwig Krippahl, 2008 12
Problema
Proteínas
![Page 13: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/13.jpg)
Ludwig Krippahl, 2008 13
Problema
Proteínas
![Page 14: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/14.jpg)
Ludwig Krippahl, 2008 14
Problema
Proteínas
+1
-1
![Page 15: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/15.jpg)
Ludwig Krippahl, 2008 15
Problema
Proteínas
http://www.biology.arizona.edu/biochemistry/problem_sets/aa/aa.html
![Page 16: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/16.jpg)
Ludwig Krippahl, 2008 16
Ficheiro pKas.txt
Codigo COOH NH3 C.L. Carga(Desp)A 2.3 9.9 - - C 1.8 10.8 8.6 -1 D 2 10 4.5 -1 E 2.2 9.7 4.5 -1 F 1.8 9.1 - - ...V 2.3 9.6 - - W 2.4 9.4 - - Y 2.2 9.1 9.8 -1
![Page 17: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/17.jpg)
Ludwig Krippahl, 2008 17
Simplificação
Estrutura Campo ... Só sequência
![Page 18: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/18.jpg)
Ludwig Krippahl, 2008 18
Simplificação
Calcular a carga a cada pH considerando:• NH3 do primeiro da sequência
• Tem carga 0 desprotonado
• COOH do último da sequência• Tem carga -1 desprotonado
• Cadeias laterais dos intermédios• Ler a carga na tabela
![Page 19: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/19.jpg)
Ludwig Krippahl, 2008 19
Cargas em função do pH
![Page 20: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/20.jpg)
Ludwig Krippahl, 2008 20
Ficheiro seqs.txt>UniProt/Swiss-Prot|P00273|DESR_DESGI DesulforedoxinANEGDVYKCELCGQVVKVLEEGGGTLVCCGEDMVKQ>UniProt/Swiss-Prot|P14073|FER_BUTME FerredoxinAYKITDECIACGSCADQCPVEAISEGSIYEIDEALCTDCGACADQCPVEAIVPED>UniProt/Swiss-Prot|Q46495|DESR_DESBR DesulfoferrodoxinMPERLQVYKCEVCGNIVEVLNGGIGELVCCNQDMKLMSENTVDAAKEKHVPVIEKIDGGYKVKVGAVAHPMEEKHYIQWIELLADDKCYTQFLKPGQAPEAVFLIEAAKVVAREYCNIHGHWKAEN>UniProt/Swiss-Prot|P14393|GLB_APLJU GlobinALSAADAGLLAQSWAPVFANSDANGASFLVALFTQFPESANFFNDFKGKSLADIQASPKLRDVSSRIFARLNEFVSNAADAGKMGSMLQQFATEHAGFGVGSAQFQNVRSMFPGFVASLSAPAADAAWNSLFGLIISALQSAGK>UniProt/TrEMBL|Q4VSD1|Q4VSD1_9HIV1 ProteaseSSCSFPQITLWQRTLVTVKIGGQLKEALLDTGADDTVLEDINLPGKWKPRMIGGIGGFIKVKQYDQILIEICGKKAIGTVLVGPTPVNIIGRNMLTQIGCTLNFPISPI
![Page 21: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/21.jpg)
Ludwig Krippahl, 2008 21
Ler sequências de proteínas.
O formato FASTA é um formato de texto para guardar sequências.
As linhas começadas por “>” identificam a molécula (proteína, RNA, ou DNA):
>UniProt/Swiss-Prot|P00273|DE....
![Page 22: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/22.jpg)
Ludwig Krippahl, 2008 22
Ler sequências de proteínas.
O formato FASTA é um formato de texto para guardar sequências.
As restantes linhas contêm a sequência:
ALSAADAGLLAQSWAPVFANSDANGASF...
RDVSSRIFARLNEFVSNAADAGKMGSML...
APAADAAWNSLFGLIISALQSAGK
![Page 23: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/23.jpg)
Ludwig Krippahl, 2008 23
Ler sequências de proteínas.
O formato FASTA é um formato de texto para guardar sequências.
Como no máximo este formato usa 80 caracteres por linha a sequência pode estar partida em várias linhas.
ALSAADAGLLAQSWAPVFANSDANGASF...
RDVSSRIFARLNEFVSNAADAGKMGSML...
APAADAAWNSLFGLIISALQSAGK
![Page 24: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/24.jpg)
Ludwig Krippahl, 2008 24
Ler sequências de proteínas.
Função [nomes,seqs]=lefasta(nome)• Lê o ficheiro cujo nome é fornecido e
devolve uma lista de estruturas.
• Devolva duas tabelas de strings com os nomes (identificadores) e as sequências.
![Page 25: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/25.jpg)
Ludwig Krippahl, 2008 25
Ler sequências de proteínas.
function [nomes,seqs]=lefasta(nome)id=fopen(nome,”r”);nomes="";seqs="";seq='';
(Ciclo de leitura do ficheiro)
fclose(id);endfunction
Abre o ficheiro e guarda o identificador
![Page 26: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/26.jpg)
Ludwig Krippahl, 2008 26
Ler sequências de proteínas.
function [nomes,seqs]=lefasta(nome)id=fopen(nome);nomes="";seqs="";seq='';
(Ciclo de leitura do ficheiro)
fclose(id);endfunction
Cria tabelas vazias
Sequência inicial vazia
![Page 27: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/27.jpg)
Ludwig Krippahl, 2008 27
Ler sequências de proteínas.
function [nomes,seqs]=lefasta(nome)id=fopen(nome);nomes="";seqs="";seq='';
(Ciclo de leitura do ficheiro)
fclose(id);endfunction
Depois de ler o ficheiro, fecha e termina a
função
![Page 28: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/28.jpg)
Ludwig Krippahl, 2008 28
Ler sequências de proteínas.
while !feof(id)s=fgetl(id);
if strcmp(s(1),'>')if !strcmp(seq,""')
nomes=[nomes;nome];seqs=[seqs;seq];
endifnome=s;seq="";
else seq=[seq,s];endif
endwhile
Ciclo enquanto o ficheiro não chegou ao
fim.
![Page 29: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/29.jpg)
Ludwig Krippahl, 2008 29
Ler sequências de proteínas.
while !feof(id)s=fgetl(id);if strcmp(s(1),'>')
if !strcmp(seq,""')nomes=[nomes;nome];seqs=[seqs;seq];
endifnome=s;seq="";
else seq=[seq,s];endif
endwhile
Lê uma linha e compara o primeiro caracter com
“>”
(quer dizer que encontrou uma proteína
nova)
![Page 30: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/30.jpg)
Ludwig Krippahl, 2008 30
Ler sequências de proteínas.
while !feof(id)s=fgetl(id);if strcmp(s(1),'>')
if !strcmp(seq,""')nomes=[nomes;nome];seqs=[seqs;seq];
endifnome=s;seq="";
else seq=[seq,s];endif
endwhile
Se há uma sequência guardada acrescenta à tabela (nomes e seqs)
É por isto que a sequência seq começa
vazia
![Page 31: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/31.jpg)
Ludwig Krippahl, 2008 31
Ler sequências de proteínas.
while !feof(id)s=fgetl(id);if strcmp(s(1),'>')
if !strcmp(seq,""')nomes=[nomes;nome];seqs=[seqs;seq];
endifnome=s;seq="";
else seq=[seq,s];endif
endwhile
Quando encontra nova proteína guarda o identificador da
proteína e limpa a sequência.
![Page 32: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/32.jpg)
Ludwig Krippahl, 2008 32
Ler sequências de proteínas.
while !feof(id)s=fgetl(id);if strcmp(s(1),'>')
if !strcmp(seq,""')nomes=[nomes;nome];seqs=[seqs;seq];
endifnome=s;seq="";
else seq=[seq,s];endif
endwhile
Se não é uma proteína nova então é outra linha da sequência,
para juntar à sequência lida até agora
![Page 33: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/33.jpg)
Ludwig Krippahl, 2008 33
Ler sequências de proteínas.
endwhile
if !strcmp(seq,"")nomes=[nomes;nome];seqs=[seqs;seq];
endif
fclose(id);endfunction
No final do ciclo acrescentar a última
proteína lida, se houver
![Page 34: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/34.jpg)
Ludwig Krippahl, 2008 34
Avaliação
Concepção: 4 valores• Explicar muito resumidamente cada função
Função: soma
Argumentos: dois valores numéricos (a,b)
Valor devolvido: a soma dos argumentos
Funcionamento: Soma os valores e devolve o resultado
• No funcionamento indicar que outras funções usa (das que implementaram)
![Page 35: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/35.jpg)
Ludwig Krippahl, 2008 35
Avaliação
Concepção: 4 valores Implementação: 10 valores
• Copy-paste das funções todas, na integra:
function ....
...
endfuntion
function ...
...
endfunction
![Page 36: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/36.jpg)
Ludwig Krippahl, 2008 36
Avaliação
Concepção: 4 valores Implementação: 10 valores Testes: 3 valores
• Listagem dos testes que fizeram. É importante testar cada função individualmente, senão pode ser difícil encontrar erros...
![Page 37: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/37.jpg)
Ludwig Krippahl, 2008 37
Avaliação
Concepção: 4 valores Implementação: 10 valores Testes: 3 valores Avaliação e crítica: 3 valores
• Sugestões para melhorias ou vulnerabilidades do código • Por exemplo, quando implementámos a função
umelem tinha a limitação de assumir elementos com uma só letra.
![Page 38: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/38.jpg)
Ludwig Krippahl, 2008 38
Exemplo (Trabalho 1 de 06/07)
Calcular concentrações de equilíbrio para um sistema de reacções químicas.
A função recebe:
CH3COOH H+ + CH3COO-
H2O H+ + OH-
Concentrações iniciais
Constantes
![Page 39: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/39.jpg)
Ludwig Krippahl, 2008 39
Objectivo
Calcular concentrações de equilíbrio para um sistema de reacções químicas.
A função devolve:
Concentrações de equilíbrio
![Page 40: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/40.jpg)
Ludwig Krippahl, 2008 40
Objectivo
Exemplo:
octave:7> mat=['CH3COOH = H+ + CH3COO-';'H2O = H+ + OH-'];
octave:8> eks=[1.78e-5,1.8e-16];
octave:9> esps=['CH3COOH';'H+';'CH3COO-';'H2O';'OH-'];
octave:10> cis=[0.01,0,0,55.346,0];
octave:11> res=sistema(mat,esps,eks,cis,1e-8)
res =
9.5869e-03 4.1309e-04 4.1308e-04 5.5346e+01 6.4431e-09
![Page 41: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/41.jpg)
Ludwig Krippahl, 2008 41
Concepção
O trabalho pode ser dividido em duas partes autónomas:• Parte A: Interpretar o texto das reacções para
um formato conveniente
• Parte B: Calcular as concentrações e equilíbrio
Estas partes podem ser implementadas e testadas de forma independente.
![Page 42: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/42.jpg)
Ludwig Krippahl, 2008 42
Concepção
Parte A: Interpretar o texto das reacções para um formato conveniente• Problema: o que é o formato conveniente?
• Resposta: é o que der jeito para a parte B. O melhor é começar pela B.
![Page 43: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/43.jpg)
Ludwig Krippahl, 2008 43
Concepção
Parte B: Calcular as concentrações e equilíbrio.• B1: calcular o equilíbrio de uma reacção.
• B2: usar B1 para calcular para todas
![Page 44: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/44.jpg)
Ludwig Krippahl, 2008 44
Equilíbrio de uma reacção
Calcular o valor o zero de uma função
2A + B 2D
022
2
2
DBAkeBA
Dke
![Page 45: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/45.jpg)
Ludwig Krippahl, 2008 45
Equilíbrio de uma reacção
Calcular o valor o zero de uma função Precisamos:
• Coeficientes de estequiometria (um vector)
• Concentrações iniciais (um vector)
• Constante de equilibrio.
![Page 46: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/46.jpg)
Ludwig Krippahl, 2008 46
Equilíbrio de várias reacções
Calcular o equilíbrio de uma Alterar concentrações Fazer o mesmo na próxima, até
percorrer todas Repetir até que não mude nada (dentro
de uma precisão)
![Page 47: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/47.jpg)
Ludwig Krippahl, 2008 47
Equilíbrio de várias reacções
Iterar o equilíbrio de cada uma até ficar tudo na mesma.
Precisamos:• Coeficientes de estequiometria (matriz)
• Concentrações iniciais (um vector)
• Constantes de equilibrio (um vector).
![Page 48: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/48.jpg)
Ludwig Krippahl, 2008 48
Concepção
Parte B: Calcular as concentrações e equilíbrio• Precisa de matriz com coeficientes de
estequiometria.
Parte A: Interpretar o texto das reacções para um formato conveniente• Quer dizer, converter numa matriz com os
coeficientes de estequiometria.
![Page 49: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/49.jpg)
Ludwig Krippahl, 2008 49
Concepção
Identificar tarefas separáveis.• Onde podemos “partir” o problema
Identificar dependências.• O que é que uma parte precisa da outra
Fazer e refazer• Se ficamos encravados não ter medo de voltar atrás
para fazer melhor... Eficiência
• Por exemplo, ler ficheiros é lento. Ler só uma vez se possível.
![Page 50: Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 5.](https://reader033.fdocumentos.com/reader033/viewer/2022051615/552fc102497959413d8bddd8/html5/thumbnails/50.jpg)
Ludwig Krippahl, 2008 50
Dúvidas