Está en la página 1de 49

ALGORITMO Y

PSEUDOCODIGO

Ing. Edwin Valencia

Técnicas de Programación

Ing. Sonia Alexandra Pinzón Nuñez - Ing. Rocío Rodríguez Guerrero


ALGORITMO: Definición

Es un conjunto de pasos
lógicos ordenados,
secuencialmente y finita,
escritos de tal forma que
permiten visualizar la
solución de un problema
determinado en un momento
específico.
ALGORITMO: otra definición
Un ALGORITMO es una secuencia finita ‘bien definida’ de tareas
‘bien definidas’, cada una de las cuales se puede realizar con una
cantidad de recursos finitos.

• Se dice que una tarea esta ‘bien definida’, si se sabe de


manera precisa las acciones requeridas para su realización.
• Aunque los recursos que debe utilizar cada tarea deben ser
finitos estos no están limitados, es decir, si una tarea bien
definida requiere una cantidad inmensa (pero finita) de algún
recurso para su realización, dicha tarea puede formar parte de
un algoritmo.
• Además, se dice que una secuencia de tareas esta ‘bien
definida’ si se sabe el orden exacto de ejecución de cada una
de las mismas.
• EJECUTAR un algoritmo es realizar las tareas del mismo, en el
orden especificado y utilizando los recursos disponibles.
ALGORITMO: Ejemplo
1. 5+1=6
491 2. Anotar 6
3. 2+9=11
+ 25 4. Anotar 1 y guardar 1
5. 4+0=4
516 6. 4+1=5
7. Anotar 5
8. El resultado es 516
ALGORITMO: Ejemplo

• Ejemplo: levantarse en la mañana


Inicio
salir de la cama
ducharse
tomar desayuno
si esta lloviendo entonces
tomar el paraguas
fin si
tomar la mochila
tomar la micro
fin
ALGORITMO: Ejemplo
El siguiente algoritmo
El siguiente algoritmo calcula el área y el suma dos números
perímetro de un rectángulo (DIAGRAMA DE FLUJO)
(PSEUDOCODIGO)
Inicio
1. Inicio
2. Leer base y altura (b, a) a
3. ar ← b*a
4. pe ← 2*(b + a) b
5. Escribir “Área del rectángulo: ”, ar
6. Escribir “Perímetro del rectángulo: ”, pe c = a+b
7. Fin
c

Fin
ALGORITMO: Caracteríticas
Las características que debe de tener algoritmo son las siguientes:
• Precisión: el algoritmo debe indicar el orden exacto de
ejecución de cada tarea.
• Definitud o determinismo: si se sigue el algortimo dos o mas
veces con los mismos datos de entrada, se deben de obtener los
mismos datos de salida
• Finitud: el algoritmo debe terminar en algún momento y debe
usar una cantidad de recurso finita.

Dada una cantidad de datos de entrada de un algoritmo, se dice


que la cantidad de un recurso usada por dicho algoritmo para su
ejecución determina la complejidad del algoritmo respecto a tal
recurso. Cuando se implementa un algoritmo en un computador
digital, los recursos con los que se cuenta son tiempo de proceso y
memoria. Por lo tanto, a un algoritmo implementado en un
computador digital se le pueden calcular sus complejidades
temporal y espacial
ESPECIFICACIONES DE ALGORITMOS

