martes, 28 de marzo de 2017

HISTORIA DE LA LÓGICA

HISTORIA DE LA LÓGICA

La historia de la lógica documenta el desarrollo de la lógica en varias culturas y tradiciones a lo largo de la historia. Aunque muchas culturas han empleado intrincados sistemas de razonamiento, e, incluso, el pensamiento lógico estaba ya implícito en Babilonia en algún sentido, la lógica como análisis explícito de los métodos de razonamiento ha recibido un tratamiento sustancial solo originalmente en tres tradiciones: la Antigua China, la Antigua India y la Antigua Grecia.
Aunque las dataciones exactas son inciertas, particularmente en el caso de la India, es probable que la lógica emergiese en las tres sociedades hacia el siglo IV a. C. El tratamiento formalmente sofisticado de la lógica proviene de la tradición griega, especialmente del Organon aristotélico, cuyos logros serían desarrollados por los lógicos islámicos y, luego, por los lógicos de la Edad Media europea. El descubrimiento de la lógica india entre los especialistas británicos en el siglo XVIII influyó también en la lógica moderna.

Antigua Grecia
En la Antigua Grecia, emergieron dos tradiciones lógicas opuestas. La lógica estoica estaba enraizada en Euclides de Megara, pupilo de Sócrates, y con su concentración en la lógica proposicional es la que quizás esté más próxima a la lógica moderna. Sin embargo, la tradición que sobrevivió a las influencias de culturas posteriores fue la peripatética, que tuvo su origen en el conjunto de obras de Aristóteles conocido como Organon (instrumento), la primera obra griega sistemática sobre lógica. El examen de Aristóteles del silogismo permite interesantes comparaciones con el esquema indio de la inferencia y la menos rígida discusión china.
Se considera a Aristóteles el fundador de la lógica como propedéutica o herramienta básica para todas las ciencias. Aristóteles fue el primero en formalizar los razonamientos, utilizando letras para representar términos. También fue el primero en emplear el término «lógica» para referirse al estudio de los argumentos dentro del «lenguaje apofántico» como manifestador de la verdad en la ciencia. Sostuvo que la verdad se manifiesta en el juicio verdadero y el argumento válido en el silogismo: «Silogismo es un argumento en el cual, establecidas ciertas cosas, resulta necesariamente de ellas, por ser lo que son, otra cosa diferente». Se refirió en varios escritos de su Órganon a cuestiones tales como concepto, proposición, definición, prueba y falacia. En su principal obra lógica, los Primeros analíticos, desarrolló el silogismo, un sistema lógico de estructura rígida. Aristóteles también formalizó el cuadro de oposición de los juicios y categorizó las formas válidas del silogismo. Además, Aristóteles reconoció y estudió los argumentos inductivos, base de lo que constituye la ciencia experimental, cuya lógica está estrechamente ligada al método científico. La influencia de los logros de Aristóteles fue tan grande que en el siglo XVIII Immanuel Kant llegó a decir que Aristóteles había prácticamente completado la ciencia de la lógica.
En Europa, Aristóteles fue el primero en desarrollar la lógica. La lógica aristotélica fue ampliamente aceptada en ciencias y matemáticas y permaneció en uso amplio en Occidente hasta principios del siglo XIX. El sistema de lógica de Aristóteles fue responsable de la introducción del silogismo hipotético, de la lógica modal temporal, de la lógica inductiva, así como de términos influyentes tales como términos, predicables, silogismos y proposiciones. En Europa durante el último período de la época medieval, se hicieron grandes esfuerzos para demostrar que las ideas de Aristóteles eran compatibles con la fe cristiana. Durante la Alta Edad Media, la lógica se convirtió en el foco principal de los filósofos, que participarían en análisis lógicos críticos de los argumentos filosóficos, a menudo utilizando variaciones de la metodología del escolasticismo. En 1323, William de Ockham influyente Summa Logicae fue publicado. En el siglo XVIII, el enfoque estructurado de los argumentos había degenerado y había caído en desgracia, como se muestra en el juego satírico de Holberg Erasmus Montanus.
Los filósofos estoicos introdujeron el silogismo hipotético y anunciaron la lógica proposicional, pero no tuvo mucho desarrollo.Los filósofos estoicos introdujeron el silogismo hipotético y anunciaron la lógica proposicional, pero no tuvo mucho desarrollo.
Por otro lado, la lógica informal fue cultivada por la retórica, la oratoria y la filosofía, entre otras ramas del conocimiento. Estos estudios se centraron principalmente en la identificación de falacias y paradojas, así como en la construcción correcta de los discursos.
En el periodo romano la lógica tuvo poco desarrollo, más bien se hicieron sumarios y comentarios a las obras recibidas, siendo los más notables: Cicerón, Porfirio y Boecio. En el período bizantino, Filopón.
Hasta el siglo XIX, la lógica aristotélica y estóica mantuvo siempre una relación con los argumentos formulados en lenguaje natural. Por eso aunque eran formales, no eran formalistas. Hoy esa relación se trata bajo un punto de vista completamente diferente. La formalización estricta ha mostrado las limitaciones de la lógica tradicional o aristotélica, que hoy se interpreta como una parte pequeña de la lógica de clases.
A través del latín en Europa occidental y de distintas lenguas orientales como el árabe, armenio y georgiano, la tradición aristotélica fue considerada de forma especial para la codificación de las leyes del razonamiento. Solo a partir del siglo XIX cambió este enfoque.

