miércoles, 19 de marzo de 2014

Estructuras Secuenciales, Selectiva y Repetitiva

Estructuras secuenciales

La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. 

En Pseudocódigo una Estructura Secuencial se representa de la siguiente forma: 


Observe el siguiente problema de tipo cotidiano y sus respectivos algoritmos representados en Pseudocódigo y en diagramas de flujos: 

• Tengo un teléfono y necesito llamar a alguien pero no sé como hacerlo. 


El anterior ejemplo es un sencillo algoritmo de un problema cotidiano dado como muestra de una estructura secuencial. Ahora veremos los componentes que pertenecen a ella: 

Asignación 

La asignación 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 numero 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*2/4).
En general el formato a utilizar es el siguiente: 
< Variable >      <valor o expresión >

El símbolo      debe leerse “asigne”. 

Escritura o salida de datos 

Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Esta instrucción presenta en pantalla el mensaje escrito entre comillas o el contenido de la variable. Este proceso se representa así como sigue: 


Lectura o entrada de datos 

La lectura o entrada de datos consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor o dato. Este dato va a ser almacenado en la variable que aparece a continuación de la instrucción. Esta operación se representa así: 


DECLARACION DE VARIABLES Y CONSTANTES 

La declaración de variables es un proceso que consiste en listar al principio del algoritmo todas las variables que se usarán, además de colocar el nombre de la variable se debe decir qué tipo de variable es. 

Contador:   ENTERO 
Edad, I:   ENTERO 
Direccion :    CADENA_DE_CARACTERES 
Salario_Basico :    REAL 
Opcion :    CARACTER 

En la anterior declaración de variables Contador, Edad e I son declaradas de tipo entero; Salario_Basico es una variable de tipo real, Opcion es de tipo carácter y la variable Direccion está declarada como una variable alfanumérica de cadena de caracteres. 

En el momento de declarar constantes debe indicarse que lo es y colocarse su respectivo valor. 

CONSTANTE Pi 3.14159 
CONSTANTE Msg “Presione una tecla y continue” 
CONSTANTE ALTURA 40 

Cuando se trabaja con algoritmos por lo general no se acostumbra a declarar las variables ni tampoco constantes debido a razones de simplicidad, es decir, no es camisa de fuerza declarar las variables. Sin embargo en este curso lo haremos para todos los algoritmos que realicemos, con esto logramos hacerlos más entendibles y organizados y de paso permite acostumbrarnos a declararlas ya que la mayoría de los lenguajes de programación (entre ellos el C++) requieren que necesariamente se declaren las variables que se van a usar en los programas. 

Veamos algunos ejemplos donde se aplique todo lo que hemos visto hasta el momento sobre algoritmos: 

Ejemplo 1: Escriba un algoritmo que pregunte por dos números y muestre como resultado la suma de estos. Use Pseudocódigo y diagrama de flujos. 


Ejemplo 2: Escriba un algoritmo que permita conocer el área de un triángulo a partir de la base y la altura. Exprese el algoritmo usando Pseudocódigo y diagrama de flujos.



Estructura Selectiva



La estructura lógicas selectivas se encuentran en la solución algorítmica de casi todo tipo de problemas. Las utilizamos cuando en el desarrollo de la solución de un problema debemos tomar una decisión, para establecer un proceso o señalar un camino alternativo a seguir.

Esta toma de decisión (expresada con un rombo) se basa en la evaluación de una o más condiciones que nos señalarán como alternativa o consecuencia, la rama a seguir.

Hay situaciones en las que la toma de decisiones se realiza en cascada. Es decir se toma una decisión, se marca la rama correspondiente a seguir, se vuelve a tomar una decisión y así sucesivamente. Por lo que para alcanzar la solución de este problema o subproblema debemos aplicar prácticamente un árbol de decisión.

Las podemos clasificar en:

1. SI ENTONCES (Esctructura selectiva simple)