Después de entender totalmente el problema a resolver (lo cual se


consigue con la etapa del diálogo), se debe realizar una
especificación del algoritmo que permite encontrar su solución. Un
algoritmo que no esté claramente especificado puede ser
interpretado de diferentes maneras y al diseñarlo se puede terminar
con un algoritmo que no sirve para solucionar el problema.
La especificación de un algoritmo se hace mediante una descripción
clara y precisa de:
1. Las entradas que el algoritmo recibirá.
2. Las salidas que el algoritmo proporcionará.
3. La dependencia que mantendrán las salidas obtenidas con las
entradas recibidas.
PASOS PARA LA ESPECIFICACION DE
ALGORITMOS
ESPECIFICAR ENTRADAS: Las entradas corresponden a los
objetos conocidos. Se debe indicar claramente la descripción,
cantidad y tipo de las misma
ESPECIFICAR SALIDAS: Las salidas corresponden a los objetos
desconocidos del problema. Se debe indicar claramente la cantidad,
descripción y tipo de las mismas.
ESPECIFICAR CONDICIONES: Se describe claramente como
dependen las salidas de las entradas, se puede usar lenguaje
matemático o informal.
EJEMPLOS DE ESPECIFICACIONES
EJEMPLOS DE ESPECIFICACIONES
ALGORITMO: Ejemplo
1. PROBLEMA: Cambiar la rueda pinchada de un automóvil teniendo un gato
mecánico en buen estado, una rueda de reemplazo y una llave inglesa.
ALGORITMO:

INICIO
Paso 01: aflojar los tornillos de la rueda pinchada con la llave inglesa
Paso 02: ubicar la gata mecanica en su sitio
Paso 03: levantar la gata hasta que al rueda pinchada pueda girar libremente
Paso 04: quitar los tornillos y la rueda pinchada
Paso 05: poner rueda de repuesto y los tornillos
Paso 06: bajar la gata hasta que se pueda liberar
Paso 07: sacar la gata de sus sitio
Paso 08: apretar los tornillos con la llave inglesa
FIN
ALGORITMO: Ejemplo
2. PROBLEMA: Cambiar la rueda pinchada de un automóvil teniendo un gato
mecánico en buen estado, una rueda de reemplazo y una llave inglesa.
ALGORITMO:

INICIO
Paso 01: aflojar los tornillos de la rueda pinchada con la llave inglesa
Paso 02: ubicar la gata mecanica en su sitio
Paso 03: levantar la gata hasta que al rueda pinchada pueda girar libremente
Paso 04: quitar los tornillos y la rueda pinchada
Paso 05: poner rueda de repuesto y los tornillos
Paso 06: bajar la gata hasta que se pueda liberar
Paso 07: sacar la gata de sus sitio
Paso 08: apretar los tornillos con la llave inglesa
FIN
ALGORITMO: Ejemplo
3. PROBLEMA: Realizar la suma de los números 2448 y 5746

ALGORITMO:

INICIO
PASO 01. Colocar los números el primero encima del segundo, de tal manera
que las unidades, decenas, centenas, etc., de los números queden alineadas. Trazar una
línea debajo del segundo número.
PASO 2. Empezar por la columna más a la derecha.
PASO 3. Sumar los dígitos de dicha columna
PASO 4. Si la suma es mayor a 9 anotar un 1 encima de la siguiente columna a la izquierda
y anotar debajo de la línea las unidades de la suma. Si no es mayor anotar la suma debajo
de la línea.
PASO 5. Si hay más columnas a la izquierda, pasar a la siguiente columna a la izquierda
y volver a 3.
PASO 6. El número debajo de la línea es la solución.
FIN
¿Qué es un problema?
• Es una situación concreta sobre la cual se quiere implementar
una solución (ejemplos)
• Solución: procedimiento que nos lleva a satisfacer ciertos
requerimientos
• Esquema básico para la resolución de un problema a través de
un programa con un enfoque sistémico

Entrada Salida
Proceso
•Datos Externos •Informes
•Datos auto generados •Datos para otro
•Lectura de dispositivo programa
de almacenamiento •Datos grabados en
dispositivos externos de
almacenamiento

15
Pasos en la resolución de un problema
• Entender el problema
– Conceptualización
– Objetivo
– Contexto
• Buscar soluciones
• Elegir solución
• Diseñar solución
– Descomposición
– Especificar tareas
– Modelar solución
• Implementar solución
• Validar solución

16
… PROBLEMAS
• Se tiene un problema cuando se desea encontrar uno o
varios objetos desconocidos (ya sean estos números,
diagramas, figuras, demostraciones, decisiones,
posiciones, algoritmos, u otras cosas), que
cumplen condiciones y/o relaciones, previamente
definidas, respecto a uno o varios objetos conocidos. De
esta manera, solucionar un problema es encontrar los
objetos desconocidos de dicho problema.