Antigua India
Dos de las seis escuelas indias de pensamiento están relacionadas con la lógica: Nyāya y Vaisheshika. Los Nyaya Sutras de Aksapada Gautama constituyen el núcleo de textos de la escuela Nyaya, una de las seis escuelas ortodoxas de filosofía hindú. Esta escuela realista trabajó con un rígido esquema de inferencia de cinco miembros que engloba una premisa inicial, una razón, un ejemplo, una aplicación y una conclusión. La filosofía budista idealista se convirtió en la principal oponente de los Naiyayikas. Nāgārjuna, el fundador del camino intermedio Madhyamika, desarrolló un análisis conocido como "catuskoti" o tetralemma. Esta argumentación de cuatro aspectos examinó y rechazó sistemáticamente la afirmación de una proposición, su negación, la afirmación conjunta y negación, y finalmente, el rechazo de su afirmación y negación. Pero fue con Dignāga y su sucesor Dharmakirti con quienes la lógica budista alcanzó su mayor altura. Su análisis, centrado en la definición de la implicación necesariamente lógica, "vyapti", conocida también como concomitancia o penetración invariable. A este fin, fue desarrollada una doctrina conocida como "apoha" o diferenciación. Comprende lo que se podría llamar la inclusión y exclusión de propiedades definitorias. Las dificultades concernientes a esta empresa, en parte, estimularon a la escuela neoescolástica de Navya-Nyāya, que introdujo un análisis formal de la inferencia en el siglo XVI.
En la India, las innovaciones en la escuela escolástica, llamado Nyaya, continuaron desde la antigüedad hasta principios del siglo XVIII con la escuela Navya-Nyaya. Hacia el siglo XVI se desarrollaron teorías semejantes a la lógica moderna, como "la distinción entre sentido y referencia de nombres propios" de Gottlob Frege y su "definición de número", así como la teoría de "condiciones restrictivas para universales" anticipando algunas de las Desarrollos en la teoría de conjuntos modernos. Desde 1824, la lógica india atrajo la atención de muchos estudiantes occidentales y ha influido en importantes lógicos del siglo XIX como Charles Babbage, Augustus De Morgan y George Boole. En el siglo XX, filósofos occidentales como Stanislaw Schayer y Klaus Glashoff han investigado la lógica india más ampliamente.

Antigua China
En China, un contemporáneo de Confucio, Mozi, "Maestro Mo", es considerado como el fundador de la escuela Mohista (mohísmo), cuyos principios están relacionados con temas como la inferencia válida y las condiciones de las conclusiones correctas. En particular, una de las escuelas que siguieron al mohísmo, los lógicos, es considerada por varios expertos como la primera que investigó la lógica formal. Desafortunadamente, debido a la rígida normativa legal durante la dinastía Qin, esa línea de investigación desapareció de China hasta la introducción de la filosofía india por parte del budismo. La traducción y la investigación escolar en lógica fue reprimida por la dinastía Qin, acorde con la filosofía legistaDesam. En India, la lógica duró bastante más: se desarrolló (por ejemplo con la nyāya) hasta que en el mundo islámico apareció la escuela de Asharite, la cual suprimió parte del trabajo original en lógica. A pesar de lo anterior, hubo innovaciones escolásticas indias hasta principios del siglo XIX, pero no sobrevivió mucho dentro de la India colonial. El tratamiento sofisticado y formal de la lógica moderna aparentemente proviene de la tradición griega.
El filósofo lógico chino Gong Sunlong (325-250 AEC) propuso la paradoja "Uno y uno no pueden ser dos, ya que ninguno se convierte en dos." [24] En China, la tradición de la investigación académica en la lógica, sin embargo, fue reprimida por La dinastía Qin siguiendo la filosofía legalista de Han Feizi.

Edad media:
La Lógica Medieval se basa en el trabajo de Aristóteles, es recogida por los sacerdotes y cultivado mayormente en los conventos, escuelas y universidades de Europa Occidental.
Los estudios de los lógicos profesionales estuvo dirigido al comentario del Organon destacando Pedro Hispano y Juan Buridan estableciendo que “de Dos premisas contradictorias, se puede deducir cualquier conclusión”.

Edad Moderna:
La época moderna marca el inicio de la Lógica Matemática. El precursor de esta lógica es  Guillermo G. Leibniz quien introdujo el cálculo lógico llamado “Mathesis Universalis” que fuese operacionalmente  mecánico, inequívoco y no cuantitativo que permitiera acabar con todas las disputas y controversias. también desarrolló el cálculo de la Lógica Proposicional. Euler es otro de los precursores de la Lógica Matemática, introdujo los diagramas que llevan su nombre para ilustrar geométricamente los silogismos.