2.SI ENTONCES / SINO (Estructura selectiva doble)

3.SI MULTIPE (Estructura selectiva múltiple)

ESCTRUCTURA SELECTIVA SI- ENTONCES



ESTRUCTURA SELECTIVA SI ENTONCES /SINO



ESTRUCTURA SELECTIVAS ANIDADAS.



ESTRUCTURA SI MÚLTIPLE



Estructuras Repetitivas
Las estructuras repetitivas son aquellas que sirven para evitar la molestia de andar repitiendo una acciones varias veces. Estas sirven para que una acción se ejecute un determinado numero de veces, y depende del cumplimiento de una determinada acciones (una condición).

Las estructuras repetitivas permiten ejecutar acciones que pueden descomponerse en otras acciones primitivas, esta estructura debe tener una entrada y una salida en la cual se ejecute la acción un determinado o indeterminado numero de veces. Las estructuras repetitivas pueden ser :WHILE (mientras), FOR (para), DO WHILE (hacer mientras).

Diagrama de Flujo


Qué es un Diagrama de Flujo  Gestión de Procesos

Un diagrama de flujo es una representación gráfica de un proceso. Cada paso del proceso es representado por un símbolo diferente que contiene una breve descripción de la etapa de proceso. Los símbolos gráficos del flujo del proceso están unidos entre sí con flechas que indican la dirección de flujo del proceso.

El diagrama de flujo ofrece una descripción visual de las actividades implicadas en un proceso mostrando la relación secuencial ente ellas, facilitando la rápida comprensión de cada actividad y su relación con las demás, el flujo de la información y los materiales, las ramas en el proceso, la existencia de bucles repetitivos, el número de pasos del proceso, las operaciones de interdepartamentales… Facilita también la selección de indicadores de proceso


Beneficios del Diagrama de Flujo

En primer lugar, facilita la obtención de una visión transparente del proceso, mejorando su comprensión. El conjunto de actividades, relaciones e incidencias de un proceso no es fácilmente discernible a priori. La diagramación hace posible aprehender ese conjunto e ir más allá, centrándose en aspectos específicos del mismo, apreciando las interrelaciones que forman parte del proceso así como las que se dan con otros procesos y subprocesos.
Permiten definir los límites de un proceso. A veces estos límites no son tan evidentes, no estando definidos los distintos proveedores y clientes (internos y externos) involucrados.
El diagrama de flujo facilita la identificación de los clientes, es más sencillo determinar sus necesidades y ajustar el proceso hacia la satisfacción de sus necesidades y expectativas.
Estimula el pensamiento analítico en el momento de estudiar un proceso, haciendo más factible generar alternativas útiles.
Proporciona un método de comunicación más eficaz, al introducir un lenguaje común, si bien es cierto que para ello se hace preciso la capacitación de aquellas personas que entrarán en contacto con la diagramación.
Un diagrama de flujo ayuda a establecer el valor agregado de cada una de las actividades que componen el proceso.
Igualmente, constituye una excelente referencia para establecer mecanismos de control y medición de los procesos, así como de los objetivos concretos para las distintas operaciones llevadas a cabo.
Facilita el estudio y aplicación de acciones que redunden en la mejora de las variables tiempo y costes de actividad e incidir, por consiguiente, en la mejora de la eficacia y la eficiencia.
Constituyen el punto de comienzo indispensable para acciones de mejora o reingeniería.

Figuras de Diagramas de Flujo

Elaboración del Diagrama de Flujo

1.-El diagrama de flujo debe ser realizado por un equipo de trabajo en el que las distintas personas aporten, en conjunto, una perspectiva completa del proceso, por lo que con frecuencia este equipo será multifuncional y multijerárquico.

