lunes, 27 de julio de 2015

Lenguaje de Programación C++

Un lenguaje de programación es un lenguaje formal diseñado para expresar procesos que pueden ser llevados a cabo por máquinas como las computadoras.


C++

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 exitoso lenguaje de programación C con mecanismos que permitan 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 sumó a los otros dos paradigmas que ya estaban admitidos (programación estructurada y la 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 (sobrecarga de 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

Funciones Basicas

Algunas funciones basicas Son:

int main ()

declaracion de variables
}

#INCLUDE <iostream>  
using namespace std;  
Es una libreria para utilisar la funcion Cin y Cout

Cout<< 
imprime en pantalla y se usa asi cout<<"palabra a mostrar";

Cin>>
guarda el dato ingresado 

DECLARACION DE VARIABLES

ENTERO = int
REAL = float
CARECTER = char

importante 

viernes, 24 de abril de 2015

Sistemas Numericos

Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. Los sistemas de numeración actuales son sistemas posicionales, que se caracterizan porque un símbolo tiene distinto valor según la posición que ocupa en la cifra.

Sistema Numérico Decimal

El sistema de numeración que utilizamos habitualmente es el decimal, que se compone de diez símbolos o dígitos (0, 1, 2, 3, 4, 5, 6, 7, 8 y 9) a los que otorga un valor dependiendo de la posición que ocupen en la cifra: unidades, decenas, centenas, etc.

El valor de cada dígito está asociado al de una potencia de base 10, número que coincide con la cantidad de símbolos o dígitos del sistema decimal, y un exponente igual a la posición que ocupa el dígito menos uno, contando desde la derecha.

En el sistema decimal el número 123, por ejemplo, significa:
                      
123 = 1*10^2 + 2*10^1 + 3*10^0
       =    100   +    20      +   3
       =             123

Sistema Numérico Binario

El sistema de numeración binario utiliza sólo dos dígitos, el cero (0) y el uno (1).

En una cifra binaria, cada dígito tiene distinto valor dependiendo de la posición que ocupe. El valor de cada posición es el de una potencia de base 2, elevada a un exponente igual a la posición del dígito menos uno. Se puede observar que, tal y como ocurría con el sistema decimal, la base de la potencia coincide con la cantidad de dígitos utilizados (2) para representar los números.

De acuerdo con estas reglas, el número binario 10010 tiene un valor que se calcula así:

10010 = 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*10^0
           =     16   +     0    +    0     +     2    +    0
           =                                18 (en base Decimal)
10010 (binario) = 18 (decimal)

Conversión de Números decimales a binario

Convertir un número decimal al sistema binario es muy sencillo: basta con realizar divisiones sucesivas por 2 y escribir los restos obtenidos en cada división en orden inverso al que han sido obtenidos.

Por ejemplo, para convertir al sistema binario el número 234(decimal) haremos una serie de divisiones que arrojarán los restos siguientes:

234 / 2 = 117
resto= 0

117 / 2 = 58
resto= 1

58 / 2 = 29
resto= 0

29 / 2 = 14
resto= 1

14 / 2 = 7
resto= 0

7 / 2 = 3
resto= 1

3 / 2 = 1
resto= 1

1 / 2 = 0
resto= 1

Luego tomamos los restos en orden de la ultima división que efectuamos hasta la primera, quedando así:

11101010(binario) = 234(decimal)

Sistema de numeración octal

El inconveniente de la codificación binaria es que la representación de algunos números resulta muy larga. Por este motivo se utilizan otros sistemas de numeración que resulten más cómodos de escribir: el sistema octal y el sistema hexadecimal. Afortunadamente, resulta muy fácil convertir un número binario a octal o a hexadecimal.

En el sistema de numeración octal, los números se representan mediante ocho dígitos diferentes: 0, 1, 2, 3, 4, 5, 6 y 7. Cada dígito tiene, naturalmente, un valor distinto dependiendo del lu­gar que ocupen. El valor de cada una de las posiciones viene determinado por las potencias de base 8.

Por ejemplo, el número 421(octal) tiene un valor que se calcula así:

421 = 4*8^2 + 2*8^1 + 1*10^0
       =   256  +  16     +  1
       =           273
421(octal) = 273(decimal)

Conversión de un número decimal a octal


La conversión de un número decimal a octal se hace con la misma técnica que ya hemos utilizado en la conversión a binario, mediante divisiones sucesivas por 8 y colocando los restos obtenidos en orden inverso. Por ejemplo, para escribir en octal el número decimal 132(decimal) tendremos que hacer las siguientes divisiones:

132 / 8 = 16
resto= 4

16 / 8 = 2
resto= 0

2 / 8 = 0
resto= 2

=204(octal)

132(decimal) = 204(octal)

Sistema de numeración hexadecimal
En el sistema hexadecimal los números se representan con dieciséis símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F. Se utilizan los caracteres A, B, C, D, E y F representando las cantidades decima­les 10, 11, 12, 13, 14 y 15 respectivamente, porque no hay dígitos mayores que 9 en el sistema decimal. El valor de cada uno de estos símbolos depende, como es lógico, de su posición, que se calcula mediante potencias de base 16.

Calculemos, a modo de ejemplo, el valor del número hexadecimal A1D6

A1D6 = 
donde A=10 y D=13
10_1_13_6 = 10*16^3 + 1*16^2 + 13*16^1 + 6*16^0
                   =    40960 +  256     +   208      +   6
                   =                       41430(decimal)
A1D6(hexadecimal) = 41430 (decimal)

Conversión de un numero decimal a hexadecimal

La conversión de un número decimal a hexadecimal se hace con la misma técnica que ya hemos utilizado en la conversión a binario, mediante divisiones sucesivas por 16 y colocando los restos obtenidos en orden inverso .Pero recuerda que cuando te sobre 10=A ; 11=B ; 12=C ; 13=D ; 14=E ; 15=F . Por ejemplo, para escribir en hexadecimal el número decimal 41430 tendremos que hacer las siguientes divisiones:

41430 / 16 = 2589
resto= 6

2589 / 16 = 161
resto= 13=D

161 / 16 = 10
resto= 1

10 / 16 = 0
resto= 10=A

A1D6 

41430(decimal) = A1D6(hexadecimal) 

Tablas de Conversión de Binario a Octal (y viceversa)




Tabla de Conversión de Binario a Hexadecimal 
(y viceversa)









jueves, 23 de abril de 2015

Evolución Historica

En los años 500 A.C. los egipcios inventaron el primer dispositivo para calcular, posteriormente en el siglo XIII D.C. los chinos perfeccionan este dispositivo, dándolo a conocer como Ábaco. Los japoneses re-diseñaron ese dispositivo denominándolo Seroban.


Generaciones de Computadoras
La definición de computador es maquina electrónica capas de calcular. En ella encontramos 4 generaciones de computadoras.

1° Generación de Computadoras:
Características:
  •        1940-1955
  •         Utilizan tubos al vacío
  •         Enormes (20,000 tubos) y lentas (un ciclo » 1 seg.)
  •         Un solo grupo diseñaba, construía, programaba, operaba y mantenía cada máquina.
  •         Toda la programación se hacía en lenguaje máquina (conectando cables en un tablero).
  •         No existían los sistemas operativos.
  •         En 1950 se introducen las tarjetas perforadas.

Computadoras:

Atanasoff Berry Computer (1939 - 1942)

  •        Primera computadora digital (binaria).
  •        No era de proposito general.
  •        Resolvía sistemas de ecuaciones lineales.
  •        John Atanasoff y Clifford Berry de la Iowa State University.
Atanasoff Berry Computer.


Colossus (1943)

  • Desarrollo Británico
  • Diseñada para descrifar los mensajes encriptados por los alemanes
  • Participo Turing
  • No se conoció hasta los 80 (Top Secret)

Colossus

ENIAC (1946)
(Electronic Numerical Integrator and Computer)



  •        Hecho por John Mauchly y John Presper Eckert en la Universidad de Pensilvana.
  •        Primera computadora de propósito general.
  •        Se Programaba por "cableado".
  •        Construida principalmente para calcular la trayectoria de las armas.
  •        Von Newman participo de las ultimas etapas del proyecto.
  •        Se usó hasta 1955.


ENIAC


MARK I (1948)
Tambien llamada Baby fue usada para demostrar el concepto de programa almacenado
En 1948 se contrató a Turing para el desarrolo de un lenguaje de programación para la
máquina
MARK I

EDVAC(1949)
Fue el primer equipo con capacidad de almacenamiento de memoria e hizo desechar a los
otros equipos que tenían que ser intercambiados o reconfigurados cada vez que se usaban.


EDVAC

UNIVAC(1949)
(Universal Automatic Computer)
La misma que fue diseñada con propósitos de uso general y universal pues ya podía
procesar problemas alfanuméricos y de datos. La primera computadora comercial.
  •        Incorpora el uso de cintas magnéticas
  •        Cálculos para el censo de USA
  •        Fin de los 50´ se crea el UNIVAC II (mas rápida y mas memoria)
UNIVAC

2° Generación de Computadoras

Características:
  •        1955-1966.
  •        Se introducen los transistores (Más baratos, mas chicos, menos disipación al calor, silicio(arena)).
  •        Distinción entre diseñadores, constructores, programadores, operadores y personal de mantenimiento.
  •        Mainframes(super computador) en salas acondicionadas.
  •        Nace la microprogramación.


IBM (1962)

      Se crea el modelo 1311 (La Unidad de Almacenamiento en Disco IBM 1311), usando los primeros discos removibles. La portabilidad de la información empezó a ser posible gracias a esta nueva tecnología, la cual fue empleada por los líderes del hardware. Tenia un tamaño similar a el de una lavadora, cada paquete de discos (disk pack) podía guardar mas de 2 millones de caracteres de información, (2 Megabytes de ahora). En la actualidad existen muchos medios de almacenamiento portables: pendrive, CD-ROMs, MicroSD, etc.


IBM


3° Generación de Computadoras

Características:

  •        1965 - 1980.
  •        Se Introducen los circuitos integrados
  •        Se introduce la multiprogramación
  •        Se introducen los discos duro

 IBM S/306(1964)

El IBM S/306 fue el primer ordenador en usar microprogramacion, y creo el concepto de
arquitectura de familia. La familia del 360 consistió en 6 ordenadores que podían hacer uso
del mismo software y los mismo periféricos. Fue el primer computador e ser atacado con un
virus en la historia de la informática. 
IMB S/306

Disquetes
Disquete IBM desarrolla e introduce los Disquete (Discos Flexibles) empleados para cargar
el micro-código de la IBM370.


Intel 4004
Un CPU de 4bits, fue el primer microprocesador en un simple chip, así como el primero disponible comercialmente. Aproximadamente al mismo tiempo, algunos otros diseños de CPU en circuito integrado, tales como el militar F14 CADC de 1970, fueron implementados como chipsets, es decir constelaciones de múltiples chips.

Intel
4° Generación de Computadoras

características:
  • 1980 - actualidad.
  • Usan VLSI (large scale integration).
  • > 100,000 componentes por chip
  • Facilita la creación de microprocesadores
  • Intel 8080 (8 bits) 
  • IBM PC (1981) con DOS.
  • Intel 80286, 80386 y 80486.
  • Aparecen las terminales gráficas (GUI) 
  • Macintosh
  • Microsoft “adopta” GUI y desarrolla Windows (sobre DOS)
  • Aparecen la filosofía “RISC”

Kenbak I (1971)

Considerado como el primer “ordenador personal” disponible comercialmente. Este equipo fue diseñado y fabricado por John Blankenbaker y comenzó a comercializarse en el año 1971. El objetivo principal de este equipo era el mercado educacional, sin embargo, su comercialización no fue un éxito.
Kenbak I

 Discos Winchester

Los discos duros Winchester son introducidos por IBM en los modelos 3340. Estos dispositivos de almacenamiento se convierten en el estándar de la industria.



Intel 8080
El Intel 8080 fue un microprocesador temprano diseñado y fabricado por Intel. El CPU de 8 bits fue lanzado en abril de 1974. Corría a 2 MHz, y generalmente se le considera el primer diseño de CPU microprocesador verdaderamente usable. El 8080 fue el cerebro de la primera computadora personal Mits Altair, la cual promovió un gran interés en hogares y pequeños negocios a partir de 1975.



Altair 8800

El Altair 8800 de MITS fue un microordenador diseñado en 1975, basado en la CPU Intel 8080. El primer modelo de estas computadoras no contaba con monitor ni teclado, tan sólo con luces LED y pequeñas palancas o switches para facilitar la programación.



CP/M 

Fue un sistema operativo desarrollado por Gary Kildall para el microprocesador Intel 8080, (los Intel 8085 y Zilog Z80 podían ejecutar directamente el código del 8080, aunque lo normal era que se entregara el código recompilado para el microprocesador de la máquina). Se trataba del sistema operativo más popular entre las computadoras personales en los años 70.




Fundacion de Microsoft 1975
William Henry Gates y Paul Allen forman Microsoft Corporation, en la ciudad de Alburquerque, Nuevo México, debido a que la sede de la MITS estaba en esa ciudad. Microsoft fue el proveedor de la versión del lenguaje BASIC para la computadora personal MITSAltair.




Apple 1984

Apple presenta la Macintosh, la cual se caracteriza por su sistema operativo que cuenta con una vistosa e intuitiva GUI. La misma que además de impactar al mercado, llamó poderosamente el interés de William Gates de la Microsoft.



Pentium

El primer Pentium se lanzó al mercado el 22 de marzo de 1993,1 con velocidades iniciales de 60 y 66 MHz, 3.100.000 transistores, cache interno de 8 KiB para datos y 8 KiB para instrucciones; sucediendo al procesador Intel 80486. Intel no lo llamó 586 debido a que no es posible registrar una marca compuesta solamente de números.



Inicios del Internet

La compañía BELL crea el primer módem que permitía transmitir datos binarios sobre una línea telefónica simple. Leonard Kleinrock en 1961 publica una primera teoría sobre la utilización de la conmutación de paquetes para transferir datos. En 1971, 23 computadoras son conectadas a ARPANET. Envío del primer correo por Ray Tomlinson. Y en 1972 Nacimiento del InterNetworking Working Group, organización encargada de administrar Internet.