martes, 15 de enero de 2013

programa

§2  Presentación del problema
Hay bastante literatura sobre programación en general; a los académicos les gusta hablar de "Teoría de la Programación", y mucha gente se ha dedicado a especular sobre el tema. Incluso hay modas al respecto [4].  Es posible confeccionar una lista de las características que "debe" y "no debe" tener un buen programa (incluyendo la del Jefe, que solo tiene dos puntos: "Que esté para ayer;  que salga barato").  El propio Stroustrup ( TC++PL) compara las condiciones para escribir un buen programa con las de escribir buena prosa.  Según él, existen dos respuestas:  "Saber que se quiere decir" y "Práctica.  Imitar buenos escritores".  Más adelante nos recuerda que aprender a manejar bien un lenguaje puede constar tanto tiempo y esfuerzo como aprender a expresarse en un lenguaje natural o tocar un instrumento.
Por supuesto sería un atrevimiento por mi parte contradecir tan docta opinión, pero puestos a filosofar me gustaría puntualizar que el verdadero problema está en el segundo punto de la segunda respuesta; la primera, aunque ciertamente importante, me parece la verdad de Perogrullo .  Siempre me ha parecido que programar (programar bien) tiene mucho de arte.  Me parece que debe ocurrir como con la música; seguramente muchos pueden decir que debe tener una buena ejecución de violín, pero imitar a Paganini debe ser harina de otro costal.  Seguramente los profesores de armonía saben que debe tener y no tener una buena sinfonía, pero otra cosa debe ser imitar a Mozart.
Bajando a la tierra; tampoco se trata aquí de hacer "Paganinis de la programación C++" (ya me gustaría para mí); el mensaje que quisiera transmitir es doble:  El contenido en un viejo Refrán Español:  "La Universidad no presta lo que la naturaleza no da".  Como suena un poco duro, añadiré un consuelo para los que somos menos dotados;  un proverbio que leí hace tiempo, en línea con la respuesta de Stroustrup: "Por el dinero del trabajo los Dioses lo venden todo".
A continuación se comentan brevemente los pasos imprescindibles en la creación de un programa C++. Vaya por delante, que las anotaciones de los puntos §3, §4 y §5 son opinión del que suscribe basados en la propia experiencia, por tanto totalmente subjetivos y opinables.
§3  Comprender el problema.
"Custom development is that murky world where a customer tells you what to build, and you say, "are you sure?" and they say yes, and you make an absolutely beautiful spec, and say, "is this what you want?" and they say yes, and you make them sign the spec in indelible ink, nay, blood, and they do, and then you build that thing they signed off on, promptly, precisely and exactly, and they see it and they are horrified and shocked, and you spend the rest of the week reading up on whether your E&O insurance is going to cover the legal fees for the lawsuit you've gotten yourself into or merely the settlement cost. Or, if you're really lucky, the customer will smile wanly and put your code in a drawer and never use it again and never call you back".  Joel on Software "Set Your Priorities"   www.joelonsoftware.com
"As more became known about what people wanted to do with computer, it became clear that there would always be increasingly more complex problems to solve.  A part of that realization is the realization that our ability to accurately describe the problem determines the ability for the problem to be solved. Most people are incapable of clearly and precisely articulating -- to the level necessary -- the problems that they're trying to solve. This is a problem that is getting larger and not smaller".  Robert Bogue (Jupitermedia Corp) en "Breaking Down Software Development Roles".
"Often, a problem is only fully understood through the process of programming a solution for it". Bjarne Stroustrup: "Programming: Principles and Practice Using C++".

