lunes, 10 de mayo de 2010

Ejemplos de Aplicación a Cuestiones de Ingeniería Civil del Ciclo For

Ejemplo de aplicación a la Ingeniería Civil :

  • Suponga los siguientes datos:
Crear un programa que reciba los valores, que convierta cada angulo en su forma decimal y que determine la suma de los angulos como a continuación se detalla:

Algoritmo:

Inicio

Leer No_vertices

Repetir de 1 to No_vertices

leer grados

leer minutos

leer segundos

decimal<---- grados + minutos / 60 + segundos / 3600

suma <---- suma + decimal

Regresa Repetir

Escribe suma

Fin

Comentarios: Los valores de los angulos serán eliminados, para continuar con los cálculos de la Planilla debe emplearse tipos estructurados de datos; que serán revisados porsteriormente.

Ejemplos de Aplicaciones en general del Ciclo For

Algunos ejemplos de como se aplica de una forma simple un ciclo para un número conocido de repeticiones son:
  • Planteamiento: Crear un programa que reciba las tres calificaciones de un grupo de alumnos, que determine el promedio de cada uno de ellos y el general del grupo. Como puede observar, para el grupo debemos tener como un dato conocido, el número de alumnos que lo conforman. Esto es, que la primer acción a desarrollar en el programa, debe pedir las tres calificaciones; pero del primer alumno, después las del segundo, del tercero, etc. se determina que es una acción repetida tantas veces como alumnos tiene el grupo. Por lo cual utilizamos un ciclo para un número conocido de iteraciones.}

Algoritmo:

Inicio

Lee numero_de_alumnos

Repite desde 1 to numero_de_alumnos

Lee primer_calificacion

Lee segunda_calificacion

Lee tercer_calificacion

promedio<---- (primer_calificacion + segunda_calificacion + tercer_calificacion)/3

///////En este momento y antes de perder el valor encontrado, se acumulan en una suma

suma<---- suma+promedio

Regresa el ciclo

promedio_general<----suma / numero_de_alumnos

Comentarios: Suma es una variable simple de un tipo especial, las variables simples solamente pueden tener un valor a la vez, si por ejemplo una variable x se le asigna un valor en una linea de código y en una linea posterior se le re-asigna otro, el primero es desechado y conserva el último solamente. En este caso cuando suma hace referencia después del igual a sí misma, está haciendo referencia al valor que contiene, cuando le decimos que sume(+), está sumando al valor anterior uno nuevo, los dos valores se pierden, pero se gana la suma de ambos.

  • Planteamiento: Una empresa calcula su pago total de nómina de los sueldos de sus 25 trabajadores de acuerdo a un tabulador:

Categoría del trabajador = 1. Sueldo base = 1500.00

Categoria del trabajador = 2 Sueldo base = 2000.00

Categoría del trabajador = 3 Sueldo base = 2500.00

Crear un programa que de acuerdo a los datos de categoría de cada trabajador, determine su total a pagar en sueldos.

Algoritmo:

Inicio

Repetir

Lee categoria

Si categoria =1 entonces

suma<---- suma+1500.00

Sino Si categoria=2 entonces

suma<---- suma+2000.00

Sino

suma<---- suma +2500.00

fin de repetir

Escribe suma

Fin

  • Ejercicio propuesto para el alumno
Planteamiento: Suponga un grupo de 20 alumnos, se pide que aporten su estatura para determinar el promedio de las mismas.
  • Ejercicio Propuesto para el alumno

Planteamiento: Suponga una serie de 50 números, se pide crear el programa que reciba los valores de los nùmeros, que determine la suma y el promedio.

viernes, 7 de mayo de 2010

Estructuras de Repetición

Otra forma de controlar el flujo, es a través de las estructuras llamadas Ciclos, Bucles o Estructuras de Repetición. Supongamos un programa, donde la información como la estatura de un grupo de 15 o 20 alumnos, es requerida; si lo pensamos, puede deducirse que leer estatura es un proceso que se repetirá tantas veces como el programa lo requiera. Esto es precisamente lo que hace una estructura de repetición; cuando decimos "Ciclo" a lo que nos referimos es a repetir.Cuando pensamos en repetir, directamente debemos pensar en dos puntos fundamentales:


  • Cuantas veces repetir una acción o una serie de acciones.
  • Que es lo que se quiere o necesita repetir.
