SEMANA 1, 2 Y 3

SISTEMAS COMPUTACIONALES

Los sistemas computacionales actuales en su esencia siguen siendo los mismos, un cambio que se resalta es con los medios de almacenamiento ya que los Pcs actuales no cuentan con Floppys o unidades de 3 1/2 más conocidas como unidades de disket.

Hardware
Es la parte física es todo lo tangible a los ojos y las manos. Para saber más acceda al siguiente video por Haly Mantel




http://www.youtube.com/watch?v=FasDEqui4FU

HARRY, Martel. PRIMER SMART TUTORIAL: "PARTES FUNDAMENTALES DE UNA COMPUTADORA" CONTACTO MSN: smarthomesac@hotmail.com www.smarthomesac.com http://www.youtube.com/watch?v=FasDEqui4FU ó en el cd de la tesis en la ruta CD DE LOGICA DE PROG\VIDEOS BLOGGER LOGICA DE PROGRAMACION

Software
Es la parte lógica son los programas, sistemas operativos de la máquina. Para saber más acceda al siguiente video.




cesarnl29. El Software. http://www.youtube.com/watch?v=w3TIXIPdbpY&NR=1 ó puede acceder a él en el cd de la tesis en la ruta CD DE LOGICA DE PROG\VIDEOS BLOGGER LOGICA DE PROGRAMACION


Firmware

Es un programación en firme. Es un Programa que es grabado en la memoria ROM y establece la lógica de más bajo nivel que controla los circuitos electrónicos del dispositivo. Se considera parte del hardware puesto que está integrado en la electrónica del dispositivo, pero también es software, ya que es el que proporciona la lógica y está programado por algún tipo de lenguaje de programación. El firmware recibe órdenes externas y responde operando el dispositivo.

El firmware se encuentra en monitores, unidades de disco, impresoras, microprocesadores, etc.

Por ejmplo la BIOS es un programa firmware.



TIPOS DE DATOS

RAJA, Mario. Tipos de datos (Parte 1) http://www.youtube.com/watch?v=5CBoxm_ ó en el cd de la tesis en la ruta CD DE LOGICA DE PROG\VIDEOS BLOGGER LOGICA DE PROGRAMACION

RAJA, Mario, Tipo de datos (Parte 2) http://www.youtube.com/watch?v=sfx1YS1aGnw (Parte 2) ó en el cd de la tesis en la ruta CD DE LOGICA DE PROG\VIDEOS BLOGGER LOGICA DE PROGRAMACION

DATOS DE TIPO REAL

Real=2.9E-39 a 1.7E38
Single=1.5E-45 a 3.4E38
Double=5.0E-324 a 1.7E308
Extendet=1.9E-4851 a 1.1E4932
Comp=-9.2E18 a 9.2E18

DATOS TIPO CARACTER (CHAR) Los datos de tipo caracter son cada uno de los símbolos que forman el código ASCII. Los caracteres se especifican entre apostrofes: 'a' 'B' '2' '#'

DATOS TIPO CADENA (STRING) Las cadenas son secuencias de caracteres o arreglos que tienen una longitud maxima de 255 caracteres. Se definen entre apostrofes.
Nombre : Cadena;
Nombre = 'Ernesto Chávez';

DATOS TIPO LOGICOS Este tipo de datos solo pueden tomar dos tipos de datos: verdadero o falso, el verdadero puede ser representado por su nombre en inglés: True y el falso por False ; también se representan por 1 y por 0 respectivamente.
El tipo está definido como Boolean .

DATOS TIPO VARIABLE
Las variables son datos de un programa cuyo valor almacenado en memoria puede cambiar durante la ejecución del programa, deben ser declaradas con un nombre y un tipo de dato dado al principio del nombre o de la función.

DATOS TIPO CONSTANTE Las constantes son datos que tienen un valor dado por el programador por default y nunca cambiara en la ejecución del programa. Hay diferentes tipos de constantes, las cuales pueden ser declaradas en C de la siguiente forma:
Constantes Enteras, constante reales, constante carácter, constante cadena ó cadena literal, constante enumeración, enum boolean {NO,YES};


FUNDAMENTOS DE PROGRAMACIÓN