Esta es la típica obviedad que a veces se pasa por alto.  Hemos dicho que escribir un programa es establecer el comportamiento de una máquina;  parece lo más natural del mundo enterarse primero de cual es ese comportamiento.  Tener una imagen mental lo más clara posible de las características de lo que pretendemos modelar.  Esta cuestión es lo que los teóricos denominan el "espacio" del problema, "'What' domain" en la literatura inglesa.
A esta fase se la suele denominar análisis, y mi consejo particular es que después de una primera toma de contacto, el segundo paso sea definir de la forma más detallada posible el principio y el final del problema. Es decir: cual es la información de partida (incluyendo su formato y en que soporte se recibe) y cual es la información final y en que soporte se proporcionará; no es lo mismo mostrar una imagen que componer una factura o disparar un proceso si un sensor analógico-digital nos suministra una determinada señal (por citar algún ejemplo).
Normalmente en ambas cuestiones tiene mucho que decir el cliente [2], es lo que se llama especificación; el resto (lo que hay entre los datos de entrada y la salida), debe rellenarlo el programador.  Generalmente si se tienen bien definidos ambos extremos, se tiene resuelta la mitad del problema; cuando se tengan diseñados los ficheros se tendrán dos terceras partes -ver a continuación-.  Este sistema tiene además la ventaja de poner inmediatamente de manifiesto las indefiniciones de partida; a veces los clientes no saben exactamente qué desean y hay que ayudarles a centrar el problema.
Dentro de esta fase tiene especialísima importancia el tema de los límites; esto se refiere al orden de magnitudes que se manejarán.  ¿De que rango serán las magnitudes numéricas?  ¿Podrán adoptar valores negativos?  ¿Hay información alfanumérica?  ¿Como son de largas estas cadenas?.  Especialmente si el programa implica diseño de archivos (como es casi seguro),  ¿Cual podrá llegar a ser su tamaño dentro de la vida del programa?. Si se manejan ficheros u objetos binarios, ¿Como son de grandes? ¿Que concepto tiene el cliente de los que sería "rápido" o "lento"? (¿milisegundos, minutos, horas?).  En esta fase sea especialmente precavido y no se crea a pié juntillas todo lo que le digan (intente hacer de abogado del diablo).
Como postre, diseñe las líneas maestras de una estrategia de recuperación de errores de ejecución, incluyendo que hará con los no recuperables (errores fatales).  Piense por ejemplo que si algún día lo llaman para ver "que ha pasado", quizás le interese disponer de un volcado de texto ASCII en el disco con una descripción del estatus del programa como parte de las funciones de salida ( 1.5). Hoy día, cuando se empieza a hablar de frigoríficos que avisarán de que faltan provisiones o de lavadoras que avisarán al técnico si se estropean, no estaría de más que sus programas estuviesen a la altura de las circunstancias.
§4  Diseñar los ficheros y módulos
Si el programa debe utilizar ficheros que no vengan impuestos (ya existentes), y suponiendo que todo lo anterior esté suficientemente claro, este es el momento de hacerlo.  Ponga por escrito la especificación de tales ficheros, incluyendo el nombre que dará a las variables y, en su caso, el que tendrán en el disco o almacenamiento externo.  Esto puede concretarse quizás a la definición de algunas estructuras ( 4.5).  En esta fase es posible que tenga que repreguntar alguna cosa que se pasó por alto.
Teniendo ya una imagen más o menos clara de lo que hará su programa, si éste es mediano o grande, es posible que todavía tenga que realizar una labor previa antes de ponerse a escribir el código: diseñar a grandes rasgos cuales serán los módulos del programa; módulos que se corresponderán aproximadamente con la distribución del código en ficheros fuente independientes.  Quizás tenga que decidir también si algunas partes aparecerán como librerías [1].  Recuerde lo indicado al respecto al tratar de los Subespacios de Nombres ( 4.1.11).
Esta fase es especialmente importante en el caso de programas muy grandes, cuyo desarrollo se reparte entre varios programadores que se encargan de uno o varios de estos módulos.  En estos casos, el análisis, la especificación, la subdivisión en partes (con sus especificaciones particulares), y la asignación de estas como tareas a los programadores, lo habrá realizado el jefe de programación y desarrollo.
§5  Escribir el código
Suponiendo cumplimentados los pasos anteriores, el programador está en condiciones de construir una imagen mental clara de como será esa conexión entre la información de entrada y la salida, es lo que se denomina "espacio" de la solución ("'How' domain"); su forma concreta es justamente el fuente del programa que se pretende.  La codificación consiste justamente trasportar a papel (en el lenguaje de programación elegido) la imagen mental de esa conexión.
Para escribir el código fuente de un programa C++ solo se puede utilizar un subconjunto de 96 caracteres del juego total de caracteres US-ASCII ( 2.2.1a). Son los siguientes [8]:
Juego de caracteres imprimibles:

a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9
_ { } [ ] # ( ) < > % : ; . ? * + ­ / ^ & | ~ ! = , \ " ’
Caracteres no-imprimibles denominados separadores

Espacio horizontal;  Tabulación horizontal (TAB);  Tabulación vertical (VT);
Salto de forma (FF);  Nueva línea (NL).

Lenguaje De Programacion: el software

Lenguaje De Programacion: el software:                                                 El software                                                                                ...

el software

                                               El software                                                                                           refiere a los programas y datos almacenados en un ordenador. En otras palabras, son las instrucciones responsables de que el hardware (la máquina) realice su tarea.
El lenguaje utilizado por el software, para comunicarse con el hardware, es de tipo binario, viene en forma de instrucciones, las cuales son ejecutadas, por cada una de las partes del hardware (monitor, mouse, teclado, impresora, CPU, CD-ROM, disco duro, etc).
Clasificación del software
El software puede dividirse en tres categorías basicas:

  1. Software del sistema
  2. Software de aplicación
  3. Software de programación
Software del sistemaEs el software básico o sistema operativo. Es un conjunto de programas que controlan los trabajos del ordenador o computadora. Se encarga de administrar y asignar los recursos de hardware.
Software de aplicaciónSon los programas que controlan y dirige las distintas tareas que se realizan las computadoras. Creando un ambiente amigable entre el pc y el usuario. Llevan a cabo tareas de tratamiento de textos, gestión de bases de datos y similares.
Software de programaciónSon los lenguajes de programación, interpretes, compiladores y aplicaciones similares utilizadas por los desarrolladores de sistemas.
software de aplicacion

software de sistema

software de progaramacion

unidad central de procesamiento del cpu

unidad central  de  procesamiento cpu

UNIDAD CENTRAL DEL SISTEMA DE CÓMPUTO (CONTENIDO)


UNIDAD CENTRAL DEL SISTEMA DE CÓMPUTO
El sistema de cómputo es un término que designa la parte física o material de una computadora. Son los elementos tangibles tales como el teclado, los circuitos, la pantalla, la impresora, entre otros. Sus partes principales son la unidad central, las unidades de entrada, las unidades de salida y las unidades de entrada y salida.

Sus componentes son:
Se divide en tres unidades que funcionan de forma integrada, la unidad central, la unidad de entrada y la unidad de salida.
Elementos de la  Unidad Central del Sistema de Cómputo
Gabinete o chasis
Este componente es necesario en todo computador, es el que tiene incorporado dentro la mayoría de los componentes necesarios para el funcionamiento de este y que nunca especificamos a la hora de comprar un equipo. Si compramos un equipo de "marca" o compramos un equipo de una cadena de tiendas de informática, el gabinete o caja está servida, y raramente existe la opción de hacer algún cambio, excepto, en muy pocos casos, elegir entre un gabinete de sobremesa o una mini/semi-torre o una torre.
Fuentes de poder
Cuando se habla de fuente de poder, (o, en ocasiones, de fuente de alimentación y fuente de energía), se hace referencia al sistema que otorga la electricidad imprescindible para alimentar a equipos como ordenadores o computadoras. Generalmente, en las PC de escritorio, la ya citada fuente de poder se localiza en la parte posterior del gabinete y es complementada por un ventilador que impide que el dispositivo se recaliente.
Tarjeta madre
La tarjeta madre es el componente más importante de un computador. Es el dispositivo que funciona como la plataforma o circuito principal de una computadora, integra y coordina todos los sus demás elementos. Tambien es conocida como placa base, placa central, placa madre, tarjeta madre o Board (en inglés motherboard, mainboard).
La tarjeta madre es un tablero que contiene todos los conectores que se necesitan para conectar las demás tarjetas del computador. Una tarjeta madre alberga los conectores del procesador, memoria RAM, Bios, puertas en serie, puertas en paralelo, expansión de la memoria, pantalla, teclado, disco duro, enchufes. Una vez que la tarjeta madre ha sido equipada con esta los elementos que se han mencionado, se le llama “Chipset” o conjunto de procesadores.
La tarjeta madre debe realizar básicamente las siguientes tareas:
  • Conexión física.
  • Administración, control y distribución de energía eléctrica.
  • Comunicación de datos.
  • Temporización.
  • Sincronismo.
  • Control y monitoreo.