Cuando determinamos estas dos situaciones, estamos listos para utilizar una estructura de repetición; que en adelante lo llamaremos Ciclo.



Tipos de ciclos.


Un a posible clasificación de los ciclos puede ser la que a continuación se propone:

  1. Para un número conocido de Iteraciones, Ciclos, Repeticiones o vueltas.
  2. Para un número no conocido de Iteraciones, Ciclos, Repeticiones o Vueltas.


Ciclo For/Next


La estructura For/Next tiene las siguientes características:




  • Es para un número conocido de iteraciones
  • Trabaja con contadores de tipo entero que determinan cuantas veces exactamente se repetirá la acción.
  • Antes de repetir la acción asociada en el cuerpo de la estructura, primero evalúa la condición expresada en la misma y que consiste en contar las vueltas, hasta llegar a la iteración indicada, el ciclo termina.
Esta estructura es la más utilizada en los programas, dado que define un número específico de repeticiones, esta basada en un contador de iteraciones.






Ciclo While / WEnd


Esta estructura se representa algoritmicamente de una forma similar a la anterior, la diferencia radica en que sus características son:

  • Es para un número no conocido de iteraciones o repeticiones.
  • Antes de ejecutar la acción asociada en el cuerpo del bucle, primero evalúa una condición implantada en una expresión relacional y/o lógica, que solo puede ser evaluada a falso o verdadero.
  • Se puede forzar a trabajar con un número conocido de iteraciones, con contadores de tipo entero o diferente de entero(reales).

Cuando un cálculo requiere realizarse repetidamente pero no hay un número específico de repeticiones, esta estructura es muy útil.



Ciclo Do / Loop / Until



Esta estructura es similar a la anterior, pero muy diferente a la primera, dado que sus caractreristicas son las siguientes:

  • Igual que While, es para un número no conocido de iteraciones.
  • A diferncia de For y While que primero prueban condición antes de ejecutar la acción; esta estructura primero ejecuta una vez la acción antes de probar la condición, esto es, que la acción se ejecuta al menos una vez, independientemente del resultado de la evaluación.
  • Al igual que el While, también se puede forzar a trabajar un número conocido de iteraciones con contadores de tipo entero y diferente de entero.

jueves, 6 de mayo de 2010

Ejercicios Propuestos para Condicionales

El alumno Resolverá los siguientes ejercicios en Lenguaje Algorítmico para refrendar lo que entendió sobre los temas vistos al momento.
  • Crear un Algoritmo que calcule área y perímetro de un rectángulo de cualquier medida; que muestre resultados.
  • Retomando el planteamiento anterior, crear el algoritmo que calcule área o perímetro de un rectángulo de cualquier medida, mostrando resultado.
  • Crear un algoritmo que determine, apartir de las coordenadas de un punto 1 expresadas como X1 y Y1, hasta las coordenadas de un punto 2, dadas por x2 y2; la distancia entre los dos puntos.
  • Crear un algoritmo que dados un valor que representa una cantidad de dinero, otro que representa un porcentaje de esa cantidad, determine la cantidad de dinero que resulta de aplicar el porcentaje al total de dinero.
  • Crear un algoritmo que resuelva: dados un valor que representa una compra de mercancía en toneladas, un valor en pesos de la tonelada y una cantidad en kilogramos; que indique el precio a pagar por los kilogramos que adquiere un cliente si pagará la proporción del precio por tonelada.
  • Crear un algoritmo que recibe un valor que representa el sueldo base de un trabajador, un valor que representa las horas trabajadas extra y el precio de la hora extra trabajada; indique cuanto se le pagará a un trabajador de acuerdo a lo trabajado.
  • Suponga el ejercicio anterior, el trabajador que acumula en el periodo más de 10 horas extra, además recibirá un bono de 4% del total.
  • Suponga el ejercicio anterior, si el trabajador acumula menos de 10 horas extra, no recibe el bono de 4%, si acumula de 10 a 20 horas extra, recibe bono de 4% y si acumula más de 20 horas, el bono será de 12%. Crear el algoritmo que lo resuelva.

lunes, 3 de mayo de 2010

Estructura Selectiva o Condicional

Estructura If


