Entrada destacada

1. Código Binario

Imagen 1: Los códigos binario se representan con ceros y uno...

jueves, 11 de mayo de 2017

0. Presentación



Centro Educativo Santo Domingo



Informática



Código Binario y Lenguaje de C++



Ana Sofía Vega Rodríguez



Profesora: Guadalupe Espinosa



XI°B



Jueves 6 de abril de 2017

jueves, 4 de mayo de 2017

4. Biblioteca de funciones


4.1 Istream:
La interfaz IStream le permite leer y escribir datos en objetos de flujo. Los objetos de flujo contienen los datos en un objeto de almacenamiento estructurado, donde los almacenes proporcionan la estructura. Los datos simples se pueden escribir directamente en un flujo, pero, lo más frecuente, los flujos son elementos anidados dentro de un objeto de almacenamiento. Son similares a los archivos estándar.
La interfaz IStream define métodos similares a las funciones de archivo FAT de MS-DOS. Por ejemplo, cada objeto de flujo tiene sus propios derechos de acceso y un puntero de búsqueda. La diferencia principal entre un archivo DOS y un objeto de secuencia es que en el último caso, se abren los flujos utilizando un puntero de interfaz IStream en vez de un identificador de archivo.
Imagen 8: Istream.
Los métodos de esta interfaz presentan los datos de su objeto como una secuencia contigua de bytes que puede leer o escribir. También hay métodos para cometer y revertir cambios en los flujos que están abiertos en el modo transaccionado y métodos para restringir el acceso a un rango de bytes en el flujo.
Los flujos pueden permanecer abiertos durante largos períodos de tiempo sin consumir recursos del sistema de archivos. El método IUnknown :: Release es similar a una función de cierre en un archivo. Una vez liberado, el objeto de flujo ya no es válido y no puede utilizarse.

4.2 Iostream:
Imagen 9: Iostream.
Iostream es un componente de la biblioteca estándar (STL) del lenguaje de programación C++ que es utilizado para operaciones de entrada/salida. Su nombre es un acrónimo de Input/Output Stream. El flujo de entrada y salida de datos en C++ (y su predecesor C) no se encuentra definida dentro de la sintaxis básica y se provee por medio de librerías de funciones especializadas como iostream. Iostream define los siguientes objetos:
  • cin : Flujo de entrada (que entra)
  • cout : Flujo de salida (que sale)
  • cerr : Flujo de error no almacenado.
  • clog : Flujo de error almacenado.
Todos los objetos derivados de iostream hacen parte del espacio de nombres std.

jueves, 27 de abril de 2017

3. Componentes



Imagen 6: Pre-procesador de C++
3.1 Directivas de pre-procesamiento:
Las directivas de pre-procesamiento ofrecen la capacidad de omitir condicionalmente secciones de los archivos de código fuente, con el fin de notificar errores y advertencias, así como de delimitar regiones características del código fuente. El término "directivas de pre-procesamiento" se utiliza por motivos de coherencia con los lenguajes de programación C y C++. En C#, no existe un paso de pre-procesamiento individual; las directivas de pre-procesamiento se procesan como parte de la fase de análisis léxico.


3.2 Declaraciones globales (variables globales):
Imagen 7: Variable global
Una variable global es, en informática, una variable accesible en todos los ámbitos de un programa informático. Los mecanismos de interacción con variables globales se denominan mecanismos de entorno global. El concepto de entorno global contrasta con el de entorno local donde todas las variables son locales sin memoria compartida (y por ello todas las iteraciones pueden restringirse al intercambio de mensajes).
El uso de este tipo de variables suele considerarse como una mala práctica, por el riesgo que conlleva esa deslocalización: una variable global puede ser modificada en cualquier parte del programa (a menos que resida en una sección de memoria protegida) y cualquier parte del programa depende de ella. Es por ello que una variable global tiene un potencial ilimitado para crear dependencias, factor éste que aumenta la complejidad. Sin embargo, en algunas ocasiones, las variables globales resultan muy útiles. Por ejemplo, se pueden usar para evitar tener que pasar variables usadas muy frecuentemente de forma continua entre diferentes subrutinas.
El uso de variables globales se desaconseja especialmente para lenguajes de programaciones funcionales (como puede ser Scheme). Viola la transparencia referencial y dificulta la legibilidad del código fuente.
Los tipos de datos en C++ son:
  • Caracteres: char (también es un entero), wchar_t.
  • Enteros: short , int , long , long long.
  • Números en coma flotante: float , double , long double.
  • Booleanos: bool.
  • Vacío: void