Acceda al siguiente libro digital (http://es.wikibooks.org/wiki/Fundamentos_de_programaci%C3%B3n) o si desea observe el siguiente tutorial http://sistemas.itlp.edu.mx/tutoriales/fundamentosdeprog/index.htm


PARADIGMAS DE PROGRAMACIÓN

Un paradigma de programación es una colección de modelos conceptuales que juntos modelan el proceso de diseño y determinan, al final, la estructura de un programa.

Tipos de paradigmas

Floyd describió tres categorías de paradigmas de programación:


a) Los que soportan técnicas de programación de bajo nivel (ej.: copia de ficheros frente estructuras de datos compartidos)

b) Los que soportan métodos de diseño de algoritmos (ej.: divide y vencerás, programación dinámica, etc.)

c) Los que soportan soluciones de programación de alto nivel, como los descritos en el punto anterior.

Floyd también señala lo diferentes que resultan los lenguajes de programación que soportan cada una de estas categorías de paradigmas. Sólo comentaremos los paradigmas relacionados con la programación de alto nivel.Se agrupan en tres categorías de acuerdo con la solución que aportan para resolver el problema


a) Solución procedimental u operacional.

b) Solución demostrativa.

c) Solución declarativa.

Es decir señala qué se desea obtener pero no cómo obtenerlo.

http://www.um.es/docencia/barzana/IAGP/Iagp3.html#BM3 http://www.frt.utn.edu.ar/sistemas/paradigmas/page22.html


En la Revista Digital www.efdeportes.com deBuenos Aires (Argentina) en el artículoN° 33 describen a un paradigma como un conjunto de principios generales que un programador ha de seguir para desarrollar un programa. Cada lenguaje de programación permite al programador seguir un paradigma determinado, por tanto los lenguajes de programación se pueden también clasificar según el paradigma que siguen. Los paradigmas de programación definen cómo se organizan los diferentes elementos de un programa, como esos elementos interactúan entre ellos, etc. Actualmente, los paradigmas de programación más comúnmente usados son los siguientes:

Programación Estructurada : Postula el principio de división de un programa en unidades algorítmicas más pequeñas llamadas funciones o procedimientos . Una vez definidos, el programador puede invocar a un procedimiento desde otro. Típicamente un programa estructurado se realiza diseñando primeramente un conjunto de estructuras de datos, y posteriormente un conjunto de algoritmos (procedimientos) que actúan sobre esas estructuras de datos.

Programación Orientada a Objetos : Aunque la programación estructurada es un paradigma que se ha usado durante mucho tiempo y aún se usa en la actualidad, existe un límite en la complejidad de los programas que se pueden realizar manteniendo los costes de mantenimiento y modificación de los programas razonablemente bajos. Es otras palabras, modificar un programa complejo en Pascal o COBOL puede ser una tarea altamente costosa en términos de tiempo. Para sobrepasar estos problemas se creó el paradigma de la programación orientada a objetos, que postula la división de un programa en unidades autocontenidas llamadas objetos . A diferencia de los procedimientos que contienen sólo algoritmos y los datos sobre los que actúan están aparte, un objeto contiene un conjunto de algoritmos junto con los datos sobre los que actúan.


De esta manera cuando un programador invoca algoritmos en un objeto, no necesita saber qué tipo de datos el objeto maneja de forma interna. Además los objetos pueden ser organizados en jerarquías, de forma unos objetos pueden heredar datos y algoritmos de otros objetos. Con esto lo que se consigue es que la organización de un programa orientado a objetos sea más modular y rica que la organización de un programa estructurado, con lo que la arquitectura de los programas complejos puede ser acomodada a cambios más fácilmente.


HERRAMIENTAS PARA RESOLVER PROBLEMAS DE COMPUTADOR

Para la resolución de problemas con computadoras se puede dividir en tres fases:



  • Análisis del problema Diseño del algoritmo: El propósito del análisis del problema es ayudar al programador para llegar a una cierta comprensión de la naturaleza del problema.

Para poder definir con precisión el problema se requiere que las especificaciones de entrada y salida sean descritas en detalle.