La Estructura Selectiva Simple If funciona como una acción que se ejecuta en el código siempre y cuando una condición expresada como una relación evaluada lógicamente, con un valor de verdadero, sea llevada a cabo. En otras palabras, la expresión que se evalúa para determinar si la acción asociada se ejecuta es verdadera, la acción se realiza; de lo contrario no se ejecuta nada. Como si no hubiese existido. En realidad trabaja como un evaluador de "si y solo si".



Esta estructura es útil en aplicaciones a la ingeniería, dado que hay muchas situaciones propicias para la aplicación.






La estructura selectiva If/Else funciona como dos alternativas en bifurcación, donde al ser evaluada la condición expresada como una relación lógica, evaluada como verdadera o falsa. Si el resultado de la evaluación es verdadero, se ejecuta el brazo asociado a el si o verdadero y su acción asociada; de ser falso el resultado de la evaluación, se ejecuta el brazo y la acción asociada a el falso.


Se tiene en este caso, ala característica que alguno de los brazos será ejecutado. Uno de ellos, pero solo uno será seleccionado.

Actúa como un "si y si no"






La estructura Selectiva If / Else If / Else a diferencia de los anteriores, posee una cantidad mayor de dos opciones, esta estructura es utilizada más comunmente en "Menús" de opciones, cuando se cuenta con más de dos alternativas de solución. Entonces evalúa una condición que de ser verdadera ejecuta la acción o las acciones asociadas a ese brazo, de lo contrario vuelve a evaluar una segunda expresión, si la anterior no fue verdadera y esta segunda sí, se ejecuta el segundo brazo; pero de no ser cierta la primera ni la segunda, por defecto se aplica la tercera opción y la acción asociada.




Ejemplos:


Ejemplo de If simple.

Planteamiento: Según el planteamiento anterior, suponga las tres calificaciones parciales de un alumno dadas como dato; El departamento de Tutorías de la ESIA Z. requiere saber si el alumno esta en situación de riesgo, pero solo si está en situación de reprobación dado que los alumnos regulares poco necesitan el apoyo de un tutor.

Crear un programa que reciba las calificaciones de un alumno cualquiera, que determine el promedio y cuando el alumno esté en situación de riesgo de reprobación y que muestre si está en riesgo.

Algoritmo:

Inicio

Lee primera_calificacion
Lee segunda_calificacion
lee tercer_calificacion

promedio < --- (primera_calificacion + segunda_calificacion+ tercer_calificacion)/3

Si promedio es menor de 6 entonces

Escribe " Alumno en riesgo"

Fin


Comentarios: En este caso, solamente se encuentra un flujo alternativo, mismo que se realiza en caso de que una condición sea evaluada con valor verdadero; si esto no pasa, entonces ninguna acción será realizada. Esto es "Si y solo si".


Ejemplo de If / Else
Planteamiento:

Retomando el ejemplo anterior; ahora quien requiere la información es el profesor, el cual requiere de saber exactamente la situación escolar del alumno, a partir de las tres calificaciones. Ahora se pide crear un programa que reciba las calificaciones y que determine exactamente la situación escolar del alumno.

Algoritmo:

Inicio
Lee primera_calificacion
Lee segunda_calificacion
Lee tercer_calificacion

promedio <--- (primera_calificacion + segunda_calificacion + tercer_calificacion)/3

Si promedio Mayor que 6 entonces
Escribe "Alumno Aprobado"

Si no
Escribe "Alumno Reprobado

Fin



Comentarios: Para este caso, las alternativas de solución son dos: aprobado o reprobado; por ello la solución se separa en una bifurcación. En este caso "Una de las dos alternativas, una de las dos, pero solo una de ellas" será ejecutada.



Ejemplo de If/ElseIf/Else

Planteamiento: Suponga el ejercicio anterior, donde ahora el profesor quiere agrupar al alumno en una de tres situaciones
  • Situación mala (Reprobatoria con menos de 6)

  • Regular (Con promedio de entre 6 y 8)

  • Excelente (9 y 10)
Algoritmo:


Lee primera_calificacion

Lee Segunda_calificacion
Lee tercer_calificacion


Promedio <----- (primera_calificacion + segunda_calificacion+tercer_calificacion)/3

Si promedio en menor de 6 entonces
Escribe "Situación mala"
Si no Si promedio es mayor o igual a 6 y menor o igual a 8 entonces

Escribe "Situación Regular"
Si no