2.-Determinar el proceso a diagramar.
3.-Definir el grado de detalle. El diagrama de flujo del proceso puede mostrar a grandes rasgos la información sobre el flujo general de actividades pricipales, o ser desarrollado de modo que se incluyan todas las actividades y los puntos de decisión. Un diagrama de flujo detallado dará la oportunidad de llevar realizar un análisis más exhaustivo del proceso.
4.-Identificar la secuencia de pasos del proceso. Situándolos en el orden en que son llevados a cabo.
5.-Construir el diagrama de flujo. Para ello se utilizan determinados símbolos. Cada organización puede definir su propio grupo de símbolos. En la figura anterior se mostraba un conjunto de símbolos habitualmente utilizados. Al respecto cabe decir que en la figura “Conector de proceso” es frecuentemente utilizado un círculo como símbolo. Para la elaboración de un diagrama de flujo, los símbolos estándar han sido normalizados, entro otros, el American National Standars Institute (ANSI).
6.-Revisar el diagrama de flujo del proceso.



viernes, 28 de febrero de 2014

1.3 Interpretes y compiladores

1.3 Interpretes y compiladores

COMPILADORESUn compilador analiza el programa y lo traduce al idioma "maquina". La acción fundamental los compiladores es equivalente a la de un traductor humano , que toma nota de lo que esta escuchando y reproduce por escrito en otra lengua.

INTERPRETES
Analiza el programa fuente y lo ejecuta directamente, o sea en el ejemplo del traductor humano, éste sería un traductor humano que conforme a lo que está escuchando va ejecutando, sin generar ningun escrito, es decir que sobre la marcha va traduciendo.

Diferencias entre compilar e interpretar
La opción de compilar o interpretar no está siempre disponible. Algunos lenguajes típicamente se compilan y otros típicamente se interpretan. En muy pocas ocasiones podemos optar por una u otra indistintamente.
Por ejemplo, programas escritos en lenguajes como C o Pascal prácticamente siempre se compilan, y otros como Perl o Python prácticamente siempre se interpretan.
En el siguiente cuadro se esquematizan algunas de las diferencias entre compilar e interpretar


Conclusion
esta parte del curso se enfoco a la parte "las herramientas que se usan para programar" y esta no es la exepcion ya que aprendemos que es un compilador y que es un interprete, lo cual nos ayuda ya que sabemos con certeza que nos puede ayudar de mejor manera.

Cuestionario
1¿Que es un interprete? y que hace?
2¿Que es un compilador? y que hace?
3¿Menciona 5 diferencias entre ellos?
4 Compara en la vida cotidiana a un compilador y da ejemplo
5 compara en la vida cotidiana a un interprete y da ejemplo

1.2 Evolución de lenguajes de Programación

1.2 Evolución de lenguajes de Programación

¿Que es un lenguaje de programacion?
Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programación y lenguaje informático como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más.

Según la forma de ejecución, se dividen en dos tipos diferentes

-Lenguajes compilados

Naturalmente, un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente. Se requiere una corrida de compilación antes de procesar los datos de un problema.
Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario).
Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el código.

-Lenguajes interpretados

Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producción futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el código objeto para utilizarlo posteriormente.

La siguiente vez que se utilice una instrucción, se le debe interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada instrucción del ciclo tendrá que volver a ser interpretado cada vez que se ejecute el ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo). El intérprete elimina la necesidad de realizar una corrida de compilación después de cada modificación del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una corrida de producción.



No hay un único tipo de lenguajes, sino que se clasifican según las características que posean y según el paradigma y conceptos que soporten.

Por su nivel:

  o Bajo nivel. No hay abstracciones de datos ni de procesos. Ejemplos: Assembler, editores hexadecimales.

  o Alto nivel. Permite abstraer varios aspectos que simplifican la programación. En general son algo menos    eficientes que los de bajo nivel. Ejemplos,Pascal, Ada, Java, C++, Prolog, etc.

