lunes, 27 de julio de 2015

PalindromoS

Se entiende como palindromo, las palabras o frases que se leen de igual manera hacia adelante o hacia atrás.

Esta palabra es de origen griego y se desprende de la frase "palin dromein", que se traduce en "ir hacia atrás"

Este fenómeno abarca a palabras, frases o números.
Ejemplos de algunas palabras:
-Aba
-Aerea
-Ama
-Ana
-Arenera
-Oso
-Ojo
-Radar
-Rajar
-Salas

Ejemplos de frases palindromas:
-Ana se levanto temprano
-El oso se comió toda la comida
-Me golpeo el ojo
-Somos o no somos amigos
-Yo hago yoga hoy
-

Ejercicio practico en C++

Ejercicio para aprender a programar el dígito verificador del rut en C++

#include <iostream>
#include <string.h>
#include <stdlib.h>

using namespace std;

int main()
{
int sec=2, suma=0, resto=0;
char RUT[12];
cout<<"Inserte su RUT sin digito verificador: ";
cin.getline(RUT, 12, '\n');

for (int i=strlen(RUT); i>=0; i--)
{
if (isdigit(RUT[i]))
{
suma = suma + (RUT[i] - 48) * sec;

if (sec==7)
{
sec=2;
}
else
{
sec++;
}
}
}
resto = suma % 11;
cout<<"Digito verificador: "<< 11 - resto<<endl;
system ("pause");
return 0;


}

miércoles, 6 de mayo de 2015

Algoritmos en dev C++


Es un conjunto ordenado y finito de operaciones sistematicas que permite hacer un calculo y hallar la solucion de un tipo de problema.
El Dev C++ es un editor que permite escribir nuestros programas que se convierten en instrucciones para ser ejecutadas y presentar los resultados

Datos de C++

#include <iostream>    ==> biblioteca ( simpre se pone al inicio de cada programa)
using namespace std;

int main() ==> se pone al comienzo del programa despues de la biblioteca seguido de un {

Cout<<   ==> imprimir dato por pantalla
ej: cout<<"ingrese numero";
 
cin>>     ==> recibe dato ingresado por el usuario
ej: cin>>dato;

while  ==> (condicion)
                  {
                   sentencia1;
                   sentencia2;
                   cont++;
                   }
           
endl;   ==> indica un salto de linea para mantener el orden

system ("pause");   ==> indica el termino  del programa seguido de un  }

Declaracion de variables

int ==> entero
float ==> real ( el resultado puede dar en decimales )
char ==> caracter

ejemplos:

1._(suma)
      int main()
      {
      int numero1;
      int numero2;
      int suma;
      cout<<"ingrese dato1";
      cin>> 4;
      cout<<"ingrese dato2";
      cin>> 7;
      cout<< "la suma es" <<4+7;
      cout<<"la suma es :"<< suma;
 
2._ #include<iostream>
      using namespace std;
      int main()
      {
      cout<<"hola"<<endl;
      system ("pause");
       }

3._ #include<iostream>
      using namespace std;
      int main()
      {
      int variable;
      cout<<" ingrese un numero"<<endl;
      cin>>variable;
      cout<<"el numero es:" <<variable <<endl;
      system("pause")
      }

METODO DE BURBUJA

for(i=1;i<100;i++)
{
for(i=0;i<100;i++)
{
if(vector[j]>=vector[i+1])
{
aux=vector[i];
n[i]=vector[i+1];
vector[i+1]=aux;
}}}

METODO POR INSERCION

for(i=1;i<100;i++)
{
aux=vector[i];
j=i-1;
while(j>0&&vector[j]<aux)
{
vector[j+1]=vector[j];
j--;
}
vector[j+1]=aux;
}

Operadores logicos:
- && (y ademas)
- ll ( uno o lo otro)

Operador de relacion:
> (mayor que)
> (menor que)
>= (mayor o igual)
<= (menor o igual)
!= (distinto)
== (compararacion)
= (toma el valor de:)

mod: %   ==> te entrega el resto de la division
ej: 5%2 =1

Operradores basicos:
+ (suma)
- (resta)
* (multiplicacion)
%(resto de la division)
/ (division)

















multiplicaciòn y divisiòn de binarios

multiplicacion de binarios

Para realizar una multiplicacion con numeros binarios se debe tomar en cuenta la tabla. Todo numero multiplicado por 0 es igual a 0. 
Lo que queda es una suma y se resuelve con la misma reglas de suma de binario tomando en cuenta el acarreo y el resultado de la suma es nuestro resultado de la multiplicacion

0x0=0
1x0=0
0x1=0
1x1=1

Ejemplos:



        




























DIVISION DE BINARIOS

Se utilizan las mismas reglas de numeros binarios que vimos anteriormente.










   

suma y resta de binarios

suma de binarios 


Se comienza la operacion de derecha a izquierda al igual que una suma normal con la diferencia de que se utiliza la siquiente tabla:

0+0=0
1+0=1
0+1=1
1+1=0 => se acarrea un 1

ejemplos:









Resta de binarios

Es igual que una operacion comun pero con la diferencia que al restar el numero que se acarrea, la resta es de abajo hacia arriba.
 
0-0=0
1-0=1
1-1=0
0-1=1 => se acarrea un 1

Ejemplos:

                   
               





                       

sábado, 2 de mayo de 2015

SISTEMAS NUMÉRICOS.

Sistema Octal:
El sistema de numeración octal es un sistema de numeración en base 8, una base que es potencia exacta de 2 o de la numeración binaria. Esta característica hace que la conversión a binario o viceversa sea bastante simple. El sistema octal usa 8 dígitos (0, 1, 2, 3, 4, 5, 6, 7) y tienen el mismo valor que en el sistema de numeración decimal.
7972846_orig
Sistema Binario
El sistema binario, en ciencias e informática, es un sistema de numeración en el que los números se representan utilizando solamente las cifras cero y uno (0 y 1). Es el que se utiliza en las computadoras, debido a que trabajan internamente con dos niveles de voltaje, por lo cual su sistema de numeración natural es el sistema binario (encendido 1, apagado 0).
4047637_orig
Sistema Decimal
El sistema de numeración decimal, también llamado sistema decimal, es un sistema de numeración posicional en el que las cantidades se representan utilizando como base aritmética las potencias del número diez. El conjunto de símbolos utilizado (sistema de numeración arábiga) se compone de diez cifras diferentes: cero (0); uno (1); dos (2); tres (3); cuatro (4); cinco (5); seis (6); siete (7); ocho (8) y nueve(9).
6489490_orig
Sistema Hexadecimal
Otro modo de manejar números binarios es con el uso del sistema de numeración hexadecimal. Este sistema es de base 16, lo que significa que para cada columna es posible escoger uno de entre 16 dígitos. Éstos son O, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F. Para contar en el sistema hexadecimal se inicia en la primera columna a la izquierda del punto hexadecimal y se cuenta desde O hasta F. Una vez que se llena la primera columna, se pone en cero a ella y se suma uno a la segunda columna. Después del 18, 19, lA, 1B, 1C, 1D, lE, lF siguen el 20, 21, y así sucesivamente. Después del 9FFF sigue el A000, etc.
8035370_orig
Converciones del sistema numérico:
1) Realiza la conversión a binario del número decimal 567.
Siguiendo el mismo proceso que en el ejercicio anterior, tenemos que dividir sucesivamente el
56710 entre 2 hasta que lleguemos a un número que ya no sea divisible entre 2.
Siguiendo todos los restos obtenidos, empezando por el cociente de más a la derecha, nos da
el resultado final en binario. Es decir, 10001101112.
2) Realiza la conversión tanto a decimal como a hexadecimal del número
binario 1001110110.
Conversión a decimal
En esta conversión cada cifra será multiplicada por la base del sistema de numeración (b=2)
elevada a una potencia que dependerá de la posición de esa cifra en el número a convertir.
Empezando por la posición de más a la derecha la primera cifra se multiplica por 20
, la
segunda por la derecha se multiplica por 21
, y así sucesivamente.
10011101102 = 1×29
+ 0×28
+ 0×27
+ 1×26
+ 1×25
+ 1×24
+ 0×23
+ 1×22
+ 1×21
+ 0×20
10011101102 = 1×29
+ 1×26
+ 1×25
+ 1×24
+ 1×22
+ 1×21
(obviamos los ceros)
10011101102 = 512 + 64 + 32 + 16 + 4 + 2
10011101102 = 63010
Conversión a hexadecimal
Para la conversión a hexadecimal el número a convertir se divide en grupos de 4 bits
(empezando por la derecha). Si el último grupo no tiene 4 bits se le añaden tantos ceros a la
izquierda como sea necesario hasta completar el grupo.
Por tanto, el número 10011101102 lo dividimos en 3 grupos de 4 bits cada uno de ellos; a
saber: 10, 0111 y 0110. Como el último grupo no llega a los 4 bits lo rellenamos con ceros a
la izquierda, quedando los 3 grupos de 4 bits como: 0010, 0111 y 0110.
BINARIO DECIMAL HEXADECIMAL
0000 0 0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 8
1001 9 9
1010 10 A
1011 11 B
1100 12 C
1101 13 D
1110 14 E
1111 15 F
Después de esa división, la conversión es directa (ver Tabla) ya que a cada grupo de 4 bits
(24
= 16 posibles valores = los que tiene el alfabeto hexadecimal) le corresponde un valor en
el alfabeto hexadecimal.
La conversión de cada grupo, si no sabemos la conversión directa entre el binario y el
hexadecimal, se haría de la siguiente manera:
00102 = 0×23
+ 0×22
+ 1×21
+ 0×20
= 1×21
= 210 = 216
01112 = 0×23
+ 1×22
+ 1×21
+ 1×20
= 1×22
+ 1×21
+ 1×20
= 4 + 2 + 1 = 710 = 716
01102 = 0×23
+ 1×22
+ 1×21
+ 0×20
= 1×22
+ 1×21
= 4 + 2 = 610 = 616
Por tanto, como podemos ver en la siguiente figura, al 00102 le corresponde el valor
hexadecimal 2, al 01112 el valor hexadecimal 7 y al 01102 el valor hexadecimal 6.
El resultado final es: 10011101102 = 27616.
3) El sistema octal es un sistema de numeración en base 8 (b=8) cuyo alfabeto
es { 0, 1, 2, 3, 4, 5, 6, 7 }. Construir una tabla con la representación de los 32
primeros números en los sistemas de numeración hexadecimal, decimal,
octal y binario.
BINARIO OCTAL DECIMAL HEXADECIMAL BINARIO OCTAL DECIMAL HEXADECIMAL
0000 00 00 00 10000 20 16 10
0001 01 01 01 10001 21 17 11
0010 02 02 02 10010 22 18 12
0011 03 03 03 10011 23 19 13
0100 04 04 04 10100 24 20 14
0101 05 05 05 10101 25 21 15
0110 06 06 06 10110 26 22 16
0111 07 07 07 10111 27 23 17
1000 10 08 08 11000 30 24 18
1001 11 09 09 11001 31 25 19
1010 12 10 0A 11010 32 26 1A
1011 13 11 0B 11011 33 27 1B
1100 14 12 0C 11100 34 28 1C
1101 15 13 0D 11101 35 29 1D
1110 16 14 0E 11110 36 30 1E
1111 17 15 0F 11111 37 31 1F
Como se puede comprobar en la Tabla, hay cierta relación en el número de bits que
necesitan los diferentes sistemas de numeración vistos en clase. Con un bit, el sistema binario
puede codificar hasta 2 valores; el 0 y el 1.
Con 2 bits se pueden llegar a codificar hasta 22
= 4 posibles valores diferentes:
BINARIO DECIMAL
2 DÍGITOS
00 0
01 1
10 2
11 3
Por tanto, un sistema de numeración cuyo alfabeto fuese { 0, 1, 2, 3 } (4 posibles valores
diferentes) podría codificarse en un ordenador utilizando únicamente 2 bits. Con 3 bits se
pueden codificar hasta 23
= 8 posibles valores diferentes:
BINARIO OCTAL DECIMAL
3 DÍGITOS 1 DÍGITO
000 0 0
001 1 1
010 2 2
011 3 3
100 4 4
101 5 5
110 6 6
111 7 7
Por tanto, con 3 bits podemos codificar todos los posibles valores del sistema de numeración
octal (b=8); es decir, todos los posibles valores de su alfabeto { 0, 1, 2, 3, 4, 5, 6, 7 } (8
posibles valores diferentes).
Por último, con 4 bits se pueden codificar hasta 24
= 16 posibles valores diferentes; es decir,
los mismos posibles valores que tiene el sistema hexadecimal (b=16). Ver la Tabla.
4) Intenta realizar la conversión a decimal del número octal 325.
El proceso de conversión a decimal es igual que si hiciéramos la conversión de binario a
decimal, pero en este caso la base del sistema de numeración es 8 (b=8) en lugar de 2.
3258 = 3×82
+ 2×81
+ 5×80
= 3×64 + 2×8 + 5×1 = 192 + 16 + 5 = 21310
5) ¿Cuál es el siguiente número hexadecimal al 19F? a) 2A0 b) 200 c) 1A0
Si empezamos por la cifra de más a la derecha, la F, tenemos que el siguiente número es el 0
ya que la F es la última cifra del alfabeto hexadecimal. Extrapolándolo a nuestro sistema
decimal, lo mismo ocurre cuando del número 9 pasamos directamente al 0, debido a que ya no
existen más números en el alfabeto decimal.
Al cambiar de la F al 0 tenemos que sumar 1 (el acarreo) a la siguiente cifra; al igual que
ocurre en el sistema decimal. En este caso, al 9 le sumamos 1. El resultado en hexadecimal es
A, que correspondería con el número 10 en decimal. Como pasar del 9 a la A no supone
volver al primer valor del alfabeto, la tercera cifra no sufre ninguna modificación (no hay
acarreo). Por tanto se quedaría el 1.
Solución: El siguiente número al 19F16 corresponde con el 1A016 (opción C).
6) ¿Cuántos bytes tienen 16 MB? Y, ¿cuántos bits?
Si 1 MB corresponde a 1024 KB entonces 16 MB serán 16×1024 KB. Es decir, 16 MB
corresponden a 16384 KB en total. A su vez, 1 KB corresponde a 1024 bytes; por lo que
16384 KB serán 16384×1024 bytes. Es decir, 16777216 bytes en total.
Por otro lado, como 1 byte corresponde a 8 bits entonces 16777216 bytes serán 16777216×8
bits. Es decir, 16 MB corresponde a 134217728 bits en total. Resumiendo: 16 MB = 16×1024 KB = 16384 KB = 16384×1024 bytes = 16777216 bytes =
16777216×8 bits = 134217728 bits
7) Si tengo 2 módulos de memoria con 512 MB y 1024 MB, ¿cuántos GB de
memoria tengo en total?
La suma total de ambos módulos sería 512 MB + 1024 MB = 1536 MB.
Por otro lado, si 1 GB corresponde a 1024 MB entonces 1536 MB serán:
1536 MB / 1024 MB = 1,5 GB
8) Tenemos un disco duro con una capacidad total de 20 GB. Si cada bloque en
los que ese disco duro se divide tiene 4 KB, ¿cuántos bloques hay en total?
Lo primero, tendremos que convertir la capacidad del disco duro de GB a KB. Recordemos que
1 GB corresponde a 1024 MB (primera conversión), por lo que 20 GB serán:
20×1024 = 20480 MB
A su vez, 1 MB equivale a 1024 KB (segunda conversión). Por tanto, si tenemos un disco duro
de 20480 MB, en total tendremos también:
20480×1024 = 20971520 KB
Finalmente, si cada bloque en los que el disco duro se divide ocupa 4 KB, tendremos un total de:
20971520 KB / 4 KB = 5242880 bloques

