abril 27, 2011

Economía: Ivonne Serrano

¡¡Hola!!
Dejo aqui los enlaces para mi video y el guión:
http://es.scribd.com/doc/54093751/GLOBALIZACION
http://www.youtube.com/watch?v=25PEU87m-YU

Ivonne Serrano González grupo:601

octubre 12, 2010

DIAGRAMAS DE FLUJO

Diseñar un diagrama  que lea cuatro variables y calcule e imprima el producto, la suma y la media aritmética de estas.



octubre 10, 2010

PROGRAMACIÓN ESTRUCTURADA.


La programación estructurada es un estilo con el cual el se busca que el programador elabore programas sencillos y fáciles de entender. Para ello, la programación estructurada hace uso de tres estructuras básicas de control. Un problema se puede dividir en acciones elementales o instrucciones, usando un número limitado de estructuras de control (básicas) y sus combinaciones que pueden servir para resolver dicho problema.

Las Estructuras Básicas pueden ser:

Secuenciales: cuando una instrucción del programa sigue a otra.
Selección o decisión: acciones en las que la ejecución de alguna dependerá de que se cumplan una o varias condiciones.
 Repetición, Iteración: cuando un proceso se repite en tanto cierta condición sea establecida para finalizar ese proceso.

ESTRUCTURAS BÁSICAS.
Ventajas de la Programación Estructurada
Con la programación estructurada, elaborar programas de computadora sigue siendo una labor que demanda esfuerzo, creatividad, habilidad y cuidado. Sin embargo, con este nuevo estilo podemos obtener las siguientes ventajas:

1. Los programas son más fáciles de entender. Un programa estructurado puede ser leído en secuencia, de arriba hacia abajo, sin necesidad de estar saltando de un sitio a otro en la lógica, lo cual es típico de otros estilos de programación.
2. Se logra una reducción del esfuerzo en las pruebas. El seguimiento de las fallas o depuración se facilita debido a la lógica más visible, de tal forma que los errores se pueden detectar y corregir más fácilmente.
3. Se crean programas más sencillos y más rápidos.

  • ESTRUCTURA SECUENCIAL.
Se caracteriza porque una acción se ejecuta detrás de otra. El flujo del programa coincide con el orden físico en el que se han ido poniendo las instrucciones. Dentro de este tipo podemos encontrar operaciones de inicio/fin, inicialización de variables, operaciones de asignación, cálculo, sumarización, etc. Este tipo de estructura se basa en las 5 fases de que consta todo algoritmo o programa:
Definición de variables (Declaración)
Inicialización de variables.
Lectura de datos
Cálculo
Salida

Ejemplo .
Se desea encontrar la longitud y el área de un círculo de radio 5.
Solución.
El objetivo del ejercicio es encontrar la longitud y el área de un círculo con un radio conocido y de valor 5. Las salidas serán entonces la longitud y el área. (Fase 5 del algoritmo) Sabemos que la longitud de un círculo viene dada por la fórmula 2 * pi * radio y que el área viene dada por pi * radio al cuadrado. (Fase 4 del algoritmo) Si definimos las variables como: (fase 1 del algoritmo)

L = Longitud,  A = área,  R = radio,  pi = 3.1416,  hagamos el algoritmo:

Inicio
   Pi ¬ 3.1416 (definición de un valor constante)
   R ¬ 5 (radio constante ya que es conocido su valor)
   A ¬ pi * R ^ ² (asignación del valor del área)
   L ¬ 2 * pi * R (asignación del valor de la longitud)
   Escribir (A, L) (salida del algoritmo)
Fin
 

Representación en Diagrama de Flujo para el ejemplo:


  • ESTRUCTURAS SELECTIVAS
Estas estructuras se identifican porque en la fase de solución del problema existe algún punto en el cual es necesario establecer una pregunta, para decidir si ciertas acciones deben realizarse o no.
Las condiciones se especifican usando expresiones lógicas. La representación de una estructura selectiva se hace con palabras en pseudocódigo (if - then - else o en español si - entonces - sino) y en flujograma con una figura geométrica en forma de rombo.
Las estructuras selectivas o alternativas se clasifican en:
a)Simples
b)Dobles
c)Compuestas
d) Múltiples

  • SIMPLES.
Se identifican porque están compuestos únicamente de una condición. La estructura si - entonces evalúa la condición y en tal caso:
Si la condición es verdadera, entonces ejecuta la acción Si (o acciones si son varias).
Si la condición es falsa, entonces no se hace nada.
Español                      Inglés
Si <condición>            If <condición>
Entonces                    then
<acción Si>                <acción Si>
fin_si                          endif