Estos son los requisitos mas importantes para llegar a una solución eficaz.

  • Resolución del algoritmo en la computadora diseño del algoritmo: Es descomponer el problema original en subproblemas mas simples y a continuación dividir estos subproblemas en otros mas simples, que pueden ser implementados para su solución en la computadora, este método se denomina diseño descendente (top-down design).

Para problemas complejos se necesitan con frecuencia diferentes niveles de refinamiento antes de que se pueda obtener un algoritmo claro, preciso y completo.


Las ventajas mas importantes del diseño descendente son:

  • El problema se comprende mas fácilmente al dividirse en partes mas simples,denominadas módulos

  • Realizarle modificaciones al algoritmo es mas fácil

  • La comprobación de la solución del problema se puede verificar fácilmente.

Estructura inicial del algoritmo: Las tareas deben estar seguidas de alguna secuencia definida se pasos hasta que se obtenga un resultado coherente; El flujo de control usual de un algoritmo es secuencial; Un aspecto importante a considerar es el método elegido para describir los algoritmos: empleo de justificación en la escritura de algoritmos.

En el siguiente video usted puede apreciar la manera lógica de hacer una serie de instrucciones, las cuales puede ver reflejadas en el Pc interno.

MARTINEZ B, Néstor Raúl. Video Pepito. Universidad Cooperativa de Colombia seccional Bucaramanga, 2009 ó ver en el cd de la tesis en la ruta CD DE LOGICA DE PROG\VIDEOS BLOGGER LOGICA DE PROGRAMACION

Algoritmo: Conjunto de reglas operatorias cuya aplicación permite resolver un problema enunciado a través de un número finito de operaciones.

Criterios que debe satisfacer un algoritmo (características):

  • Entrada. Son cero o más cantidades las cuales son externamente sustituidas.

  • Salida. Al menos una cantidad es producida.

  • Exactitud/precisión. Cada instrucción debe ser clara y sin ambigüedad.
  • Finito. Terminará después de un número finito de pasos.

  • Eficiente. Cada instrucción puede ser verificada por una persona con una prueba manual que satisfaga los requerimientos planteados por el problema.

Representación gráfica de un algoritmo

  • Descripción Narrada Sigue un proceso de ejecución común y lógico, describiendo textualmente paso a paso cada una de las actividades a realizar dentro de una actividad determinada.
    Ejemplo. Algoritmo para asistir a clases:
    1. Levantarse 2. Bañarse 3. Vestirse 4. Desayunar 5. Cepillarse los dientes 6. Salir de casa 7. Tomar el autobús 8. Llegar a la Universidad 9. Buscar el aula 10. Ubicarse en un asiento

  • Pseudocódigo El pseudo código es una imitación de código es una versión abreviada de instrucciones reales para las computadoras. Ejemplo. Diseñar un algoritmo que lea cuatro variables y calcule e imprima su producto, suma y media aritmética.
    inicio,
    leer (a, b, c, d), producto <-- (a * b * c * d), suma <-- (a + b + c + d), media <-- (a + b + c + d) / 4, escribir (producto, suma, media), fin.

  • Diagramas de Flujo Son la representación gráfica de la solución algorítmica de un problema. Para diseñarlos se utilizan determinados símbolos o figuras que representan una acción dentro del procedimiento. Utilizan unos símbolos normalizados, con los pasos del algoritmo escritos en el símbolo adecuado y los símbolos unidos con flechas, denominadas líneas de flujo, que indican el orden en que los pasos deben ser ejecutados.
    Para su elaboración se siguen ciertas reglas:

  • Se escribe de arriba hacia abajo y de izquierda a derecha

  • Siempre se usan flechas verticales u horizontales, jamás curvas
  • Evitar cruce de flujos
  • En cada paso expresar una acción concreta

Secuencia de flujo normal en una solución de problema

  • Tiene un inicio

  • Una lectura o entrada de datos

  • El proceso de datos

  • Una salida de información Un final.

DFD (Diagrama de flujjo de datos) DFD es un programa de libre disposición para ayuda al diseño e implementación de algoritmos expresados en diagramas de flujo (DF). Además incorpora opciones para el depurado de los algoritmos, lo que facilita enormemente la localización de los errores de ejecución y lógicos más habituales.