3.3 Función main:
Todo programa C++ tiene una función main( ) que es el punto inicial de entrada al programa. Su estructura es:
main( )
{

… bloque de estatutos
}
  
Los estatutos incluidos entre las llaves {…} se denominan bloque.Un programa debe tener sólo una función main( ). Si se intenta hacer dos funciones main ( ) se produce un error.Además de la función main( ), un programa en C++, consta de una colección de funciones.
3.4 Funciones definidas de los usuarios:
Las funciones de usuario son, como su nombre indica, las que el propio usuario declara, de igual manera que declara procedimientos. Las funciones nacen con el propósito de ser sub-programas que siempre tienen que devolver algún valor.Las dos principales diferencias entre procedimientos y funciones son:a) Las funciones siempre devuelven un valor al programa que las invocó.b) Para llamar a un procedimiento se escribe su nombre en el cuerpo del programa, y si los necesita, se incluyen los parámetros entre paréntesis. Para invocar una función es necesario hacerlo en una expresión.
Las funciones de usuario vienen definidas por un nombre, seguidas de dos paréntesis () entre los que puede haber o no argumentos. Los argumentos son valores que se le pasan a la función cuando se llama.


jueves, 20 de abril de 2017

2. Lenguaje de Programación C++

2. Lenguaje de programación C++
2.1 Historia:
Imagen 4: Fotografía de Bjarne Stroustrup
C++ es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al lenguaje de programación C mecanismos que permiten la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido.
Posteriormente se añadieron facilidades de programación genérica, que se sumaron a los paradigmas de programación estructurada y programación orientada a objetos. Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma.
Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes de compiladores más modernos. Existen también algunos intérpretes, tales como ROOT.
Una particularidad del C++ es la posibilidad de redefinir los operadores, y de poder crear nuevos tipos que se comporten como tipos fundamentales.
El nombre "C++" fue propuesto por Rick Mascitti en el año 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el nombre "C con clases". En C++, la expresión "C++" significa "incremento de C" y se refiere a que C++ es una extensión de C.
2.2 Características:
a) Tiene un conjunto completo de instrucciones de control.
b) Permite la agrupación de instrucciones.
c) Incluye el concepto de puntero (variable que contiene la dirección de otra variable).
d) Los argumentos de las funciones se transfieren por su valor.
e)  E/S no forma parte del lenguaje, sino que se proporciona a través de una biblioteca de funciones.
f) Permite la separación de un programa en módulos que admiten compilación independiente.
2.3 Versiones:
Imagen 5: Versión
En 1990, el estándar ANSI (con algunas modificaciones menores) fue adoptado por la Organización Internacional para la Estandarización (ISO) en el estándar ISO/IEC 9899:1990. Esta versión se conoce a veces como C90. No obstante, "C89" y "C90" se refieren en esencia al mismo lenguaje.
            Tras el proceso de estandarización de ANSI, la especificación del lenguaje C permaneció relativamente estable durante algún tiempo, mientras que C++ siguió evolucionando. Sin embargo, el estándar continuó bajo revisión a finales de la década de 1990, lo que llevó a la publicación del estándar ISO 9899:1999 en 1999. Este estándar se denomina habitualmente "C99". Se adoptó como estándar ANSI en marzo de 2000.
