domingo, 25 de septiembre de 2011

Algunas fotografías. Ciudad de México.

Fotografías en la ciudad de México.

Categoría: 3. Humanidades y comportamiento humano.



 Abajo. En una estación del metro de la ciudad de México.

Abajo. Esperando el metro.

Abajo. El metro de la ciudad de México.

Abajo. La iglesia de Pansacola, en Av. Universidad. Ciudad de México.

Abajo. Iglesia de Pensacola. Ciudad ed México.

Abajo. Mapa de recorridos ciclistas en Baja California.

Abajo. Mapa de recorridos ciclistas en Baja California.

Abajo. Esperando el autobús.

Abajo. En el metro de la ciudad de México.

Abajo. Metro de la ciudad de México.

Abajo. Metro de la ciudad de México.

Abajo. Paseando por el metro de la ciudad de México.

Abajo. Paseando por el metro de la ciudad de México.

Abajo. Argos, un perro de la raza labrador retriever.

Abajo. Estación del metro Universidad.


Fin de las fotos. Saludos.







viernes, 23 de septiembre de 2011

Algo en alemán. Descubrimiento de Neptuno.

23.9.1846: Neptun entdeckt.

Categoría: 3. Humanidades y comportamiento humano.

Mit hilfe eines Fernrohrs entdeckte der deutsche Astronom Gottfried Galle den "blauen" Gasplaneten Neptun. Der franzose Urbain Leverrier hatte kurz zuvor in paris aus Bahnstörungen des Uranus den wahrscheintlichen Ort eines weiteren Planeten berechnet - Galle bewies durch seine Entdeckung diese Vermutung. Der neptun braucht etwa 17 Stunden und 50 Minuten, um sich selbst zu drehen. Seine dichte Atmosphäre enthält Methan, Wasserstoff und Helium, die Temperatur der reflektierenden Schichten liegt bei minus 200ºC. Der Neptun wird von mindestens acht Satelliten begleitet, den Neptunmonden. Nur zwei davon waren von Beginn der Raumfahrt bekannt. 1989 wurden durch die Raumsonde Voyager II ein Ring-System und die Kleinmonde entdeckt.

23.9.1973: Die Notrufnummern 110 und 112
Ein Moment der Unachtsamkeit, schon ist es passiert: Im Mai 1969 wird der kleine Björn Steiger von einem Auto erfasst, als er gerade vom Schwimmbad nach Hause läuft. Sofort eilen Passanten herbei und alarmieren die Polizei und das Rote Kreuz. Weil der Krankenwagen aber über eine Stunde braucht, um die Unfallstelle zu erreichen, stirbt der Junge - nur wenige Tage vor seinem neunten Geburtstag. Nicht an seinen Verletzungen, sondern an einem Schock, der durch eine rasche Sauerstoffzufuhr hätte behandelt werden können.
Er ist dieses tragische Ereignis, das seinen Vater, Siegfried Steiger, dazu veranlasst, die "Björn Steiger Stiftung" zu gründen, um sich für ein besseres Notrufsystem einzusetzen: "Es gab nur einen Krenkentransport und nachts kam in der Regel keiner. Wir hatten nicht gewusst, dass es in Deutschland keinen Rettungsdienst gibt. Und deshalb waren wir der Meinung, dass unser Sohn Pech hatte, dass es so lange dauerte. Dann wurde mir von Journalisten und auch vom Rettungsdienst selber gesagt: "Ja Gott, eine Stunde. Manchmal dauert es viel länger!" Es hat sich niemand darum gekümert."


Los significados de algunas palabras te pueden ayudar:
Notrufnummer - emergency number
Unachtsamkeit - carelessness
erfassen - to catch; to seize; to understand
sofort - immediately
eilen - to hurry somewhere
- es eilt - int's urgent
herbei - ~zu mir! - come here
brauchen - to need; to use
Unfallstelle - scene of an accident
erreichen - to catch; to reach
Verletzungen / Knochenbrüche - to suffer injury / broken bones
rasche - Übersichtlichkeit
- rasche Erfassbarkeit - clarity
Sauerstoff - oxygen
Zufuhr - supply
behandeln - to treat; to deal with
Ereignis - event; occasion
dazu - with it
- ausserdem - at the same time
veranstalten - to organize
Stiftung - foundation; to set up
Einzug - entry; collection
setzen - to put; to place; to set; to plant
nachts - at night
Regel - rule; to make a habit of
gewusst - wissen
Pech - bad luck
Rettungs - rescue
dienst - at work
deshalb - therefore
Sohn - son
Pech - bad luck
selber - myself
Manchmal - sometimes; often
niemand - nobody
gekümmert - about each other
Vermutung - assumption
deshalb - because of it


Saludos. Begrussen!






jueves, 22 de septiembre de 2011

Abastecimiento de suministros

Abastecimiento de suministros.

Categoría: 2. Ciencia y tecnología.