Ejemplo .
Construir un algoritmo tal, que dado como dato la calificación de un alumno en un examen, escriba "Aprobado" en caso que esa calificación fuese mayor que 8.
   Salidas:mensaje de aprobado si se cumple la condición.
   Entradas: calificación
Datos adicionales: un alumno aprueba si la calificación es mayor que 8
Variables: Cal = calificaciónAlgoritmo:Inicio
   Leer (cal)
   Si cal > 8 entonces
   Escribir ("aprobado")
   Fin_si
Fin

 
  • DOBLES
Son estructuras lógicas que permiten controlar la ejecución de varias acciones y se utilizan cuando se tienen dos opciones de acción, por la naturaleza de estas se debe ejecutar una o la otra, pero no ambas a la vez, es decir, son mutuamente excluyentes.

Representación pseudocodificada.
Español                                    Inglés
Si <condición> entonces             If <condición> then
<acción S1>                             <acción S1>
sino                                          else
<acción S2>                             <acción S2>
Fin_Si                                      End_if

Entonces, si una condición C es verdadera, se ejecuta la acción S1 y si es falsa, se ejecuta la acción S2.


Ejemplo 1
Dado como dato la calificación de un alumno en un examen, escriba "aprobado" si su calificación es mayor que 8 y "Reprobado" en caso contrario.      Algoritmo:      Inicio
          Leer (cal)
          Si cal > 8 entonces
          Escribir ("aprobado")
          Sino
          Escribir ("reprobado")
          Fin_si
      Fin

  • COMPUESTAS
En la solución de problemas encontramos numerosos casos en los que luego de tomar una decisión y marcar el camino correspondiente a seguir, es necesario tomar otra decisión. Dicho proceso puede repetirse numerosas veces. En aquellos problemas en donde un bloque condicional incluye otro bloque condicional se dice que un bloque está anidado dentro del otro.

Ejemplo 1.
Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden de 40, el resto se consideran horas extras y que éstas se pagan al doble de una hora normal cuando no exceden de 8; si las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se paga por una hora normal y el resto al triple.
Solución.
Lo primero que hay que determinar es si el trabajador trabajó horas extras o no. Encontrar las horas extras de la siguiente forma:
Horas extras = horas trabajadas - 40
En caso que sí trabajó horas extras:
Si horas extras > 8 entonces a horas extras excedentes de 8 = horas extras -8 y pago por horas extras = pago por hora normal * 2 * 8 + pago por hora normal * 3 * horas extras excedentes de 8
De otra forma (solo horas al doble) pago por horas extras = pago por hora normal * 2 * horas extras.
Finalmente, pago total que recibirá el trabajador será:
Pago = pago * hora normal * 40 + pago por horas extras.
Si no trabajó horas extras tendremos:
Pago = pago por hora normal * horas trabajadas.
Datos de salida: Pago.
Datos de entrada: número de horas trabajadas y pago por hora normal.
Definición de variables:
ht = horas trabajadas                     het = horas extras que exceden de 8
ph = pago por hora normal             phe = pago por horas extras
he = horas extras               pt = pago que recibe el trabajador

Algoritmo:
Inicio
Leer (ht, ph)
Si ht >40 entonces
He ¬ ht - 40
Si he > 8 entonces
Het ¬he - 8
Phe ¬ph * 2 * 8 + ph * 3 * het
Sino
Phe ¬ ph * 2 * he
Fin_si
Pt ¬ph * 40 + phe
Sino
Pt ¬ ph * ht
Fin_si
Escribir (pt)
Fin

  • MULTIPLES
Con frecuencia es necesario que existan más de dos elecciones posibles. Este problema se podría resolver por estructuras selectivas simples o dobles, anidadas o en cascada, pero si el número de alternativas es grande puede plantear serios problemas de escritura y de legibilidad.
Usando la estructura de decisión múltiple se evaluará una expresión que podrá tomar n valores distintos, 1, 2 , 3, ....,n y según que elija uno de estos valores en la condición, se realizará una de las n acciones o lo que es igual, el flujo del algoritmo seguirá sólo un determinado camino entre los n posibles.
Esta estructura se representa por un selector el cual si toma el valor 1 ejecutará la acción 1, si toma el valor 2 ejecutará la acción 2, si toma el valor N realizará la acción N.

Ejemplo 1:
Diseñar un algoritmo tal que dados como datos dos variables de tipo entero, obtenga el resultado de la siguiente función:

  • REPETITIVAS E ITINERATIVAS
