lunes, 17 de noviembre de 2008

CICLOS DE REPETICIÓN CONTROLADOS POR CONDICIONES
Es una estructura, la cual evalúa una expresión sencilla o combinada, en la que, si el resultado de ésta es verdadero se ejecuta un bloque de instrucciones. Cuando terminan de realizarse se verifica nuevamente la expresión, si el resultado vuelve a ser verdadero se repite el proceso y así sucesivamente hasta que el resultado de la condición sea falso.

Se llama Mientras a la estructura algorítmica que se ejecuta mientras la condición evaluada resulte verdadera. Se evalúa la expresión booleana y, si es cierta, se ejecuta la instrucción especificada llamada cuerpo del bucle. Entonces se vuelve a evaluar la expresión booleana, y si todavía es cierta se ejecuta de nuevo el cuerpo. Este proceso de evaluación de la expresión booleana y ejecución del cuerpo se repite mientras la expresión sea cierta.

Cuando se hace falsa, finaliza la repetición. La estructura While y la estructura Repeat, se conocen como Iterativas. Se usan cuando no se conoce con anticipación el número de veces que se ejecutará la acción.

La diferencia entre ambas es que la condición se sitúa al principio (Mientras) o al final (Repetir) de la secuencia de instrucciones. Entonces, en el primero, el bucle continúa mientras la condición es verdadera (la cual se comprueba antes de ejecutar la acción) y en el segundo, el bucle continúa hasta que la condición se hace verdadera (la condición se comprueba después de ejecutar la acción, es decir, se ejecutará al menos una vez).

La estructura Desde/Para suele utilizarse cuando se conoce con anterioridad el número de veces que se ejecutará la acción.

Las estructuras Mientras y Para/Desde suelen en ciertos casos, no realizar ninguna iteración en el bucle, mientras que Repetir ejecutará el bucle al menos una vez.

Aspecto Crítico. Uno de los errores más comunes dentro de un ciclo es no poner una instrucción que permita cambiar el valor de la variable que está siendo evaluada lo cual provoca un ciclo infinito.

CENTINELAS Y BANDERAS
Cuando no se conoce a priori el número de iteraciones que se van a realizar, el ciclo puede ser controlado por centinelas.

CENTINELAS
En un ciclo Mientras controlado por tarea, la condición de Mientras especifica que el cuerpo del ciclo debe continuar ejecutándose mientras la tarea no haya sido completada.

En un ciclo controlado por centinela el usuario puede suspender la introducción de datos cuando lo desee, introduciendo una señal adecuada llamada centinela.

Cuando una decisión toma los valores de -1 o algún posible valor que no esté dentro del rango válido en un momento determinado, se le denomina centinela y su función primordial es detener el proceso de entrada de datos en una corrida de programa.
Por ejemplo, si se tienen las calificaciones de un examen (comprendida entre 0 y 100); un valor centinela en esta lista puede ser -999, ya que nunca será una calificación válida y cuando aparezca este valor se terminará de ejecutar el bucle. Si la lista de datos son números positivos, un valor centinela puede ser un número negativo.

BANDERAS
Conocidas también como interruptores, switch, flags o conmutadores, son variables que pueden tomar solamente dos valores durante la ejecución del programa, los cuales pueden ser 0 ó 1, o bien los valores booleanos True o False. Se les suele llamar interruptores porque cuando toman los valores 0 ó 1 están simulando un interruptor abierto/cerrado o encendido/apagado.

Controles para ciclos por condiciones:

Repetición controlada por contador.
Se debe utilizar cuando se conoce el número de veces que se requiere repetir un conjunto de instrucciones. La variable que será evaluada como condición del ciclo, será comparada contra el valor límite, es decir, contra el número de repeticiones que deben ejecutarse. Por lo tanto, ésta requerirá ser incrementada dentro del propio ciclo para garantizar la salida de éste.

Repetición controlada por centinela o por bandera. El bloque de instrucciones se ejecuta hasta que un dato específico (centinela o bandera) sea ingresado.

Repetición controlada por respuesta del usuario. El bloque de instrucciones se repite, siempre que el usuario lo indique al preguntárselo (¿Hay más datos?).

