12 13 dominguez simon duran william programacion 29 10-2019
1. 1
PROGRAMACIÓN
SIMÓN EDUARDO DOMÍNGUEZ ESCALANTE
WILLIAM IVAN DURAN BARON
INSTITUTO TÉCNICO MARIO PEZZOTTI LEMUS
DEPARTAMENTO SISTEMAS
ESPECIALIDAD SISTEMAS
LOS PATIOS
2019
2. 2
PROGRAMACIÓN
SIMÓN EDUARDO DOMÍNGUEZ ESCALANTE
WILLIAM IVAN DURAN BARON
ESP. HENRY JAIMES ORTEGA
INSTITUTO TÉCNICO MARIO PEZZOTTI LEMUS
DEPARTAMENTO SISTEMAS
ESPECIALIDAD SISTEMAS
10°C
LOS PATIOS
2019
4. 4
TABLA DE CONTENIDOS
1. ¿Qué es un programa?
2. Lenguaje de programación
3. Tipos de lenguaje
4. Tipos de datos de programación
5. Tipos de códigos
6. Que es un algoritmo
7. Ejemplos de algoritmos
8. Pasos para solución de problemas
9. Característicasde los algoritmos
Tipos de datos
Constante,variable
Símbolos de diagramación
Operadores aritméticos,relacionalesy lógicos
Tipos de operadores
Tipos de instrucciones
Estructuras de control
Software para aprender a programar
5. 5
¿QUE ES UN PROGRAMA?
Un programa es una secuencia de instrucciones, escritas para realizar una tarea específica en
una computadora. Este dispositivo requiere programas para funcionar, por lo general,
ejecutando las instrucciones del programa en un procesador central. El programa tiene un
formato ejecutable que la computadora puede utilizar directamente para ejecutar las
instrucciones. El mismo programa en su formato de código fuente legible para humanos, del
cual se derivan los programas ejecutables (por ejemplo, compilados), le permite a un
programador estudiar y desarrollar sus algoritmos. Una colección de programas de
computadora y datos relacionados se conoce como software.
LENGUAJES DE PROGRAMACIÓN
Un lenguaje de programación es un lenguaje formal que proporciona una serie
de instrucciones que permiten a un programador escribir secuencias de órdenes
y algoritmos a modo de controlar el comportamiento físico y lógico de
una computadora con el objetivo de que produzca diversas clases de datos. A
todo este conjunto de órdenes y datos escritos mediante un lenguaje de
programación se le conoce como programa.
TIPOS DE LENGUAJE
6. 6
Los 5 lenguajes de programación más populares de la actualidad son: Java, C,
C++, Pyhton y C#.
Java: Reconocido por su legibilidad y simplicidad, Java es uno de los lenguajes
de programación más adoptados: más 9 millones de desarrolladores lo usan y
está presente en 7 mil millones de dispositivos en todo el mundo. Desde 2001 se
mantiene en las primeras posiciones, llegando al número puesto número 2 como
la más baja de todas en marzo de 2015.
C: Creado entre 1969 y 1972 en los Laboratorios Bell, es uno de los más
utilizados en el mundo. Si bien es ejecutado en la mayoría de los sistemas
operativos, es de propósito general, con lo cual es muy flexible.
Es muy popular para el desarrollo de aplicaciones de escritorio, como el conocido
editor gráfico GIMP.
C++: Conocido por el nombre “C Plus Plus”, este lenguaje de programación
orientado a objetos surge como una continuación y ampliación del C. Hay una
gran cantidad de programas escritos en C++, como por ejemplo los paquetes de
Adobe
Pyhton: Un lenguaje de programación multiplataforma y multiparadigma, que
también es de propósito general. Esto significa que soporta la orientación a
objetos, la programación imperativa y funcional. Su simpleza, legibilidad y similitud
con el idioma inglés lo convierten en un gran lenguaje ideal para principiantes.
C#: También llamado “C Sharp”, este lenguaje de programación orientado a
objetos fue desarrollado en el año 2000 por Microsoft para ser empleado en una
amplia gama de aplicaciones empresariales ejecutadas en el framework .NET. C
Sharp es una evolución del C y C++ que se destaca por su sencillez y
modernidad.
TIPOS DE DATOS DE PROGRAMACIÓN
Tipos numéricos enteros: En Java existen cuatro tipos destinados a
almacenar números enteros. La única diferencia entre ellos es el número de bytes
usados para su almacenamiento y, en consecuencia, el rango de valores que es
posible representar con ellos. Todos ellos emplean una representación que
permite el almacenamiento de números negativos y positivos. El nombre y
características de estos tipos son los siguientes:
7. 7
byte: como su propio nombre denota, emplea un solo byte (8 bits) de
almacenamiento. Esto permite almacenar valores en el rango [-128, 127].
short: usa el doble de almacenamiento que el anterior, lo cual hace posible
representar cualquier valor en el rango [-32.768, 32.767].
int: emplea 4 bytes de almacenamiento y es el tipo de dato entero más
empleado. El rango de valores que puede representar va de -231 a 231-1.
long: es el tipo entero de mayor tamaño, 8 bytes (64 bits), con un rango de
valores desde -263 a 263-1.
Tipos numéricos en punto flotante: Los tipos numéricos en punto flotante
permiten representar números tanto muy grandes como muy pequeños además de
números decimales. Java dispone de 2 tipos concretos en esta categoría:
float: conocido como tipo de precisión simple, emplea un total de 32 bits.
Con este tipo de datos es posible representar números en el rango de
1.4x10-45 a 3.4028235x1038.
double: sigue un esquema de almacenamiento similar al anterior, pero
usando 64 bits en lugar de 32. Esto le permite representar valores en el
rango de 4.9x10-324 a 1.7976931348623157x10308.
Booleanos y caracteres: Aparte de los 6 tipos de datos que acabamos de ver,
destinados a trabajar con números en distintos rangos, Java define otros dos tipos
primitivos más:
boolean: tiene la finalidad de facilitar el trabajo con valores "verdadero/falso"
(booleanos), resultantes por regla general de evaluar expresiones. Los dos
valores posibles de este tipo son true y false.
char: se utiliza para almacenar caracteres individuales (letras, para
entendernos). En realidad está considerado también un tipo numérico, si
bien su representación habitual es la del carácter cuyo código almacena.
Utiliza 16 bits y se usa la codificación UTF-16 de Unicode.
TIPOS DE CÓDIGO
Código Fuente: El código fuente es aquel que contiene las líneas de código
escritas en el lenguaje de programación sobre el cual estamos trabajando.
Código Objeto: archivo compuesto por un conjunto de datos escritos en un
lenguaje de programación de tipo binario o código maquina obtenidos de la
traducción de un anterior código fuente.
8. 8
Código Ejecutable: es básicamente el programa final. Si eres un usuario de
Windows el ejemplo más sencillo de un código ejecutable son los archivos.
Código de un Ejecutable visto desde un block de notas Como podemos ver, el
código final es mucho menos entendible que el código objeto, esto es debido a
que se encuentra por una parte cifrado y por otra parte se encuentra escrito
totalmente en lenguaje máquina.
¿QUE ES UN ALGORITMO?
Un algoritmo es una secuencia lógica y finita de pasos que permite solucionar un
problema o cumplir con un objetivo.
Los algoritmos deben ser precisos e indicar el orden lógico de realización de cada
uno de los pasos, debe ser definido y esto quiere decir que si se ejecuta un
algoritmo varias veces se debe obtener siempre el mismo resultado, también debe
ser finito o sea debe iniciar con una acción y terminar con un resultado o solución
de un problema.
EJEMPLOS DE ALGORITMOS
EJEMPLO #1
10. 10
PASÓ PARA SOLUCIÓN DE PROBLEMAS
La resolución de un problema mediante un ordenador consiste en el proceso que a
partir de la descripción de un problema, expresado habitualmente en lenguaje
natural y en términos propios del dominio del problema, permite desarrollar
un programa que resuelva dicho problema.
Este proceso exige los siguientes pasos:
Análisis del problema.
Diseño o desarrollo de un algoritmo.
Transformación del algoritmo en un programa (codificación).
Ejecución y validación del programa.
CARACTERÍSTICAS DE LOS ALGORITMOS
Las características fundamentales que debe cumplir todo algoritmo son:
Un algoritmo debe ser preciso: tiene que indicar el orden de realización de
cada paso.
Un algoritmo debe estar definido: Si se sigue un algoritmo dos veces, se
debe obtener el mismo resultado cada vez.
Un algoritmo debe ser finito: el algoritmo se debe terminar en algún
momento; o sea, debe tener un número finito de pasos.
Un algoritmo debe ser legible: El texto que lo describe debe ser claro, tal
que permita entenderlo y leerlo fácilmente.
Un algoritmo debe definir tres partes: Entrada, Proceso y Salida.
TIPOS DE DATOS
Tipo de datos número: int
Los números suelen ser representados en un lenguaje de programación de
maneras diferentes, ya que importa decidir una serie de cuestiones:
Cual va ser el tamaño que vamos a usar.
Si va a tener números decimales o no.
11. 11
Si va ser negativo
Tipos de datos número real: double o float
Si nos interesa utilizar un número con decimales, sueles encontrar el tipo de
datos double o float.
A esto lo llamamos un número de punto flotante. Declararlo como un tipo u otro
dependerá de la precisión en decimales que quieras tener.
¿Cómo podemos distinguir una variable si se ha declarado como int o
como float? Por ejemplo, si nos encontramos un número con un punto decimal
(3.14).
También puedes ver un número con la letra F o con la letra D, para distinguir si es
un float o un double. Por ejemplo 3.56F.
CONSTANTE, VARIABLE
En programación, una constante es un valor que no puede ser alterado/modificado
durante la ejecución de un programa, únicamente puede ser leído.
Una constante corresponde a una longitud fija de un área reservada en la memoria
principal del ordenador, donde el programa almacena valores fijos.
Una variable es un elemento de datos con nombre cuyo valor puede cambiar
durante el curso de la ejecución de un programa. Un nombre de variable debe
seguir el convenio de denominación de un identificador (carácter alfabético o
número y el signo de subrayado). Cuando se define más de una variable en una
sola declaración, el nombre debe ir separado por comas. Cada declaración de
variable debe finalizar con un signo de punto y coma. Los nombres de variables no
pueden coincidir con una palabra reservada.
SÍMBOLOS DE DIAGRAMACIÓN
Símbolo de Inicio / Final.
El símbolo de terminación marca el punto inicial o final del sistema. Por lo general,
contiene la palabra "Inicio" o "Fin".
12. 12
Símbolo de Acción o Proceso.
Un rectángulo solo puede representar un solo paso dentro de un proceso
("agregar dos tazas de harina"), o un subproceso completo ("hacer pan") dentro de
un proceso más grande.
Símbolo del Documento Impreso.
Un documento o informe impreso.
Símbolo de Multidocumento.
Representa multidocumento en el proceso.
Símbolo de Decisión o Ramificación.
Un punto de decisión o ramificación. Las líneas que representan diferentes
decisiones surgen de diferentes puntos del diamante.
Símbolo de Entrada / Salida.
Representa el material o la información que entra o sale del sistema, como una
orden del cliente (entrada) o un producto (salida).
13. 13
Símbolo de Entrada Manual.
Representa un paso en el que se pide al usuario que introduzca la información
manualmente.
Símbolo de Preparación.
Representa un ajuste a otro paso en el proceso.
Símbolo del Conector.
Indica que el flujo continúa donde se ha colocado un símbolo identico (que
contiene la misma letra).
O Símbolo.
Indica que el flujo del proceso continúa en más de dos ramas.
Símbolo de Unión de Invocación.
Indica un punto en el diagrama de flujo en el que múltiples ramificaciones
convergen de nuevo en un solo proceso.
14. 14
Símbolo de Fusión.
Indica un paso en el que dos o más sub-listas o subprocesos se convierten en
uno.
Símbolo de Intercalar.
Indica un paso que ordena información en un formato estándar.
Símbolo de Ordenar.
Indica un paso que organiza una lista de elementos en una secuencia o establece
según algunos criterios predeterminados.
Símbolo de Proceso Predefinido
Indica una secuencia de acciones que realizan una tarea específica incrustada
dentro de un proceso más grande. Esta secuencia de acciones podría describirse
con más detalle en un diagrama de flujo separado.
Símbolo del Operación Manual.
Indica una secuencia de comandos que continuarán repitiéndose hasta que se
detenga manualmente.
15. 15
Símbolo de Límite de Bucle.
Indica el punto en el que debe detenerse un bucle.
Símbolo de Retardo.
Indica un retraso en el proceso.
Almacenamiento de Datos o Símbolo de Datos Almacenados.
Indica un paso donde se almacenan los datos.
Símbolo de la Base de Datos.
Indica una lista de información con una estructura estándar que permite buscar y
ordenar.
Símbolo de Almacenamiento Interno.
Indica que la información se almacenó en la memoria durante un programa,
utilizado en diagramas de flujo de diseño de software.
Símbolo de Visualización.
Indica un paso que muestra información.
16. 16
Conector Fuera de Página.
Indica que el proceso continúa fuera de la página.
OPERADORES ARITMÉTICOS, RELACIONALES Y LÓGICOS
ARITMÉTICOS: Los operadores aritméticos nos permite, básicamente, hacer
cualquier operación aritmética, que necesitamos (ejemplo: suma, resta,
multiplicación, etc.).
Existen operadores aritméticos binarios y unarios.
Los binarios son:
+: Suma de dos o más valores o variables.
-: Resta de dos o más valores o variables.
*: Multiplicación de dos o más valores o variables.
/: División de dos o más valores o variables.
%: Modulo (obtención del residuo de una división) de dos o más valores o
variables.
Los unarios:
++: Aumenta el valor de una variable en una unidad.
--: Disminuye el valor de una variable en una unidad.
-: Cambia el signo de una variable, es como multiplicar por -1
RELACIONALES: Son operadores que se encargan de unir y comparar dos o
más valores, se utilizan en comparaciones de parejas por los símbolos:
==: igual que
!= : diferente a
> : Mayor que
< : Menor que
>= : mayor igual que
<= : menor igual que
Estos operadores se usan para comparar valores de variables por pares es decir,
no se pueden comparar más de 2 valores al mismo tiempo:
a > b > c //ERROR
17. 17
(a > b) && (b > c) //BIEN
LÓGICOS: Son operadores de unión, también llamados compuertas lógicas, estos
operadores pueden unir dos o más pares de valores comparados por medio de los
operadores relaciones:
&& : Operador AND (Y) todas las condiciones deben ser verdaderas para que se
ejecute una acción.
|| : Operador OR (O) de todas las condiciones solo una debe ser verdadera y con
hace determinada acción.
! : Operador NOT (NO) se niega la afirmación para cambiar su valor, es decir
cambia de verdadero a falso y de falso a verdadero.
TIPOS DE OPERADORES
Operadores aritméticos.
Operadores relacionales.
Operadores lógicos.
Operadores a nivel de bit.
Operadores especiales.
Los operadores aritméticos nos permiten, básicamente, hacer
cualquier operación aritmética, que necesitemos (ejemplo: suma,
resta, multiplicación, etc.).
18. 18
Al igual que en matemáticas, estos operadores nos permitirán evaluar las
relaciones (igualdad, mayor, menor, etc.) entre un par de operandos (en principio,
pensemos en números). Los operadores relacionales de los que
disponemos en C son:
19. 19
Como operadores lógicos designamos a aquellos operadores que nos
permiten ``conectar'' un par de propiedades (al igual que en lógica):
En determinadas ocasiones nos puede interesar manipular datos a nivelde bit;
por ejemplo activar o desactivar flags. Un flag es una ``variable'' que puede tomar
2 valores, por lo que se suele representar con un bit.
Operadores especiales últimos describiremos los operadores que nos faltan:
El operador de asignación
El operador ternario ?
Los operadores & y * (unarios)
El operador sizeof
20. 20
El operador cast
El operador coma ``,''
Los operadores ``.'' y ``- ''
El operador ( )
El operador [ ]
TIPOS DE INSTRUCCIONES
Instrucciones de transferencia de datos: en este tipo de instrucciones, se
transfieren datos desde una localización a otra. Los pasos que se siguen para
realizarlo son:
1. Determinación de las direcciones de origen y destino de memoria.
2. Realización de la transformación de memoria virtual a memoria real.
3. Comprobación de la caché.
4. Inicio del proceso de lectura/escritura en la memoria.
Instrucciones aritméticas: pueden implicar transferencia de datos antes y/o
después. Realizan operaciones aritméticas de las que se encarga la ALU. Se
pueden clasificar en de 1 operando (valor absoluto, negación) y 2 operandos
(suma, resta).
Instrucciones lógicas: al igual que las aritméticas, la ALU se encarga de
realizar estas operaciones, que en este caso son de tipo lógico.
Instrucciones de conversión: similares a las aritméticas y lógicas. Pueden
implicar lógica especial para realizar la conversión.
Instrucciones de transferencia de control: actualizan el contador de
programa (PC). Administran las llamadas/retornos a las subrutinas, el paso
de parámetros y el enlazado.
21. 21
Instrucciones de E/S (entrada/salida): administran los comandos de
entrada/salida. Si hay un mapa de memoria de entrada/salida, determina la
dirección de este mapa.
ESTRUCTURAS DEL CONTROL
En lenguajes de programación, las estructuras de control permiten modificar el
flujo de ejecución de las instrucciones de un programa.
Con las estructuras de control se puede:
De acuerdo con una condición, ejecutar un grupo u otro de sentencias (If-
Then-Else)
De acuerdo con el valor de una variable, ejecutar un grupo u otro de
sentencias (Switch-Case)
Ejecutar un grupo de sentencias mientras se cumpla una condición (Do-While)
Ejecutar un grupo de sentencias hasta que se cumpla una condición (Do-Until)
Ejecutar un grupo de sentencias un número determinado de veces (For-Next)
Todas las estructuras de control tienen un único punto de entrada. Las estructuras
de control se pueden clasificar en: secuenciales, iterativas y de control avanzadas.
Esta es una de las cosas que permiten que la programación se rija por los
principios de la programación estructurada.
Los lenguajes de programación modernos tienen estructuras de control similares.
Básicamente lo que varía entre las estructuras de control de los diferentes
lenguajes es su sintaxis; cada lenguaje tiene una sintaxis propia para expresar la
estructura.
SOFTWARE PARA APRENDER A PROGRAMAR
TreeHouse
Bajo el lema "¿Qué quieres aprender hoy?", TreeHouse ofrece cursos en línea,
basados en vídeos cortos, muy bien explicados, sobre programación web y
programación de dispositivos móviles con iOS. Es necesario pagar una
suscripción para acceder a todos los materiales, que por cierto se actualizan y
crecen con frecuencia. Me encanta que utilicen condecoraciones y que éstas sean
indicio de una educación más allá de títulos universitarios.
22. 22
Try Ruby
Creo que no me equivoco al decir que la comunidad en pro del lenguaje Ruby
tiene los tutoriales de aprendizaje de programación más lindos y divertidos de
todos. Por ejemplo el famoso Hackety Hack y los espirituales Ruby Koans. Por su
parte, Try Ruby, es un tutorial interactivo, casi como un cuento programable, que
invita a descubrir ese hermoso lenguaje. Yo no lo pensaría y me daría una
oportunidad de aprender Ruby cuanto antes.
Skillshare
"Aprende lo que sea de quien sea, donde sea". Esta es la promesa de una
plataforma que conecta una red de nodos profesor/alumno, personas que
aprenden y enseñan también a programar a través de cursos donde el aprendizaje
es guiado por una comunidad.