Son operaciones que se deben ejecutar un número repetido de veces. El conjunto de instrucciones que se ejecuta repetidamente cierto número de veces, se llama Ciclo, Bucle o Lazo.
Iteración es cada una de las diferentes pasadas o ejecuciones de todas las instrucciones contenidas en el bucle.
Fases de un Programa Cíclico :
1. Entrada de datos e instrucciones previas
2. Lazo o bucle
3. Instrucciones finales o resto del proceso
4. Salida de resultado
Ejemplo de bucle infinito:
En el flujograma anterior, observa que la flecha que se regresa hacia arriba nos está indicando que hay que volver a evaluar la expresión. En ese caso como el bucle es infinito, no se tiene una condición para terminar y se estará haciendo siempre. En el siguiente ejemplo, ya se agregó una condición, la cual nos permitirá finalizar la ejecución del bucle en el caso en que la condición se cumpla.
Ejemplo de bucle finito:


Bibliografía:
http://www.mailxmail.com/curso-aprende-programar/tipos-estructuras-programacion-estructuras-basicas-secuencial
http://www.mailxmail.com/curso-aprende-programar/tipos-estructuras-selectivas-estructura-simple
http://www.mailxmail.com/curso-aprende-programar/estructura-seleccion-doble
http://www.mailxmail.com/curso-aprende-programar/estructuras-selectivas-compuestas
http://www.mailxmail.com/curso-aprende-programar/estructura-selectiva-multiple
http://www.mailxmail.com/curso-aprende-programar/estructuras-repetitivas-iterativas
http://dcb.fi-c.unam.mx/users/alejandromra/Secuencial.pdf 
http://webdelprofesor.ula.ve/cidiat/hjegat/materias/programacion/fortran.pdf
http://www.iqcelaya.itc.mx/~vicente/Programacion/ProgEstruct.pdf




 
 

octubre 05, 2010

GENERACIONES DE LOS LENGUAJES DE PROGRAMACIÓN

LENGUAJES DE PROGRAMACIÓN.
Los lenguajes de programación se dividen en 2 categorías fundamentales:
Bajo nivel: Son dependientes de la máquina, están diseñados para ejecutarse en una determinada computadora. A esta categoría pertenecen las 2 primeras generaciones.
Alto Nivel: Son independientes de la máquina y se pueden utilizar en una variedad de computadoras. Pertenecen a esta categoría la tercera y la cuarta generación.
Los lenguajes de más alto nivel no ofrecen necesariamente mayores capacidades de programación, pero si ofrecen una interacción programador/computadora más avanzada. Tienen lenguajes posteriores a la cuarta generación.
Cuanto más alto es el nivel del lenguaje, más sencillo es comprenderlo y utilizarlo.
Cada generación de lenguajes es más fácil de usar y más parecida a un lenguaje natural que su predecesores.

GENERACIONES.
• Primera generación:
Son los lenguajes más básicos. Se representan en bytes, los cuales, están compuestos de bits, que son números binarios o que consisten únicamente de ceros (0) o unos (1). Estos valores pueden corresponder a que la electricidad esté encendida o apagada en la máquina, o a la presencia o ausencia de carga magnética en un medio de almacenamiento. A partir de estos dos estados se forman los esquemas de codificación (como el código ASCII) que permiten generar letras, números, signos de puntuación y caracteres especiales.
 • Segunda generación: 
Están constituidos por nemotécnicos similares a palabras en idioma inglés. En primer lugar, se crea un archivo fuente con las instrucciones que se desea que la computadora ejecute, usando un editor, que es una especie de procesador de palabras. El código fuente es traducido al lenguaje máquina mediante programas traductores (compiladores). Los programadores rara vez escriben programas de tamaño relevante en este tipo de lenguajes, debido a que, a pesar que es mucho más fácil que utilizar código de máquina, siguen siendo altamente detallados                      (instrucciones muy básicas). Sólo se hace en los casos donde la velocidad es clave (como en la   programación de juegos de video) y para afinar partes importantes de los programas que son escritos en lenguajes superiores.
 • Tercera generación: 