Estoy haciendo un ejercicio para hacer un programa que calcule la cantidad de personas que deben integrar una expedición de 6 días de duración. Se debe tomar en consideración que cada individuo puede transportar alimentos suficientes para que una persona coma cuatro días.

Ya adelanté un poco el programa, pero me va a costar más trabajo del que pensaba. También voy a revisar el caso que sobre el cálculo del suministro de aire necesario para un inmersión de buceo.

Este problema tiene otras aplicaciones interesantes. Me acordé de una de ellas. En 1812 el ejército francés al mando de Napoleón Bonaparte (quien nació en una ciudad que hoy es italiana) invadió Rusia. El asunto es que el ejército de Napoleón Bonaparte llegó a asediar la ciudad de Moscú, pero los problemas en el suministro de alimentos y armamento adquirieron una magnitud no calculada.

Esto se puede haber debido a que los estrategas al servicio de Napoleón no hubieran calculado (y asimilado) correctamente las características que el sistema de abastecimiento debía tener. Como esto no es muy probable, otra posibilidad es que Napoleón desoyera los consejos de sus asesores, que creo más probable. La otra posibilidad que se me ocurre es que Napoleón fuera presionado por grupos poderosos que lo "llevaron" a tomar la decisión de invadir Rusia.

No importa cuál se la razón, la otra parte del problema parece que fue también asunto de estrategia militar. El ejército ruso fue retrocediendo deliberadamente más rápido ante los ataques del ejército francés, conscientes de que esto le dificultaría cada vez más el suministro de alimentos y armas (además el traslado y curación de los heridos). Además consideraron que el invierno sería un factor que agudizaría mucho más el ya difícil transporte de los pertrechos y alimentos. En esta parte de la estrategia los papeles principales son el riguroso invierno y la vastedad del territorio rusos.

La salida de Napoleón del territorio ruso en el invierno de 1812 es tristemente célebre por las precarias condiciones en que se encontraban el mismo Napoleón y sus subalternos cuando regresaron a Francia. Además, gran parte de su ejército murió de frío antes de poder regresar.

Algo semejante ocurrió durante la segunda guerra mundial, cuando Hitler rompió el acuerdo de no agresión firmado con Stalin. El ejército alemán entró en territorio ruso y  dirigió sus columnas hacia Kiev, en la república de Ukrania, que era la capital industrial de la Unión Soviética. Sin embargo, se cambiaron los planes y las tropas enderezaron el rumbo hacia Moscú, la capital política. Stalin ordenó a la población abandonar sus poblados y dejar sus viviendas inutilizables, graneros vacíos y cultivos destruídos, de manera que el ejército invasor tuviera que depender de los suministros transportados por su propio ejército. Esto destruyó la moral de os soldados y forzó la cedena de suministros hasta su límite. De manera que el ejército alemán se retiró poco después de llegar a las cercanías de la ciudad de Moscú.











martes, 20 de septiembre de 2011

Ventana Window.

Ventana Window.

Categoría: 3. Humanidades y comportamiento humano.

El verbo ventanar podría podría ser utilizado para desligarse del verbo ventanear.

... in Windows a window is a generic term covering a whole range of entities. In fact, almost any entity that is displayed is a window — for example, a dialog box is a window and each button is also a window. I will generally use terminology to refer to objects that describe what they are, buttons, dialogs, and so on, but you need to have tucked in the back of your mind that they are windows, too,...
   Ivor Horton. 2010. Beginning Visual C++ 2010
   Wiley Publishing Inc. Wrox programmer to programmer.
   Indianapolis, Indiana, USA.

A company's value chain inevitably affects - and is affected by - numeous societal issues, such as natural resource and water use, health and safety, working conditions, and equal treatment in the workplace. Opportunities to create shared value arise because societal problems can create economic costs in the firm's value chain. Many so-called externalities actually inflict internal costs on the firm, even in the absence of regulation or resource taxes. Excess packaging of products and greenhause gases are not just costly to the environment but costly to the business. Wall-Mart, for example, was able to adress both issues by reducing its packaging and rerouting its trucks to cut 100 million miles from its delivery routes in 2009, saving $200 million even as it shipped more products. Innovation in disposing of plastic used in stores has saved millions in lower disposal costs to landfills.
1. Natural resource and water use.
2. Health and safety.
3. Working conditions.
4. Equal treatment in the workplace.
1. Energy use and logistics.
2. Resource use.
3. Procurement.
4. Distribution.
5. Employee productivity.
6. Location.
Creating shared value. Michael E. Porter y Mark R. Kramer.
Harvard Business Review. Enero-Febrero 2011.

Brot und Wasser stillen den Hunger jedes Menschen, aber unsere Kultur hat die Gastronomie erfunden. 
    > Honoré de Balzac

Fair-Play bedeutet, das Foul so versteckt zu machen, dass der Schiedsrichter es nicht sieht. 
    > Dieter Hildebrandt 

Das Glück kommt zu denen, die es erwarten. Nur müssen sie die Tür auch offen halten.
   > Thomas Mann 