Cabe recordar que toda estructura se puede anidar. Pero en lo que respecta a colocar un ciclo dentro de otro, el ciclo más interno se repite n número de veces por cada repetición del ciclo externo. Es decir, si hay 2 ciclos, uno dentro del otro y se requiere que el primero se repita 5 veces y el más interno 10 veces por cada vuelta del primero, el ciclo interno se repetirá un total de 50 veces.

Ejemplo 1
Leer un número entero N y calcular el resultado de la siguiente serie: 1 - 1/2+ 1/3 - 1/4 +.... +/- 1/N.
Algoritmo:
Inicio
Serie = 0
I = 1
Leer (N)
Band = "T"
Mientras I <= N hacer Si band = "T" entonces Serie = serie + (1/I) Band = "F" Sino Serie = serie - (1/I) Band . "T" Fin_si I = I + 1 Fin_mientras Escribir (serie) Fin.

Ejemplo 2
Obtener suma de los términos de la serie: 2, 5, 7, 10, 12, 15, 17, .... 1800.
Sumser de tipo entero, es el acumulador de términos de la serie.
Band de tipo carácter, es variable auxiliar que indica si al siguiente término de la serie hay que sumarle 3 ó 2.

Algoritmo:
Inicio
I = 2
Sumser = 0
Band ="T"
Mientras (I <= 1800) hacer Sumser = sumser + I Escribir (I) Si Band = "T" entonces I = I + 3 Band ="F" Sino I = I + 2 Band ="T" Fin_si Fin_mientras Escribir (sumser) Fin. RESUMEN
Se ha visto que la estructura Mientras tiene una pequeña variante a la estructura Para-Hacer en cuanto a la representación algorítmica. La estructura Para-Hacer, se inicializa automáticamente en su sintaxis y el incremento también es automático. En cambio, la estructura Mientras usa un contador que es inicializado antes de entrar al ciclo y dentro del ciclo es incrementado. También se verificó que los centinelas son valores que se le dan a la condición para permitir que un ciclo pueda terminar. Los centinelas solamente se pueden usar en estructuras Mientras y Repetir, ya que sirven para finalizar el ciclo cuando no se sabe las veces que se va a realizar, y la estructura Para-Hacer es usada cuando ya se conoce a priori el número de veces que se va a realizar el ciclo.

PREGUNTAS
1.- Los centinelas solamente pueden usarse con las estructuras Mientras y Repetir, no con estructuras Desde/Para. INDIQUE EL POR QUÉ.
2.- Entre las estructuras repetitivas conocidas, ¿cuál es para usted la más ventajosa y por qué?

lunes, 3 de noviembre de 2008

Estructuras repetitivas e iterativas

Son herramientas que permiten ejecutar operaciones que se deben aplicar un número repetido de veces. El conjunto de instrucciones que se ejecuta repetidamente, 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, observe 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.

Ejemplo de bucle finito:

En el ejemplo anterior, ya se agregó una condición, la cual permitirá finalizar la ejecución del bucle en el caso de que la condición se cumpla.
Bucles Repetitivos:
A continuación, se muestran tres diseños de estructuras cíclicas: independientes, anidados y cruzados.

En los independientes, los bucles se realizan uno a la vez. Uno completo hasta que se cumple la condición y sólo en ese caso se entra al bucle siguiente.

En los ciclos anidados, al entrar a una estructura de repetición, dentro de ella se encuentra otra. La más interna se termina de realizar y se continúa con la externa hasta que la condición se cumple.

En los bucles cruzados, los cuales no son convenientes de utilizar, se tiene que iniciamos un bucle y no se ha terminado cuando empezamos otro, luego se aplican saltos para pasar al bucle externo y se quedan entrelazados.
Esto puede ocasionar que el programa pierda el control de cuál proceso se está ejecutando y se obtengan resultados erróneos. El diseño gráfico de estas tres formas cíclicas, sería:

Estructura HACER-PARA (FOR)
Repite la ejecución de una o varias sentencias un número fijo de veces, previamente establecido. Necesita una variable de control del bucle que en Pascal, es obligatoriamente de tipo ordinal (entero), ya que el bucle se ejecuta mientras la variable de control toma una serie consecutiva de valores de tipo ordinal, comprendidos entre dos valores extremos (inferior y superior).
Requiere el uso de begin y end para encerrar el grupo de instrucciones a repetir, siempre que éstas sean dos o más.

Formato ascendente:
FOR variablecontrol:=valorinicial TO valorfinal DO
(sentencia);

