Programación General > Trucos
Contruyendo Tabla Periodica
Enko:
En el caso de Cloro:
Cloruro: -7, -5, -3, -1
Cloronio: +1
Como ves, para el cloro, en la nomeclatura de las sales siempre es negativo y el ion se llama cloruro que es el que te interesa, tiene 4 numeros oxidacion que nos importan.
El cloronio, es para quimica organica y no aparece en sales, por eso el numero de valencia +1 queda descartado.
Respecto al Anfotero de Magnesio: la verdad es que no conzco de los casos de anfoteros, pero segun tengo entendido son aquellos que actual como bases o acidos segun el medio.
Eso ocurre en los casos de acidos poliproticos, pero eso entra mas para quimica analitica y organica, que se escapa un tanto a las reglas generales.
sugerenica Te recomendaria al principio incluir unicamente los casos mas sensillos, es decir acidos y bases fuertes. Cosa que para esos casos, te aseguras de la inexistencia de anfoteros.
No importa que elemento quimico sea, sino que cuantos numeros de oxidacion (valencias).
(siempre teniendolos organizados de menor a mayor):
si son 2:
al [1] le pones oso
al [2] le pones ico
si son 3:
Aca hay dos posibilidades, te juro que le pregunte hace 3 años a mi profesora y me dijo que se usaba per y no hipo, pero no estoy seguro.
al [1] le pones oso
al [2]le pones ico
al [3] le pones per-ico
Si son 4>
al [1] le pones hipo-oso
al [2]le pones oso
al [3] le pones ico
al [4] le pones per-ico
Asi para el Caso de 2 tenemos: Fe, Co, Br
Para el caso de 3: I, S, Cr
Para el caso de 4: Cl, N,
Sobre las nomenclaturas, segun tengo entendido, hay 3 tipos de nomenclatura.
Una es la que venimos usando: La antigua
Otra, es la Moderna o de IUPAC:
FeO: oxido de hierro
Fe2O3: trioxido de di hierro
H2SO4: tetra oxo sulfato de di hidrogeno
H20: oxido de di hidrogeno
La ultima, no se como se llama, pero se usa para las sales muy complicadas:
Fe0: oxido de hiero II
Fe2O3: oxido de hierro III
Bsicamente lo que se hace es se nombra similarmente a la IUPAC, pero sin di, tri, tetra, etc... y se pone el numero de oxidacion del metal (o el que fuera el "importante" )
Deiv:
RADICAL + METAL = SAL (oxisal o Haloidea)
Ahora mi lenguaje químico voy a cambiar de: [hídrico, oso, ico, per-ico] por [uro, hipo-ito, ito, ato, per-ato]
--- Citar ---tiene 4 numeros oxidacion que nos importan. El cloronio, es para quimica organica y no aparece en sales, por eso el numero de valencia +1 queda descartado.
--- Fin de la cita ---
Cloruro -1 (Sal Haloidea) Ejemplo: Cloruro de Calcio CaCl2 [hídrico x uro]
Hipoclorito +1 (Sal Oxisal) Ejemplo: HipoClorito de Sodio Na ClO [hipo-oso x hipo-ito]
Clorito +3 (Sal Oxisal) Ejemplo: Clorito de Calcio Ca(ClO2)2 [oso x ito]
Clorato +5 (Sal Oxisal) Ejemplo: Clorato Ferroso Fe(ClO3)2 [ico x ato]
PerClorato +7 (Sal Oxisal) Ejemplo: PerClorato de Potasio K ClO4 [per-ico x per-ato]
Como verás todas las valencias actúan en Sales, como te dije los algoritmos para la formación de las Sales las tengo.
Los Anfóteros (Metaloides) me van a romper la cabeza, pues con los de abajo no hay problema:
Halógenos: -1 +1 +3 +5 +7 (uro, hipo-ito, ito, ato) 5 estados de oxidación
Anfígenos: -2 +2 +4 +6 (uro, hipo-ito, ito, ato) 4 estados de oxidación
Nitrogenoides -3 +3 +5 (..orgánico..., ito, ato) 3 estados de oxidación
Carbonoides -4 +2 +4(..orgánico..., ito, ato) 3 estados de oxidación
Si te fijas casi todos aquí cumplen exceptuando algunas, pero tienen un orden, pero los anfóteros, los anfóteros!, no tienen "uro" ni "hipo-ito"
Manganeso (como METAL)
+2 +3 (oso, ico)
PerClorato Manganoso
PerClorato Mangánico
Manganeso como (NO METAL)
+4 +6 +7 (oso, ico, per-ico) terminación en ácidos
+4 +6 +7 (ito, ato, per-ato) terminación en Sales
Manganito de Potasio K2MnO3
Manganato de Potasio K2MnO4
PerManganato de Potasio KMnO4
no tienen "uro" ni "hipo-ito",entonces no le puedo colocar la misma secuencia que para los halógenos, anfígenos, etc.
--- Citar ---si son 2:
al [1] le pones oso
al [2] le pones ico
si son 3:
Aca hay dos posibilidades, te juro que le pregunte hace 3 años a mi profesora y me dijo que se usaba per y no hipo, pero no estoy seguro.
al [1] le pones oso
al [2]le pones ico
al [3] le pones per-ico
Si son 4>
al [1] le pones hipo-oso
al [2]le pones oso
al [3] le pones ico
al [4] le pones per-ico
--- Fin de la cita ---
La secuencia se perdió si son 4, iba bien en [1] = oso, para 2 y 3, pero en 4 ya no hay secuencia.
Sobre las NOMENCLATURAS, pienso que una vez que arme esto de las valencias en especial de los anfóteros, no será ningún problema, por que será solo trabajar con prefijos y sufijos luego. Son 3 Nomenclaturas:
Ejemplo Fe2O3
Nomenclatura Tradicional : Óxido Férrico
Nomenclatura Werner-Stock: Óxido de Hierro (III)
Nomenclatura IUPAC : Trióxido de diHierro
De curiosidad pude observar algo:
--- Código: Text --- TGrupo = (gMetal, gNoMetal);TSubGrupo = (sgAlcalino, sgHalogeno, sgAlcalinoTerreo, sgCarbonoide);
¿En que parte de un programa le pongo? debajo de la cabecera de Units? debajo de TForm? donde?
Me preguntaba esto por que noté que no tiene como otras la palabra CLASS:
--- Código: Text --- TElemento = class etc,......end; Bueno el truco, que tan solo Tú y Yo lo vamos discerniendo esperemos que algún día les sirva a muchos Químicos novatos en Delphi e inclusive en C++, que buscando en la Red, encuentren esta Página y hayamos aportado algo para el prójimo.
Deiv:
Nuevamente retomando el tema en esta gestión, me lancé a revisar la preparación de este programa:
Enko, he copiado algunas lineas de distintos párrafos tuyos (Ojo no llevan ningún orden):
--- Código: Text --- TSubGrupo = (sgAlcalino, sgHalogeno, sgAlcalinoTerreo, sgCarbonoide); TGrupo = (gMetal, gNoMetal); FSubGrupo: TSubGrupo; procedure SetSubGrupo(const Value: TSubGrupo); Grupo: TGrupo; property SubGrupo: TSubGrupo read FSubGrupo write SetSubGrupo; Mi pregunta es:
--- Código: Text ---property SubGrupo: TSubGrupo read FSubGrupo write SetSubGrupo; Yo entendía que PROPERTY es eso, manejar Propiedades, pero en tu caso pareciera que maneja PROCEDUREs??
Bien he leido sobre POO y ya puedo darme cuenta "algo"
¿Que diferencia habría si la Base de Datos de los Elementos los preparo en Arrays uni o bidimensionales en otra Unit y jalarlo al programa principal? o mejor aún prepararlo en una DLL (aunque no me la conozco bien)? en fin ¿Cúal sería la diferencia de prepararlo así a la otra que me sugeriste en un TXT?
Datos de los Elementos en:
- Arrays en otra Unit vs TXT
- Arrays en DLL vs TXT
¿Resultaría lo mismo preparar los Datos de los elementos en un TXT, Arrays o DLLs? ¿Cual la diferencia?
Un saludo
Deiv
Enko:
Las PROPIEDADES pueden funcionar como simples variables:
--- Código: Text --- private FProperty: Integer;public property TProperty read FProperty; //solo lectura property TProperty write FProperty; //solo escritura property TProperty read FProperty write FProperty; //ambos O pueden funcionar mediante funciones y procedimientos
--- Código: Text --- private FName: String; procedure SetName(Value: String); function GetName: String;public property Name write SetName read GetName; procedure SetName(Value: String);begin FName := Upper(Value);end;function GetName : stringbegin Result := Lower(FName);end;
REspecto a la inicializacion de la tabla periodica, lo m'as facil es que la hagas desde un archivo de TXT o bien desde un archivo con TIPO de tipo TRecordElemento.
No entend'i lo de array, al fin y al cabo, cuando leas los datos, terminaran en un array, o no?
La ventaja de hacer una dll es que la podras usar con otros programas, si es una UNIT de delphi, unicamente con Delphi.
Con la velocidad de los ordenadores actuales, no es algo tan significativo.
La ventaja de Bases de Datos es que con SQL luego podras hacer alguna que otra consulta.
Deiv:
Tienes razón cuando leamos los Datos todos terminarán en un Array, a lo que me refería fue por ejemplo que el array de abajo (los Datos):
--- Código: Text --- NoMetales: array [0..24,0..5] of string = (('F','Fluor','1','','',''), ('Cl','Cloro','1','3','5','7'), ('Br','Bromo','1','3','5','7'), // etc; OJO Esto es solo un Ejemplo donde contemplo solo Nº Oxidación y Nombres // Digo es un ejemplo ya que en lugar de Nºs Oxidacion pueden ir las Propiedades // necesarias como Número Atómico, Peso Atómico, Densidad, etc. ('Am','Americio','4','5','6','')); podrían estar preparados en otra Unit, o en otra DLL; o como sugeriste en un Archivo TXT y cargarlo a un array del programa principal. A eso me refería con:
- Arrays preparados en otra Unit vs Datos TXT (Como arriba)
- Arrays preparados en DLL vs Datos TXT (con el objetivo de cargar dinámicamente)
- Archivo TIPO vs Datos TXT (Tu última sugerencia)
- Tabla vs Datos TXT (Una nueva pregunta)
¿Es los mismo o, cuál es el más óptimo? ¿Cuál tu opinión?
--- Citar ---La ventaja de Bases de Datos es que con SQL luego podras hacer alguna que otra consulta.
--- Fin de la cita ---
Haber esta parte no entendí, ¿Necesariamente al final se debe utilizar SQL?, ¿Cómo trabajar con Consultas cargado los Datos en un Array? Digo por ejemplo, me gustaría mostrar en algún momento solo Halógenos, o en otro solo Gases Nobles, ¿Es solo SQL que puede hacer este trabajo de FILTRADO?? ¿Acaso con Arrays no se puede realizar unas "Consultas" por código para este cometido?
Navegación
[*] Página Anterior
Ir a la versión completa