17
CLASIFICACION DE PROBLEMAS
Los problemas se clasifican por la existencia de una
solución en solubles, no solubles e indecidible.
• Un problema se dice SOLUBLE si se sabe de antemano
que existe una solución para él.
• Un problema se dice INSOLUBLE si se sabe que no
existe una solución para él.
• Un problema se dice INDECIDIBLE si no se sabe si
existe o no existe solución para él.

18
CLASIFICACION DE PROBLEMAS
A su vez, los problemas solubles se dividen en dos clases:
los algorítmicos y los no algorítmicos.

• Un problema se dice ALGORÍTMICO[1] si existe un


algoritmo que permita darle solución.
Un problema se dice NO ALGORÍTMICO si no existe
un algoritmo que permita encontrar su solución.

19
PASO DE SOLUCION DE PROBLEMAS
• En el primer paso en el proceso de solución a un
problema se debe determinar de manera clara y concisa
la siguiente información:
• 1. Los objetos conocidos, es decir, aquellos objetos de
los cuales poseemos información total o parcial útil en
la búsqueda de los objetos desconocidos.
• 2. Las condiciones, aquellas relaciones establecidas
entre los objetos conocidos y los desconocidos. Para
esto se deben encontrar entre otras, la dependencia entre
los valores de los objetos desconocidos de los valores
de los objetos conocidos y que restricciones le impone
el planteamiento del problema a dichos objetos.
• 3. Los valores posibles que pueden tomar los objetos
20
desconocidos.
EJEMPLOS DE PROBLEMAS
1. Sean los puntos P=(a,b) y Q=(c,d) que definen una
recta, encontrar un segmento de recta perpendicular a la
anterior que pase por el punto medio de los puntos dados.
• Objeto desconocido: el segmento de recta
• Objetos conocidos: los puntos p y q
• Condiciones: El segmento de recta debe pasar por el
punto medio entre P y Q, y debe ser perpendicular a la
recta trazada entre P y Q
• Tipo de problema: Soluble-algorítmico. Es soluble por
que ya existe un algoritmo que permite encontrar la
solución del mismo. Este algoritmo fue presentado en la
sección anterior
21
EJEMPLOS DE PROBLEMAS
2. De las siguientes cuatro imágenes, ¿cuál es la más
llamativa?.

Objetos desconocidos: una de las cuatro imágenes


Objetos conocidos: las cuatro imágenes
Tipo de problema: Soluble-no algorítmico. La solución de
este problema existe, es alguna de las cuatro imágenes
presentadas, pero no existe un algoritmo que permita
determinar cual es, ya que el concepto de imagen más
llamativa no esta bien definido
22
EJEMPLOS DE PROBLEMAS
2. De las siguientes cuatro imágenes, ¿cuál es la más
llamativa?.

Objetos desconocidos: una de las cuatro imágenes


Objetos conocidos: las cuatro imágenes
Tipo de problema: Soluble-no algorítmico. La solución de
este problema existe, es alguna de las cuatro imágenes
presentadas, pero no existe un algoritmo que permita
determinar cual es, ya que el concepto de imagen más
llamativa no esta bien definido
23
EJEMPLOS DE PROBLEMAS

24
EJEMPLOS DE PROBLEMAS

25
Técnicas de Representación de Algoritmos:
Pseudocódigo

Ing. Edwin Valencia

TECNICAS DE PROGRAMACION
ALGORITMO: Técnicas de Representación

Pseudocódigo
Está técnica permite
representar el algoritmo
mediante un lenguaje Inicio
Instrucción 1
más estructurado,
Instrucción 2
facilitando su posterior Si condición entonces
codificación. Instrucción 3
..
.
Instrucción n
Fin
ALGORITMO: Técnicas de Representación

Un pseudocódigo (falso lenguaje), es una serie de


normas léxicas y gramaticales parecidas a la mayoría
de los lenguajes de programación, pero sin llegar a la
rigidez de sintaxis de estos ni a la fluidez del lenguaje
coloquial

