El propósito general de toda computadora es manejar datos. Un dato es una colección de resultados compuesta por caracteres, números y símbolos almacenados en el procesador de manera que puedan ser procesados.
Los tipos de datos simples son:
El tipo de dato numérico es el conjunto de los valores numéricos.
Se pueden representar de dos formas:
Enteros (números completos que no tienen componentes fraccionarios)
Ejemplos: 16 3868 -1256 0
Reales (consta de una parte entera y una parte decimal)
Ejemplos: -123.0 0.1 4.9827 -0.002
En aplicaciones científicas el se requiere una representación especial para los números muy grandes como 9846000000000000000 o muy pequeños como 0,000000000023. Un computador sólo puede representar un número fijo de dígitos, el cual varía de computador a otro, siendo ocho dígitos un número típico. Este límite provocaría muchos problemas para representar y almacenar números muy grandes o muy pequeños.
Para evitar estos inconvenientes se usa notación científica que consiste en expresar un número muy grande o muy pequeño en forma de potencias de 10.
Por ejemplo:
El número 9846000000000000000 es equivalente a 9,846 x 1018, y el número 0,000000000023 es equivalente a 2,3 x 10-11.
La representación en coma flotante es una generalización de notación científica. En estas expresiones se considera la mantisa (parte decimal) y el exponente (parte potencial) el de la potencia de diez.
Ejemplo:
2,3 x 10-11
2,3 (mantisa) -11 (exponente)
Lógicos (sólo puede tomar uno de dos valores)
Verdadero (true) Falso (false)
Carácter (conjunto finito y ordenado de caracteres que la computadora reconoce)
Los caracteres reconocidos por los diferentes computadores por lo general no son estándar, pero la mayoría reconoce los tipos los siguientes tipos de caracteres:
Caracteres Alfabéticos: {A, B, C, … , Z} {a, b, c, … , z}
Caracteres Numéricos: {0, 1, 2, … , 9}
Caracteres Especiales: {+, -, *, /, ^, ., ;, <, >, $, …}
Ejemplos: ‘a’ ‘A’ ‘0’ ‘_’
Cadenas de caracteres (sucesión de caracteres o conjunto ordenado de caracteres)
Por lo general se encuentran delimitados por comillas dobles “” (algunos lenguajes de programación usan comillas simples ‘’), la longitud de una cadena de caracteres es el número de los mismos comprendidos entre los separadores.
Ejemplos: “Hola, ¿que tal?” “Me gusta mucho programar :- )”
Pseudocódigo
El pseudocódigo es una herramienta de programación en que las palabras se escriben de manera similar en un idioma local (generalmente en inglés) que facilitan tanto la escritura como la lectura de programas.
En este curso vamos a usar un pseudocódigo que nos permita familiarizarnos con otros lenguajes de programación, además manejaremos instrucciones en español y de tipos de control secuencial, de selección y de repetición.
Instrucciones a utilizar:
inicio –> Indica el inicio de un algoritmo.
fin –> Indica el final de un algoritmo.
Estructuras secuenciales:
Son aquellas en las que una instrucción sigue a otra en secuencia hasta el final del proceso.
Estructuras selectivas
Las estructuras selectivas evalúan una condición y de acuerdo al resultado de la misma efectúa una acción u otra.
Estructuras repetitivas
Las estructuras repetitivas realizan acciones un número de veces determinado por condiciones o asignado por el desarrollador.
Nombre: Leonardo Gavidia Guerra
Edad: 19 años
Fecha de nacimiento: 29 de Julio de 1989
Secundaria: ITS Simón Bolívar (Técnico en Electrónica)
Superior: ESPOL (Ingeniería en Electrónica y Telecomunicaciones)
Descripción:
Siempre me ha gustado la tecnología, en especial las computadoras. Desde que era un niño me ha gustado la investigación, ensamblo y reparo computadores desde los 15 años y a lo largo del tiempo he adquirido mucha experiencia en ese campo, así que a los 17 años ya configuraba servidores Windows y Linux.
Actualmente me dedico a la administración, configuración e implementación de redes y servidores, que es lo que me gusta y uno de mis hoobies es programar.
Realmente soy algo multifacético, me gusta aprender y hacer de todo un poco como cocinar, la carpintería, trabajar con aluminio, escribir y leer. Disfruto mucho de la naturaleza, la literatura; además me gusta mucho viajar y salir con mis amigos y amigas.
Software: Mantenimiento, configuración e instalación de sistemas operativos.
Hardware: Ensamblaje, mantenimiento y reparación de computadoras.Redes: Diseño, implementación, soporte y diagnóstico de redes de datos, configuración de equipos de red.
Linux: Instalación y personalización, configuración de servidores Proxy, MySQL, FTP, Web, VoIP, Correo y de Archivos.
Programación: Lenguaje C, Java, PHP, ShellScript.
En el capítulo anterior analizamos lo que es un programa y las fases que requiere el desarrollo del mismo. Ahora nos centraremos en el diseño de algoritmos, previamente vimos un par de ejemplos, ahora profundizaremos en este tema.
¿Qué es un algoritmo?
Un algoritmo se puede definir como el camino que hay que seguir para llegar a la solución del problema planteado. El diseño de este camino o procedimiento debe ser siempre previo a la realización de del programa que lo ejecute.
El método algorítmico se basa en descomponer el programa en sucesivas secuencias de forma que al ir recogiéndolas nos permite llegar a la solución final.
Aquí algunos ejemplos:
1. Una máquina está construida para suelos necesita ser programada para delimitar un terreno de 20 metros de largo y 15 de ancho. Escriba un algoritmo que realice esta tarea.
La máquina acepta las siguientes instrucciones:
Subir brocha Sube la brocha para que ésta no pinte el suelo.
Bajar brocha. Baja la brocha para que ésta pinte el suelo.
Avanzar <número de metros> Mueve la máquina la cantidad de metros indicada.
Girar <ángulo> Gira la dirección de la máquina.
La máquina se encuentra inicialmente con la brocha subida y se encuentra en una de las esquinas del terreno a marcar.
Solución:
INICIO
Bajar brocha
Avanzar 15
Girar 90
Avanzar 20
Girar 90
Avanzar 15
Girar 90
Avanzar 20
Girar 90
FIN
Existe un programa llamado KTurtle para Linux (LOGO para Windows) y sirve para practicar con instrucciones sencillas como las que vimos en este ejercicio, es una herramienta muy útil para practicar con algoritmos. Si te animas a hacer estas figuras en KTurtle deja el algoritmo como comentario.
2. Una pareja de esposos con 2 hijas y 2 hijos, un policía y un ladrón necesitan cruzar el río y para ello tienen una balsa, escriba el algoritmo necesario para que todos puedan cruzar el río.
Las reglas son las siguientes:
• 1. Solo hasta 2 personas en la balsa pueden cruzar al mismo tiempo
• 2. El Padre no puede estar con ninguna de las hijas si la Madre no esta presente
• 3. La Madre no puede estar con ninguno de los hijos si el Padre no esta presente
• 4. El Ladrón no puede estar con ningún miembro de familia sin la presencia del Policía
• 5. Solo el Padre, la Madre y el Policía saben como funciona la balsa
Si quieren probar aquí les dejo un pps con el juego XD
Solución:
INICIO
El policía y el ladrón cruzan el río
El policía regresa
El policía y un niño cruzan el río
El policía y el ladrón regresan
El padre y el otro niño cruzan el río
El padre regresa
El padre y la madre cruzan el río
La madre regresa
El policía y el ladrón cruzan el río
La madre y una niña cruzan el río
El policía y el ladrón regresan
El policía y la niña cruzan el río
El policía regresa
El policía y el ladrón cruzan el río
FIN
Un programa de computadora es un conjunto de instrucciones –órdenes dadas a la máquina- que producirán la ejecución de una determinada tarea. En pocas palabras, un programa es un medio para conseguir un fin. El proceso de programación es básicamente un proceso de solución de problemas.
El desarrollo de un programa requiere las siguientes fases:
Definición y análisis del problema
Diseño de algoritmos
Codificación del programa
Depuración y verificación del programa
Documentación
Mantenimiento
El programador debe establecer el conjunto de especificaciones que debe contener el programa: entrada, salida y algoritmos de resolución, donde estos últimos incluirán las técnicas para obtener las salidas a partir de las entradas.
Para ilustrarlo mejor:
Problema: Tengo mucha sed y decido ir a comprar usa cerveza a una barra. Una vez estando en la barra me propongo comprarla y surgen las interrogantes: ¿Qué necesito? ¿Qué pasos debo seguir para llevar a cabo mi objetivo? ¿Qué voy a recibir?
Objetivo: Obtener una cerveza comprándola en una barra.
Entradas: Para comprar una cerveza necesito dinero, y un vendedor.
Salidas: Cerveza.
Solución del problema:
INICIO
Me acerco al vendedor
Le solicito al vendedor una cerveza
El vendedor me solicita dinero
Le entrego el dinero al vendedor
El vendedor me entrega la cerveza
FIN
Ahora quiero beberme la cerveza
Objetivo: calmar mi sed bebiendo una cerveza.
Entradas: una cerveza (asumamos que es una botella con cerveza), una boca y una mano.
Salida: ninguna
Solución del problema:
INICIO
Tomo la cerveza con la mano
Acerco la cerveza a la boca
Abro la boca
Inclino la botella dejando que el líquido entre en la boca
FIN
Aunque parezca tonto, la programación es así, se necesita tener en cuenta hasta el más mínimo detalle.
Procesador
Es un dispositivo que ejecuta las instrucciones del programa, dirige y controla el proceso de información realizado por la computadora.
El procesador consta de dos componentes: unidad de control (UC) y la unidad aritmético-lógica (UAL).
La unidad de control (UC) coordina las actividades de los computadores y determina que operaciones se deben realizar y en qué orden.
La unidad aritmético-lógica realiza operaciones aritméticas y lógicas, tales como la suma, resta, multiplicación, división y comparaciones. Los datos en la memoria central se pueden leer o escribir por el procesador.
La Memoria
La memoria almacena la información en un formato consistente. Generalmente tanto las instrucciones como los datos se almacenan en la memoria en áreas distintas y separadas.
Dirección de memoria
Una dirección de memoria es un conjunto de coordenadas físicas para identificar un dato contenido en la memoria. Toda la información alojada en la memoria principal del ordenador recibe una dirección, la cual debe ser conocida por el usuario para poder tener acceso a la información.
Para ilustrarlo mejor
Podemos realizar una analogía de la memoria con un gabinete de cajones o casilleros enumerados, para poder almacenar objetos en este gabinete necesitamos reservar uno o más casilleros de acuerdo al volumen de lo que necesitemos almacenar; y para poder acceder a estos casilleros necesitamos conocer su ubicación (por lo general un número único por casillero en el gabinete) la cual se le entrega al usuario al momento de la reserva.