Son llamados de alto nivel porque se asemejan más al lenguaje que utilizan los humanos al  comunicarse. Fueron desarrollados con la finalidad de facilitar el proceso de programación.  Cuentan con comandos que se acercan más a las palabras de uso común en lugar de tener que usar combinaciones binarias del código máquina o los comandos básicos del ensamblador. Estos lenguajes hacen más fácil la lectura, escritura y comprensión de los programas, aunque de manera semejante a los lenguajes ensambladores, deben ser convertidos a lenguaje máquina, para poder ser usados en la computadora.
Los programas de la tercera generación son capaces de soportar programación estructurada, es decir, permiten el uso de estructuras de programación específicas para ramificaciones y ciclos en el flujo del programa. Por otro lado, resultan más claros puesto que usan palabras o comandos semejantes al lenguaje normal, lo que permite compartir el desarrollo entre diferentes programadores. Los programadores que conforman un equipo pueden leer el código realizado por los demás y comprender la lógica y el flujo de control del programa.         
Entre los lenguajes de tercera generación se incluyen:
- FORTRAN
- COBOL
- BASIC
- PASCAL
- C
- C++
- Java

Cuarta generación:
Estos lenguajes de cuarta generación son usados en programación, de propósitos  específicos, caracterizados por una mayor facilidad de uso comparados con los de la tercera generación, permitiendo la creación de prototipos de una aplicación rápidamente. Los prototipos  permiten tener una idea del aspecto y funcionamiento de la aplicación antes que el código sea  terminado. Esto implica que quienes estén involucrados en el desarrollo de la aplicación pueden aportar retroalimentación en aspectos como, estructura y diseño desde el principio del proceso.   A cambio de esta capacidad para trabajar más velozmente, debe sacrificarse parte de la flexibilidad con la que se disponía con los lenguajes anteriores.
Muchos de estos lenguajes tienen capacidad para bases de datos, permitiendo crear programas que sirvan de enlace con las mismas. Los programas incluyen formas y cuadros para introducir datos, así como solicitar reportes de información de las bases de datos. En general, ahorran tiempo puesto que el código requerido para conectar los cuadros de diálogo y las formas se genera de forma automática.   
• Quinta generación: Lenguajes naturales:
Esta generación incluye la inteligencia artificial y sistemas expertos. En lugar de sólo ejecutar un conjunto de órdenes, el objetivo de estos sistemas es pensar y anticipar las necesidades de los usuarios. Estos sistemas se encuentran aún en desarrollo. Aunque los sistemas de inteligencia artificial han demostrado ser más complicados para desarrollar de lo que se anticipaba, los  investigadores afirman que pronto serán capaces de tomar como entrada hechos y luego usar un procesamiento de datos que formule una respuesta adecuada, de modo similar a como responden los humanos.


Bibliografía:

http://www.desarrolloweb.com/articulos/2358.php                          


septiembre 28, 2010

METODOLOGIA DE SOLUCION DE PROBLEMAS

HARDWARE.
Son los componentes de un equipo que se pueden ver o tocar, incluido el gabinete y todo lo que este contiene. El componente mas importante del hardware es un chip rectangular pequeño que se encuentra dentro del equipo y que se denomina unidad de procesamiento central (CPU o Central Processing Unit) o microprocesador. se trata del cerebro del equipo, el componente que traduce las instrucciones y realiza los calculos. a los componentes del hardware como el monitor, el teclado, el raton, la impresora y otros, a menudo se les conoce como dispositivos del hardware o simplementedispositivos.

SISTEMA OPERATIVO.
Programa de control maestro que administra las funciones internas de la computadora.

PROGRAMA.
Es una lista de instruccion escritas, en un lenguaje de programacion, que ejecutala computadora para que la maquina actue de una forma determinada.

LENGUAJE DE PROGRAMACION.
Lenguaje artificial compuesto por un vocabulario fijo y un conjunto de reglas que se usan para crear instrucciones que la computadora debe seguir.

septiembre 19, 2010

ALGEBRA DE BOOLE

Compuertas lógicas.
Los compuertas lógicas son circuitos electrónicos que responden a voltajes positivos (llamados unos) o voltajes negativos (llamados ceros). Todos los sistemas digitales se construyen usando solo tres compuertas lógicas básicas, llamadas compuerta AND, compuerta OR y la compuerta NOT.
Expresión Booleana.
Es una forma de representar simbólicamente el comportamiento de circuito lógico.
Tablas de verdad.
Muestras todas las combinaciones posibles de las variables de entrada y sus respectivas salidas. Las variables de entrada se representan por letras del alfabeto A, B, C, D y la salida o salidas con la letra “y” o “f” minúsculas.
El numero de combinaciones está dada por la formula 2n donde n es el numero de variables de entrada.
Se puede determinar la expresión booleana a partir de su circuito siguiendo cada una de las variables y anotando su salida correspondiente de cada compuerta hasta llegar a la salida.