El pseudocódigo no está regido por ningún


estándar. pseudo viene de falso y por ende es un
código al que aunque es entendible no se aplica al
proceso que debe realizar la maquina.
PSEUDOCÓDIGO:Cómo se Hace?
Cada instrucción que se va a realizar
1
debe comenzar por un verbo, ejemplo:
Leer, Escribir, Calcular, etc.

2 Se debe mantener una identación o sangría


sobre el margen izquierdo para identificar
fácilmente el comienzo y final de las estructuras

3 La representación de las estructuras son


similares u homónimas de los lenguajes de
programación, ejemplo: inicio, fin,, si_entonces,
si_entonces_sino, mientras que, repita_hasta,
etc.
PSEUDOCÓDIGO:Cómo se Hace?

Algoritmo: nombre_del_algoritmo

Datos
Variables: variables a usar en el algoritmo
entrada: variables de entrada Tipo_de_datos
salida: variables de salida Tipo_de_datos
auxiliares: variables auxiliares Tipo_de_datos
Constantes: constantes a usar en el algoritmo Tipo_de_datos

Inicio

{Estructuras de datos}

Fin
PSEUDOCÓDIGO: Estructuras a usar:
Estructuras de Datos:

• Estructuras de Datos Secuenciales


• Leer
• Escribir
• Calcular y/o Asignar (Hacer)

• Estructuras de datos Selectivas


• Si {condición} Entonces
• Si {condición} entonces /sino
• Según {variable numérica} hacer
(si múltiple, si {selector} igual)

• Estructuras de datos Repetitivas


• Mientras {expresión lógica} hacer
• Repetir hasta que {expresión lógica}
PSEUDOCÓDIGO:estructuras secuenciales
Las estructuras secuenciales a usar son las
siguientes:

• Leer : Denota la acción de introducir datos o


variables desde un dispositivo estándar de
entrada
• Escribir: Representa la acción de enviar datos
desde variables a un dispositivo estándar de
salida.
• Calcular: Denota la realización de cualquier
operación aritmética que genere valores para ser
almacenados en una variable.
Un primer ejemplo de PSEUDOCODIGO
“estructuras secuenciales”
Realizar un algoritmo que calcule el área y el perímetro de un rectángulo
Algoritmo area_perimetro
Datos
variables
entrada base, altura numerico real
salida area, perimetro numerico real
auxiliares {no existen}
constantes {no existen}
Inicio
Escribir “Ingrese los valores para la base y la altura: “
Leer base ,altura
Calcular area = base * altura
Calcular perimetro = 2*(base+ altura)
Escribir “Área del rectángulo: ”, area
Escribir “Perímetro del rectángulo: ”, perimetro
Pedir al usuario la temperatura actual en grados centígrados y
mostrar en pantalla su equivalente a grados farenheit: Grados
centígrados: 30 Grados farenheit: 86

F = (9/5) x C + 32
algoritmo
datos
variables
entrada centigrados numerica real
salida fahrenheit numerica real

inicio
Escribir “Ingrese la temperatura en centígrados: ”
Leer centigrados
Calcular fahrenheit = (9/5) x centigrados + 32
Escribir “La temperatura en Fahrenheit es: ” , farhrenheit
Fin
Elementos de un Algoritmo – Pseudocódigo
A. LOS DATOS

El dato es una representación simbólica (numérica,


alfabética, algorítmica, entre otros.), un atributo o
característica de una entidad.

• Los datos describen hechos empíricos, sucesos y entidades.

• Los datos aisladamente pueden no contener información humanamente


relevante.

• Los datos convenientemente agrupados, estructurados e interpretados


se consideran que son la base de la información
Dato
Entoces … puede significar un numero, una letra, o cualquier
símbolo que representa una palabra, una cantidad, una
medida o una descripción.
De ahí que no debemos confundir entre el dato mismo y su
representación. Por ejemplo:

Dato específico información que representa