Formato descendente:
FOR variablecontrol:=valorincial DOWNTO valorfinal DO
(sentencia);
donde (sentencia) puede ser una sentencia simple o compuesta.

Ejemplo: (Programa para escribir una cantidad de números enteros)

Program escribeenteros;
Var
N,contador: integer;
Begin
Write ('Introduzca numero maximo de enteros: ');
Readln (N);
For contador:=1 to n do
Write (contador:5);
Writeln
End.

Características del bucle FOR:
Aunque a primera vista pueda resultar más atractivo FOR, existen limitaciones en su aplicación ya que en el bucle FOR siempre se incrementa o decrementa (de uno en uno) los valores de la variable de control de bucle y no de dos en dos o de tres en tres, o con valores fraccionarios.
El número de iteraciones de un bucle FOR siempre es fijo y se conoce de antemano:
Valor final - Valor inicial +1.
PREGUNTAS:
1.- ¿Cuál es la utilidad de las estructuras repetitivas en Programación?
2.- Dé un ejemplo, que usted crea requiera de estructuras repetitivas para ser resuelto. (No se está pidiendo el programa que resuelva el problema, sólo mencione la situación y cuál es el punto que se resolvería mediante ciclos).
Responda mediante el uso de la sección de comentarios.

sábado, 25 de octubre de 2008

ASIGNACIÓN
A continuación se muestran una serie de enunciados. Desarrolle el programa en PASCAL que permita resolver las situaciones plantadas. Llévelos a clase el día martes, resueltos en papel.

1) Un Centro de Comunicaciones tiene la siguiente promoción por llamadas nacionales:
Los primeros 3 minutos valen 0.4 Bs F (aún consumiendo menos de 3)
Cada minuto adicional a los primeros 3, tiene un valor de 0.16 Bs F. Realice un algoritmo que permita leer el tiempo de duración de una llamada (en minutos) y determine cuánto deberá cancelar la persona por ella.

2) Desarrolle un algoritmo que permita leer un número entero entre 1 y 12, el cual corresponde a uno de los meses del año, y que como resultado publique el número del mes. (Ej. nro=5; “El mes es MAYO”).

3) Resolver una ecuación de primer grado: ax + b = 0.

4) Realice un algoritmo que lea los coeficientes de una Ecuación de Segundo Grado y permita resolverla.

5) Leer las edades de 3 hermanos e indicar quién de ellos es mayor.

6) Leer un mes en número e indicar cuántos días tiene.

sábado, 18 de octubre de 2008

DIAGRAMAS DE FLUJO

Un diagrama de flujo es una forma más tradicional de especificar los detalles algorítmicos de un proceso y constituye la representación gráfica de un proceso multifactorial. Es la representación gráfica de los pasos de un proceso, que se realiza para entenderlo mejor. Son modelos tecnológicos utilizados para comprender los rudimentos de la programación lineal.



Ventajas de los Diagramas de Flujo



* Favorecen la comprensión del proceso a través de mostrarlo como un dibujo. El cerebro humano reconoce fácilmente los dibujos.
* Un buen diagrama de flujo reemplaza varias páginas de texto.

* Permiten identificar los problemas y las oportunidades de mejora del proceso. Se identifican los pasos redundantes, los flujos de los reprocesos, los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión.

* Muestran las interfases cliente-proveedor y las transacciones que en ellas se realizan, facilitando a los empleados el análisis de las mismas.

* Son una excelente herramienta para capacitar a los nuevos empleados y también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso.


¿Qué Símbolos se Emplean en los Diagramas de Flujo?
Los símbolos tienen significados específicos y se conectan por medio de flechas que indican el flujo entre los distintos pasos o etapas. Los símbolos más comunes son:


EJEMPLOS:
1) Suponga que un individuo desea invertir su capital en un banco y desea saber cuánto dinero ahorra después de un mes, si el banco paga a razón de 2% mensual. Haga el Diagrama de Flujo que permita determinarlo.


2) Diagrama de Flujo que evalúa el área que deja un círculo al estar dentro de un cuadrado

Los siguientes links, suministraron información que sirvió de soporte al material presentado:


http://www.elprisma.com/apuntes/administracion_de_empresas/quesonlosdiagramasdeflujo/
http://es.wikipedia.org/wiki/Diagrama_de_flujo
http://www.monografias.com/trabajos14/flujograma/flujograma.shtml
http://www.mis-algoritmos.com/aprenda-a-crear-diagramas-de-flujohttp://www.eduteka.org/modulos.php?catx=4&idSubX=116



