- Introducción
- La
programación de computadoras - Algoritmos
- Elementos
básicos en el diseño de
algoritmos - Estructuras
básicas de control lógico - Programación
estructurada - Bibliografía
Introducción
El eminente matemático Donald E. Knuth, expresa
en su famosa obra: El arte de programar computadoras, lo
siguiente:"El proceso de preparar programas para una
computadora digital tiene un atractivo especial, no sólo
porque puede ser recompensado económica y
científicamente, sino también porque puede ser una
experiencia estética como la poesía y la
música."; este trabajo tiene como objetivo presentar
las técnicas básicas de programación para
los que se inician en esta arte.
Tradicionalmente la mayoría de los cursos de
programación para principiantes se centran en la
enseñanza de un lenguaje de programación, dejando
en segundo plano la enseñanza de la lógica de la
programación; actuando de esta forma el estudiante es
llevado e a razonar en función de un lenguaje de
programación específico y no en la forma
lógica en que deba resolverse un problema utilizando la
computadora. Es por esta razón que en este texto se inicia
con el análisis de problemas que pueden programarse para
que la computadora los resuelva y se posterga la enseñanza
del lenguaje hasta que el estudiante haya adquirido solvencia en
el razonamiento lógico, la ventaja de este enfoque radica
en que una vez determinada la secuencia de instrucciones que
llevan a la resolución de un problema, es decir, una vez
que se ha diseñado el algoritmo, estas instrucciones
fácilmente pueden codificarse en cualquier lenguaje de
programación. No obstante, se utiliza en la medida de lo
posible la notación utilizada en los lenguajes de
programación, para facilitar las pruebas de los algoritmos
en la computadora
La
programación de computadoras
Programar una computadora consiste en escribir las
instrucciones para que la computadora realice una tarea; se suele
decir que la computadora resuelve problemas, pero lo correcto es
decir que la computadora ejecuta las instrucciones que resuelven
el problema, en este sentido la tarea consiste en ejecutar las
instrucciones. Al conjunto de instrucciones específicas
para que la computadora realice la tarea se le llama
programa.
La computadora, normalmente viene preparada para ser
utilizada, es decir viene con todos los programas necesarios para
realizar las tareas que se desean realizar con ella, por ejemplo,
un conjunto de programas para que con la ayuda de la computadora
se pueda llevar la contabilidad de una empresa; un editor de
texto para escribir un libro, o un programa para jugar a las
cartas con la computadora, etc. Estos programas fueron
desarrollados por personas, denominadas programadores de
computadoras. Los programadores de computadoras deben adquirir la
habilidad de poder escribir instrucciones para una maquina que
simplemente las ejecuta como un autómata, sin ninguna
actividad pensante, pero que al ejecutar las instrucciones
realiza la tarea para la cual fue programada.
Para ilustrar la forma en que se ejecuta un programa
almacenado en la computadora se presenta el modelo conceptual de
computadora conocido como la Máquina de Von Newman, este
modelo fue diseñado por el matemático
húngaro John Von Newman. Este modelo es la base de la
arquitectura de la mayoría de las computadoras
actuales.
Conceptualmente, la computadora esta integrada por
cuatro componentes que interactúan entre sí, estas
son la memoria, el procesador, la unidad de control y la unidad
de entrada/salida.
La memoria es el dispositivo donde se almacena el
programa, y se le denomina la memoria principal, además
del programa en ella también se almacena los
datos.
El procesador es el dispositivo que ejecuta las
instrucciones, todo procesador es fabricado con un conjunto
básico de instrucciones que puede ejecutar, como por
ejemplo: las operaciones aritméticas, comparaciones,
decidir entre ejecutar o no una instrucción de acuerdo al
resultado de una condición, tomar datos de la memoria o
colocar datos en la memoria, etc. Este conjunto de instrucciones
puede variar de acuerdo al fabricante.
La unidad de control recupera una a una las
instrucciones del programa almacenado en la memoria y las
transfiere al procesador a fin de que éste realice la
operación especificada, además de las instrucciones
se le proporcionan los datos, conocidos como datos de entrada,
éstos se procesan de acuerdo a las instrucciones
indicadas, obteniendo los resultados, que se conocen como datos
de salida.
El programa y los datos son transferidos a la memoria
principal a través de un dispositivo de entrada, como por
ejemplo el teclado, y el resultado del proceso se muestra a
través de un dispositivo de salida, como por ejemplo
impresos, utilizando una impresora, desplegados en la pantalla
del monitor o estos resultados pueden almacenarse en otros
dispositivos de memoria, denominados memoria secundaria, tales
como un disco duro, un disquete o una memoria
portátil.
El programa debe estar escrito o codificado en un
lenguaje especial, denominado lenguaje de programación,
algunos ejemplos de lenguajes de programación son: PASCAL,
C, FORTRAN, DELPHI, Visual Basic, etc.
Algoritmos
Los algoritmos son el fundamento de la
programación de computadoras, para que la computadora
pueda ejecutar una tarea es necesario que primero se
diseñe el algoritmo correspondiente, es decir, especificar
las operaciones necesarias para transformar los datos de entrada
en datos de salida. Una vez diseñado y probado el
algoritmo, se trasforma en el programa correspondiente. El
programa esta compuesto por el algoritmo, la
especificación de los datos y las instrucciones que
permiten la comunicación entre los usuarios del programa y
la máquina.
Definición de algoritmo: Un algoritmo es
un conjunto finito de instrucciones cuyo fin es realizar una
tarea; este conjunto finito de instrucciones debe también
ser preciso y determinístico.
Preciso: el algoritmo debe ejecutar la tarea
para el cual fue diseñado.Determinístico: significa que el
resultado debe depender estrictamente de los datos
suministrados, siempre que el algoritmo se ejecute con un
mismo conjunto de datos de entrada, el resultado debe ser
siempre el mismo.
Son ejemplos de algoritmos los métodos utilizados
en aritmética para sumar, restar, multiplicar y dividir
cantidades; la aplicación de la fórmula
cuadrática para encontrar las raíces de un
polinomio de segundo grado En todos ellos se cumplen las tres
características anteriores.
Un algoritmo eficiente y confiable es el producto de un
análisis exhaustivo del problema, para determinar la mejor
alternativa de solución.
Elementos
básicos en el diseño de
algoritmos
HERRAMIENTAS PARA EL DISEÑO DE
ALGORITMOS
Las dos herramientas más utilizadas para
diseñar algoritmos son el Pseudocódigo y el
Diagrama de flujo.
1. Pseudocódigo
Es un lenguaje simplificado para describir un algoritmo
utilizando una mezcla de frases en lenguaje común, y
palabras claves que indican el inicio y el fin del algoritmo y
las instrucciones específicas a realizar.
Por ejemplo, el siguiente pseudocódigo
corresponde al algoritmo para calcular el área del
rectángulo: el algoritmo calcula el área (a) de un
rectángulo cualquiera, si se le suministra la longitud de
de la base (b) y la longitud de la altura (h).
Las palabras subrayadas se llaman palabras reservadas,
se deben utilizar sangrías que facilitan la lectura del
algoritmo Las instrucciones en pseudocódigo son
fáciles de codificar en un lenguaje de
programación.
2. Diagrama de flujo
El diagrama de flujo es la representación
gráfica de un algoritmo; para ello se utiliza un conjunto
de símbolos estándares mundialmente utilizados y
desarrollados por organizaciones tales como ANSI (American
National Institute) e ISO (International Standard Organization
para la elaboración de diagramas de flujo;
En el diagrama cada símbolo representa una
acción en concreto; y cada instrucción del
algoritmo se visualiza dentro del símbolo adecuado. Los
símbolos se conectan con flechas para indicar el orden en
que se ejecutan las instrucciones.
Por ejemplo, el siguiente diagrama de flujo corresponde
al algoritmo para calcular el área del
rectángulo
El ovalo rotulado con la palabra Inicio indica el
comienzo del algoritmo, el paralelogramo es el símbolo de
entrada de datos e indica que se lee el valor de la base (b) y el
valor de la altura (h), el rectángulo es el símbolo
de proceso e indica que se realiza un proceso sobre los datos de
entrada para calcular el área (a) multiplicando la base
por la altura, (utilizaremos el * como operador de
multiplicación), el siguiente es el símbolo de
salida y representa un documento e indica que se muestra el valor
del área obtenido, en cualquier dispositivo de salida,
finalmente el ovalo rotulado con la palabra Fin indica que se ha
llegado al fin del algoritmo.
Los símbolos que se utilizaran para dibujar los
diagramas de flujo son los siguientes:
Reglas para la construcción de diagramas de
flujo
1. Todo diagrama de flujo debe tener un inicio
y un fin.2. Las líneas de flujo nunca deben
cruzarse, para evitarlo deben utilizarse el símbolo
conector.3. Las líneas de flujo deben terminar
siempre en un símbolo.4. No puede llegar más de una
línea de flujo a un símbolo.5. Todos los símbolos en un diagrama
deben estar conectados mediante una línea de flujo;
todo símbolo debe tener una línea de flujo
entrando y otra saliendo salvo el símbolo que indica
inicio o fin del diagrama.6. Como regla general el flujo del proceso debe
mostrarse de izquierda a derecha y de arriba
abajo.
Se recomienda mantener uniforme el tamaño de los
símbolos, por lo que el texto que se escribe dentro no
debe ser muy extenso, recuérdese que el propio
símbolo indica la operación a realizar. La forma en
que se capturan los datos de entrada o se muestran los datos de
salida se detallarán al codificar el algoritmo en el
lenguaje de programación. Esto mismo se recomienda para la
representación del algoritmo en
pseudocódigo.
DECLARACION DE LOS DATOS
Como ya se dijo los datos a procesar y los datos
resultantes del proceso se almacenan en la memoria principal de
la computadora, también conocida como memoria RAM (Random
Access Memory), y también se destinan localidades de
memoria cuando se necesita almacenar resultados de
cálculos intermedios. Para poder localizar los datos en la
memoria se les asignan nombres; que en el ambiente de la
programación se conocen como identificadores de datos.
Nombraremos los datos siguiendo las reglas para definir
identificadores especificadas en la mayoría de los
lenguajes de programación:
Se utilizan secuencias de caracteres formadas por
caracteres alfabéticos y los dígitos
decimales.El primer elemento de la secuencia debe ser un
carácter alfabético.No se utilizan signos de
acentuaciónNo se utilizan espacios, si se necesita separador
debe utilizarse el carácter de subrayado (_) o
guión bajo.No se permite el uso de las palabras reservadas o
palabras claves
Se recomiendan nombres cortos y nemotécnicos (su
propio nombre indica lo que representan).
Por ejemplo:
1) Son identificadores válidos los
siguientes:
longitud, altura, dato1, dato2, Coeficiente_a,
numero_menor, EDAD
2) No son identificadores válidos los
siguientes:
ºC , porque el carácter º no es un
carácter permitido
1_dato, porque comienza con un dígito
numero menor, porque tiene un espacio en blanco como
separador
leer, escribir e inicio, porque son palabras
reservadas
INSTRUCCIONES
Un algoritmo normalmente incluye una gran cantidad de
instrucciones, también llamadas sentencias; inicialmente
se presentan las instrucciones de asignación, lectura y
escritura; definiendo cada una de ellas y mostrando su
representación en pseudocódigo, su correspondiente
símbolo en el diagrama de flujo y ejemplos.
Instrucción de
asignación
Esta instrucción asigna valor a un identificador,
cuando se ejecuta una instrucción de asignación se
almacena el valor asignado en la localidad de memoria reservada
para el identificador, este identificador también se
conoce con el nombre de variable y se caracteriza porque puede
tomar diferentes valores durante la ejecución del
algoritmo.
El formato de la instrucción de asignación
es el siguiente:
Donde variable es un identificador válido y
expresión puede estar formada por un valor, por
un conjunto de valores y operadores o por una función En
el espacio de memoria asignado a la variable se almacena el valor
resultante de la expresión.
Una asignación tiene tres partes, la variable, el
signo de asignación = y la expresión cuyo valor se
asigna a la variable. La variable siempre va a la izquierda del
símbolo =, mientras que la expresión siempre
estará a la derecha.
Instrucción Leer
Se define la instrucción Leer para indicar que se
debe enviar información desde un dispositivo de entrada de
datos, como el teclado, hacia la memoria En la memoria los datos
serán ubicados a través de su nombre o
identificador asignado.
El formato de esta instrucción es el
siguiente:
Los símbolos < > no se incluyen en la
codificación, lo que indican es que el programador debe
definir lo que se le pide, en este caso una lista de
variables.
Instrucción Escribir
Se define la instrucción Escribir para indicar
que se va a enviar información desde la memoria hacia un
dispositivo de salida de datos, como la impresora o la pantalla
del monitor.
El formato de esta instrucción es el
siguiente:
Una constante puede ser un número cualquiera o
una secuencia de caracteres, por ejemplo, el numero 15 o la
secuencia "Error". Si la constante es una secuencia de caracteres
se escribirá entre apóstrofos, para indicar que lo
que se escribe es la secuencia. Por ejemplo
Escribir "Error"
Escribir 3.1416
Generalmente dentro del símbolo solo se
podrán escribir listas cortas, dado que el espacio es
limitado y el tamaño de los símbolos en un diagrama
de flujo debe ser uniforme; para solventar este inconveniente
deben utilizarse varios símbolos de salida. En el caso de
formulas muy largas, se puede hacer referencia a su numero dentro
del símbolo.
METODOLOGIA A SEGUIR EN EL DISEÑO DE
ALGORITMOS
El procedimiento a seguir para diseñar algoritmos
se presenta a continuación:
Entender el problema
Para determinar la secuencia de instrucciones que deben
constituir el algoritmo, es importante entender el problema que
se pretende resolver, para asegurarse que entiende el problema el
programador debe resolverlo con papel, lápiz grafito y
borrador procurando hacer varios ejercicios de aplicación,
generalmente se encuentran diferentes formas de resolver el
problema, por lo que se debe seleccionar la mejor alternativa de
solución.
Declaración de datos
Una vez seleccionada la mejor alternativa debe hacerse
la declaración de datos, para ello los datos se
clasificarán de la siguiente manera:
Datos de Entrada: Los datos que se
suministranDatos de Salida: los datos o resultados que se
esperanDatos de trabajo: estos son posiciones de memoria
donde se almacenaran resultados de cálculos
intermedios, necesarios para obtener los datos de
salida
Se debe asignar nombre a los datos de acuerdo a las
reglas para formar identificadores. Al hacer la
declaración de los datos también debe especificarse
el tipo de dato que va a almacenarse en la posición de
memoria especificada, los tipos de datos son: numérico, un
carácter, una cadena de caracteres o un valor
lógico (verdadero o falso)
Especificar las formulas a utilizar
Las fórmulas deben escribirse utilizando los
nombres asignados a los datos.
Diseño del algoritmo.
Se debe representar la alternativa de solución
seleccionada mediante un algoritmo, el cual puede desarrollarse
utilizando el pseudocódigo o el diagrama de flujo a
preferencia del programador; luego se verifica si el algoritmo
cumple con las características de un algoritmo. Esta
verificación se conoce como prueba de
escritorio.
Prueba de escritorio: Se debe ejecutar el
algoritmo con diferentes datos de entrada para verificar si se
obtienen los datos de salida esperados, en caso contrario se
procede a hacer las modificaciones necesarias al algoritmo. Se
recomienda verificar los resultados obtenidos en los ejercicios
realizados en la etapa de análisis del problema. Los datos
de prueba deben escogerse de modo a someter al algoritmo a todas
las posibles situaciones que puedan darse.
El diseño del algoritmo esta listo si la prueba
de escritorio muestra que éste satisface las
características de un algoritmo; si la prueba no es
satisfactoria se revisa el pseudocódigo o el diagrama de
flujo y se procede de esta manera hasta obtener los resultados
esperados. La siguientes etapas son la codificación del
algoritmo en el lenguaje de programación seleccionado y su
prueba en la computadora.
A continuación utilizamos esta metodología
en el diseño de un algoritmo:
Problema 1: Diseñar un algoritmo para convertir
una temperatura dada en grados Fahrenheit a la correspondiente
temperatura en grados Centígrados.
Entender el problema
El agua se congela a 0º Centígrados y hierve
a 100º Centígrados. El agua se congela a 32º
Fahrenheit y hierve a 212º Fahrenheit. Lo que indica una
diferencia de 180º. Por lo tanto cada grado en la escala
Fahrenheit es igual a 100/180 o 5/9 grados en la escala
Celsius.
Para convertir grados Fahrenheit a grados Celsius se
resta 32º a los grados Fahrenheit y el resultado se
multiplica por 5/9
Se selecciona esta alternativa de solución y se
procede con el siguiente paso.
Declaración de los datos
Prueba de escritorio
En el primer caso 98.6º Fahrenheit equivalen a
37º Centígrados.
Cualquier tarea que se pretenda resolver utilizando la
computadora debe expresarse como un algoritmo. Para
diseñar algoritmos que sean entendibles y fáciles
de modificar por las personas interesadas, se utiliza un conjunto
de estructuras o construcciones lógicas restringidas, que
son la secuencial, la de decisión y la iterativa. La
estructura secuencial se utiliza cuando las instrucciones del
algoritmo deben ejecutase en la secuencia en que se presentan, de
la primera a la última; La estructura de decisión
se utiliza cuando existen situaciones en que se debe escoger
entre ejecutar una instrucción u otra, dependiendo del
cumplimiento de una condición y la estructura iterativa se
utiliza cuando es necesario repetir varias veces una
instrucción o un conjunto de instrucciones para que la
tarea sea ejecutada.
En la siguiente sección se estudiaran cada una de
estas construcciones lógicas, también conocidas
como estructuras básicas de control
lógico
Estructuras
básicas de control lógico
ESTRUCTURA SECUENCIAL
Se trata de la construcción donde las
instrucciones se deben ejecutar una después de la otra, en
el mismo orden en que aparecen en el algoritmo, sin dejar de
ejecutar ninguna de ellas.
Problema 2: Diseñe un algoritmo para calcular el
área de un círculo cualquiera y la longitud de su
circunferencia.
Entender el problema
Ejercicio 1: Consideremos un círculo de 6
centímetros de radio
Área del circulo = 3.1416 * 6*6=
113.0976
Longitud de la circunferencia = 2*3.1415 * 6 =
37.6992
Declaración de los datos:
Dato de entrada r: radio del círculo,
numérico
Datos de salida a: área del círculo,
numérico
l: Longitud de la circunferencia,
numérico
Prueba de escritorio
Problemas propuestos
1) Calcular el porcentaje de hombres y mujeres
que hay en un grupo de personas.2) Calcular el salario que recibe por mes un
empleado que trabaja por horas, reteniéndole el 7 por
ciento por concepto de seguro de trabajo.3) Dado el precio de un artículo y la
cantidad de artículos comprados, calcular el total a
pagar considerando que se paga el 12% por concepto de
impuesto sobre ventas (ISV).4) Calcular la nota final de un estudiante del
curso de computación I, para ello se debe tomar en
cuenta lo siguiente: que se realizaron cuatro exámenes
valorados en 80% cada uno y cuatro prácticas de
laboratorio valoradas en 20 puntos cada una.5) Dados dos puntos en el plano cartesiano,
calcular la longitud del segmento determinado por
ellos.
ESTRUCTURA DE DECISIÓN
Es una situación típica en la
resolución de problemas, que se tenga que decidir entre
realizar una instrucción u otra dependiendo del
cumplimiento de una condición; por ejemplo: Para calcular
c=b/a primero hay que verificar que a sea
diferente de cero, ya que la operación se puede realizar
únicamente si a es diferente de cero Para
representar esta situación en el algoritmo se utiliza la
estructura condicional también conocida como estructura de
decisión. Esta estructura se construye de modo a que se
ejecuten o se omitan algunas instrucciones dependiendo del
cumplimiento de una condición; el resultado de evaluar la
condición puede tomar un valor lógico verdadero o
falso (V ó F).
La condición puede ser una expresión
relacional (por ejemplo a>o) o una expresión
lógica (por ejemplo a>b y b>c), que se construyen
utilizando operadores relacionales (>, <, =, =, =, ?) y
operadores lógicos (y, o, negación)
Existen tres tipos de decisión: decisión
simple, la decisión doble y la decisión
múltiple
Decisión simple
Una decisión es simple, cuando sólo se
tiene un curso de acción para el caso que el resultado de
evaluar la condición sea verdadero; es decir que si la
condición es verdadera se debe de ejecutar la
instrucción o el conjunto de instrucciones que se indique,
y si la condición es falsa se omite la ejecución de
dicha instrucción o conjunto de instrucciones.
El formato general de esta estructura es la
siguiente:
Ejemplo: Observe el siguiente segmento de
pseudocódigo y su diagrama de flujo
Problema 1. Dado el precio de un artículo y la
cantidad de artículos comprados, calcular el total a
pagar, considerando que para compras superiores a 500 lempiras se
dará un descuento del 10% y que el comprador debe pagar el
12% por concepto de impuesto sobre ventas (ISV)
Entender el problema
Ejercicio 1: Se compra una docena de camisas a 130
lempiras cada una.
El valor de la compra es 12 *130=1560, como la compra es
superior a 500 lempiras, tiene derecho al descuento. El 10% es
igual a 1560*0.10= 156 lempiras, el valor de la compra queda en
1560-156=1404 lempiras. El impuesto sobre ventas es igual a
1404*0.12=168.48 y por tanto el total a pagar es igual a
1404+168.48=1572.48
Ejercicio 2: Suponga que se compran 3 camisetas a 100
lempiras cada una.
El valor de la compra es 3*100=300 lempiras, como la
compra es inferior a 500 lempiras no se tiene derecho al
descuento, el impuesto a pagar es de 36 lempiras y el total a
pagar es 336 lempiras.
Prueba de escritorio
Decisión doble
Una decisión es doble cuando se tiene un curso de
acción para el caso que el resultado de evaluar la
condición sea verdadero y otro para cuando sea
falso.
El formato general de esta estructura es la
siguiente:
Ejemplo: Observe el siguiente segmento de
pseudocódigo:
El diagrama correspondiente al ejemplo anterior es el
siguiente:
Entender el problema
Declaración de los datos:
Datos de entrada x1, y1, x2 y y2 las coordenadas de los
dos puntos, numéricos
Datos de salida m la pendiente,
numérica
b el intercepto con el eje , numérico y
ó
msg: "Pendiente no definida", secuencia de
caracteres
Prueba de escritorio
Problema 2. Determinar cual es el mayor de tres
números enteros.
Entender el problema
Dados tres números a, b y c para determinar el
mayor de los tres se debe comparar su magnitud, para auxiliarse
se construye el siguiente esquema
Declaración de los datos:
Dato de entrada a, b y c tres números
Datos de salida
mayor : el numero mayor
Pseudocódigo y Diagrama de
flujo
Prueba de escritorio
Como podemos observar, en el problema anterior se
presenta el caso en que es necesario verificar varias condiciones
para encontrar el número mayor, este tipo de
construcciones se conoce como Decisiones anidadas. Las
decisiones anidadas pueden construirse utilizando decisiones
simples o dobles de acuerdo a la naturaleza del
problema.
Decisión múltiple
Es una extensión de la decisión doble, en
que se debe seleccionar entre varios valores que puede tomar una
variable, esto se prueba por decisiones sucesivas hasta que
ocurre una condición verdadera o hasta que se termina de
verificar todos los posibles valores, luego se ejecutan las
instrucciones correspondientes a la situación
dada.
Problema 1. Se desea efectuar operaciones
aritméticas de acuerdo al operador indicado, el operador
puede ser de suma, resta, división o
multiplicación, o sea el operador puede tomar cuatro
valores.
Declaración de los datos:
Datos de entrada op1: primer operando,
numérico
op2: segundo operando, numérico
op: operador, carácter
Dato de salida r: resultado de la operación,
numérico
Fórmulas:
Pseudocódigo
Instrucción CASO
La decisión múltiple también se
puede representar en pseudocódigo utilizando una
estructura incluida en la mayoría de los lenguajes de
programación; la estructura CASO, en la que se determina
el valor de una variable llamada selectora y la que se compara
con un valor constante que determina el curso de acción
entre varias posibilidades.
El formato general de esta estructura es la
siguiente:
La instrucción Sino es opcional:
Si ninguna constante coincide con el contenido de la
variable selectora se continúa ejecutando la
instrucción que esta después de la palabra
reservada Fin caso
El pseudocódigo correspondiente al problema
anterior es el siguiente:
Diagrama de flujo
Problema 2.
En una empresa le aumentarán el salario a los
empleados de acuerdo a la escala salarial en que se encuentren:
5%, 10% y 15% a los empleados en las escalas 1, 2 y 3
respectivamente y 20% para cualquier otra escala. Diseñe
el algoritmo para calcular el nuevo salario del empleado de
acuerdo a su escala salarial.
Entender el problema
Ejercicio 1. Juan Pablo Morales, esta en la escala 3 y
tiene un salario actual de 12,000 lempiras. De acuerdo a la
escala salarial le corresponde el 15% de aumento, el aumento es
igual a 1800 lempiras y el nuevo salario es de 13,800
lempiras.
Ejercicio 2. Carlos Santos esta en la escala 1 y tiene
un salario actual de 5,000 lempiras. De acuerdo a la escala
salarial le corresponde el 5% de aumento, el aumento es igual a
250 lempiras y el nuevo salario es de 5250 lempiras.
Ejercicio 3. María Castro esta en la escala 4 y
tiene un salario actual de 3,000 lempiras. De acuerdo a la escala
salarial le corresponde el 20% de aumento, el aumento es igual a
600 lempiras y el nuevo salario es de 3600 lempiras.
Declaración de los datos:
Datos de entrada sa: salario actual
es: escala salarial
Datos de trabajo va: valor del aumento
Pa: porcentaje de aumento
Datos de salida ns: nuevo salario
Tipo: todos numéricos
Fórmulas: va=sa*pa
ns=sa+va
Nº de caso | Sa | es | pa | va | ns | |||
1 | 12000 | 3 | 0.15 | 1800 | 13800 | |||
2 | 5000 | 1 | 0.05 | 250 | 5250 | |||
3 | 3000 | 4 | 0.20 | 600 | 3600 |
SALIDA |
13,800.00 |
5,250.00 |
3,600.00 |
Utilizando Caso
Problemas propuestos
1) Dada la suma de n números, calcular
la media aritmética2) Un profesor incentivará a los alumnos
que obtengan promedio final mayor que 98%,
asignándoles una nota final de 100%. Si se realizaron
tres exámenes valorados en 80% y un acumulativo
valorado en 20% , calcule la nota final obtenida por un
alumno3) Dados tres números positivos
a, b y c que denotan las
longitudes de tres segmentos, determinar si con ellos se
forma un triángulo. Según un teorema de
Geometría se deben cumplir las tres desigualdades
siguientes: a+b>c, a+c>b y
b+c>a. Si se cumplen las tres condiciones
calcular el semiperímetro y el área del
triángulo por la fórmula de
Herón:
4) En un grupo se requiere clasificar a los
alumnos de la siguiente manera: si el alumno tiene nota final
mayor a 90 debe clasificarse como sobresaliente; si tiene
nota mayor de 80 hasta 90 como excelente; si la nota es mayor
de 70 hasta 80 como muy bueno, mayor de 59 hasta 70 como
bueno y si la nota es menor como reprobado. Dada la nota
final indicar el nivel obtenido por el alumno.5) Dada una fecha en el formato dd/mm/aaaa,
verificar si esta correcta. Ejemplo si se ingresa 12 3 2009,
corresponderá al 12 de marzo del 2009 y esta correcta,
pero si se ingresa 32 1 2009, hay error en el
día.6) Calcular el valor a pagar por la compra de
medicinas en una farmacia, sabiendo que el adulto mayor
(personas con edad mayor o igual a 60 años) tiene por
ley, derecho al 20 por ciento de descuento en las farmacias.
Además esta farmacia tiene la política de
otorgar un descuento del 15 por ciento si se trata de un
infante menor de 10 años y del 10 por ciento en
cualquier otro caso. Esta política de descuento se
aplica únicamente a la venta de medicinas.7) En Hotel Playa Dorada, se ha establecido la
siguiente tarifa diaria para la temporada de verano:
habitación sencilla 350 lempiras, habitación
doble 600 lempiras, el de una habitación sencilla de
lujo 1000 lempiras y el de una doble de lujo 2500 lempiras.
Si la estadía es de tres días o más se
da un descuento del 10 porciento y se tiene derecho al
desayuno. Calcular el total a pagar por un cliente que se
hospeda en dicho hotel, y considere el impuesto sobre ventas
que actualmente es del 12 porciento.
ESTRUCTURAS ITERATIVAS
Cuando en la ejecución de la tarea es necesario
que se ejecute varias veces el mismo grupo o bloque de
instrucciones, se utiliza la estructura iterativa, también
llamada repetitiva, En algunos casos el número de veces
que se repetirá el grupo de instrucciones se conoce con
anterioridad mientras que en otros casos depende de resultados de
cálculos o del valor que tome una variable durante la
ejecución del algoritmo.
Esta estructura también se conoce como ciclo y el
grupo o bloque de instrucciones que debe repetirse se denomina
cuerpo del ciclo. Se definen dos tipos de estructuras
repetitivas: el ciclo repita y el ciclo mientras
Ciclo Repita
En esta construcción lógica, primero se
ejecuta el bloque de instrucciones (I) y luego se evalúa
la condición (C), si el resultado es falso, se ejecuta de
nuevo el cuerpo del ciclo, se continúa de esta manera
hasta que el resultado de evaluar la condición (C) sea
verdadero.
En la representación en pseudocódigo,
cuando al ejecutarse el algoritmo se encuentra la palabra
reservada Repita, se indica que se ejecuta el cuerpo del ciclo;
al encontrarse la palabra reservada Hasta se evalúa la
condición, que puede tomar un valor lógico
verdadero o falso. Si el resultado es falso, se ejecuta
nuevamente el cuerpo del ciclo y si es verdadero termina la
repetición y se ejecuta la instrucción que
está después de la palabra reservada
Hasta.
En el diagrama de flujo se utiliza el símbolo de
subproceso para indicar al cuerpo del ciclo y la
repetición se indica con un flujo de retorno al cuerpo del
ciclo..
Es importante tener en cuenta que en el cuerpo del ciclo
debe incluirse la instrucción que haga eventualmente
verdadera la condición de salida, para que el ciclo no se
torne infinito.
Además obsérvese que el cuerpo del ciclo
se ejecuta al menos una vez, ya que la condición se
verifica al terminar de ejecutar el cuerpo del ciclo.
Ejemplo 1:
Problema 1: El algoritmo de la multiplicación de
dos números enteros p y q
Entender el problema
La solución de este problema es simple, se suma p
veces el valor de q o q veces el valor de p.
Ejercicio: si p=12 y q=3, se suma 3 veces el valor 12 y
se obtiene 36 ó de forma alternativa se suma 12 veces el
valor 3 y se obtiene el valor 36.
Declaración de los datos
Datos de entrada: p el primer factor
q el segundo factor
Dato de salida: r el resultado de la
multiplicación
Dato de trabajo: c el contador
Tipo: todos numéricos
Pseudocódigo y diagrama de
flujo
Prueba de escritorio
Problema 2. Tabular una función lineal cualquiera
en n puntos, comenzando en un valor inicial y con incrementos de
la unidad. Por ejemplos: si y=2x+1, tabulando la función
en 5 puntos comenzando en x=-2, se obtiene:
x | y |
-2 | -3 |
-1 | -1 |
0 | 1 |
1 | 3 |
2 | 5 |
El ejemplo es similar al problema 1 presentado en el
tema de la decisión doble
Declaración de los datos:
Datos de entrada: x1, y1, x2 y y2 las coordenadas de los
dos puntos
x: el valor inicial a tabular
n: el número de puntos a tabular;
numéricos
Datos de trabajo: m la pendiente
b el punto de intersección con el eje y;
numéricos
Datos de Salida: ms: "Pendiente no definida"
y: el valor de la función en el punto x
(numérico)
Formulas:
Pseudocódigo
Prueba de escritorio
Diagrama de flujo
Problema 3. Mostrar los números del 1 al
10
Entender el problema
Se inicializa una variable con el valor uno, se escribe
el contenido de la variable y se le suma el valor uno, se repite
la operación hasta que el valor de la variable sea mayor
que diez.
Declaración de los datos:
Página siguiente |