Por su jerarquización:
  o Primera generación. Fue el primer lenguaje. Se utilizan unos y ceros para representar los "cableados", que anteriormente se hacían a mano. Ej: Lenguaje máquina.

  o Segunda generación. Se asignan nombres simbólicos para las distintas instrucciones, que internamente son combinaciones de unos y ceros. Ej: Assembler.

  o Tercera generación. Lenguajes de alto nivel. Son los más populares y más fáciles de usar.

  o Cuarta generación. Lenguajes 4GL, o de gestión de bases de datos; como SQL, QueryByExample, etc.

Por el manejo de las instrucciones:

  o Imperativos: Un programa se especifica por medio de una secuencia de instrucciones que se ejecutan de esa manera, en secuencia. Ej: FORTRAN.

  o Orientados a objetos: Soportan abstracciones de datos y procesos conocidas como objetos. Ej: C++, Ada, Java, Smalltalk.

  o Funcionales: Especifican una solución como un conjunto y una composición de funciones. Ej: Miranda, Haskell, ML, Camel.

  o Lógicos: Permiten obtener resultados lógicos o relaciones entre elementos. Ej: Prolog.

  o Concurrentes, paralelos y distribuidos: Soportan procesamiento paralelo, es decir, al mismo tiempo. Pascal Concurrente, Java (hilos).

Por la programación:

  o Imperativos: Incluye los paradigmas imperativo y orientado a objetos.

  o Declarativos: Incluye los paradigmas funcional y lógico.


Video


conclusion:
en este tema logramos comprender como es un lenguaje de programacion y sus etapas de desarrollo 3, tambien sus tipos y clasificaciones.Esto nos sirve para saber que tipo de lenguaje podremos utilizar en cada uno de los problemas que se nos presenten

cuestionario:
1¿que es un lenguaje de programacion?
2¿menciona tres lenguajes de programacion?
3¿menciona por lo menos 5 clasificaciones de lenguajes de programacion?
4¿da un ejemplo basico de como se utiliza un lenguaje?
5¿que es un lenguaje compilado?

jueves, 27 de febrero de 2014

1.1 Sistemas Operativos

SISTEMAS OPERATIVOS
Conjunto de programas que se integran con el hardware para facilitar al usuario, el aprovechamiento de los recursos disponibles. Algunos de sus objetivos principales son:

  • Provee de un ambiente conveniente de trabajo.

  • Hace uso eficiente del Hardware.

  • Provee de una adecuada distribución de los recursos.
Para un Sistema Operativo real deberá satisfacer las siguientes funciones:

  • Gobierna el Sistema.

  • Asigna los recursos.

  • Administra y controlar la ejecución de los programas.
Un sistema de computo en muchos casos cuenta con demasiados recursos para ser utilizados por un solo usuario, es en estos casos cuando se puede dar servicio a varios procesos.
 
Sistema Operativo
Llamadas al Sistema
El Sistema Operativo en conjunto con el Hardware aparecen al usuario como un solo dispositivo con un conjunto de instrucciones más flexibles y variadas a las que se conoce como Llamadas al Sistema (System Callings).
Intérprete de Comandos
También conocido por su nombre en inglés, Shell, es un programa que interpreta las órdenes del usuario y las convierte en Llamadas al Sistema.
Núcleo (o Kernel)
Es la parte del Sistema Operativo que se encarga de sincronizar la activación de los procesos y definir prioridades.
Programas del Sistema
Son programas de servicio que debe ser solicitados explícitamente por los usuarios. Como ejemplos de estos tenemos:
  1. Compiladores
    Son programas que traducen Programas Fuente en programas Objeto.
  2. Ensambladores
    Traducen programas escritos con mnemónicos a lenguaje de máquina.
  3. Editores
    Son programas que permiten escribir textos y guardarlos en memoria secundaria.
  4. Utilerías de Archivos
    Programas para dar mantenimiento a los archivos.
  5. Bibliotecas
    Programas que contienen rutinas para realizar funciones frecuentemente requeridas. Estas funciones pueden ser ligadas a los programas escritos por el usuario.