Jedes Mal, wenn ein Mensch lacht, fügt er seinem Leben ein paar Tage hinzu.
     > Curzio Malaparte 

Ein kleiner Schritt für einen Menschen, ein gewaltiger Sprung für die Menschheit. 
   > Neil Alden Armstrong 

Das gefährlichste Organ am Menschen ist der Kopf. 
   > Alfred Döblin 

Der Besitz von Wissen hat den Besitz von Land ersetzt. Land hat Grenzen. Wissen hat Horizonte. 
   > Shimon Peres 

Hinter einer langen Ehe steht immer eine sehr kluge Frau. 
   > Ephraim Kishon 

En las sociedades humanas es más fuerte el impulso a someter que el impulso a educar. A veces las neuronas se unen con fuerza manteniendo ideas negativas, mientras que las uniones neuronales de las ideas positivas se mantienen débiles (llenos de telarañas). Es necesario entrenar al cerebro para que adquiera la habilidad de mantener equilibrada la fuerza de las uniones neuronales.

Se puede entrar en un ambiente desordenado para experimentar comportamientos que no son dables en un entorno estable. 

Saludos.
- Miguel Angel Orduña



De maquinarias aceitadas y terrenos desconocidos.

De maquinarias aceitadas y terrenos desconocidos.

Categoría: 3. Humanidades y comportamiento humano.

En algún momento atravesamos un arroyo que tiene su cauce sobre piedra sólida, aunque no es totalmente lisa, el agujero que hay en su parte media hace caer a algunos ciclistas y esto sería una tragicomedia sin mayores consecuencias que una mojada total y la risa de quienes ya conocemos el terreno. 
Bike-rider.
Dic/ene 10/11 p6

Fernando Savater, un filósofo español, autor de 'ética para amador' y de 'los siete pecados capitales'. Tiene el mérito de ser un filósofo reconocido, pero también tiene la virtud de hacer la filosofía más amigable, poniéndola a 'nivel de cancha', esto es, no degradándola a filosofía 'light'. Saludos.

Sólo recuerdo el nombre de la película ("En este pueblo no hay ladrones") y en realidad sólo vi una escena, en la que aparecen cuatro personajes jugando dominó. En ella participaron Gabriel García Márquez, Carlos Monsiváis, Abel Quezada y Juan Rulfo en una escena emblemática jugando dominó. Tanto Juan Rulfo como Gabriel García Márquez participaron activamente en la preparación y revisión de guiones de películas y además llegaron a participar en algunas de ellas. Carlos Monsiváis fue un activo promotor del cine y tenía un conocimiento impresionante de la cinematografía universal. En esta película participaron también como actores Luis Buñuel, Arturo Ripstein y José Luis Cuevas, entre otros famosos del cine, la plástica y la literatura. También recuerdo que están los cuatro sentados a una pequeña mesa a la entrada de una casa de adobe y teja. Están jugando dominó y bebiendo una cerveza en un ambiente de pueblo, junto a una calle de tierra, que dista de estar empedrada o tener banquetas. Esta película está basada en la novela corta de Gabriel Gacía Márquez que lleva el mismo nombre. Tal vez la ventaja de que el propio autor de la novela o que un escritor de su talla participen en la elaboración de los guiones de la película, es que el espectador siente que está viendo una película sobre la novela dada. Esto sucede en la película "Pedro Páramo", basada en la novela del mismo nombre escrita por Juan Rulfo; si bien la lectura de la novela requiere de varios repasos para entenderse, es de mucha ayuda ver la película, pues muchos episodios adquieren claridad y sentido.

La ira puede ser un motor para poner en marcha a las personas ... La puesta en marcha de la ira es imprescindible para buscar una solución y debe estar acompañada por momentos de calma que permitirán pensar cómo encontrar el camino. 
Fernando Savater en "los siete pecados capitales".

Antes de reprochar a quien llega a portarse como una fiera, hay que evitar que viva como un animal. Fernando Savater en "Los siete pecados capitales".

Un monje que vivía en un monasterio y tenía tendencia a la ira. Un día tuvo una violenta discusión con otro monje y cayó muerto por un ataque al corazón. Entonces el abad dijo -'Hay que enterrarlo fuera del campo santo porque murió de ira'-. Apareció un ángel que informó a los presentes que el alma del muerto estaba en el cielo -¿Cómo - se pregunta el abad -, si murió de ira? A lo que el ángel contesta: 'No, murió peleando contra su propia ira'.
Fernando Savater en 'Los siete pecados capitales'

Interculturalidad.
Superación de la neofobia. Las fronteras culturales conllevan actitudes de neofobia. Y es que las culturas se definen por las fronteras que trazan entre lo imposible, lo cotidiano, lo plausible, lo impensable. Todo modo de ver es un modo de no ver; toda cultura, que es una forma de vida, es decir, un modo de estar en el mundo, es también un modo de no estar. Una cultura se define por aquello que rechaza y sitúa en el ámbito de lo impensable. De ahí que toda cultura conlleve una actitud neofóbica para evitar su contaminación, o la tendencia a generar una coraza protectora frente a su posible disolución. De ahí la creatividad del cruce de culturas que, al romper los marcos de plausibilidad, posibilita lo que antes era impensable.
José Ángel del Moral Palacio