INSTRUCCIONES:
Considere los siguientes enunciados. Si su número de lista es impar, hará los ejercicios del 1 al 3. Si su número es par, hará los ejercicios del 4 al 6.
Los diagramas deberán ser enviados AL CORREO de la profesora, el cual fue suministrado. NO LO REGISTRE COMO COMENTARIO EN ESTE BLOG. Tiene chance hasta el miércoles 22 de octubre para realizar esta actividad.

EJERCICIOS PLANTEADOS:
En cada caso realice el diagrama de flujo correspondiente:
1.- Un maestro desea saber qué porcentaje de hombres y qué porcentaje de mujeres hay en un grupo de estudiantes.
2.- Indique si una persona puede participar o no en las elecciones de noviembre de 2008.
3.- Resolver una ecuación de primer grado: ax + b = 0.
4.- Calcular el numero de pulsaciones que una persona debe tener por cada diez segundos de ejercicio si la formula es (220-edad)/10= N. de pulsaciones.
5.- Leer un número y escribir su valor absoluto.
6.- Leer un mes en número e indicar cuántos días tiene.

lunes, 13 de octubre de 2008

ALGORITMOS

Un algoritmo es un procedimiento a seguir, para resolver un problema en términos de:

1. Las acciones por ejecutar y
2. El orden en que dichas acciones deben ejecutarse

Un algoritmo nace en respuesta a la aparición de un determinado problema. Un algoritmo está compuesto de una serie finita de pasos que convergen en la solución de un problema, pero además estos pasos tienen un orden específico.

Se entiende como problema a cualquier acción o evento que necesite cierto grado de análisis, desde la simpleza de cepillarse los dientes hasta la complejidad del ensamblado de un automóvil. En general, cualquier problema puede ser solucionado utilizando un algoritmo, en este sentido se pueden utilizar los algoritmos para resolver problemas de cómputo.

Un algoritmo para un programador es una herramienta que le permite resaltar los aspectos más importantes de una situación y descartar los menos relevantes. Todo problema de cómputo se puede resolver ejecutando una serie de acciones en un orden específico.

Por ejemplo considere el algoritmo que se elaboraría para el problema o situación de levantarse todas las mañanas para ir al sitio de trabajo o estudio:

Salir de la cama
Quitarse la pijama
Tomar un baño
Vestirse
Desayunar
Poner en marcha el automóvil o tomar transporte.


Ahora bien, se ha visto que un algoritmo se puede ejecutar en forma común para resolver situaciones muy cotidianas.

La actividad que debe ser realizada, consiste en plantear un algoritmo de este tipo, cotidiano. Indique cuál es la situación evaluada y establezca la secuencia de pasos.
Recuerde identificarse al registrar su comentario.

miércoles, 1 de octubre de 2008

La Era de la Información y la Programación


El progreso técnico ha conducido al ser humano a elaborar sus formas de producción, de consumo y de ocio. A partir del siglo XVIII los desarrollos técnicos han comenzado a plantear dificultades de control efectivo. Asimismo, la cantidad de información relativa a personas, técnicos, estadísticas, documentación, ha ido creciendo considerablemente.
Sabiendo que estamos dentro de la “Era de la Información”, también hablamos de una “Revolución de la Información”, pues desde finales del siglo XX se han venido produciendo cambios fundamentales en la elaboración y el uso de la información. A lo largo de la historia, las sociedades humanas han tenido especialistas en información (desde los curanderos tradicionales hasta los directores de periódico) y tecnologías de la información (desde las pinturas rupestres hasta la contabilidad); sin embargo, hay dos tendencias relacionadas, una social y otra tecnológica, que apoyan el diagnóstico de que en la actualidad se está produciendo una revolución de la información.

