Beruflich Dokumente
Kultur Dokumente
GROHMANN, TACNA
Facultad de Ingeniería
Escuela Profesional de Ingeniería Química
MOLECULARES DE COMPUESTOS
QUÍMICOS
Asignatura:
Programación Aplicada a la Ingeniería Química
Docente:
2015 – 120004
2015 – 120017
2015 – 120012
2015 – 120016
Fecha de presentación: 27 – 06 – 16
ÍNDICE
I. INTRODUCCIÓN
II. ALGORITMO
a. Para compuestos de una letra
b. Para compuestos de dos letras
III. DIAGRAMA DE FLUJO
a. Para compuestos de una letra
b. Para compuestos de dos letras
IV. SINTAXIS
V. CÓDIGO
a. Para compuestos de una letra
b. Para compuestos de dos letras
c. Para compuestos de una y dos
letras
VI. EJECUCIÓN DEL PROGRAMA
VII. CONCLUSIONES
VIII. REFERENCIAS BIBLIOGRÁFICAS
Y ELECTRÓNICAS
I. INTRODUCCIÓN
- Letra minúscula
- Letra mayúscula
Continuando con esta idea, tenemos que recurrir a analizar el carácter siguiente
del vector que también nos da otras posibilidades:
Si fuese una letra nos indica que el elemento anterior concatenado tiene un
subíndice de valor 1.
Continuando con la idea, se tiene que si es que fuese una letra, se analiza el
carácter i+1 de la cadena de caracteres del vector. Cabe indicar que dependemos
del tamaño del vector.
Caso contrario
t=str2double (compuesto (1,i))
s=s+r*(t-1)
i=i+1
5. Si a=0: El compuesto no existe
6. Imprimir “s” y “z”
Referencia respecto a las variables:
Pasos
1. Leer: Comp, Y1, Y2, Z, n1, n2.
2. Crear: s=0 y i=1
3. Condición si i ≤ n
4. Luego si z(i) ==1 entonces:
Si i < n & z(i+1):
cen = 1
f = 1:n
a = strcmp(comp(i+1,z),y1(f,z))
Si a = 1 entonces:
cen = 1
Caso contrario: Falso.
Si Cen = 0 entonces:
g=1:n2
b= strcmp(C2L,Y2(y,2))
Si b = 1 entonces:
v=y2(g,2)
i=i+1
Caso contrario: Falso.
Caso contrario: Falso.
Caso contrario:
h = lin
b= strcmp(comp(i)),y(f,2)
Si b < 1 entonces:
r=y1(h,1)
Caso contrario: Falso.
5. Luego: s = s + r
Caso contrario
t=st2double(comp(i))
6. Finalmente: s = s + r*(t-1), i = i +1
III.
Dado que ningún logro empieza abarcando un todo, sino una parte; la
complejidad empieza de una idea pequeña que puede ir mejorándose para
lograr el objetivo final.
Nuestra primera necesidad fue crear una matriz es decir, nuestra base
de datos. Almacenando los símbolos y los pesos atómicos.
Ya que trabajar con matrices no es tan sencillo, preferimos trabajar
con tablas en Excel. “Llamándolas” a Matlab con el comando
readtable (‘nombredelarchivo.xlsx’) y trabajándolas con el comando
table2cell, haciendo que las partes de las columnas se conviertan en
céldas.
Considerando el compuesto que vamos a trabajar, tenemos que
ingresarlo con el comando input y guardarlo en una variable que en
nuestro caso denominamos “compuesto”, siendo un string el vector
que comprende a la variable del compuesto.
Otros:
- “r=y {f,2}”, donde r es la variable donde se va
cargar el peso atómico.
Y este valor actualizara la suma total en la variable
“s”.
- “s= s + r”, como ya tenemos el valor buscado,
para “romper” la sentencia if utilizamos el
comando break. El cual nos ayuda a que
podamos sacar el valor del peso atómico y no
siga buscándolo indefinidamente, sino que lo
detenga.
i. SENTENCIA WHILE
Se inicia el contador i=1
Empezando con un “i≤n”; que quiere decir que
analizará desde el primer término del vector hasta
que sea menor o igual que “n”. Es decir,
dependiendo del tamaño del compuesto, se
realizara el while.
ii. SENTENCIA IF
ELSE
Cuando se encuentra un número, z(i)==0 ya que
zeta no es letra sino número, entonces corresponde
convertirlo a número ya que se encuentra en un
vector string.
Para ello utilizamos el comando str2double, se
recomienda más para lo que a tablas se refiere, ya
que podría generarse una confusión con el
comando str2num porque se aplica a matrices.
Explicación:
end
i=i+1;
end
%t=str2double(compuesto(i))
%s=s+r*t;
if a==0
fprintf('El Compuesto no existe')
else
fprintf('EL peso molecular del
compuesto: %f g/mol\n',s)
fprintf('Z %f \n',z);
end
break
end
end
else
t=str2double(compuesto(1,i));
s=s+r*(t-1);
end
i=i+1;
end
%t=str2double(compuesto(i))
%s=s+r*t;
if a==0
fprintf('El Compuesto no existe')
else
fprintf('EL peso molecular del compuesto: %f
g/mol\n',s)
fprintf('Z %f \n',z);
end
c2l=strcat(compuesto(1,i),compuesto(1,i+1));
b=0;
for g=1:n2
b=strcmp(c2l,y2(g,2));
if b==1
r=y2{g,1};
cen2=1;
i=i+1;
break
end
end
end
else
b=0;
for g=1:n1
b=strcmp(compuesto(1,i),y1(g,2));
if b==1
r=y1{g,1};
break
end
end
end
else
b=0;
for f=1:n1
b=strcmp(compuesto(1,i),y1(f,2));
if b==1
r=y1{f,1};
break
end
end
sumatotal=sumatotal+r;
end
else
t=str2double(compuesto(1,i));
sumatotal=sumatotal+r*(t-1);
end
i=i+1;
end
if sumatotal>0
fprintf('EL peso molecular del compuesto: %f
g/mol\n',sumatotal)
fprintf('z %f \n',z);
fprintf(' r %f \n ',r);
fprintf(' n %f \n ',n);
fprintf(' i %f \n ',i);
fprintf(' a %f \n ',a);
fprintf(' t %f \n ',t);
%Xfprintf(' %f \n',compuesto(i));
else
fprintf('El Compuesto no existe')
end
VI. EJECUCIÓN DEL PROGRAMA
OXIDANO:
Pesos atómicos:
H= 1,00794 g/mol
O= 15,9994 g/mol
Peso molecular:
H2O=H*2+O=18,015200
g/mol
ÓXIDO DE
NITRÓGENO (II):
Pesos atómicos:
N=14,0067 g/mol
O= 15,9994 g/mol
Peso molecular:
NO=N+O=30,00610g/mol
AZANO:
Pesos atómicos:
N=14,0067 g/mol
H= 1,00794 g/mol
Peso molecular:
NH3=N+H*3=17,030400
g/mol
VII. CONCLUSIÓN