Libertad de decisión del individuo. Una cosa es que la comunidad se organice autónomamente, y otra, ya no legítima éticamente, que imponga a los individuos su organización. La última instancia de decisión sobre la asunción de costumbres y normas culturales está reservada al individuo. Imponer a una persona una identidad no deseada en nombre de la conservación de un grupo étnico y cultural es un atentado al derecho de la libertad. La objeción de conciencia y la distancia siempre han de ser una puerta abierta a toda colectividad, aunque estas tengan que ser mínimamente reguladas.
José Ángel del Moral Palacio

Quien no comprende la extrañeza de si mismo, encuentra en todas partes de nuevo solamente lo mismo y a si mismo, por muchos países y mares que recorra. Y es que desde la superficie de lo propio no se puede descubrir ningún mundo ni cultura ajena; solo desde las profundidades de uno mismo se abren también las de los demás.
   José Ángel del Moral Palacio en
   Conde Gaxiola, Napoleón. 2010
   Hermenéutica analógica, filosofía y
   ciencias

CARACTER:
Conjunto de peculiaridades psíquicas estables del hombre; depende de la actividad del individuo y de sus condiciones de vida, y se manifiesta en la manera de obrar. Conociendo el carácter de un hombre, es posible prever de qué modo éste se va a comportar en determinadas circunstancias y, por ende, orientar la conducta formando, en el individuo cualidades valiosas para la sociedad. El carácter se pone de relieve en la manera como el hombre, procede consigo mismo y con los demás, en la manera de cumplir lo que se le encarga y en la manera de tratar las cosas. Donde se revela con mayor plenitud, es en la práctica social y de trabajo, en el sistema de los actos del individuo, imprimiendo su sello en toda la conducta del mismo. El carácter es de naturaleza psicológico-social, es decir depende de la concepción que la persona tiene del mundo, del saber y de la experiencia acumulados, de los principios morales aprehendidos, de la dirección que otros individuos ejerzan y de la activa interinfluencia que con ellos la persona dada establezca. El carácter no es innato, se forma en el ambiente que crea la actividad del hombre, y depende de la educación.
   http://www.mitecnologico.com/Main/Caracter

Clados. Cladismo.

Clados. Cladismo.

Categoría: 3. Humanidades y comportamiento humano.

El axioma fundamental del cladismo es que, como producto de la evolución, la naturaleza posee un orden jerárquico que puede ser descubierto y representado mediante un diagrama jerárquico ramificado, llamado árbol o cladograma. Si pudiéramos formular una descripción gnoseológica preliminar del procedimiento utilizado en la cladística se podría decir que es: Descriptivo, matemático, geométrico, jerárquico, unívoco, analógico, simbólico
... los 'símbolos cuentan la situación del hombre en el mundo' motivando permanentemente la reflexión humana.

Lucio Florio en: Napoleón Conde Gaxiola. 2010. Hermenéutica analógica, filosofía y ciencias. Editorial Torres Asociados.
Biblioteca Nacional de México.




Anticipe su bajada...

Anticipe su bajada ...

Categoría: 3. Humanidades y comportamiento humano.

La leyenda que aparece con frecuencia en autobuses y Metro 'anticipe su bajada', parece tener más significado que el hecho de agilizar el ascenso y descenso de los pasajeros. Ahora he hecho el ejercicio de levantarme del asiento antes de llegar a la estación y he percibido con agrado, que mis piernas se desentumen y puedo caminar con más holgura. El efecto es más notorio en invierno, cuando los músculos se enfrían al permanecer mucho tiempo sentado y en ocasiones quedan francamente entumecidas. Es cuando las piernas agradecen más estirarse un poco, antes de ponerlas a caminar, en lugar de levantarse de golpe y tener que estirarse prácticamente ya en pleno galope. Bueno, saludos.



Sobre aún trata de recobrar el control de su planta...

Sobre aún tratando de recobrar el control de su planta.

Categoría: 3. Humanidades y comportamiento humano.

Aún trata de recobrar el control de su planta ante cada vez más críticas. - Encabezado de una noticia sobre el desastre nuclear en Fukushima, Japón.

La vida es así, no la he inventado yo. - como dice la canción -





domingo, 18 de septiembre de 2011

Lluvia de ideas.

Lluvia de ideas.

Categoría: 3. Humanidades y comportamiento humano.

