Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2. ALGORITMOS
DEFINICIÓN DE ALGORITMO
Formalmente definimos Algoritmo como “un conjunto de pasos, procedimientos o acciones que nos
permiten alcanzar un resultado o resolver un problema”.
ALGORITMOS COTIDIANOS
Supongamos que simplemente tenemos que abrir una puerta, lo hemos hecho tantas veces que
difícilmente nos ponemos a enumerar los pasos para alcanzar este objetivo, lo hacemos de manera
automática, lo mismo ocurre cuando queremos subirnos a un automóvil, cuando tenemos que lustrar
nuestros zapatos, cuando nos colocamos el calzado, cuando nos vestimos, cuando tenemos
desafortunadamente que cambiar la llanta de un automóvil o, simplemente cuando queremos tomar
un vaso de agua. Todas estas situaciones son ejemplos de Algoritmos Cotidianos.
Por ejemplo. Algoritmo para beber un vaso con agua tomando en cuenta que se tiene el agua en
una jarra y un vaso.
1. Inicio
2. Tomar el vaso
3. Tomar la jarra que contiene el agua
4. Verter el agua en el vaso
5. Dejar la jarra con el agua en el lugar desde donde se tomó
6. Beber el agua
7. Dejar el vaso en el lugar desde donde se tomó
8. Fin
proporcionándonos las cantidades exactas que deben utilizarse y también instrucciones detalladas
acerca del tiempo que debe guisarse. Por otra parte, si se incluyen nociones vagas tales como
“poner sal y pimienta al gusto” entonces no se podría llamar algoritmo.
Una aparente excepción a esta regla es que admitiremos como algoritmos unos procedimientos que
se efectúan elecciones aleatorias acerca de lo que hay que hacer en una situación dada.
Por ejemplo. Algoritmo para preparar una taza de café, tomando en cuenta que se tiene agua
caliente, una taza, cuchara, café, crema y azúcar.
1. Inicio
2. Verter agua caliente en la taza
3. Tomar con la cuchara el café
4. Poner el café en la taza
5. ¿Quieres azúcar?
Si 6 No 8
6. Tomar el azúcar con la cuchara
7. Poner el azúcar en la taza
8. ¿Quieres crema?
Si 9 No 11
9. Tomar la crema con la cuchara
10. Poner crema en la taza
11. Revolver
12. Fin
Nota: El algoritmo fue probado repetidas veces y siempre arrojó el mismo resultado.
HISTORIA
La palabra "algoritmo" deriva del nombre latinizado del gran matemático persa Mohamed Ibn
Moussa Al Kow Rizmi (Khowârizmî), el cual recibe el crédito de haber implementado reglas para
realizar sumas, restas, multiplicaciones y divisiones de números decimales paso a paso entre los
años 800 y 825 su obra Quitab Al Jabr Al Mugabala, donde se recogía el sistema de numeración
hindú y el concepto del cero. Fue Fibonacci, el que tradujo su obra al latín y la inició con las
palabras: Algoritmi dicit. Al pasarse el nombre al latín este se convirtió en Algoritsmus, el cual con un
pequeño paso es algoritmo. Euclides, el gran matemático griego (del siglo IV antes de Cristo) que
inventó un método para encontrar el máximo común divisor de dos números, se considera con Al
Kow Rizmi el otro gran padre de la ciencias de los algoritmos o algoritmia.
Los algoritmos son independientes del lenguaje de programación en que se expresan así como de la
computadora que los ejecuta. En cada problema el algoritmo se puede expresar en un lenguaje
diferente de programación y ejecutarse en una computadora distinta; sin embargo, el algoritmo será
siempre el mismo. Así, por ejemplo, en una analogía con la vida diaria, una receta de un plato de
cocina se puede expresar en español, inglés o francés, pero cualquiera que sea el lenguaje, los
pasos para la elaboración del plato se realizarán sin importar el cocinero.
En la ciencia de la computación y en la programación los algoritmos son más importantes que los
lenguajes de programación o las computadoras. Un lenguaje de programación es solo un medio para
expresar un algoritmo y una computadora es solo un procesador para ejecutarlo. Tanto el lenguaje
de programación como la computadora son los medios para obtener un fin: conseguir que el
algoritmo se ejecute y se efectúe el proceso correspondiente.
Dada la importancia del algoritmo en la ciencia de la computación, un aspecto muy importante será el
diseño del algoritmo.
Se debe especificar con qué datos se cuentan y cuales se pretenden generar para así determinar los
procesos que se deberán realizar.
MODELO DE SOLUCIÓN
Para poder resolver claramente el problema se puede hacer uso de un modelo de solución donde se
desglosan tres partes muy importantes en la solución del problema: DATOS DE ENTRADA,
PROCESO y DATOS DE SALIDA.
Ejercicios
DIAGRAMAS DE FLUJO
Representación gráfica para definición, análisis o solución de un problema en la que los símbolos se
utilizan para representar operaciones, datos, flujos, etc.
También se puede decir que es la representación detallada en forma gráfica de cómo deben
realizarse los pasos en la computadora para producir resultados. Esta representación gráfica se da
cuando varios símbolos (que indican diferentes procesos en la computadora), se relacionan entre sí
mediante líneas que indican el orden en que se deben ejecutar los procesos. Los símbolos utilizados
han sido normalizados por el instituto norteamericano de normalización (ANSI).
Esta es una de las técnicas de representación de algoritmos más antigua y a la vez más utilizada. Es
la representación gráfica para definición, análisis o solución de un problema en la que los símbolos
se utilizan para representar operaciones, datos, flujos, etc. Un diagrama de flujo utiliza símbolos
estándar mostrados a continuación:
Símbolos Función
Si
Decisión. Operaciones lógicas o de comparación entre datos y en función
del resultado de la misma determina cuál de los distintos caminos
No alternativos del programa se debe seguir.
Símbolos Función
Si
Ciclo For. Representa el ciclo de repetición For.
No
La siguiente figura muestra un ejemplo de un algoritmo en diagrama de flujo que tiene una entrada,
un proceso y una salida.
Inicio
Leer
Dato
Procesar
Dato
Dar Salida a
Dato
Fin
PSEUDOCÓDIGO
También se conoce como, mezcla de lenguaje de programación y español (o inglés o cualquier otro
idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un
programa. En esencia, el pseudocódigo se puede definir como un lenguaje de especificaciones de
algoritmos. Es la representación narrativa de los pasos que debe seguir un algoritmo para dar
solución a un problema determinado. El pseudocódigo utiliza palabras que indican el proceso a
realizar.
1.- Inicio
2.- Leer Dato
3.- Procesar Dato
4.- Dar Salida a Dato
5.- Fin
Efectivo: Generalmente, también se espera que un algoritmo sea efectivo. Esto significa que
todas las operaciones a ser realizadas en el algoritmo deben ser lo suficientemente básicas de
modo que puedan en principio ser llevadas a cabo en forma exacta y en un período de tiempo
finito por una persona usando lápiz y papel (corrida de escritorio o rutear).
Un algoritmo computacional comprende tres partes fundamentales para resolver cualquier problema:
datos de entrada, procesamiento de los datos y salida de resultados.
La siguiente figura muestra la estructura básica de las partes que describe un algoritmo al momento
de solucionar un problema.
Se puede hacer uso de cada una de estas partes en cualquier momento que se requiera para lograr
el objetivo de solucionar el problema computacional que se presente.
Datos de entrada.- Representa la operación o acción que permite el ingreso de los datos del
problema. El algoritmo tiene cero o más entradas, es decir cantidades que se entregan
inicialmente al algoritmo antes de su ejecución.
TIPOS DE DATOS
El primer objetivo de toda computadora es el manejo de la información o datos. Estos datos pueden
ser cifras de ventas de un supermercado o las calificaciones de una clase. Un dato es la expresión
general que describe los objetos con los cuales opera una computadora. La mayoría de las
computadoras pueden trabajar con varios tipos (modos) de datos. Los algoritmos y los programas
correspondientes trabajan sobre datos.
La acción de las instrucciones ejecutables de las computadoras se refleja en cambios en los valores
de las partidas de datos. Los datos de entrada se transforman por el algoritmo, después de las
etapas intermedias, en datos de salida.
DATOS NUMÉRICOS
El dato numérico es el conjunto de los valores numéricos. Estos pueden representarse en dos formas
distintas:
Enteros.- El tipo entero es un subconjunto finito de los números enteros. Los enteros son
números completos, no tienen componentes fraccionarios o decimales y pueden ser negativos o
positivos. Los números enteros máximos y mínimos de una computadora suelen ser valores
entre –32,768 y 32,767. Los números enteros fuera de este rango no se suelen representar como
enteros, sino como reales.
Reales.- Consiste en un subconjunto de los números reales. Los números reales siempre tienen
un punto decimal y pueden ser positivos o negativos. Un número real consta de un entero y una
parte decimal.
Nota: Cada lenguaje de programación tiene diferentes tipos para manejar datos numéricos y
alfanuméricos.
El tipo lógico, también denominado booleano, es aquel dato que solo puede tomar uno de dos
valores: cierto o verdadero (true) y falso (false). Este tipo de datos se utiliza para representar las
alternativas (si/no) a determinadas condiciones. Por ejemplo, cuando se pide si un valor entero es
par, la respuesta será verdadera o falsa, según sea par o impar.
OPERADORES Y OPERANDOS.
Los operadores son elementos que se relacionan de forma diferente, los valores de una o más
variables y/o constantes, es decir; los operadores nos permiten manipular valores.
OPERADORES ARITMÉTICOS
Los operadores aritméticos permiten la realización de operaciones matemáticas con los valores
(variables y constantes). Los operadores aritméticos pueden ser utilizados con tipos de datos enteros
o reales.
Operador Función
^ Exponente
* Multiplicación
/ División
+ Suma
- Resta
OPERADORES RELACIONALES
Se utilizan para establecer una relación entre dos valores, compara estos valores entre sí; y esta
comparación produce un resultado de certeza o falsedad (verdadero o falso).
Los operadores relacionales comparan valores del mismo tipo (numéricos o cadenas) y tienen el
mismo nivel de prioridad en su evaluación. Los operadores relacionales tienen menor prioridad que
los aritméticos.
Operador Función
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
= Igual
<> Diferente
OPERADORES LÓGICOS
Estos operadores se utilizan para establecer relaciones entre valores lógicos y pueden ser resultado
de una expresión relacional.
EXPRESIONES
Cada expresión toma un valor que se determina tomando los valores de las variables y constantes
implicadas y la ejecución de las operaciones indicadas.
Una expresión consta de operadores y operandos, según sea el tipo de datos que manipulan, se
clasifican las expresiones en:
Aritméticas
Relacionales
Lógicas
ASIGNACIONES
La flecha (operador de asignación) se utiliza para evitar ambigüedades y el de = (igual) se usa solo
para la igualdad. La operación de asignación A 5; significa que la variable A se le ha asignado el
valor 5. La acción de asignar es destructiva ya que el valor que tuviera la variable antes de la
asignación se pierde y se reemplaza por el nuevo valor; así, en la secuencia de operaciones
A 25
A 134
A5
cuando éstas se ejecutan, el valor último que toma A será 5 (los valores 25 y 134 han desaparecido).
La manera de asignar valores a una variable alfabética es diferente que las numéricas, ya que no se
da el valor directo, por lo que se debe hacer lo siguiente:
CIUDAD “Tijuana”
NOMBRE “Diana”
Los algoritmos y programas de computadora contienen ciertos valores que no deben cambiar durante
la ejecución del programa. Tales valores se llaman constantes.
Existen otros valores que cambiarán durante la ejecución del programa o corrida de escritorio
(también llamada prueba de escritorio) del algoritmo; a estos valores se les llama variables.
CONSTANTES
Son una partida de datos que permanecen sin cambios durante todo el desarrollo del algoritmo o
durante la ejecución del programa. Por ejemplo, si tenemos la fórmula para resolver el área de un
triángulo:
A=bxh
2
independientemente de que los valores de la base y la altura cambien, según la dimensión del
triángulo, siempre se dividirá entre 2, por lo tanto el 2 es una constante ya que nunca cambia.
VARIABLES
Son un objeto o partida de datos cuyo valor puede cambiar durante el desarrollo del algoritmo o
ejecución del programa. Ahora, regresando al ejemplo de la fórmula para resolver el área de un
triángulo, si las dimensiones de éste cambian por lo tanto el valor de la base (b) y de la altura (h)
varía. Entonces podemos decir que la base y la altura son variables.
IDENTIFICADORES.
Son los nombres que reciben las variables y algunas constantes, suelen constar de varios caracteres
alfanuméricos, de los cuales primero suele ser una letra.
Por ejemplo:
Para concluir, imaginemos que la siguiente figura es la memoria principal de la computadora, y que
en ella se encuentran almacenadas en diferentes localidades (direcciones) las variables A, b, h y la
constante Pi:
Identificador
A Pi
3.1416
b
256 1024
h
512
MEMORIA
PRINCIPAL
128
Como se puede observar, una variable es el área para almacenar en la memoria y su identificador es
la forma como nosotros podemos acceder a ella, ya que éste último tiene ligada la dirección. Una
constante puede tener también ligado un identificador, como ya se mencionó, y por medio de éste
también se puede llegar hasta ella.
Ejercicios
a) De la siguiente lista de posibles nombres para variables y/o constantes marca con una ( X ) los
incorrectos y con una ( ) los correctos, de acuerdo a las reglas vistas sobre asignación de
identificadores.
ENTRADA
SALIDA
Por ejemplo. Algoritmo que imprima el mensaje “Hola Mundo”. (Se utiliza constante).
Fin
Nota: En este algoritmo ya se conocía el nombre del letrero (por lo tanto era una constante), y
también la operación que debía hacer sobre él. Se utilizó pseudocódigo ya que para dar la
salida se indicó “imprimir”. Además cuando se da salida a un valor específico alfabético, éste
deberá ir entre comillas.
DECLARACION DE VARIABLES
Cuando se va a utilizar una variable en un algoritmo o programa se debe especificar qué nombre
recibirá y el tipo de dato que contendrá, a este procedimiento se le llama declaración de variables. La
declaración en algoritmos será asignar a las variables numéricas un 0 (cero) y a las alfabéticas “ “
(espacio entre comillas).
Por ejemplo. Algoritmo que imprima el nombre de cualquier fruta. (Se utiliza variable).
Inicio
1.- Inicio
2.- NomFruta “ “
3.- Leer NomFruta NomFruta” “
4.-Imprimir NomFruta
5.- Fin
NomFruta
NomFruta
Fin
Nota: En este algoritmo no se conocía el nombre de la fruta por lo tanto hubo necesidad de utilizar
una variable para que almacenara cualquier nombre que se leyera. Como se puede observar
se hizo la declaración correspondiente para una variable alfabética. Se dió la instrucción de
leer en pseudocódigo. Además, en el momento de leer e imprimir la variable NomFruta no se
encuentra entre comillas, ya que no se desea imprimir la palabra “NomFruta”, sino el valor
que contiene (en este caso el nombre que se haya leído).
Por ejemplo. Algoritmo que imprima el nombre de cualquier Ciudad. (Se agregan letreros para
ayudar al usuario posterior del algoritmo).
Inicio
1.- Inicio
2.- NomCiu “ “
3.- Leer “Ciudad: “, NomCiu
4.- Imprimir NomCiu NomCiu” “
5.- Fin
“Ciudad:”, NomCiu
NomCiu
Fin
Nota: En este algoritmo se agregaron letreros para indicarle al usuario qué se desea que
introduzca. En ocasiones no es suficiente con poner el nombre de la variable, ya que su
nombre a veces no nos dice mucho, sino que además es necesario de insertar letreros (que
irán entre comillas) que nos especifiquen el dato a insertar. Como en el ejercicio 5 no nos
dice si es nombre de persona o de ciudad el que desea, pero ahora en este si lo sabemos.
OPERACIONES ARITMETICAS
No solamente se presentan problemas para solo capturar e imprimir, sino también para hacer
cálculos aritméticos. Las operaciones aritméticas son análogas a las fórmulas matemáticas. Las
variables y constantes son numéricas (real o entera) y las operaciones son las aritméticas. A
continuación se enumeran los operadores disponibles.
OPERADORES ARITMÉTICOS
Reglas de prioridad
Las operaciones que tienen dos o más operandos requieren reglas matemáticas que permitan
determinar el orden de las operaciones, se denominan reglas de prioridad o precedencia y son:
1. Las operaciones que están cerradas entre paréntesis se evalúan primero. Si existen diferentes
paréntesis anidados (interiores unos a otros), las expresiones más internas se evalúan primero.
2. Las operaciones aritméticas dentro de una expresión suelen seguir el orden de prioridad
especificado en la tabla.
3. En caso de coincidir varios operandos de igual prioridad en una expresión o subexpresión
encerrada entre paréntesis, el orden de prioridad en este caso es de izquierda a derecha.
Por ejemplo:
a) 3 + 6 * 14 b) 2 ^ 3 * 5 c) ( 5 + 4 ) / 3
3 + 6 * 14 2 ^3*5 (5+4)/3
3+ 84 8 *5 9 /3
87 40 3
Ejercicios
1. -4 * 7 + 2 ^3 / 4 – 5 = -31
2. 12 + 3 * 7 + 5 * 4 = 53
3. 6 * ( 3 + 2 ) / 2 ^ 2 = 7.5
Asignación aritmética
Las expresiones en las operaciones de asignación son aritméticas, de tal manera que cuando se
lleva a cabo alguna expresión, el resultado de ésta deberá asignarse a una variable.
Por ejemplo. Algoritmo que suma 7 + 4, se le asigna el resultado a una variable y se imprime.
SUMA
Fin
Nota: En este algoritmo se decidió poner el nombre de SUMA para la variable que guardaría el
resultado. Se hizo la declaración (SUMA 0), se llevó a cabo el proceso (SUMA 7 + 4) y
por último la impresión. El resultado de SUMA es de 11.
Ejemplo. Algoritmo que suma dos números cualquiera, se le asigna el resultado a una variable y se
imprime.
Inicio
1.- Inicio
2.- Suma 0, N1 0, N2 0
3.- Leer “Número 1:”, N1 Suma 0, N1 0
4.- Leer “Número 2:”, N2 N20
5.- Suma N1 + N2
6.- Imprimir Suma
7.- Fin
“Número 1:”, N1
“Número 2:”, N2
Suma N1+N2
Suma
Fin
Nota: Aquí no se conocían los valores de los dos números, por lo tanto, se tuvieron que pedir y para
poderlo hacer se utilizaron dos variables (N1 y N2 o cualquier otro nombre que se desee), una
para cada número. Se hizo la declaración de las tres variables a usar (para los dos números y
otra para el resultado), se capturaron los valores de los dos números, se hizo el cálculo (Suma
N1 + N2) y por último la impresión del resultado (Suma), que dependerá de los valores que
se capturen (N1 y N2).
Modelo de solución
Pseudocódigo
1.- Inicio
2.- Base 0, Altura 0, Area 0
3.- Leer “Base:”, Base
4.- Leer “Altura:”, Altura
5.- Area Base * Altura / 2
6.- Imprimir “Area: “, Area
7.- Fin
Nota: Aquí no se conocían los valores de la base y la altura, por lo tanto, se tuvieron que pedir y para
poderlo hacer se utilizaron dos variables (Base y Altura). Se hizo la declaración de las tres
variables a usar para la base y la altura y otra para el resultado (Area), se capturaron los
valores de la base y la altura, se hizo el cálculo (Area Base * Altura / 2) y por último la
impresión del resultado (Area), que dependerá de los valores que se capturen (Base y Altura).
Es importante tener presente la sintaxis para la declaración, entrada y salida de datos, así
como para la expresión aritmética con sus reglas de prioridad de operadores.
Diagrama de flujo
Inicio
Base 0, Altura 0,
Area 0
Fin
Ejercicios
Un módulo es un segmento, rutina, subrutina, subalgoritmo o procedimiento que puede ser definido
dentro de un algoritmo con el fin de ejecutar una tarea específica y que además puede ser llamado o
invocado desde el algoritmo principal cuando sea necesario.
Como ya se mencionó, los subprogramas (algunas veces llamados módulos) son bloques de
instrucciones independientes que realizan una tarea específica y que pueden ser reutilizados varias
veces durante la ejecución de un programa.
Estos subprogramas pueden ser invocados desde cualquier parte del programa y en cualquier
momento, ya sea desde el principal o desde cualquier otro subprograma. Cuando terminan su bloque
de instrucciones regresan a la parte del programa desde donde fueron llamados.
Programa
Aquí el Subprog1( ) puede llamar al Subprog2( ) y este a su vez al Subprog3( ), o en cualquier otro
orden.
Para poder iniciar con el funcionamiento de los subprogramas, primeramente es necesario definir los
siguientes conceptos que juegan un papel muy importante en el tema:
Variables locales
Parámetros
Variables globales
VARIABLES LOCALES
Son aquellas variables que son declaradas dentro de un subprograma y solamente ahí tienen
validez, de tal manera que si se hiciera referencia de ellas en otro subprograma sería incorrecto
porque para éste último esas variables no existen.
Programa
Sub1( ) Sub2( )
A0 B0
A2+4 B A + 5
Llamar Sub2( ) Imprimir B
En la figura anterior en el Sub1( ) se declaró la variable A localmente (ya que se hizo dentro del
subprograma) y después se le asignó la suma de 2 + 4 para después hacer la llamada al Sub2( ).
Dentro del Sub2 se declaró una nueva variable B para posteriormente guardar el resultado de sumar
A + 5 y así imprimirlo. Pensaríamos que el resultado que imprimiría es 11 ya que supuestamente A =
6 y se le suma 5, pero no es así. La razón es que para el Sub2 la variable A no existe, por lo tanto
marcaría error.
VARIABLES GLOBALES
Son aquellas variables que son declaradas en la parte global del programa y están disponibles en
todos los subprogramas.
Programa
A0
Sub2( )
Sub1( )
B0
A2+4
Llamar Sub2( ) B A + 5
Imprimir B
En la figura anterior se declaró la variable A globalmente (ya que se hizo fuera de cualquier
subprograma). Dentro de Sub1( ) se le asignó a la variable A la suma de 2 + 4 para después hacer
la llamada al Sub2( ). Dentro del Sub2( ) se declaró una nueva variable B localmente para
posteriormente guardar el resultado de sumar A + 5 y así imprimirlo. Aquí el resultado que imprimiría
será 11 ya que A = 6 y se le suma 5. La razón es que para el Sub2( ) la variable A sí existe porque
fue declarada globalmente.
Nota: Cuando se trata de lenguajes de programación, si es utilizada alguna variable que no haya sido
declarada local o globalmente, el programa marca error.
PARÁMETROS
Son aquellos valores que se envían de un subprograma a otro. Los parámetros se utilizan cuando se
desean compartir valores entre algunos subprogramas pero no en todos. Si se declarara una variable
dentro de un subprograma solo es válida ahí y si se hiciera globalmente sería válida en todos aunque
no sea eso lo que se quiere. Por lo tanto los parámetros vienen a resolver este problema ya que se
puede elegir qué valor pasar y hacia qué subprograma enviarlo. Esto se puede lograr al momento de
hacer la llamada.
Programa
Sub1( ) Sub2(A10)
A0 B0
A2+4 B A1 + 5
Llamar Sub2 (A) Imprimir B
En la figura anterior en el Sub1( ) se declaró la variable A localmente (ya que se hizo dentro del
subprograma) y después se le asignó la suma de 2 + 4 para después hacer la llamada al Sub2( )
enviando como parámetro a la variable A (de hecho lo que envía es el valor, o sea el 6). Dentro del
Sub2( ) se recibe el parámetro (o sea, el 6), se declaró una nueva variable B para posteriormente
guardar el resultado de sumar A1 + 5 y así imprimirlo. El resultado que imprimirá será 11 ya que el
valor del parámetro que recibió en A1 = 6. La razón es que para el Sub2( ) la variable A1 recibió el
valor que tenía la variable A dentro del Sub1.
No hay que olvidar que el control del programa se pasa al subprograma que fue llamado en ese
momento y, en el instante que termine con las instrucciones dentro de él, el control regresará a la
instrucción desde donde fue invocado y así continua con la siguiente instrucción.
Procedimientos
Funciones
FUNCIONES
Son subprogramas o módulos que realizan una tarea específica y que pueden ser invocados desde
cualquier parte del programa enviando valores por medio de parámetros, y que tienen la capacidad
de devolver valores explícitos.
Son funciones que puede definirlas el programador con el propósito de ejecutar alguna función
específica, y que por lo general se usan cuando se trata de hacer algún cálculo que será requerido
en varias ocasiones en la parte principal del algoritmo.
El nombre de la función puede estar seguido de uno o más parámetros actuales encerrados entre
paréntesis. Por lo general transfieren datos a parámetros tipo valor.
PROCEDIMIENTOS
Son subprogramas que pueden ser invocados desde cualquier parte del programa enviando valores
por medio de parámetros, pero no devuelven valores explícitos, sino tendría que hacerlo por medio
de los mismos parámetros.
PROCEDIMIENTOS
Ejemplo2. Calcular la suma de dos números utilizando un procedimiento para la suma y despliegue
de resultado.
a) Pseudocódigo
Nombre_Procedimiento(Lista de parámetros)
Por ejemplo:
1.- Inicio
2.- N10, N20
3.- Leer “Numero 1:”, N1
4.- Leer “Numero 2:”, N2
5.- Llamar Suma(N1,N2)
6.- Fin
b) Diagrama de Flujo
Nombre_Procedimiento
(Lista de parámetros)
Por ejemplo:
Inicio
N1 0, N2 0
“Numero1:”, N1
“Numero2:”, N2
Suma(N1,N2)
Fin
a) Pseudocódigo
<bloque de instrucciones>
Fin Procedimiento
Por ejemplo:
b) Diagrama de flujo
Suma(Num1←0,Num2←0)
Sum 0
Sum Num1+Num2
Sum
Fin Procedimiento
Ejercicios
a) Capturar los datos de un alumno en un subprograma y los imprima en otro. Utilizar pase de
parámetros.
b) Capturar en un procedimiento el nombre del empleado, en otro las horas trabajadas y sueldo por
hora, en un tercero calcular su sueldo, y por último en otro imprima todos los datos incluyendo el
sueldo final.
c) Calcular el total a pagar por un cliente en una mueblería. Existe el precio de fábrica, el 10% de
ganancia para la mueblería, el 15% de IVA, utilizar un procedimiento para la entrada de datos,
otro para los cálculos y uno más para la salida del resultado.
FUNCIONES
Ejemplo3. Calcular la suma de dos números en el principal y utilizar una función para la suma y
despliegue de resultado en el mismo principal.
a) Pseudocódigo
Por ejemplo:
1.- Inicio
2.- N1 0, N2 0, Res 0
3.- Leer “Numero1: “, N1
4.- Leer “Numero2: “, N2
5.- Res Suma( N1, N2 )
6.- Imprimir Res
7.- Fin
b) Diagrama de flujo
Nombre_Procedimiento
(Lista de parámetros)
Por Ejemplo:
Inicio
N1 0, N2 0, Res 0
“Numero1: “, N1
“Numero2: “, N2
Res Suma(N1,N2)
Res
Fin
a) Pseudocódigo
<bloque de instrucciones>
Fin Función
Como puedes observar, a la función se le debe definir un tipo, esto es por que regresará un valor en
ella.
Por ejemplo:
b) Diagrama de flujo
Suma(Num1←0,Num2←0) 0
Fin Función
Ejemplo4. Calcular la suma de dos números en el principal y utilizar una función para la suma y
despliegue de resultado en el mismo principal, utilizando variables globales.
a) Pseudocódigo
1.- N1 0, N2 0
2.- Inicio
3.- Res 0
4.- Leer “Numero1: “, N1
5.- Leer “Numero2: “, N2
6.- Res Suma( )
7.- Imprimir Res
8.- Fin
1. Funcion Suma( ) 0
2. Suma N1 + N2
3. Fin Función
b) Diagrama de flujo
N1 0, N2 0
Suma( ) 0
Inicio
Suma N1 + N2
Res 0
Fin Función
“Numero1: “, N1
“Numero2: “, N2
Res Suma( )
Res
Fin
Ejercicios
a) Algoritmo que capture base y altura en el principal, posteriormente invoque una función y calcule
el área del triángulo, finalmente imprima el resultado en el mismo principal.
b) El gerente de ventas de una tienda de equipo electrónico desea mostrar a un cliente el total a
pagar por el equipo de cómputo que sea adquirir de acuerdo a las dos opciones de pago que
ofrecen. La primera opción de pago es al contado donde al precio del equipo sólo se le agrega el
16% de IVA. La segunda opción de pago es en abonos donde se agregará el 20% de interés al
precio, posteriormente se agregará el 16% de IVA para finalmente calcular su plan de pagos a 6
meses. Se debe mostrar al cliente el total al contado, el total en abonos y el monto de cada una
de las 6 mensualidades. El IVA deberá ser calculado en una función que deberá ser reutilizada
para calcular el IVA para contado y abonos.
c) Calcular la velocidad en millas a la que puede ir un automóvil que recorre una distancia dada en
kilómetros en un tiempo determinado. Utilizar una función para la conversión de kilómetros a
millas.
d) Sumar los números desde el 1 por medio de una función que se llame a sí misma y deje de
hacerlo hasta que la suma sea mayor a 100. (Recursividad)