Unidad central de procesamiento
Es el componente principal del computador y otros dispositivos programables, que interpreta las instrucciones contenidas en los programas y procesa los datos. Las CPU proporcionan la característica fundamental de la computadora digital (la programabilidad) y son uno de los componentes necesarios encontrados en las computadoras de cualquier tiempo, junto con la memoria principal y los dispositivos de entrada/salida. Se conoce como microprocesador el CPU que es manufacturado con circuitos integrados. Desde mediados de los años 1970, los microprocesadores de un solo chip han reemplazado casi totalmente todos los tipos de CPU, y hoy en día, el término "CPU" es aplicado usualmente a todos los microprocesadores.

Elementos del un CPU
1) Unidad de Control (UC)
Responsable a seguir cada una de las operaciones que realiza una instrucción.
2) Unidad Aritmética y Lógica
Responsable de recibir todas las operaciones asignadas y convertirlas en datos. Estas operaciones son del tipo lógico-matemático y son respaldadas por un Co-Procesador matemático.
3) El Registro
Responsable en detallar las instrucciones tanto efectivas como fallidas. Podemos mencionar un sub-grupo en el que se encuentra el:
<!--[if !supportLists]-->·         <!--[endif]-->El Registro contador
Responsable de indicar cuál es la instrucción que sigue en el proceso.
<!--[if !supportLists]-->·         <!--[endif]-->El Registro de Instrucción
Responsable de indicar la instrucción que se encuentra en ejecución. 3d) El
<!--[if !supportLists]-->·         <!--[endif]-->Registro Acumulador
Responsable de almacenar los cálculos intermedios.
<!--[if !supportLists]-->·         <!--[endif]-->El Registro de Estado
Responsable de almacenar todos los avisos.

4) Buses
En arquitectura de computadores, el bus (o canal) es un sistema digital que transfiere datos entre los componentes de una computadora o entre computadoras. Está formado por cables o pistas en un circuito impreso, dispositivos como resistores y condensadores además de circuitos integrados.

lunes, 7 de enero de 2013

fuente de poder y sus cables de datos

Definición de fuente de poder

Cuando se habla de fuente de poder, (o, en ocasiones, de fuente de alimentación y fuente de energía), se hace referencia al sistema que otorga la electricidad imprescindible para alimentar a equipos como ordenadores o computadoras. Generalmente, en las PC de escritorio, la ya citada fuente de poder se localiza en la parte posterior del gabinete y es complementada por un ventilador que impide que el dispositivo se recaliente.
Fuente de poderLa fuente de poder, por lo tanto, puede describirse como una fuente de tipo eléctrico que logra transmitir corriente eléctrica por la generación de una diferencia de potencial entre sus bornes. Se desarrolla en base a una fuente ideal, un concepto contemplado por la teoría de circuitos que permite describir y entender el comportamiento de las piezas electrónicas y los circuitos reales.
La fuente de alimentación tiene el propósito de transformar la tensión alterna de la red industrial en una tensión casi continua. Para lograrlo, aprovecha las utilidades de un rectificador, de fusibles y de otros elementos que hacen posible la recepción de la electricidad y permiten regularla, filtrarla y adaptarla a los requerimientos específicos del equipo informático.
Resulta fundamental mantener limpia a la fuente de poder; caso contrario, el polvo acumulado impedirá la salida de aire. Al elevarse la temperatura, la fuente sufrir un recalentamiento y quemarse, un inconveniente que la hará dejar de funcionar. Caberesaltar que los fallos en la fuente de poder en perjudicar a otros elementos de la computadora, como el caso de la placa madre o la placa de video.
En concreto podemos determinar que existen dos tipos básicos de fuentes de poder. Una de ellas es la llamada AT (Advanced Technology), que tiene una mayor antigüedad pues data de la década de los años 80, y luego está la ATX (Advanced Technology Extended).
La primera de las citadas se instala en lo que es el gabinete del ordenador y su misión es transformar lo que es la corriente alterna que llega desde lo que es la línea eléctrica en corriente directa. No obstante, también tiene entre sus objetivos el proteger al sistema de las posibles subidas de voltaje o el suministrar a los dispositivos de aquel toda la cantidad de energía que necesiten para funcionar.
Además de fuente AT también es conocida como fuente analógica, fuente de alimentación AT o fuente de encendido mecánico. Su encendido mecánico y su seguridad son sus dos principales señas de identidad.
La ATX, por su parte, podemos decir que es la segunda generación de fuentes para ordenador y en concreto se diseñó para aquellos que estén dotados con microprocesador Intel Pentium MMX.
Las mismas funciones que su antecesora son las que desarrolla dicha fuente de poder que se caracteriza por ser de encendido digital, por contar con un interruptor que se dedica a evitar lo que es el consumo innecesario durante el estado de Stand By y también ofrece la posibilidad de ser perfectamente apto para lo que son los equipos que están dotados con microprocesadores más modernos.
                                                 cables de datos

 Cable de datos