historia de la computacion

historia del computador

Máquina capaz de efectuar una secuencia de operaciones mediante un programa, de tal manera, que se realice un procesamiento sobre un conjunto de datos de entrada, obteniéndose otro conjunto de datos de salida.

Antes del primer computador

Desde el principio del tiempo los hombres siempre han inventado cosas para que la vida fuera más cómoda.
Hace 50.000 años, el hombre primitivo aprendió a hacer fuego para obtener calor. Hace 5.000 años, alguien inventó la rueda para poder mover objetos con más facilidad. Hace unos 4.000 años, los chinos inventaron un objeto para solucionar mejor los problemas de matemáticas: el ábaco.
El ábaco no podía realizar la mayor parte de las tareas que realiza un computador, pero sí hacía algo importante que hacen los computadores: con él se resolvían los problemas de matemáticas más fácilmente.
Ya en el siglo XVII, en 1641, un francés llamado Blaise Pascal hizo un aporte importante para la historia del computador, inventó una máquina de sumar, a la que dio el nombre de Pascalina. Podía sumar y restar largas columnas de números sin cometer ningún error.(cfr. Marquès, P. et al. “Cómo introducir y utilizar el ordenador en la clase”. p. 16.)
Unos años más tarde, un alemán llamado Gottfried Leibnitz mejoró la máquina de Pascal: inventó una calculadora. Aparte de sumar y restar, también podía multiplicar, dividir, y hallar la raíz cuadrada de un número. Se accionaba manualmente. (cfr. Tison, C. et al. “Guía para niños sobre ordenadores”. p. 3.)
Casi doscientos años más tarde apareció otro invento importante. Era un telar automático, inventado en 1801 por Joseph-Marie Jacquard. El telar utilizaba información codificada para fabricar la tela.
Esta nueva máquina entrelazaba los hilos mientras se pedaleaba. Jacquard hizo unos agujeros en una tarjetas y las juntó para hacer una secuencia. El telar tomaba información de los cartones y la usaba para fabricar los tejidos. (cfr. Idem. pp. 3 – 4)
En 1833, Charles Babbage y Lady Augusta Ada Byron, la Condesa de Lovelace, empezaron a trabajar juntos en un invento al que llamaron calculadora analítica. Querían que funcionase por sí sola, sin que nadie la accionara. Buscaron la manera de dar información a la máquina, que hiciera algo con ésta y que devolviera otra información.
En 1839, Babbage se dedicó por entero a trabajar en pequeñas computadoras. Lovelace ya había completado sus teorías sobre cómo dar instrucciones al computador. Ninguno de los dos llegó a construir esta máquina. Hacían falta miles de pequeñas piezas construidas a la perfección, y en el siglo XIX no había herramientas que fabricasen piezas tan pequeñas y perfectas. La calculadora no se finalizó nunca.
B. El Primer Computador
Cada diez años, el gobierno de Estados Unidos hace un censo. En 1880, el gobierno empezó uno, pero había tanta gente en Estados Unidos, que tardaron 8 años en contarlos a todos y en poner información sobre dónde vivían y a qué se dedicaban. Ocho años era demasiado tiempo, así que el gobierno celebró un concurso para encontrar una manera mejor de contar gente. Herman Hollerith inventó una máquina denominada máquina tabuladora. Esta máquina ganó el concurso, y el gobierno la usó en el censo de 1890.
La máquina de Herman usaba tarjetas perforadas, y cada agujero significaba algo. Un agujero significaba que la persona estaba casada, otro, que no lo estaba. Un agujero significaba que era de sexo masculino, otro, de sexo femenino. La electricidad pasaba a través de los agujeros y encendía los motores, que a su vez activaban los contadores.
En 1890, sólo hicieron falta seis semanas para realizar el primer recuento sencillo. El recuento completo se realizó en sólo dos años y medio.
La nueva máquina tabuladora de Herman se hizo famosa. Se vendieron copias a otros países para que realizasen sus censos. Pero Herman no se paró en este invento. Comenzó una empresa llamada International Business Machines. Hoy en día es una de las empresas informáticas más grande del mundo: IBM. (cfr. Idem. pp. 9 – 10.)
A principios del siglo XX, muchas personas de todo el mundo inventaron computadores que funcionaban de maneras similares a la máquina tabuladora. Hacían experimentos para que funcionaran más rápido, y realizaran más tareas aparte de contar.
C. La Primera Generación de Computadores
Alan Turing, en 1937, desarrolló el primer auténtico proyecto de un computador. En 1944, en la Universidad de Harvard, crearon el primer calculador electromecánico, el Mark1. Era lento y poco fiable.
En 1945, John von Neumann concibió la idea de un computador que se manejaba mediante instrucciones almacenadas en una memoria. Este concepto moderno de computador se plasmó, en 1946, en un prototipo llamado ENIAC, en los Estados Unidos, a partir de una iniciativa de las fuerzas armadas de ese país. Medía 30 metros de longitud, una altura de 3 y una profundidad de 1. Utilizaba 18.000 válvulas, conectados a 70.000 resistencias, 10.000 condensadores y 6.000 interruptores. (cfr. Pentiraro, E. Op. cit., p. 2.)
En 1951, la compañía Sperry Univac, comenzó la producción en serie del primer computador electrónico, el UNIVAC I. Sperry introdujo dentro del UNIVAC la información sobre las elecciones presidenciales estadounidenses de 1952. Antes de que se anunciasen los resultados, UNIVAC ya había predicho que Dwight D. Eisenhower ganaría las elecciones.
A partir de ese momento todos los computadores funcionarán según los principios de Von Neumann.
D. La Segunda Generación de Computadores
En 1948, un grupo de personas que trabajaban en el laboratorio Bell dieron el primer paso hacia un computador pequeño y fácil de usar, al crear el transistor. Un transistor controla la cantidad de energía eléctrica que entra y sale por un cable.
Sólo en 1958 se comenzaron a producir en serie los primeros computadores que utilizaban este pequeño bloque de silicio. Este mineral es un material semiconductor que contiene impurezas que alteran su conductividad eléctrica. Así, el computador se vuelve más económico, más rápido y más compacto.
E. La Tercera Generación de Computadores
Entre finales de los años sesenta y principios de los setenta se prepara otro importante cambio: el circuito integrado. Sobre una pieza de silicio monocristalino de reducido tamaño se encajan piezas semiconductoras. (cfr. Ídem, p. 6.) Se reducen los tamaños, aumentando la velocidad de proceso ya que se requiere una menor cantidad de tiempo para abrir y cerrar los circuitos.
F. La Cuarta Generación de Computadores
El circuito integrado se utilizó en los computadores hasta mediados de los setenta. En 1971, una empresa norteamericana llamada Intel desarrolló un proyecto de circuito integrado distinto, cuya característica fundamental era la posibilidad de programarlo como un auténtico computador. De esta forma nace el microprocesador.
A partir de 1975 se produce una verdadera revolución con este dispositivo de un par de centímetros de longitud. Las diferentes empresas construyen computadores basándose en el chip de Intel. Cada vez más instituciones adquieren computadores para optimizar sus procesos.
El chip de silicio es más pequeño que una moneda, pero contiene toda la información que el computador necesita para funcionar. Esto hace que los computadores sean mucho más rápidos y que gasten menos energía.
“Hoy en día, no hace falta ser un científico de computadores para manejar un computador. Algunos computadores son tan pequeños que caben en un bolsillo, y se pueden conectar a un enchufe o ponerles pilas. Los computadores pueden manejar la información de formas que nadie se podía imaginar en los tiempos de Hollerith, razón por la que actualmente son tan populares”. (Tison, C. Op. cit., p 12.).