Programas de Aplicación
Programas externos al sistema, utilizados para realizar tareas específicas como simulación, creación y edición de gráficas e imágenes, etc..

Sistema Operativo
Es el programa o programas que tienen todas las computadoras modernas, el usuario de un equipo de computo no tiene que preocuparse de como funciona, por ejemplo, una unidad lectora de disco, sólo necesita pedirle al sistema operativo que lo lea o escriba en el disco mediante un comando. El más comúnmente usado es el MS-DOS.
Conjunto de programas que sirven como interfaz entre el usuario (Sirve como agente de intercambio de información entre la computadora y el usuario.) y la computadora, además de que administran los recursos de la misma (Entendiéndose como recursos: Memoria, Disco Duro, Procesador, Monitor, Etc.).

COMPARACION DE SISTEMAS

http://i47.tinypic.com/24uxdzm.png

CONCLUSION 
en esta practica se aprende la definicion de sistema operativo y sus principales caracteristicas, tambien como los diferentes tipos de sistemas operativos que hay en el mercado, esto lo podemos usar a la hora de optimizar una pc ya que le podriamos poner un SO ligero para una mayor fluidez.

Programa de estudios


Programa de estudios



UNIDADES

UNIDAD I "INTRODUCCION A LA PROGRAMACION"




1.1.Sistemas Operativos
1.1.1. Definición, Características y Función de un Sistema Operativo.
1.1.2. Análisis comparativo de Sistemas Operativos (MS- DOS, LINUX, WINDOWS)
1.2.Evolución de los lenguajes de programación.
1.2.1. Definición, Características y Funciones de los Lenguajes de Programación.
1.3.Interpretes, Compiladores.
1.3.1. Definición de Intérpretes y Compiladores, Ambiente integral del Lenguaje C

UNIDAD II "FUNDAMENTOS DE PROGRAMACION ESTRUCTURADA"




2.1. Estructura general de un programa.
2.2. Tipos de datos y Operadores
2.2.1. Tamaños, Declaración, Modificadores
2.2.2. Operadores Lógicos, Aritméticos y de Asignación
2.3. Funciones de biblioteca.
2.3.1. Funciones de Entrada y Salida.
2.3.2. Funciones Matemáticas
2.4. Funciones generadas por el usuario.
2.4.1. Argumentos y Parámetros Formales
2.4.2. Funciones con y sin Argumentos
2.4.3. Funciones que Regresan Valores

UNIDAD III "ESTRUCTURA DE FLUJO PROGRAMATICO"




3.1. Estructuras de decisión
3.1.1. Simple
3.1.2. Ramificada
3.2. Estructuras de iteración
3.2.1. Pre y Post Condicional, Contador y Acumuladores
3.3. Estructuras de control
3.3.1. Ruptura de un Lazo

UNIDAD IV "ESTRUCTURA DE DATOS"




4.1. Arreglos unidimensionales
4.1.1. Concepto y Forma General
4.1.2. Arreglos Numéricos y de Caracteres
4.2. Arreglos bidimensionales
4.2.1. Concepto y Forma General
4.2.2. Arreglos Numéricos y de Caracteres
4.3. Apuntadores
4.3.1. Concepto
4.3.2. Tipos de Apuntadores
4.3.3. Operaciones con Apuntadores
4.3.4. Relación de Apuntadores con Arreglos

UNIDAD V "APLICACIONES"




5.1. Análisis del problema y elaboración del algoritmo
5.2. Codificación e Implementación
5.3. Pruebas modulares e integrales
5.4. Mantenimiento

miércoles, 19 de febrero de 2014

PORTADA VICTOR FP







INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
UNIDAD CULHUACAN 



MENDOZA ZEPEDA VÍCTOR MANUEL

FUNDAMENTOS DE PROGRAMACIÓN