Edad Contemporánea:
El siglo XIX se caracteriza por el nivel de abstracción que alcanza la lógica matemática destacando Hamilton sobre la cuantificación de todo o alguno. Augusto de Morgan considera que la base, común de la lógica radica en las relaciones de inclusión o exclusión parcial o total entre clases; George Boole construye la Teoría de Clases. Venn aclara los procedimiento de Boole representando los procesos algebraicas en los diagramas de Venn. Giussepe Peano da a la lógica el nombre de lógica matemática creando un lenguaje simbólico para las demostraciones matemáticas propuso el uso de los puntos auxiliares y un modo de simbolizar los cuantificadores. Bertrand Russell en su obra “Los Principios de la matemática” propone que las matemáticas puedan reducirse a una rama de la lógica generando en su obra investigaciones sobre la inferencia y sus respectivas aplicaciones.
En el siglo XX la lógica simbólica, que tanto debía a la matemática había desembocado, desde principio del siglo, en cuestiones irresolubles. Esto produjo un paulatino alejamiento de la lógica con respecto a la matemática, así como un deslindamiento de las competencias respectivas. Por un lado, la lógica, alejándose del excesivo formalismo y simbolismo, empieza a ocuparse y preocuparse de problemas semánticos, es decir de las relaciones entre los símbolos y lo que expresan. Se producen así un acercamiento de la lógica a la lingüística y a la epistemología. Filósofos como L. Wittgenstein, R. Carnap inicialmente bajo la influencia formalista y logicista, dan un viraje en su filosofar orientándose hacia preocupaciones lógico - semántica.



Pensadores de la Logica





600 AC
Platón, Aristóteles y Euclides
Se desarollan las ideas o abstracciones, el razonamiento deductivo y sistematizado y se establece el método axiomático.

427 AC
Platón Propone instaurar en Siracusa una utoía república dirigida por filósofos.

384 AC
Aristóteles
Fundador de la lógica y el primero en emplear el término "lógica".

1500 DC
Descartes, Newton y Leibniz
Inicio de na nueva revolución que revive la ciencia y las matemáticas.

1596 DC
René Descartes
Filósofo y matemático francés.
Creador de la Geometría Analítica y aporte a los métodos algebraicos.

1642 DC
Isaac Newton
Descubrió la Gravitación Universal

1646 DC
Gottfried W. Leibniz
Filósofo y matemático alemán.
Nuevo método para la determinación de los máximos y los mínimos.

1762 DC
Nikolai I. Lobachewsky
Funda la Geometría No Euclidiana.

1806 DC
August de Morgan
Formulación de las Leyes de Morgan.
Teoría del Desarrollo de las relaciones y la matemática simbólica o lógica matemática.

1815 DC
George Boole
Lógico y Matemático.
Investigación de las leyes del pensamiento.

1845 DC
George F. Cantor
Matemático alemán.
Creador de la teoría de los números irracionales y de los conjuntos.

1848 DC
Friederich G. Frege
 Junto con Boole y Peano llevan a cabo la renovación y desarrollo de la lógica clásica hasta el momento.
El primero en elaborar una Teoría de la Cuantificación.

1858 DC
Guiseppe Peano
Matemático alemán.
Enunciación de los principios acerca de la Lógica Matemática y su aplicación práctica en su obra Formulaire  de Mathematiques.

1862 DC
David Hilbert
Matemático alemán.
Grandes avances a campos fundamentales de la relatividad y la mecánica cuántica.

1872 DC
Bertrand Rusell
Uno de los creadores de la logística y uno de los pensadores de mayor influencia en la filosofía científica contemporánea.

1881 DC
Luitzen Egbertus Jan Brouwer
Matemático y Lógico alemán.
Fundador de la Escuela de la Lógica Intuicionista.

1902 DC
Alfred Tarski
Matemático, lógico y filósofo polaco.
Importantes estudios sobre álgebra en general, teoría de mediciones, lógica matemática, teoría de conjuntos y meta matemáticas.

1906 DC
Kurt Gödel
Múltiples contribuciones a la lógica matemática.

1909 DC
Gentzen
Formuló la prueba de la consistencia de un sistema de aritmética clásica.

1947 DC
Norbet Weiner
Científico Norteamericano.
Publica su libro Cibernética en donde se utiliza porf primera vez la palabra Cibernética.

Siglo IV A.C
Aristoteles
Se le considera como el fundador de la lógica y fue el primero en emplear el termino de "lógica".

Siglo XVIII
Leibniz
Filósofo y matemático.
Pensaba que se podía crear un lenguaje simbólico tan perfecto que evitara las controversias entre filósofos.

Siglo XIX
G. Boole y A. de Morgan
Intentaron expresar la forma de los razonamientos válidos en un lenguaje matemático.

Algoritmos

Algoritmo

Los diagramas de flujo sirven para representar algoritmos de manera gráfica.
En matemáticas, lógica, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus y este a su vez del matemático persa Al-Juarismi)1 es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite llevar a cabo una actividad mediante pasos sucesivos que no generen dudas a quien deba hacer dicha actividad.2 Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.1

En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos en matemática son el algoritmo de multiplicación, para calcular el producto, el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para obtener el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un sistema de ecuaciones lineales.

En términos de programación, un algoritmo es una secuencia de pasos lógicos que permiten solucionar un problema.

Medios de expresión de un algoritmo:
Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.

La descripción de un algoritmo usualmente se hace en tres niveles:

Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.
También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.

Diagrama de flujo

Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un número x {\displaystyle x} x
Artículo principal: Diagrama de flujo
Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO.

Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación.

Simbología y significado
Óvalo o Elipse: Inicio y Final (Abre y cierra el diagrama).
Rectángulo: Actividad (Representa la ejecución de una o más actividades o procedimientos).
Rombo: Decisión (Formula una pregunta o cuestión).
Círculo: Conector (Representa el enlace de actividades con otra dentro de un procedimiento).
Triángulo boca abajo: Archivo definitivo (Guarda un documento en forma permanente).
Triángulo boca arriba: Archivo temporal (Proporciona un tiempo para el almacenamiento del documento).