Cable de datos

 Cable USB

 Cable USB


 Conector para auto
Conector para auto



 Manos Libres
Manos Libres


tipos de monito y tamaño de pantalla

*a. Tipos de monitores (CTR, LCD, LED U DLP).

Los monitores para computador contienen una gran variedad según la tecnología y la capacidad que quiera tener el usuario para su monitor por eso definimos varios tipos de monitores los cuales presentaremos a continuación:
Monitor CTR
También llamado tubos de rayos catodicos, los cuales son unos dispositivos que se emplean principalmente en monitores y televisores. Este dispositivo funciona por medio de un cañón el cual dispara constantemente a la pantalla la cual se encuentra cubierta de fósforo, el cual se ilumina al entrar en contacto con los electrones. También ya que es un monitor a color cuenta con pixeles que están compuestos por fostoro rojo, azul y verde, y de esta manera iluminando cualquier punto con diferentes intensidades puedes obtener cualquier color.

Monitor LCD
Es una pantalla de cristal liquido, la cual tiene una estructuración delgada y plana, la cual cuenta con un numero de pixeles en colores puestos delante de una luz, cuenta con una resolución desde 120×720 pixeles, cuenta con un soporte de color conocido como gama de colores y con un retardo de tiempo en mostrar una imagen en lo que dura un pixel en cambiar de color, también tiene un ancho y una altura  de 5;4 hasta 16;10.

Monitor LED
Es un dispositivo semiconductor, el cual emite luz de manera incoherente y  luminiscente,  es decir, es  como una pequeña campanita de cristal pintado relleno de un elemento que al recibir la electricidad se ilumina. Tienen una luz muy focalizada, es decir, en una dirección.  Un led por si solo no alumbra demasiado, sin embargo, muchos de ellos juntos dan una luz muy pura y eficaz.  Los monitores led están formados por un conjunto de led que al recibir el impulso electrico se iluminan. Tienen muchas ventajas, ya que no se funden como ocurre con los pixeles, permiten fabricar pantallas extremadamente planas y con una gran calidad.

Monitores DLP

Se basa en un semiconductor óptico llamado Digital Micromirror Device, o integrado DMD es básicamente un microinterruptor extremadamente exacto que permite modular digitalmente la luz mediante millones de espejos microscópicos dispuestos en un colector rectangular. Cada espejo esta separado de su vecina menos de 1 micrón. Estos espejos son literalmente capaces de activarse miles de veces por segundo y se utilizan para dirigir la luz hacia un espacio específico de un pixel. La duración de la sincronización de encendido/apagado determina el nivel del gris que muestra el pixel. Los integrados actuales de DMD pueden producir hasta 1024 grados de gris.

Pantalla o monitor del equipo

Una pantalla (o monitor) es una unidad de visualización de un equipo. Por lo general se dice que existen dos familias de pantallas:
  • Pantallas de rayos catódicos (abreviado CRT), utilizadas en la mayoría de los equipos de escritorio. Son pesadas y voluminosas, y por lo general, consumen mucha energía.
  • Los monitores de pantalla plana se usan en la mayoría de los ordenadores portátiles, smartphones y cámaras digitales y, cada vez más, en equipos de escritorio. Estas pantallas son más delgadas (de allí su nombre), livianas y consumen menos energía.