25 años edad
Dato
Los algoritmos generalmente operan sobre datos, pero
estos no son masas de información simplemente, sino que
involucran importantes relaciones entre sí.

Por ejemplo: Dados tres números, que se


suponen representan los lados de un
triángulo, evaluar sus longitudes para
indicar ¿qué tipo de triángulo podemos
formar?
Tipos de datos
Los datos pueden clasificarse en tipos de datos.

Sirven para indicar al computador (y/o al programador)


algo sobre la clase de datos sobre los que se va a procesar.

Esto incluye imponer restricciones en los datos, como:


• qué valores pueden tomar y
• qué operaciones se pueden realizar.
Tipos de datos comunes son: enteros, números decimales, cadenas
alfanuméricas (usados en programción), fechas, horas, colores,
coches o cualquier cosa que se nos ocurra.
ALGORITMO: Tipos de Datos

Boleano

Real cadena
Lógicos
Entero Caracter

Numéricos Carácter
Tipos
de
Datos
Tipos de Datos
Por ejemplo, en el tipo "int" representa un conjunto de
enteros de 32 bits cuyo rango va desde el -2.147.483.648 al
2.147.483.647, así como las operaciones que se pueden
realizar con los enteros, como la suma, resta, multiplicación
y división.
Tipos de Datos
Cualquier programa, independiente del lenguaje usado, se
puede entender como un conjunto de operaciones que se
aplican a ciertos datos en una cierta secuencia (Pratt y
Zelkowitz, 1996)

La diferencia básica entre los lenguajes se refiere a los tipos


de datos permitidos, a los tipos de operaciones disponibles y
a los mecanismos de control en la que se aplican las
operaciones a los datos
Tipos de Datos Simples
Se dividen en:
1. Numéricos (enteros, reales)
2. Lógicos (falso, verdadero)
3. Caracter (alfabéticos a, b, c …, especiales + − × <
≤≥)
A. IDENTIFICADORES:
a)Variable
Aquel que permite representar la información a la
que se refiere el dato. También conocido en
matemáticas como variable (es un símbolo que
representa un elemento o cosa no especificada de
un conjunto dado)

En el ejemplo: con edad podemos representar a un conjunto universal


de edades, donde cada elemento del conjunto es un valor de la
variable
{25, 3, 14, 89, 32} edad = 3
Variable
• En programación, las variables son espacios reservados
en la memoria que, como su nombre indica, pueden
cambiar de contenido a lo largo de la ejecución de un
programa.
b) Constante
• En programación, una constante es un valor que no puede
ser alterado durante la ejecución de un programa.
• Una constante corresponde a una longitud fija de un área
reservada en la memoria principal del ordenador, donde el
programa almacena valores fijos.

Por ejemplo:
El valor de pi = 3.1416
Constantes y Variables
Los programas de computadora contienen ciertos valores
(contenedores) que dependen de la características del
problema, es decir:

1.NO CAMBIAN de valor(es) durante la ejecución del


programa, por eso se conocen como CONSTANTES

2. Pueden CAMBIAR de valor(es) durante la ejecución del


programa, por eso se conocen como VARIABLES, tomando
cualquier valor del tipo con el que ha sido declarado
C.EXPRESIONES
a) Operadores
+ Aritméticos
> -
>= <
=
/ %
<=
Relacionales ^
!=
<> No
Lógicos
Y &&
O ||
b)Expresiones
En programación, una expresión es una combinación de
constantes o variables que es interpretada (evaluada) de
acuerdo a las normas particulares de precedencia y
asociación para un lenguaje de programación en
particular
Permiten describir relaciones entre variables y establecer
operaciones o calculos sobre éstas.

Por ejemplo: Si edad de Pedro es mayor que la de Juán


{25, 3} 25 > 3
Expresiones
• Combinación de constantes, variables, símbolos de
operación, paréntesis y nombres de funciones

• Cada expresión toma un valor que se determina tomando


los valores de las variables y constante implicadas y la
ejecución de las operaciones

• Una expresión consta de operandos y operadores:


• aritméticos
• lógicos
• relacionales
• caracter

También podría gustarte