Cursograma
Se trata de la más común y práctica entre todas las clases de diagramas de flujo. Describe el flujo de información en un ente u organización, sus procesos, sistemas administrativos y de control. Permite la impresión visual de los procedimientos y una clara y lógica interpretación.

Simbología y normas del diagrama

Círculo: Indica Inicio del Diagrama y Final del Diagrama
Cuadrado: Proceso de control.
Línea continua: Flujo de información vía formulario o documentación en soporte de papel escrito.
Línea interrumpida: Flujo de información vía formulario digital.
Rectángulo: Formulario o documentación. Se grafíca con el doble de ancho que su altura.
Rectángulo Pequeño: Valor o medio de pago (cheque, pagaré, etc.). Se grafíca con el cuádruple de ancho que su altura, siendo su ancho igual al de los formularios.
Triángulo (base inferior): Archivo definitivo.
Triángulo Invertido (base superior): Archivo Transitorio.
Semióvalo: Demora.
Rombo: División entre opciones.
Trapezoide: Carga de datos al sistema.
Elipsoide: Acceso por pantalla.
Hexágono: Proceso no representado.
Pentágono: Conector.
Cruz de Diagonales: Destrucción de Formularios.
Según la normativa, el flujo presupuesto es de izquierda a derecha y de arriba hacia abajo, siendo optativo el uso de flechas. Cuando el sentido es invertido (de derecha a izquierda o de abajo hacia arriba), es obligatorio el uso de la flecha

Pseudocódigo
Artículo principal: Pseudocódigo
El pseudocódigo (falso lenguaje, el prefijo pseudo significa falso) es una descripción de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes de programación, como asignaciones, ciclos y condicionales, aunque no está regido por ningún estándar. Es utilizado para describir algoritmos en libros y publicaciones científicas, y como producto intermedio durante el desarrollo de un algoritmo, como los diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es que los algoritmos descritos en pseudocódigo requieren menos espacio para representar instrucciones complejas.

El pseudocódigo está pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementación. Programadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas en la sintaxis de lenguajes de programación concretos. Sin embargo, el pseudocódigo, en general, es comprensible sin necesidad de conocer o utilizar un entorno de programación específico, y es a la vez suficientemente estructurado para que su implementación se pueda hacer directamente a partir de él.

Así el pseudocódigo cumple con las funciones antes mencionadas para representar algo abstracto los protocolos son los lenguajes para la programación. Busque fuentes más precisas para tener mayor comprensión del tema.

Sistemas formales
La teoría de autómatas y la teoría de funciones recursivas proveen modelos matemáticos que formalizan el concepto de algoritmo. Los modelos más comunes son la máquina de Turing, máquina de registro y funciones μ-recursivas. Estos modelos son tan precisos como un lenguaje máquina, careciendo de expresiones coloquiales o ambigüedad, sin embargo se mantienen independientes de cualquier computadora y de cualquier implementación.

Implementación
Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito eléctrico o un aparato mecánico y eléctrico. Algunos algoritmos inclusive se diseñan especialmente para implementarse usando lápiz y papel. El algoritmo de multiplicación tradicional, el algoritmo de Euclides, la criba de Eratóstenes y muchas formas de resolver la raíz cuadrada son solo algunos ejemplos.

Variables
Son elementos que toman valores específicos de un tipo de datos concreto. La declaración de una variable puede realizarse comenzando con var. Principalmente, existen dos maneras de otorgar valores iniciales a variables:

Mediante una sentencia de asignación.
Mediante un procedimiento de entrada de datos (por ejemplo: 'read').

Ejemplo:

     ...
    i:=1;
    read(n);
    while i < n do begin
       (* cuerpo del bucle *)
       i := i + 1
    end;
     ...
Estructuras secuenciales
La estructura secuencial es aquella en la que una acción sigue a otra en secuencia. Las operaciones se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. La asignación de esto consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma:

Simples: Consiste en pasar un valor constante a una variable (a ← 15)
Contador: Consiste en usarla como un verificador del número de veces que se realiza un proceso (a ← a + 1)
Acumulador: Consiste en usarla como un sumador en un proceso (a ← a + b)
De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a ← c + b*1/2).
Un ejemplo de estructura secuencial, como obtener el área de un triángulo:

Inicio
...
    float b, h, a;
    printf("Diga la base");
    scanf("%f", &b);
    printf("Diga la altura");
    scanf("%f", &h);
    a = (b*h)/2;
    printf("El área del triángulo es %f", a)
...
Fin


miércoles, 15 de marzo de 2017

Ejercicios Capitulo 1

Datos de salida
1)      1)inicio
2)      Encender la bombilla-si enciende continuar paso 11
3)      Sino enciende
4)      Traer escalera
5)      Subir escalera
6)      Alcanzar la bombilla
7)      Retirar bombilla
8)      Remplazar bombilla
9)      Bajar escalera
10)   Desechar bombilla obsoleta
11)   fin
-Buscar numero telefónico de un alumno
Datos de salida
1)      inicio
2)      abrir archivos de estudiantes
3)      si es de 1-4 semestre carpeta 1
4)      si es de 5-9 semestre carpeta 2
5)      buscar listado telefónico
6)      buscar alumno
7)      señalar numero telefónico
8)      fin