Su utilización es muy sencilla al tratarse de una herramienta gráfica, y además incluye un menú de ayuda muy completo. Visite http://manuales.gfc.edu.co/dfd/dfd.pdf y descargue de ella el manual del DFD.

Ejemplo en DFD.

MARTINEZ B, Néstor Raúl. Ejemplo DFD. Universidad Cooperativa de Colombia seccional Bucaramanga, 2009 ó ver en el cd de la tesis en la ruta CD DE LOGICA DE PROG\VIDEOS BLOGGER LOGICA DE PROGRAMACION

Como este programa es gratis descárgalo en la siguiente dirección: http://dfd.softonic.com/
Descomprime el .zip e instala el archivo Dfd..exe en tu computador; ahora si listo. Instalado el DFD en tu máquina diviertete

PRESENTACIÓN DEL CURSO


LOGICA DE PROGRAMACION

JUSTIFICACION DEL CURSO

El análisis y el planteamiento de una solución a un problema dado mediante el uso de la algoritmia y la programación es un componente importante dentro de la formación de un ingeniero de Sistemas, esto permite que se modelen e implementen soluciones con mejores estructuras de información para las organizaciones que cada vez demandan del desarrollo de aplicaciones complejas.

COMPETENCIA

Desarrollar algoritmos y su correspondiente codificación, tomando como base los fundamentos de la lógica de programación, los estándares, las normas de computación y haciendo uso de herramientas computacionales.

Videos

Los videos de este blogger pueden ser vistos en el cd de la tesis de grado Objeros Virtuales de aprendizaje OVAS II Fase

Textos Guía

[1] CAIRO, Oswaldo. Metodología de la Programación, Tomo I, Computec, Alfa Omega Grupo Editor S. A
[2] VILLALOBOS, Jorge A., CASALLAS, Rubby. Fundamentos de Programación. Aprendizaje Activo Basado en Casos. Pearson. JOYANES AGUILAR, Luis. Fundamentos de programación. Algoritmos, Estructuras de Datos y Objetos. McGrawHill.CARRILLO, Elberto, Problemario Solucionario de Introducción a los Computadores. Publicaciones UIS, Bucaramanga.

Textos Complementarios

[1] RAMIREZ, Felipe. Introducción a la programación. Algoritmos y su implementación en VB.NET, C
[2] DEITEL P. H., DEITEL J. Como programar en C/C++. Prentice Hall. UREÑA, Luis, y Otros. Fundamentos de Informática, AlfaOmega
[3] GOTFRIED, Byron. Programación en C. 2ª Edición, McGrawHill.
[4] LONG, Larry. Introducción a las computadoras y al procesamiento de información. Prentice Hall. 4ª Edición. México. OVIEDEO REGINO, Efraín. Lógica de Programación. Ecoe Ediciones, Segunda Edición. Bogotá.

Bases de Datos Digitales

proquest (Acceso local y para acceso remoto – Login y Clave: COOPERATIVA
http://www.universidadcooperativa.org/index.php?option=com_content&task=view&id=25&Itemid=109)

e-library (Acceso local y para acceso remoto Login y Clave: la cedula)

UNIRED










Otras Páginas Web

http://www.mailxmail.com/curso/informatica/programacionestructurada/http://manuales.gfc.edu.co/dfd/dfd.pdf
http://www.itq.edu.mx/vidatec/maestros/sis/mlopez/Tutorial/elem.htm
http://d.scribd.com/docs/1t4xcszypubsan7ryany.pdf
http://profeblog.es/blog/alfredo/curso-de-programacion-en-c/
http://macedoniamagazine.frodrig.com/aulad.htm
http://lawebdelprogramador.com/cursos/enlace.php?idp=1092&id=13&texto=C/Visual%20C
http://thefricky.wordpress.com/2007/12/28/programacion-orientada-a-objetos-caracteristicas-de-la-poo/
http://tikal.cifn.unam.mx/~jsegura/LCGII/java1.htm
http://studies.ac.upc.edu/EPSC/TCP/documentos/ActivitatPOO+PM.doc
http://d.scribd.com/docs/26qa9w41d4jir6du417f.pdf