Escribe "Excelente situación"


Fin

Comentarios: En este caso una alternativa por cada posible solución hacen que la estructura se divida en tantos brazos como soluciones.

Control de Flujo


Cuando consideramos a los elementos que constituyen un programa también debemos considerar a los empleados cuando los programas hacemos que realicen cálculos y acciones alternativas. por ejemplo: considerar cuando un programa no puede realizar lo solicitado; que tenga una alternativa lógica para que no tenga un final que "traba el equipo", cuando realiza un proceso en repetidas ocasiones, etc. Esto hace que los programas no sean "planos", que los programas parece que "piensan" por sí mismos tomando desiciones.

Las estructuras que realizan el control del flujo son principalmente:


  • Estructuras Condicionales o Selectivas
  1. Estructura Selectiva Simple If

  2. Estructura Selectiva Doble(bifurcación) If/Else

  3. Estructura Selectiva Múltiple If/ElseIf/Else


  • Estructuras Repetitivas, Ciclos o Bucles.
  1. Ciclo For

  2. Ciclo While / Wend

  3. Ciclo Do/Loop/Until

Elementos Constitutivos de un Programa

Variables. Según vimos en un apartado anterior, la lógica general de un programa es:

Entrada ----> Proceso ----> Salida o impresión

Entonces los programas para que presenten esa característica de generalidad, deben de realizar a datos diferentes en cada corrida; procesos iguales y entregar resultados lógicos o esperados.
Para que puedan darse valores diferentes cada vez, es necesario la interacción entre la computadora y el usuario; dado que la primera solicita los datos necesarios y el segundo debe introducirlos a través del teclado.
Para el usuario es un proceso simple; pero para el programador implica conocer un tanto de la teoría de las variables en la programación. Dado que un valor que es introducido en la computadora, debe tener un lugar específico dentro de ella donde debe colocarlo para no "perderlo".

Variable (Def.) Una variable es una posición de memoria, que se prepara asignandole un Nombre o Identificador y un tipo de dato. Misma que puede cambiar su contenido en cualquier momento del programa que se le indique.
Cuando se reseva debe tenerse cuidado de asociar correctamente el tamaño según el tipo de valores que vaya a contener(Tipo de Dato).

Identificadores.
Para representar los espacios de memoria que reservamos para guardar valores y que sean diferenciados unos de otros, debemos asignarles un nombre o, tecnicamente un identificador, por medio del cual en el código, haremos referencia por él y la referencia nos lleva a su contenido(valor).
Para crear identificadores o nombres válidos, existen algunas reglas como las siguientes:
  • No pueden empezar con un número.
  • Pueden comenzar con un _ (guión bajo)
  • No deben tener espacios intermedios
  • Se recomienda utilizar nombres no muy largos
  • Utilizar identificadores nemotécnicos(que el nombre refleje el valor contenido)
  • No utilizar palabras de uso reservado en el lenguaje
  • No utilizar símbolos y caracteres de uso especial.
Tipos de Datos.
Los datos en la programación pueden ser de diferentes tipos, no es lo mismo el nombre de una persona, una calle o un producto, el número de días que tiene la semana, el número de personas que estan siendo ocupadas en un trabajo, los litros de agua empleados en una obra, o las toneladas de varilla utilizada para una construcción. Por ello, en la memoria de la computadora se determina el tipo de acuerdo a los diferentes tipos, reservando espacios de memoria de tamaños diferentes de acuerdo al tipo de valor que se va a almacenar.

1 Datos de Caracteres o Alfanuméricos.

Dentro de estos encontramos a los diferentes caracteres que conforman un nombre, un solo caracter como la letra A o los números pero sin conservar la propiedad aditiva, solamente como un caracter. Este tipo de datos ocupan menos espacio en la memoria que los valores numéricos.

2 Datos Numéricos.

Los números también son diferentes entre sí, por ejemplo para marcar un grupo de personas, no podemos decir que asistieron por ejemplo 5.3 personas; este tipo de datos define valores enteros unicamente y ocupan menos espacio que los que manejan valores con decimales. En cambio, el tamaño de una calle puede exprersarse como 2.7 kilómetros, es un valor expresado en enteros con decimales y diferente a los enteros exclusivamente.

  • Enteros.