C11 (antes conocido como C1X) es un nombre informal para ISO/IEC 9899:2011,4 el último estándar publicado para C. El borrador final, N1570,5 fue publicado en abril de 2011. El nuevo estándar superó su última revisión el 10 de octubre de 2011 y fue oficialmente ratificado por la ISO y publicado el 8 de diciembre de 2011.
Una evolución de C, el lenguaje C++ (C con clases) que contiene entre otras, todas  las características de ANSI C. Los compiladores más empleados son Visual C++ de Microsoft, Builder C++ de Imprise (Antigua Borland),  C++ bajo Unix y Linux.
En el verano del 2000, Microsoft patentó una nueva versión de C++, que es C#, una evolución del C++ estándar, con propiedades de Java y diseñado para aplicaciones en línea.


1. Código Binario



Imagen 1: Los códigos binario se representan con ceros y unos.
1.1 Concepto: es el sistema numérico usado para la representación de textos, o procesadores de instrucciones de computadora, utilizando el sistema binario (sistema numérico de dos dígitos, o bit: el "0" /cerrado/ y el "1" /abierto/). En informática y telecomunicaciones, el código binario se utiliza con variados métodos de codificación de datos, tales como cadenas de caracteres, o cadenas de bits. Estos métodos pueden ser de ancho fijo o ancho variable. Por ejemplo en el caso de un CD, las señales que reflejarán el "láser" que rebotará en el CD y será recepcionado por un sensor de distinta forma indicando así, si es un cero o un uno.

1.2 Características:
Ponderación: La mayoría de los sistemas de numeración actuales son ponderados, es decir, cada posición de una secuencia de dígitos tiene asociado un peso. El sistema binario es, de hecho, un sistema de numeración posicional ponderado. Sin embargo, algunos códigos binarios, como el código Gray, no son ponderados, es decir, no tienen un peso asociado a cada posición. Otros, como el mismo código binario natural o el BCD natural sí lo son.

 

Distancia: La distancia es una característica sólo aplicable a las combinaciones binarias. La distancia entre dos combinaciones es el número de bits que cambian de una a otra. Por ejemplo, si se tienen las combinaciones de cuatro bits 0010 y 0111, correspondientes al 2 y al 7 en binario natural, se dirá que la distancia entre ellas es igual a dos (ya que de una a otra cambian dos bits).
Además, con el concepto de distancia se puede definir la distancia mínima de un código. Ésta no es más que la distancia menor que haya entre dos de las combinaciones de ese código.

 

Adyacencia: La adyacencia es una característica que consiste en que de una combinación binaria a la siguiente sólo varía un bit (distancia igual a uno). Esta propiedad es aplicable únicamente a las combinaciones binarias de un código, no al código en sí mismo.

Continuidad: La continuidad es una característica de los códigos binarios que cumplen que todas las posibles combinaciones del código son adyacentes, es decir, que de cualquier combinación del código a la siguiente cambia un sólo bit. En este caso se dice que el código es continuo. Cuando la última combinación del código es, a su vez, adyacente a la primera, se trata de un código cíclico.
Imagen 2: Conversión de binario a decimal
1.3 Conversión de binario a decimal:
Recordemos que el sistema binario es un sistema posicional y que el valor de la posición viene determinado por una potencia de 2. Por tanto, si queremos convertir un número en base 2 (binario) al sistema decimal (base 10), no tenemos más que multiplicar el dígito (0 o 1) por la potencia de 2 correspondiente a su posición.







Imagen 3: Conversión de decimal a binario

1.4 Conversión de decimal a binario:
Para convertir un valor decimal en su correspondiente binario es necesario dividir entre dos el valor decimal, sucesivamente, hasta llegar a 1. Ese 1, seguido de los restos de las divisiones, puestos en orden inverso a como fueron obtenidos, nos indicarán el valor binario de cada uno de los dígitos que forman el número binario.