-Fregar los platos
DATOS DE SALIDA

1)      inicio
2)      abrir llave del agua
3)      apilar los platos
4)      enjabonar los platos
5)      juagar los platos
6)      secar los platos
7)      ordenar platos
8)      fin

-COLOCAR LA MESA PARA COMER
1)      INICIO
2)      LIMPIAR LA MESA
3)      ALISTAR ELEMENTOS
4)      ALISTAR PLATOS
5)      ALISTAR CUBIERTOS
6)      ALISTAR VASOS
7)      ALISTAR SERVILLETAS
8)      SERVIR LA COMIDA EN LOS PLATOS
9)      SERVIR LIQUIDO EN LOS VASOS
10)   TOMAR ASIENTO
11)   COMER
12)   FIN


1.2 ¿Cuáles de los siguientes identificadores no son validos?
a)      Xrayo-valido
b)      X_RAYO-VALIDO
c)       R2D2-VALIDO
d)      X-VALIDO
e)      45-NO VALIDO
f)       N14-VALIDO
g)      ZZZZ-VALIDO
h)      3U-NO VALIDO



1.3 ¿Cuáles de las siguientes constantes no son validas?
v  234-no valido
v  -8.975-valido
v  12e-5-valido
v  0-no valido
v  32.767-valido
v  ½-valido
v  3.6e+7-valido
v  -7e12-valido
v  3.5*10-valido
v  0.456-no valido
v  0.000001-valido
v  224e1-valido

1.4 EVALUA LA SIGUIENTE EXPRESION
 A=2 Y B=5
3+A-4+B/A^2
3*2-4+5/2^2
6-9/4
-3/4
1.5) EVALUAR LA EXPRESION
-4/2*3/6+6/2/1/52/4*2
4/6/6+6/2/1/25/3
0.11+0.015
O.125

1.6) ESCRIBIR LAS SIGUIENTES EXPRESIONES ALGEBRAICAS COMO ALGORITMICAS
a)      RAIZ de b2-4ac=(b2)^(1/2)-4*a*c
b)      X^2+4^2/z^2= (x^2+4^2)z^2
c)       3x-2y/2z=(3*x+2*4)/2*z
d)      A+b/c-d=(a+b)/(c-d)
e)      4x^2-2x+z=4*x^2-2+7
f)       X+4/x*3x/5=((x+4)/x)=((3x)/5)
g)      a/bc=a/(bc)
h)      xyz=(X)(Y)(Z)
i)        y2-y1/x2-x1=(y2-y1)/(x2-x1)
j)        2pi.r=3pi.r(pi=una constante-9
k)      4/3pi.r^3=4/3.(pi.r)
l)        (x2-x1)^2+(y2-y1)^2=(x2-x1)^2+(y2-y1)*2


1.7 escribir las siguientes expresiones algorítmicas como algebraicas
a)      B^2-4.a.c=b^2-4.......2ac
b)      3.4-5.x3+x.12-17=3
c)       (b+d)./(c+4)=b+d/c+4


Hardware y Software

HARDWARE

Se refiere a las partes físicas tangibles de un sistema informático; sus componentes eléctricos, electrónicos, electromecánicos y mecánicos. Cables, gabinetes o cajas, periféricos de todo tipo y cualquier otro elemento físico involucrado componen el hardware; contrariamente, el soporte lógico e intangible es el llamado software.

Partes del Hardware:
_Main Board
_CPU
_Ram
_Disco Duro
_Tarjeta Grafica
_Procesador

Memoria:Es la memoria de la computadora donde se almacenan temporalmente tanto los datos como los programas que la unidad central de procesamiento (CPU) está procesando o va a procesar en un determinado momento. Por su función, la MP debe ser inseparable del microprocesador o CPU, con quien se comunica a través del bus de datos y el bus de direcciones, esta memoria es volatil,es decir que cuando se corta la energía eléctrica, se borra toda la información que estuviera almacenada en ella.


Disco Duro:es el dispositivo de almacenamiento de datos que emplea un sistema de grabación magnética para almacenar archivos digitales este disco no es volatil.
Dentro del disco se encuentran:
El registro de arranque principal (Master Boot Record, MBR), en el bloque o sector de arranque, que contiene la tabla de particiones.

Las particiones de disco, necesarias para poder colocar los sistemas de archivos.
Hard drive-es.svg

Procesador: Es el circuito integrado central más complejo de un sistema informático; a modo de ilustración, se le suele llamar por analogía el cerebro de un computador,  es el encargado de ejecutar los programas, desde el sistema operativo hasta las aplicaciones de usuario; sólo ejecuta instrucciones programadas en lenguaje de bajo nivel, realizando operaciones aritméticas y lógicas simples, tales como sumar, restar, multiplicar, dividir, las lógicas binarias y accesos a memoria, puede contener una o más unidades centrales de procesamiento (CPU) constituidas, esencialmente, por registros, una unidad de control, una unidad aritmético lógica (ALU) y una unidad de cálculo en coma flotante (conocida antiguamente como «coprocesador matemático»).



SOFTWARE