Al seguir un camino en una dirección es posible que pasemos algunos minutos sin ver un paisaje agradable a la vista. Pero si nos detenemos un poco en nuestra observación de los alrededores, siempre es posible encontrar o adivinar un sitio en donde, si damos media vuelta y miramos hacia atrás, encontramos un paisaje que nos resulta agradable, sin importar que quizás esté compuesto por los mismos elementos. Si es naturaleza, veremos la misma vegetación, tal vez el mismo relieve, si es zona urbana veremos construcciones, automóviles y avenidas, pero con distinta iluminación, con un ángulo en el que no pudimos haber mirado sin haber girado la vista.
En sentido estricto esto no significa volver la vista atrás o tener nostalgia de algo que ya pasó, quizás hace  muy poco tiempo. Porque es algo que no habímos visto de la manera en que ahora lo miramos.
Esta es una idea aun difusa y no puedo pensar en un ejemplo o una analogía que me ayude a explicar mejor la idea, porque es eso, una idea. En cuanto pueda desarrollar un poco el tema voy a poder ver el tema con más claridad.
Saludos.

[...] ¿No te das cuenta de que todo el objetivo de la neolengua es constreñir el nivel del pensamiento? Al final, haremos que el librepensar sea literalmente imposible porque no habrá palabras para poderlo expresar. [...]
          Jeorge Orwell, "1984"

- Era terriblemente peligroso dejar que los pensamientos se te fueran, azarosos, cuando te encontrabas en un lugar público o dentro del radio de la telepantalla. El más pequeño pensamiento te podía llevar a la ruina. [...]
          Jeorge Orwell, "1984"
La jactancia te sienta de maravilla, pero muéstranos tus artes. (Mefisto a un bufón)
      Fausto. JW von Goethe (1749-1832)

El verbo ventanar es diferente del verbo ventanear. Ventanar se puede aplicar a la programación en ambiente Windowws, por ejemplo Visual Basic o Visual C++.

Dicen que el tiempo es el maestro más cruel; primero te entrega el examen, y luego te da la lección.
   Andrés Tapia, en la sección "Asuntos pendientes antes de morir",    revista GQ-México, Agosto de 2011.

En alguna ocasión incursioné, sólo a nivel de revisión bibliográfica, en el tema de las micorrizas cuando estaba trabajando en un laboratorio de micropropagación. Me encargaron desarrollar tecnologías para propagar pinos (también otras especies forestales) y la sobrevivencia en el vivero dependía en gran medida de estas simbiosis con hongos. Lo malo es que me quedé a nivel de tener pinos en el laboratorio y las micorrizas en la mente. La vida me llevó por otros caminos. Por ahora estoy desarrollando mi proyecto de doctorado sobre tratamiento de agua residual en lechos sembrados con vegetación acuática. Ya no me falta mucho y espero terminar en lo que resta del año.

Nuestros genes no son solidarios, ni tolerantes, ni justicieros, por el contrario son egoistas y agresivos. Los que quieren dominar la naturaleza están en su contra.
Jorge García Robles, 2011.





Números aleatorios en C++.

Números aleatorios en C++.

Categoría: 1. Programación y electrónica.

En este apartado voy a colocar un programa de C++ que despliega primero tres números aleatorios para que el interlocutor/usuario los memorice y los escriba como entradas. Después genera cuatro números aleatorios y pide nuevamente al usuario que los introduzca de memoria. El proceso sigue hasta desplegar y solicitar un máximo de 10 números. Entonces se despiega el número de aciertos, el número de errores y la calificación obtenida.

El ejercicio consiste en utilizar código de procedimientos, luego funciones, después clases y finalmente una aplicación para Windows.
En unos días más les comparto el primer código. Saludos.


El programa en código de procedimientos sería el siguiente:

// el programa asigna genera tres valores aleatorios entre 0 y 9. A
// continuacion evalua expresiones logicas y pregunta al usuario/
// interlocutor la respuesta. Si acumula tres errores vuelve a empezar.
// En un segundo nivel asigna valores a cuatro variables de forma
// aleatoria entre 0 y 9. Realiza el mismo procedimiento hasta llegar a
// diez variables

#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <cmath>
#include <ctime>

using namespace std;
int main()
{
 int optn = 1;
 do
 {
 const int cont=10;
 const int almacen=10;
 int val_azar;
 int i;
 int j=2;
 int almacen_azar[almacen]={0};
 int almacen_resp[almacen]={0};
 int aciertos=0, errores=0, calificacion=0;

 do
 {
 srand(time(NULL));
 cout << "  ";
 for (i=0; i <= j; i++)
 {
  val_azar=double(rand())*10/RAND_MAX;
  cout << val_azar << "   ";
  almacen_azar[i]=val_azar;
 }
 cout << endl;
 for (i=0; i <= j; i++)
 {
  cout << "Introduce valor seguido de la tecla ENTER " << i+1 << " : ";
  cin >> almacen_resp[i];
 }
 cout << "Los valores mostrados fueron: ";
 for (i=0; i <= j; i++)
 {
  cout << almacen_azar[i] << "   ";
 }
 cout << endl;
 cout << "Tus respuestas fueron: ";
 for (i=0; i <= j; i++)
 {
  cout << almacen_resp[i] << "   ";
 }
 cout << endl << endl;
 for (i=0; i <= j; i++)
 {
 if (almacen_resp[i] == almacen_azar[i])
  aciertos ++;
 else
  errores ++;
 }
 j++;
 if (j < 10)
 cout << "Ahora memoriza " << j+1 << " numeros" << endl;
 }

 while (j < cont);
 if (aciertos+errores > 0)
 {
 calificacion = aciertos*100/(aciertos+errores);
 cout << "Hiciste: " << aciertos << " aciertos de " << aciertos + errores << " numeros memorizados!!" << endl;
 cout << "Tu calificacion fue: " << calificacion << endl;
 }
 else
 {
  cout << "Error en el conteo de aciertos..." << endl;
 }
 cout << "Presiona un numero para continuar. Para salir presiona 0. EXIT ";
 cin >> optn;
 cout << endl;
 }
 while (optn != 0);
 cin.get();
 return 0;
}