Como se expresó, puede representarse a un número de personas, a los dias de la semana, los meses del año, los pisos de un edifico, etc.

  • Reales a Simple Precisión

La necesidad de expresar cantidades con fracciones se resuelve con este tipo de datos, para expresar medidas de longitud, litros de agua, de gasolina, cantidades de dinero, etc.

  • Reales a Doble Precisión.

Cuando los valores con decimales son muy grandes o se requiere manejar una precisión en los decimales mayor, como lo requieren algunos cálculos matemáticos, se utilizan este tipo de datos.

3 Otros

Algunos otros tipos auxiliares son por ejemplo, los tipos de las fechas, de hora, tipos monetarios, los booleanos(de verdadero o falso) etc.


Constantes.
También se cuenta con valores Que pueden inicializarse desde el principio, indicando que el mismo no cambiará en el transcurso de la ejecución, o utilizar las constantes integradas en el lenguaje, o los valores directamente(constantes directas).

Operadores.
Operadores se definen como los símbolos que indican la manera como se van a manipular los datos( en variables o constantes). Entendiendo por manipular, a los procesos de cálculo que realizan los programas para resolver los problemas.

Expresiones.
Expresión entonces, son los conjuntos de operadores y operandos(variables y constantes) que realizan lops procesos del programa.
Ejemplos:
  • Planteamiento: Crear un programa que reciba dos números de tipo entero, encuentre y muestre la suma, la resta, la multiplicación y la división de los mismos.

Algoritmo:

Inicio.

Lee primer_valor

Lee segundo_valor

R1 <---- primer_valor + segundo_valor

R2<-----primer_valor - segundo_valor

R3<-----primer_valor * segundo valor

R4<-----primer_valor / segundo_valor

Escribe

R1, R2, R3,R4

Fin

Puede observarse que, el algoritmo representa paso a paso la solución, que tiene un inicio y un final lógico y que puede realizar los procesos con diferentes valores, los nombres utilizados son válidos según las reglas de construcción de identificadores.

  • Planteamiento: Crear un programa que dadas las tres calificaciones de un alumno, determine el promedio de las mismas.

Inicio

Lee primera_calificacion

Lee segunda_calificacion

Lee tercera_calificacion

promedio<----(primera_calificacion+ segunda_calificacion + tercera_calificacion) /3

Escribe

promedio

Fin

En este caso la expresión incluye las variables encerradas entre paréntesis, porque la ptrioridad de los operadores indica:
  • división
  • suma
  • suma
  • suma
Y debe decir:
  • suma
  • suma
  • suma
  • división

sábado, 1 de mayo de 2010

Tipos de Algoritmo

Como ya se ha visto, un algoritmo, es la representación de la solución paso a paso de un problema; esta representación sirve para no olvidar como lo hemos resuelto. Puede ser de diferentes tipos; entre los principales encontramos dos:



  • Escrita o Pseudocódigo. Como su nombre lo indica es, recordar la forma de solución paso a paso, escrito en un lenguaje propiamente humano, que la computadora no puede interpretar por si misma. Es mas bien, las anotaciones que el programador hace de cada uno de los pasos y que le servirán para poder llevarlas a un lenguaje de programación específico, sin omitir alguno de los pasos, pues para ello fueron escritas. Por ejemplo:

Algoritmo para encontrar un promedio de tres calificaciones de un alumno.



Inicio

leer primera_calificacion

leer segunda_calificacion

leer tercer_calificacion

suma <--- primera_calificacion + segunda_calificacion + tercera_calificacion

promedio <--- suma / 3

escribir promedio

fin

Como podemos observar, el pseudocódigo, parece ser un código, porque lo entiende muy fácilmente el que realiza el programa, pero en realidad no puede ser muy interpretado por una computadora. Sin embargo conserva los principios de finitud, pues tiene un inicio y fin, describe la solución en un número lógico de pasos y llega a un final y también; con diferentes valores, siempre llega a un resultado.

  • Grafico o Diagrama de Flujo. Otra forma de representar una solución a un problema, que dicho sea de paso, es la más frecuente utilizada por los programadores, es la de representarlo con símbolos, que aunque no son propios del lenguaje de programación, si son de uso unioversal.

los principales símbolos utilizados son:

  • Inicio y Fin
  • Dirección de Flujo
  • Lectura o Entrada de Datos
  • Salida o Impresión
  • Proceso