Se conoce como el soporte lógico de un sistema informático, que comprende el conjunto de los componentes lógicos necesarios que hacen posible la realización de tareas específicas, los componentes lógicos incluyen, entre muchos otros, las aplicaciones informáticas, tales como el procesador de texto, que permite al usuario realizar todas las tareas concernientes a la edición de textos; el llamado software de sistema, tal como el sistema operativo, que básicamente permite al resto de los programas funcionar adecuadamente, facilitando también la interacción entre los componentes físicos y el resto de las aplicaciones, y proporcionando una interfaz con el usuario.

Sistema Operativo:Es el software principal o conjunto de programas de un sistema informático que gestiona los recursos de hardware y provee servicios a los programas de aplicación de software, los sistemas operativos utilizan imágenes y botones para poder comunicarnos con el ordenador de forma sencilla y fácil para decirle lo que queremos hacer en cada momento a nuestro ordenador.
 Su función principal es la de darnos las herramientas necesarias para poder controlar nuestra computadora y poder hacer uso de ella, de la forma más cómoda y sencilla posible.

Tipos de Sistemas Operativos
Sistemas Operativos para Pc:
Linux
Windows
Mac Os
OS X
Windows
GNU/Linux
Unix
Solaris
FreeBSD
OpenBSD
Google Chrome OS
Debian
Ubuntu

Sistemas Operativos Móviles:
Android
iOS
Windows Phone
BlackBery
Symbian OS
HP webOS
Firefox OS
Ubuntu Phone OS

Lenguaje de Programación:Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras.
Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.

Tipos de Lenguajes de Programación:

Según su nivel de abstracción :


LENGUAJE DE ALTO NIVEL
Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés.
En BASIC, uno de los lenguajes de alto nivel más conocidos, los comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si el CONTADOR es igual a 10. Esta forma de trabajar puede dar la sensación de que las computadoras parecen comprender un lenguaje natural; en realidad lo hacen de una forma rígida y sistemática, sin que haya cabida, por ejemplo, para ambigüedades o dobles sentidos.


LENGUAJE DE BAJO NIVEL :

Los lenguajes de bajo nivel son lenguajes de programación que se acercan al funcionamiento de una computadora. El lenguaje de más bajo nivel por excelencia es el código máquina. A éste le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros de memoria de la computadora de forma directa

LENGUAJE DE MAQUINA

Lenguaje de máquina
Están escritos en lenguajes directamente legibles por la máquina (computadora), ya que sus instrucciones son cadenas binarias (0 y 1). Da la posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traducción posterior lo que supone una velocidad de ejecución superior, solo que con poca fiabilidad y dificultad de verificar y poner a punto los programas.


Según el paradigma de programación:


Lenguajes imperativos

Son los lenguajes que dan instrucciones a la computadora, es decir, órdenes.


Lenguajes Funcionales

]Paradigma Funcional: este paradigma concibe a la computación como la evaluación de funciones matemáticas y evita declarar y cambiar datos. En otras palabras, hace hincapié en la aplicación de las funciones y composición entre ellas, más que en los cambios de estados y la ejecución secuencial de comandos (como lo hace el paradigma procedimental). Permite resolver ciertos problemas de forma elegante y los lenguajes puramente funcionales evitan los efectos secundarios comunes en otro tipo de programaciones.


Lenguajes Lógicos

La computación lógica direcciona métodos de procesamiento basados en el razonamiento formal. Los objetos de tales razonamientos son "hechos" o reglas "if then". Para computar lógicamente se utiliza un conjunto de tales estamentos para calcular la verdad o falsedad de ese conjunto de estamentos. Un estamento es un hecho si sus tuplas verifican una serie de operaciones.

Un hecho es una expresión en la que algún objeto o conjunto de objetos satisface una relación específica. Una tupla es una lista inmutable. Una tupla no puede modificarse de ningún modo después de su creación.

Un regla if then es un estamento que informa acerca de conjuntos de tuplas o estamentos relacionados que pueden predecir si otras tuplas satisfacerán otras relaciones.

Un estamento que es probado verdadero como resultado de un proceso se dice que es una inferencia del conjunto original. Se trata por tanto de una descripción de cómo obtener la veracidad de un estamento dado que unas reglas son verdaderas.

La computación lógica está por tanto relacionada con la automatización de algún conjunto de métodos de inferencia.


Lenguajes orientados a objetos