CAMPOS DE ACCIÓN O APLICACIONES DE LA COMPUTACIÓN EN LA SOCIEDAD
COMUNICACIONES. La miniaturización de componentes, la reducción de costos de fabricación y el incremento en la fiabilidad de los dispositivos, ha permitido la incorporación de técnicas digitales a los equipos de telecomunicación.
EDUCACIÓN. Las nuevas tecnologías han incidido de manera significativa en todos los niveles del mundo educativo. Ahora un estudiante puede instruirse también a través de libros electrónicos, enciclopedias virtuales, publicaciones educativas en Internet, etc.
INTERNET. Protocolos de comunicación adecuados permiten que cualquiera de los usuarios que navegan por una de estas redes interconectadas pueda acceder sin problemas a las otras y enviar y recibir información de otros usuarios.
APLICACIONES INTEGRADAS. Existen aplicaciones generales, es decir, que se utilizan en muchos campos, como la industria, la enseñanza, deportes, etc. Ejemplos básicos: procesadores de texto, hojas de cálculo, bases de datos, presentaciones.
COMERCIO. El análisis del movimiento comercial ha permitido generar herramientas que ayuden a organizar y visualizar mejor las posibilidades de buen funcionamiento y expansión. Los fabricantes de cajas registradoras y computadoras han desarrollado soluciones computacionales para facilitar la gestión de negocios.
COMERCIO ELECTRÓNICO. Todas aquellas transacciones comerciales que se realizan por medios electrónicos de transmisión de datos. El “e-commerce” ha crecido de manera acelerada.
MEDICINA. Las computadoras reducen la posibilidad de errar en el diagnóstico, con lo que se gana un tiempo que a veces puede ser vital para el paciente.
AUTOMÓVILES. La automatización ha llegado a este campo, incorporando elementos que controlan partes fundamentales del vehículo y que incluso informa sobre incidencias. Además, se está incluyendo en los nuevos diseños, microprocesadores que controlen elementos externos, por ejemplo, mediante el uso de radares para prevenir situaciones de peligro inminente.
SISTEMAS DOMÉSTICOS DE CONTROL. Mecanismos de control remoto diseñados para uso en domicilios particulares. Permiten controlar y operar todos o casi todos los elementos de una casa, como electrodomésticos, encendido o apagado de luces, regulación de calefacción o aire acondicionado, etc.
SIMULACIÓN. Esta técnica permite construir un modelo de un determinado proceso a base de relaciones matemáticas y se prueba antes de que el proceso se ponga en marcha de manera definitiva.
ANIMACIÓN. Técnicas computarizadas que proporcionan posibilidades de manipulación de imágenes y producción de efectos especiales, tanto para la realización de películas y reportajes, como para los anuncios en televisión.

Éstas son apenas algunas de las aplicaciones de la Informática. Pueden mencionarse otros casos como: Robótica, Automatización de procesos de Fabricación, Inteligencia Artificial.
Las aplicaciones antes mencionadas, requieren el uso de la PROGRAMACIÓN para existir y ser efectivas.

PROBLEMAS DE LA REVOLUCIÓN DE LA INFORMACIÓN
Amenazas a la intimidad (accesos no autorizados).
“Aislacionismo” (reducción de actividades compartidas).
Discusiones sobre la “propiedad del conocimiento” (¿quién tiene derecho a cobrar por cuáles tipos de información?)
Crecimiento explosivo de Internet vs la censura.
Disminución del interés investigativo y analítico respecto a la información obtenida (cada vez se “lee” menos. Simplemente se toma el material encontrado y ya).
Por otro lado están los llamados “Delitos Informáticos”, todas aquellas acciones malsanas que se han ejecutado bajo el amparo del uso del computador para agilizar la fechoría.

Para que la computación haya marcado una Era, y una serie de aportes a la sociedad actual, ha sido necesario integrar Hardware y Software como elementos del computador. Esta integración ha sido posible gracias a la utilización de las instrucciones precisas y en la secuencia correcta, es decir, de ALGORITMOS adecuados.

Según lo expuesto anteriormente, responda en forma concreta:
1.- ¿Qué ha aportado más la Era de la Información a la sociedad actual, beneficios o desventajas?
2.- Observando las aplicaciones comentadas, ¿qué aporte puede dar la Programación a la Ingeniería Mecánica?

Estas peguntas deben ser respondidas a través de un comentario. Recuerden identificarse escribiendo nombre, apellido, cédula y sección a la cual pertenecen.

Los siguientes links sirvieron de apoyo bibliográfico al material presentado:
http://www.monografias.com/trabajos12/comptd/comptd.shtml
http://html.rincondelvago.com/informatica-como-ciencia.html
http://www.monografias.com/trabajos14/informaticanegat/informaticanegat.shtml