En esta versión es necesario generar una pausa para que el usuario memorice los números, después se borre la pantalla y pregunte al usuario los números memorizados. Por lo pronto lo dejo así.


Utilizando programación con funciones, se podría escribir el programa de la siguiente manera:

// el programa genera tres valores aleatorios entre 0 y 9.
// A continuacion evalua expresiones logicas y pregunta al usuario /
// interlocutor la respuesta. Si acumula tres errores el juego vuelve
// a comenzar. En un segundo nivel, asigna valores a cuatro variables
// de forma aleatoria entre 0 y 9. Realiza el mismo procedimiento hasta
// llegar a diez variables.
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <cmath>
#include <ctime>
using namespace std;
int generaAleatorio();
void almacenaAleatorio(int);
int despliegaValores();
int despliegaRespuestas();
void introduceRespuestas();
void almacenaPuntuacion();
int despliegaPuntuacion();
int val_azar, i, j=2, k;
const int almacen = 10;
const int cont = 10;
int almacen_azar[almacen]={0};
int almacen_resp[almacen]={0};
int aciertos, errores, calificacion;
int main()
{
 do
 {
  for (k=0; k <= j; k++)
  {
   generaAleatorio();
   almacenaAleatorio(almacen_azar[i]);
  }
  introduceRespuestas();
  despliegaValores();
  despliegaRespuestas();
  almacenaPuntuacion();
  j++;
  cout << "Ahora debes memorizar " << j+1 << " numeros." << endl;
 }
 while (j < cont);
 despliegaPuntuacion();
 return 0;
}
int generaAleatorio()
{
 srand(time(NULL));
 val_azar = double(rand())*10.0/RAND_MAX;
 cout << val_azar << ", ";
 return val_azar;
}
void almacenaAleatorio(int)
{
 almacen_azar[i] = val_azar;
 return;
}
int despliegaValores()
{
 cout << "Los valores mostrados fueron: ";
 for (i=0; i <= j; i++)
  cout << almacen_azar[i] << ", ";
 return almacen_azar[i];
}
int despliegaRespuestas()
{
 cout << "Tus respuestas fueron: ";
 for (i=0; i <= j; i++)
  cout << almacen_resp[i] << ", ";
 return almacen_resp[i];
}
void introduceRespuestas()
{
 for (i=0; i <= j; i++)
 {
  cout << "Introduce el valor y a continuacion presiona la tecla ENTER "
   << i++ << ": ";
  cin >> almacen_resp[i];
 }
 return;
}
void almacenaPuntuacion()
{
 for (i=0; i <= j; i++)
 {
  if (almacen_resp[i] == almacen_azar[i])
   aciertos ++;
  else
   errores ++;
 }
 return;
}
int despliegaPuntuacion()
{
 if (aciertos+errores > 0)  // evita division por cero
 {
  calificacion = aciertos*100.0/(aciertos + errores);
  cout << "Hiciste " << aciertos << " aciertos de "
   << aciertos+errores << " numeros memorizados!!" << endl;
 }
 return calificacion;
}



Este programa no se comporta en la misma forma que el anterior. Lo voy a revisar y en unos días pondré una nueva versión.



Las plantas almacenan energía del sol. Fotosíntesis.

Las plantas almacenan energía del sol.

Categoría: 2. Ciencia y tecnología.

Las plantas utilizan la energía luminosa del sol para transformar dióxido de carbono (CO2) en compuestos de alta energía como el gliceraldehído-3-fosfato y a partir de este, sintetizan moléculas más complejas como fructosa, sacarosa, almidón, celulosa o ácidos grasos. El balance entre la cantidad de energía acumulada durante la fotosínteis (en función de la biomasa de la planta y su superficie o área foliar) es importante. El punto de equilibrio o punto de compensación por luz es el estado en el cual la producción de alimentos por la fotosínteis es de igual magnitud que el consumo por la respiración y los procesos anabólicos. Otro equilibrio interesante sucede en el ciclo anual, las plantas perennes han desarrollado estrategias (a través de la evolución) para almacenar suficientes cantidades de sustancias energéticas en su organismo como para resistir durante la temporada del año en la que no pueden realizar la fotosíntesis, ya sea por falta de agua en climas secos  por el frío extremo en los lugares muy elevados o a mayores latitudes (Norte o Sur).