Programación orientada a objetos
La Programación Orientada a Objetos (POO u OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de 1990. Actualmente son muchos los lenguajes de programación que soportan la orientación a objetos.

LENGUAJES DE PROGRAMACIÓN MÁS USADOS

   Lenguaje de Programación “HTML”: Este lenguaje es con el que se crean las páginas web, por ejemplo, que básicamente es un conjunto de etiquetas que sirven para definir el texto y otros elementos que puedes ver en las páginas web. HTML significa HyperText Markup Lenguaje («lenguaje de marcas de hipertexto») y es muy fácil de aprender. Luego ya depende de si queremos una web más o menos elaborada podremos profundizar en este lenguaje. Por ejemplo, el lenguaje de programación CSS (Cascading Style Sheets) son hojas que sirven para dar “estilo” a las páginas web como su color, definir su fondo, tipos de letra…etc

   Lenguaje de Programación “SQL”: Este lenguaje está creado para realizar consultas a bases de datos principalmente. SQL son las siglas de Structured Query Lenguaje ( Lenguaje estructurado de consultas) y se utiliza para páginas web y también para aplicaciones de ordenadores, para manejar datos sobre todo. (Introducir datos, actualizar datos, eliminar o seleccionar datos)

   Lenguaje de Programación “Java”: Probablemente éste podría ser el favorito de más de uno ya que es el lenguaje utilizado para programas punteros como herramientas, juegos y aplicaciones. Este lenguaje de programación se utiliza en miles de millones de dispositivos móviles y aparatos de televisión y en más de 850 millones de ordenadores personales de todo el mundo. Java está instalado en inmensidad de aplicaciones y sitios web.

   JavaScript: Seguramente también te suene JavaScript, que es otro lenguaje utilizado para crear pequeños programas encargados de realizar acciones y dar interactividad dentro de una web como por ejemplo para crear efectos especiales, para definir interactividades con los usuarios, efectos de textos. Hoy en día es casi el único lenguaje usado en todas las páginas web por la compatibilidad con HTML5. Si quieres aprender a programar en Javascript te recomendamos este enlace: JavaScript Curso Basico.

   Lenguaje de Programación “C”: Este lenguaje de programación está orientado a los Sistemas Operativos y es muy eficaz y con él podemos crear Softwares de sistemas operativos como Windows o Linux y también para aplicaciones. También sirve para experimentos informáticos, físicos, matemáticos…etc. Es también muy utilizado en robótica con el que se programan simuladores, etc.

   Lenguaje de Programación “XML”: Este lenguaje es también un lenguaje de etiquetas como el HTML, pero a diferencia de éste, el lenguaje XML separa el contenido de la presentación, es decir, XML se preocupa del significado del texto que define el HTML. Te da el dato + el significado de ese dato, mientras que el HTML te da el dato nada más. El XML es un complemento fundamental al HTML.

   Lenguaje de Programación “PHP”: El PHP es un lenguaje de programación similar al HTML que nos sirve fundamentalmente para páginas web y se puede combinar con el lenguaje HTML. El lenguaje PHP se basa en los “scripts” que es un guión de órdenes o instrucciones que recibe un servidor de una página web para leer su código fuente.

Generaciones de lenguajes de programación
Los equipos de ordenador (el hardware) han pasado por cuatro generaciones, de las que las tres primeras (ordenadores con válvulas, transistores y circuitos integrados) están muy claras, la cuarta (circuitos integrados a gran escala) es más discutible.

Algo parecido ha ocurrido con la programación de los ordenadores (el software), que se realiza en lenguajes que suelen clasificarse en cinco generaciones, de las que las tres primeras son evidentes, mientras no todo el mundo está de acuerdo en las otras dos. Estas generaciones no coincidieron exactamente en el tiempo con las de hardware, pero sí de forma aproximada, y son las siguientes:

Primera generación: Los primeros ordenadores se programaban directamente en código de máquina (basado en sistema binario), que puede representarse mediante secuencias de ceros y unos sistema binario. Cada modelo de ordenador tiene su propio código, por esa razón se llama lenguaje de máquina.
Segunda generación: Los lenguajes simbólicos, asimismo propios de la máquina, simplifican la escritura de las instrucciones y las hacen más legibles.
Tercera generación: Los lenguajes de alto nivel sustituyen las instrucciones simbólicas por códigos independientes de la máquina, parecidas al lenguaje humano o al de las Matemáticas.
Cuarta generación: se ha dado este nombre a ciertas herramientas que permiten construir aplicaciones sencillas combinando piezas prefabricadas. Hoy se piensa que estas herramientas no son, propiamente hablando, lenguajes. Algunos proponen reservar el nombre de cuarta generación para la programación orientada a objetos.
Estos lenguajes tienen una estructura lo más parecido al idioma inglés, algunas características son:

- Acceso a base de datos.

- Capacidades Gráficas.

- Generación de código automáticamente.

- Puede programarse visualmente como Visual Basic (Programación Visual).

Quinta generación: se llama así a veces a los lenguajes de la inteligencia artificial, aunque con el fracaso del proyecto japonés de la quinta generación el nombre ha caído en desuso.

Sistemas Numericos:

Sistema de numeración decimal:
El sistema de numeración que utiliza­mos habitualmente es el decimal, que se compone de diez símbolos o dígi­tos (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, millares, 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 de­recha.
En el sistema decimal el número 528, por ejemplo, significa:

5 centenas + 2 decenas + 8 unidades, es decir:
5*102 + 2*101 + 8*100 o, lo que es lo mismo:
500 + 20 + 8 = 528
En el caso de números con decimales, la situación es análoga aunque, en este caso, algunos exponentes de las potencias serán negativos, concreta­mente el de los dígitos colocados a la derecha del separador decimal. Por ejemplo, el número 8245,97 se calcularía como:
8 millares + 2 centenas + 4 decenas + 5 unidades + 9 décimos + 7 céntimos
8*103 + 2*102 + 4*101 + 5*100 + 9*10-1 + 7*10-2, es decir:
8000 + 200 + 40 + 5 + 0,9 + 0,07 = 8245,97

Sistema de numeración 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 1011 tiene un valor que se calcula así:

1*23 + 0*22 + 1*21 + 1*20 , es decir:
8 + 0 + 2 + 1 = 11

y para expresar que ambas cifras describen la misma cantidad lo escribimos así:

10112 = 1110

 Conversión entre números decimales y binarios
Convertir un número decimal al sistema binario es muy sencillo: basta con realizardivisiones sucesivas por 2 y escribir los restos obtenidos en cada división en orden inversoal que han sido obtenidos.
Por ejemplo, para convertir al sistema binario el número 7710 haremos una serie de divisiones que arrojarán los restos siguientes:
77 : 2 = 38 Resto: 1
38 : 2 = 19 Resto: 0
19 : 2 = 9 Resto: 1
9 : 2 = 4 Resto: 1
4 : 2 = 2 Resto: 0
2 : 2 = 1 Resto: 0
1 : 2 = 0 Resto: 1
y, tomando los restos en orden inverso obtenemos la cifra binaria:

7710 = 10011012


Conversión de binario a decimal
El proceso para convertir un número del sistema binario al decimal es aún más sencillo; basta con desarrollar el número, teniendo en cuenta el valor de cada dígito en su posición, que es el de una potencia de 2, cuyo exponente es 0 en el bit situado más a la derecha, y se incrementa en una unidad según vamos avanzando posiciones hacia la izquierda.
Por ejemplo, para convertir el número binario 10100112 a decimal, lo desarrollamos teniendo en cuenta el valor de cada bit:

1*26 + 0*25 + 1*24 + 0*23 + 0*22 + 1*21 + 1*20 = 83
10100112 = 8310

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 octal 2738 tiene un valor que se calcula así:
2*83 + 7*82 + 3*81 = 2*512 + 7*64 + 3*8 = 149610

2738
 = 149610

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 decimal12210 tendremos que hacer las siguientes divisiones:
122 : 8 = 15     Resto: 2
15 : 8 = 1           Resto: 7
1 : 8 = 0               Resto: 1
Tomando los restos obtenidos en orden inverso tendremos la cifra octal:

12210 = 1728

Conversión octal a decimal
La conversión de un número octal a decimal es igualmente sencilla, conociendo el peso de cada posición en una cifra octal. Por ejemplo, para convertir el número 2378 a decimal basta con desarrollar el valor de cada dígito:
2*82 + 3*81 + 7*80 = 128 + 24 + 7 = 15910

2378 = 15910

 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 1A3F16:

1A3F16 = 1*163 + A*162 + 3*161 + F*160
 
1*4096 + 10*256 + 3*16 + 15*1 = 6719

1A3F16 = 671910

Conversión de números binarios a octales y viceversa
Observa la tabla siguiente, con los siete primeros números expresados en los sistemas decimal, binario y octal:
DECIMAL
BINARIO
OCTAL
0
000
0
1
001
1
2
010
2
3
011
3
4
100
4
5
101
5
6
110
6
7
111
7

Cada dígito de un número octal se representa con tres dígitos en el sistema binario. Por tanto, el modo de conver­tir un número entre estos sistemas de numeración equivale a "expandir" cada dígito octal a tres dígitos bi­narios, o en "contraer" grupos de tres caracteres binarios a su correspondiente dígito octal.

Por ejemplo, para convertir el número binario 1010010112 a octal tomaremos grupos de tres bits y los sustituiremos por su equivalente octal:
1012 = 58
0012 = 18
0112 = 38
y, de ese modo: 1010010112 = 5138

La conversión de números octales a binarios se hace, siguiendo el mismo método, reemplazando cada dígito octal por los tres bits equivalentes. Por ejemplo, para convertir el número octal 7508 a binario, tomaremos el equivalente binario de cada uno de sus dígitos:
78 = 1112
58 = 1012
08 = 0002
y, por tanto: 7508 = 1111010002

Conversión de números binarios a hexadecimales y viceversa
Del mismo modo que hallamos la correspondencia entre números octales y binarios, podemos establecer una equivalencia directa entre cada dígito hexadecimal y cuatro dígitos binarios, como se ve en la siguiente tabla:

DECIMAL
BINARIO
HEXADECIMAL
0
0000
0
1
0001
1
2
0010
2
3
0011
3
4
0100
4
5
0101
5
6
0110
6
7
0111
7
8
1000
8
9
1001
9
10
1010
A
11
1011
B
12
1100
C
13
1101
D
14
1110
E
15
1111
F

La conversión entre números hexadecimales y binarios se realiza "expandiendo" o "con­trayendo" cada dígito hexadecimal a cuatro dígitos binarios. Por ejemplo, para expresar en hexadecimal el número binario 1010011100112 bastará con tomar grupos de cuatro bits, empezando por la derecha, y reemplazarlos por su equivalente hexadecimal: 
10102 = A16
01112 = 716
00112 = 316
y, por tanto: 1010011100112 = A7316

En caso de que los dígitos binarios no formen grupos completos de cuatro dígitos, se deben añadir ceros a la izquierda hasta completar el último grupo. Por ejemplo:
1011102 = 001011102 = 2E16


La conversión de números hexadecimales a binarios se hace del mismo modo, reemplazando cada dígito hexadecimal por los cuatro bits equivalentes de la tabla. Para convertir a binario, por ejemplo, el número hexadecimal 1F616 hallaremos en la tabla las siguientes equivalencias:

116 = 00012
F16 = 11112
616 = 01102
y, por tanto: 1F616 = 0001111101102




Factoriales

Numeros Factoriales: Objetivo: El objetivo de este programa es que al ingresar la cantidad de números que desea que el programa enseñe es...