Buscando datos al repecto, me encontré dos sitios web que les comparto a continuación. En uno de ellos se hace un comentario interesante acerca de que debemos sentirnos agradecidos con la naturaleza debido a que nuestro organismo alamacena grasa y no algún otro compuesto energético, como el almidón, que nos proporciona menor cantidad de energía por unidad de masa, de manera que nuestro cuerpo tendría que almacenar una masa considerablemente mayor para lograr obtener la cantidad de energía que requiere (http://www.techno-preneur.net/technology/tech-trends/agriculture/animals.htm y también http://www.ftexploring.com/me/me2.html).

Debido a que las plantas y algunas bacterias, mediante el proceso fotosintético, son los únicos organismos capaces de fijar la energía contenida en la energía luminosa procedente del sol, se les conoce como productores primarios. La tecnología de los semiconductores, la nanotectnología y otras, están generando procesos de obtención de energía que se parecen en cierto sentido a estos productores primarios. También buscando algo sobre esta tecnología encontré otros sitios web que aplican las fotoceldas o celdas fotovoltaicas en la generación de energía eléctrica a partir de la energía luminosa procedente del sol (http://www.sonnenstrommontagen.de/ y esta otra http://www.solaranlage.de/firmen/ovelgoenne/sonnenstrommontagen).
Es todo por el momento. Reciban saludos.



miércoles, 14 de septiembre de 2011

Clases y funciones miembro. Programación en C++.

Clases y funciones miembro.

Categoría: 1. Programación y electrónica.


Las palabras clave private y public son especificadores de acceso que definen derechos de acceso.
- Si en una declaración de variables se usa public, el programa funciona. Pero si en la declaración de funciones se usa private, las funciones miembro y los objetos declarados en main() no van a tener acceso a ellas y el programa no se puede compilar.
El propósito de la designación private pretende de manera específica imponer seguridad en los datos requiriendo que todo el acceso a los miembros de datos provate sea a través de las funciones miembro proporcionadas.
En general, todas las funciones de clase deberrían ser publlic; como tales suministran capacidades para manipular las variables de clase desde fuera de la clase.
La función constructora tiene un propósito definido en especial: puede usarse para inicializar miembros de datos de clase con valores.
En la sección de implementación de la clase, del programa 9.1, las tres funciones miembro se escriben para permitir capacidades de inicialización, asignación y despliegue, respectivamente.
Las funciones miembro definidas en la sección de implementación tienen el mismo formato que todas las funciones de C++ escritas por el usuario con la adición del nombre de clase y el operador de resolución de alcance, ::, que identifica la función como un miembro de una clase particular.
En un lenguaje puro orientado a objetos todos los tipos de datos se construyen como clases, todos los valores de datos son objetos, todos los operadores pueden ser sobrecargados y cada operación con datos sólo puede ejecutarse usando una función que es miembro de una clase.
Aunque un lenguaje híbrido, como C++, debe tener la capacidad de definir clases, la característica distintiva de un lenguaje híbrido es que es posible escribir un programa completo sólo usando código de procedimientos.
Una forma de aumentar de manera significativa la pproductividad del programador es crear código que pueda utilizarse sin una revisión, prueba y revalidación extensas.
Proporcionar una interfaz gráfica de usuario (GUI) en la cual un usuario pueda moverse con facilidad incluso en una sola ventana es un desafío utilizando código de procedimientos. Programar ventanas múltiples y quizá superpuestas en la misma pantalla gráfica aumenta enormemente la complejidad cuando se usa código de procedimientos.
El hecho de permitir al programador definir nuevos tipos de datos, como por ejemplo un tipo rectangular, del cual pueden crearse y desplegarse en pantalla objetos rectangulares específicos, forma la base de la orientación a objetos de C++.
Una clase define tanto datos como funciones. La sección de declaración declara tanto los tipos de datos como las funciones para la clase. Luego se usa la sección de implementación para definir las funciones cuyos prototipos se han declarado en la sección de declaración.
class Nombre_clase
{
+ miembros de datos o variables de instancia                       miembros de
+ funciones miembro                                                             la clase
};
Por ejemplo,una fecha puede almacenarse como tres números enteros, uno para el ems, día y año, respectivamente. De manera alternativa, también puede usarse un solo número entero largo en la forma aaaammdd. Usando la implementación del número entero largo la fecha 5/16/08 se almacenaría como el número entero 20080516. Para ordenar fechas, el formato de número entero largo es muy atractivo debido a que la secuencia numérica de las fechas corresponde a la secuencia del calendario. El propósito de la designación private pretende de manera específica imponer seguridad en los datos requiriendo que todo el acceso a los miembros de lso datos private sea a través de las funciones miembro proporcionadas. Este tipo de acceso, el cual restringe que un usuario vea la manera en que los datos están almacenados en realidad, se conoce como ocultamiento de datos. una vez que se designa una categoría de clase como private, permanece en vigor hasta que se enlista una categoría nueva.
Después de los miembros de datos de la clase private, los prototipos de función enlistados en  la clase Fecha se han declarado com public. Esto significa que estas funciones de clase pueden ser llamadas por los objetos y funciones que no estén en la clase (externos). Ver imagen 1.
Aunque se ha elegido en forma interna almacenar todos los años como valores de cuatro dígitos (1999) que conserven información del siglo, los usuarios están acostumbrados a ver fechas donde el año es representado como un valor de dos dígitos, com 12/15/99. Para desplegar los últimos dos dígitos del valor del año, puede usarse la expresión 1999%100 que produce el valor 99 y si el año es 2006, la expresión 2006%100 produce el valor 6. Hay que observar que si se ha usado una asignación como anio=anio%100; en realidad se alteraría el valor almacenado de anio para que correspondiera a los últimos dos dígitos del año. Dado que se desea conservar el año como un número de cuatro dígitos, debe tenerse cuidado en sólo manipular el valor desplegado usando la expresión anio%100 dentro del flujo cout. Los manipuladores setfill y setw se utilizan para asegurar que los valores desplegados corresponden a fechas aceptadas de manera convencional. por ejemplo, la fecha marzo 9, 2006, debería aparecer como 3/9/06 o 03/09/06. El manipulador setw obliga a que se despliegue cada valor en un ancho de campo de 2. Dado que este manipulador sólo tiene efecto para la siguiente inserción,se ha incluido antes del despliegue de cada valor de datos. Sin embargo, como el manipulador setfill permanece en efecto hasta que se cambia el carácter de relleno, sólo se ha incluido una vez. Aquí se ha usado el manipulador setfill para cambiar el carácter de relleno de su valor por omisión de un espacio en blanco al carácter 0. Hacer esto asegura que una fecha como diciembre 9, 2006, aparecerá como 12/09/06 y no 12/9/6.
int main()
{
    Fecha a, b, c(4,1,2000);
    b.estFecha(12,25,2006);
    a.mostrarFecha( );
    b.mostrarFecha( );
    c.mostrarFecha( );
    return 0;
}
Las variables definidas como parte de una clase declarada por un usuarion se conocen como objetos.
Cuando se define el objeto a, la función constructora Fecha es invocada en forma automática. Debido a que no se han asignado parámetros a a, se usan los valores por omisión de la función constructora, produciendo la inicialización:
    a.mes = 7
    a.dia = 25
    b.anio = 2006
La siguiente instrucción en main( ), b.estFecha(12,25,2006), llama a la función estFecha de b, la cual asigna los valores de argumento12, 25, 2006 a los miembros de datos de b, lo que produce la asignación:
    b.mes = 12
    b.dia = 25
    b.anio = 2006
Hay que observar que una instrucción como cout
Es importante entender que debido a que todos los miembros de datos de la clase fueron especificados como private, una instrucción como b.mes = 12 sería inválida dentro de main( ).
Cada vez que un objeto nuevo es instanciado, es decir creado, se crea un conjunto nuevo de miembros de datos pertenecientes al objeto.
Visto de esta manera, una clase puede considerarse como una guia a partir de la cual pueden crearse instancias (objetos) particulares. Cada instancia (objeto) de una clase tendrá su propio conjunto de valores particulares para el conjunto de miembros de datos especificados en la sección de declaración de la clase.
Además de los tipos de datos permitidos para un objeto, una clase también define el comportamiento; es decir, las operaciones que se permite que se ejecuten en los miembros de datos de un objeto.
El código del programa 9.1 se encuentra en el archivo de texto adjunto.
Constructores
Una función constructora es cualquier función que tenga el mismo nombre que su clase.
El propósito deseado de un constructor es inicializar los miembroa de datos de un objeto nuevo. Como tal, dependiendo del número y tipos de argumentos suministrados, una función constructora es invocada de manera automática cada vez que se crea un objeto.
Una función constructora también puede ejecutar otras tareas como los constructores que llaman o los constructores sobrecargados y en línea, como mueatra el código de los programas 9.3 y 9.3a, en el archivo de texto adjunto.
El término constructor por omisión se usa con bastante frecuencia en C++. Se refiere a cualquier constructor que no requiere ningún argumento cuando es invocado. Esto puede deberse a que no se declararon argumentos, lo cual sucede con el valor por omisión suministrado por el compilador, o debido a que todos los argumentos se les han dado valores por omisión.
Del mismo modoen que los constructores pueden sobrecargarse, también pueden escribirse como funciones en línea. Hacerlo así tan sólo significa definir la función en la sección de declaración de la clase.


Bibliografía
Bronson, Gary, J. 2007. C++ para ingeniería y ciencias. Segunda edición. International Thomson Editores. México.