Вы находитесь на странице: 1из 68

Algoritmos, Estructuras y

Programación I
Unidad I
INTRODUCCIÓN A LA LÓGICA DE
PROGRAMACIÓN Y DISEÑO DE PROGRAMAS

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Contenido Programático

1. Datos y tipos de datos.


2. Expresiones.
3. Operadores aritméticos, relacionales y
lógicos.
4. Operación de asignación.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Contenido Programático

5. Pasos para resolver un problema.


• Análisis del problema
• Diseño de algoritmos
• Codificación y depuración
• Verificación
• Documentación.

6. Diseño de algoritmos
• Implementación de algoritmos utilizando las
técnicas del pseudocódigo y diagrama de flujo.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Datos

• Dato: “Hecho o valor a partir del cual se


puede inferir una conclusión; información"

• Los datos son aquello que un programa


manipula. Sin datos un programa no
funcionaría correctamente. Los programas
manipulan datos de manera muy diferente
según el tipo de dato del que se trate

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Tipos de Datos

1. Datos Numéricos

Se llama así al conjunto de datos


numéricos y son representados de
distintas formas.

Tipos de Datos Numéricos


1.1 Entero (integer)
1.2 Real (real)

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Tipos de Datos

1.1.Tipo de dato numérico entero (integer):

• Representa un subconjunto finito de los números enteros.


• El número mayor que puede representar depende del
tamaño del espacio usado por el dato y la posibilidad (o no)
de representar números negativos.
• Los tipos de dato entero disponibles y su tamaño
dependen del lenguaje de programación usado así como la
arquitectura en cuestión.
• Ejemplo: 5, 6,-15,4,2480
• Van desde el -32768 hasta el 32767

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Tipos de Datos

1.2. Tipo de dato numérico real (real):

• Representa un subconjunto finito de los números r


eales.
• Los números reales siempre tienen un punto decimal
y pueden ser positivos o negativos.
• Los números reales constan de una parte entera y
una decimal.
• Ejemplo: 0.0006,9.3632,3.0,-8.17,-63.3387

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Tipos de Datos

2. Datos lógicos ( Booleanos):

• Conocidos también como datos booleanos, este tipo de


datos es aquel que solo admite dos tipos de valores, los
que son verdadero (true) o falsos (false).

• Los dos son usados para la representación de alternativas


(si/no) que se dan según la condición que se plantee, es
decir, si se quiere que el programa evalué una condición
determinada , esta puede ser verdadera o falsa,
dependiendo de las reglas que se hayan planteado
anteriormente.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Tipos de Datos

3. Datos tipo carácter:

• Los datos de este tipo forman un conjunto finito y ordenado


que la computadora puede reconocer.
• Un dato tipo carácter contendrá solamente un carácter.
• No existe un estándar en lo que respecta al reconocimiento
de caracteres , pero las computadoras pueden reconocer
los siguientes caracteres:
– Caracteres alfabéticos (A,B,C,D,…….)
– Caracteres numéricos (1,2,3,4,………)
– Caracteres especiales (+,-,*,/,.,>,<,…,etc.)

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Tipos de Datos

4. Datos tipo cadena


• Son literalmente cualquier cadena o secuencia de
caracteres que puedan imprimirse en la pantalla.
• Un modo de representar los datos tipo carácter son , el tipo
cadena (string)
• Las cadenas pueden representarse de varias formas:
– Con comillas simples:
'Esta es una cadena'
– Con comillas dobles:
"Esta otra es una cadena muy similar"

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Tipos de Datos

4. Datos tipo cadena (Cont.)

• Podemos acceder a los caracteres individuales de una


cadena al tratarla como una matriz de caracteres.

• Usualmente hay varias operaciones que el lenguaje de


programación provee para ayudarnos a manipular las
cadenas, tales como buscar una subcadena dentro de otra,
unir dos cadenas, copiar una cadena en otra, etc.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Tipos de Datos

5. Tipos de datos complejos


• Colecciones: Las ciencias de la Computación han
creado una disciplina en sí misma para estudiar las
colecciones y sus diversos comportamientos. Algunos
de los nombres que podrás encontrar son:
– Matrices o vectores: Una lista de items que pueden ser
indexados para una recuperación sencilla y rápida.
Usualmente es necesario aclarar de entrada cuántos items
deseamos guardar en la matriz. Por ejemplo, si tenemos un
vector llamado A, podemos recuperar su tercer item
escribiendo A[3].
– Listas: Una lista es una secuencia de items. La diferencia con
los vectores es que una lista puede seguir creciendo al
agregársele un nuevo item.
Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I
Tipos de Datos

5. Tipos de datos complejos (cont)

– Pilas:Las pilas de datos funcionan asi: se agrega un dato a la


pila o se retira uno de ella, pero el dato retirado es siempre el
último que se colocó en la pila (Last in First Out) “Ultimo en
entrar Primero en salir”.
– Bolsas:Una bolsa es una colección de items sin un orden
específico y que puede contener duplicados. Las bolsas
tienen en general operadores que nos permiten agregar,
buscar y borrar los items
– Conjunto:Un conjunto tiene la propiedad de guardar
únicamente un miembro de cada item. En estos, se puede
comprobar si un item pertenece al conjunto (pertenencia), y
agregar, remover u obtener items o unir dos conjuntos según
la teoría matemática de los conjuntos (unión, intersección,
etc.).
Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I
Tipos de Datos

5. Tipos de datos complejos (cont)

– Cola:Una cola es similar a una pila excepto que el primer


elemento de una cola es el primero en ser retirado. Esto se
conoce como First In First Out ("el primero es el primero") o
FIFO .

– Diccionarios:Un diccionario combina las propiedades de las


listas, los conjuntos y los vectores. Es posible seguir
agregando elementos (como en las listas) y también acceder
a los items mediante una clave provista en el punto de
inserción (como con los vectores). Debido a que el acceso a
los datos se realiza por medio de una clave, ésta debe ser
necesariamente única ya que si no se perdería la referencia
(como en los conjuntos).
Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I
Tipos de Datos

5. Tipos de datos complejos (cont).

• Archivos: Como usuario de computadoras sabrás todo acerca


de los archivos, la base de prácticamente todo lo que hacemos
con una computadora. No es sorprendente entonces que la
mayor parte de los lenguajes de programación incluyan un tipo
especial de datos llamado archivo.

• Fecha y Hora: La fecha y la hora a veces se incluyen como


predeterminados en algunos lenguajes. En otros casos son
representados simplemente por un número alto (típicamente el
número de segundos a partir de una determinada fecha u hora).
Para otros lenguajes este tipo se representa de manera compleja

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Tipos de Datos

5. Tipos de datos complejos (cont).


• Tipos definidos por el usuario: En ocasiones deseamos
agrupar varios datos juntos y tratarlos como si fueran un solo
elemento. Un ejemplo de esta situación podría ser la descripción
de una dirección postal: la calle, el número, la ciudad y el código
postal. La mayor parte de los lenguajes nos permiten agrupar
estos datos en un registro o estructura.
En BASIC un registro de este tipo se realiza así:
Type
Direccion
Numero_Casa AS INTEGER
Calle AS STRING
Ciudad AS STRING
Cod_Postal AS STRING
Presentado por: Ing.End Type
Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I
Constantes

Una constante es un dato numérico o


alfanumérico que no cambia durante la
ejecución del programa.

Ejemplo:
pi = 3.1416

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Variables
• Es un espacio en la memoria de la computadora que
permite almacenar temporalmente un dato durante la
ejecución de un proceso, su contenido puede cambiar
durante la ejecución del programa.

• Para poder reconocer una variable en la memoria de


la computadora, es necesario darle un nombre con el
cual podamos identificarla dentro de un algoritmo.

Ejemplo:
área = pi * radio ^ 2
Las variables son : el radio, el área y la constate es pi

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Variables

Clasificación de las Variables

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Variables

Clasificación de las Variables


Por su contenido
• Variables Numéricas: Son aquellas en las cuales se almacenan
valores numéricos, positivos o negativos, es decir almacenan
números del 0 al 9, signos (+ y -) y el punto decimal.
Ejemplo:
iva = 0.15 pi = 3.1416 costo = 2500
• Variables Lógicas: Son aquellas que solo pueden tener dos
valores (cierto o falso) estos representan el resultado de una
comparación entre otros datos.
• Variables Alfanuméricas: Esta formada por caracteres
alfanuméricos (letras, números y caracteres especiales).
Ejemplo:
letra = ’a’ apellido = ’lopez’ dirección = ’Av. Libertad #190’
Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I
Variables

Clasificación de las Variables


Por su uso
• Variables de Trabajo: Variables que reciben el resultado de una
operación matemática completa y que se usan normalmente
dentro de un programa.
Ejemplo:
Suma = a + b /c

• Contadores: Se utilizan para llevar el control del numero de


ocasiones en que se realiza una operación o se cumple una
condición. Con los incrementos generalmente de uno en uno.

• Acumuladores: Forma que toma una variable y que sirve para


llevar la suma acumulativa de una serie de valores que se van
leyendo o calculando progresivamente.ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I
Presentado por: Ing. Erick Ramos M.Sc.
Expresiones
• Son la combinación de constantes, variables, símbolos de
operación, paréntesis y nombres de funciones especiales.
Los valores de las variables nos permitirán determinar el
valor de las expresiones , debido a que estos están
implicados en la operación de las operaciones indicadas.
Estas constan de operandos y operadores .

• Según el tipo de objeto que manipulan , pueden


clasificarse en:
– Aritméticas resultado tipo numérico
– Relacionales resultado tipo lógico
– Lógicas resultado tipo lógico.
– Carácter resultado tipo carácter.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Expresiones Aritméticas

Estas expresiones son análogas a las formulas


matemáticas. Las variables y constantes son
numéricas ( real o entera) y las operaciones son las
aritméticas.
+ suma
- resta
* multiplicación
/ división
**,^ exponenciación
div división entera
mod modulo o resto
Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I
Expresiones Lógicas (boolenas)

• Otro tipo de expresiones son las expresiones lógicas o


boolenas, cuyo valor es siempre verdadero o falso.
Pues existen dos constantes lógicas , verdadera (true)
y falsa (false), y que las variables lógicas pueden
tomar solo estos dos valores , verdadero o falso.

• Estas expresiones se forman combinando constantes


lógicas , variables lógicas y otras expresiones lógicas ,
utilizando los operadores lógicos not, and y or, y los
operadores relacionales (de relación o comparación)
=,<,>,<=,>=,<>.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Operadores aritméticos,
relacionales y lógicos

Operadores Aritméticos
Operador Significado
+ Suma
- Resta
* Multiplicación
/ División
^ Exponenciación
Mod Módulo

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Operadores aritméticos,
relacionales y lógicos

Operadores Relacionales
Operador Significado
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que
= Igual a
<> Distinto a, diferente de

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Operadores aritméticos,
relacionales y lógicos

Operadores Lógicos
Operadores Lógicos
Operador Descripción Resultado
A and B AND "true" si A y B son ambos verdaderos
A or B OR "true" si ambos o al menos uno de A y B son verdaderos
A == B Igualdad "true" si A y B son iguales
A <> B Desigualdad "true" si A y B NO son iguales
"true" si B no es verdadero (siendo B un valor o una
not B Desigualdad
expresión booleana)

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Operadores aritméticos,
relacionales y lógicos
Precedencia de Operadores
• Cuando una expresión aritmética se evalúa, el
resultado es un número. Ahora bien, cuando
aparecen dos o mas expresiones aritméticas, qué
operaciones se realizan primero?
• Una expresión aritmética en programación tiene una
sintaxis de la forma:
x2+1/2
• Hay que observar que esta expresión es totalmente
deferente a esta otra (x2+1)/2, por lo que es
importante codificar las expresiones aritméticas
correctamente

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Operadores aritméticos,
relacionales y lógicos
Reglas de Evaluación
• Todas las subexpresiones entre paréntesis se
evalúan primero. Las subexpresiones entre
paréntesis anidados se evalúan de adentro hacia
afuera, es decir, que el paréntesis mas interno se
evalúa primero.
• Prioridad de Operaciones: Dentro de una misma
expresión o subexpresión, los operadores se
evalúan en el siguiente orden:
•*,/ . Multiplicación y división
div,mod División y Modulo de enteros
+,- Suma y Resta

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Operadores aritméticos,
relacionales y lógicos
Reglas de Evaluación

• Los operadores en una misma


expresión o subexpresión con igual
nivel de prioridad se evalúan de
izquierda a derecha
• .

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Operación de Asignación

• Se utiliza para asignar o almacenar valores a


variables o constantes. Es una operación que sitúa un
valor determinado en una posición de memoria. Se
demuestra en pseudocódigo con el símbolo <- (Una
flecha apuntando hacia el identificador, donde se
desea guardar el valor.)
variable <- expresión

• El tipo de expresión debe ser del mismo tipo que el de


la variable, en caso contrario en la fase de
compilación se produciría un error de tipos.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Operación de Asignación
Reglas de Asignación
2. Una variable en el lado derecho de una sentencia de
asignación debe tener un valor antes de que la
sentencia de asignación se ejecute. Hasta que un
programa le da un valor a una variable, esa variable
no tiene valor.
Por ejemplo:
Si x no tiene un valor antes de ejecutar y <- x+1, se
producirá un error lógico.
2. En la izquierda de una sentencia de asignación solo
pueden existir variables. Por consiguiente no es
valido lo siguiente:
Valor_Neto - Tasas <- 34015.
Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I
Operación de Asignación
Reglas de Asignación

Además hay que recordar que la


operación de asignación es una
operación destructiva debido a que el
valor almacenado en una variable se
pierde o se destruye y se sustituye por
el nuevo valor en la sentencia de
asignación.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Pasos para resolver un problema

• Análisis del problema

• Diseño de algoritmos

• Codificación y depuración

• Verificación

• Documentación.
Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I
Pasos para resolver un problema
Análisis del problema
• Esta fase requiere una clara definición donde se
contemple exactamente lo que debe hacer el
programa y el resultado o solución deseada.
• Dado que se busca una solución se precisan
especificaciones de entrada y salida.
• Para poder definir bien un problema es conveniente
responder a las siguientes preguntas:
• ¿Qué entradas se requieren? (cantidad y tipo)
• ¿Cuál es la salida deseada? (cantidad y tipo)
• ¿Qué método produce la salida deseada?

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Pasos para resolver un problema
Diseño de Algoritmos
• En la fase de análisis en el proceso de programación se
determina que hace el programa. En la fase de diseño se
determina como hace el programa la tarea solicitada.

• Los métodos utilizados para el proceso del diseño se


basan en el conocido divide y vencerás. Es decir la
resolución de un problema complejo se realiza dividiendo
el problema en subproblemas y a continuación dividir estos
subproblemas en otros de nivel mas bajo, hasta que sea
implementada una solución en la computadora. Este
método se conoce técnicamente como
diseño descendente (top-down) o modular.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Pasos para resolver un problema
Diseño de Algoritmos
• Cada programa bien diseñado consta de un programa principal
(el módulo de nivel mas alto) que llama a subprogramas
(módulos) de nivel mas bajo, que a su vez pueden llamar a otros
subprogramas.

• Los módulos pueden ser planeados, codificados, comprobados y


depurados independientemente y a continuación combinarlos
entre sí. Este proceso implica la ejecución de estos pasos hasta
que el programa se ha terminado:
– Programar un módulo
– comprobar el módulo
– Si es necesario, depurar el módulo
– Combinar el módulo, con el resto de los otros módulos

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Pasos para resolver un problema
Diseño de Algoritmos
• El diseño del algoritmo es independiente del
lenguaje de programación en el que se vaya a
codificar posteriormente.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Pasos para resolver un problema
Codificación y depuración

• Codificación: Es la escritura en un lenguaje de


programación de la representación de un
algoritmo. Dado que el diseño del algoritmo es
independiente del lenguaje de programación
utilizado en su implementación, el código
puede ser escrito con igual facilidad en un
lenguaje o en otro.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Pasos para resolver un problema
Codificación y depuración

• Compilación y ejecución: Una vez que el


algoritmo se ha convertido en un programa
fuente, es preciso introducirlo en memoria
mediante el teclado y almacenarlo
posteriormente en un disco. Esta operación se
realiza con un editor de texto, posteriormente
el programa fuente se convierte en un archivo
de programa que se guarda en un disco.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Pasos para resolver un problema
Codificación y depuración
• El programa fuente debe ser traducido a lenguaje
máquina. Este proceso se realiza con el compilador y
el sistema operativo que se encarga prácticamente de
la compilación.

• Si al compilar el programa fuente se presentan errores


( errores de compilación), es necesario volver a editar
el programa, corregir los errores y compilar de nuevo.
Esto se repite hasta que ya no se presenten mas
errores, obteniéndose el programa objeto, el cual
todavía no es ejecutable directamente.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Pasos para resolver un problema
Codificación y depuración

• Al ya no existir errores en el programa fuente


se debe instruir al sistema operativo para que
efectúe la fase de montaje o enlace, del
programa fuente con las librerías del
programa del compilador. Este proceso de
montaje produce un programa ejecutable.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Pasos para resolver un problema
Codificación y depuración

• Cuando se ha creado un programa ejecutable


este se puede ya ejecutar desde el sistema
operativo con solo teclear su nombre.

• Suponiendo que no existen errores durante la


ejecución (errores en tiempo de ejecución), se
obtendrá la salida de resultados correctos del
programa.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Pasos para resolver un problema
Verificación y depuración

• Verificación y depuración: Es el proceso de


ejecución del programa con una amplia
variedad de datos de entrada, llamados datos
de test o prueba como son: valores normales
de entrada, valores externos de entrada que
comprueben los límites del programa y valores
de entrada que comprueben aspectos
especiales del programa. Estos determinarán
si el programa contiene errores o no.
Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I
Pasos para resolver un problema
Verificación y depuración
Al ejecutar un programa se pueden producir tres tipos
de errores:

• Errores de Compilación: Se producen normalmente


por un uso incorrecto de las reglas del lenguaje de
programación, suelen ser errores de sintaxis.

• Errores de Ejecución: Se producen por instrucciones


que la computadora puede comprender pero no
ejecutar. En estos casos se detiene la ejecución del
programa y se imprime un mensaje de error. Ejemplo
de esto puede ser una división por cero.
Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I
Pasos para resolver un problema
Verificación y depuración
Al ejecutar un programa se pueden producir tres tipos
de errores:

• Errores Lógicos: Se producen en la lógica del


programa y la fuente del error suele ser el diseño del
algoritmo, son mas difíciles de detectar puesto que el
programa puede funcionar y no producir errores de
compilación ni de ejecución pero regresará resultados
incorrectos. En este caso se debe regresar a la fase
de diseño, modificar el algoritmo, cambiar el programa
fuente y compilar y depurar una vez mas.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Pasos para resolver un problema
Documentación
• Documentación: La importancia de la documentación
debe ser destacada por su influencia en la etapa final,
ya que programas pobremente documentados son
difíciles de leer, mas difíciles de depurar y casi
imposibles de mantener y modificar.

• Puede ser interna y externa. La documentación


interna es la contenida en líneas de comentarios. La
documentación externa incluye análisis, diagramas de
flujo y/o pseudocódigos, manuales de usuarios con
instrucciones para ejecutar el programa y para
interpretar los resultados.
Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I
Pasos para resolver un problema
Documentación
• La documentación es vital cuando se desea corregir
posibles errores futuros o bien cambiar el programa.
Estos cambios se denominan mantenimiento del
programa.

• Además es de buena costumbre para todo buen


programador, dejar comentado su código, esto es
para que el futuro programador pueda darle
mantenimiento fácilmente a el programa, o incluso, si
es el mismo creador quien debe darle mantenimiento.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Diseño de Algoritmos
• El Sistema para escribir un algoritmo consiste
en hacer una descripción paso a paso con un
lenguaje natural del citado algoritmo. Siendo
estos un conjunto de pasos para resolver un
problema.

• Estos tienen las siguientes propiedades :


• Deberán seguir una secuencia definida por pasos
hasta obtener un resultado distinto.
• Podrán ejecutarse cada vez que se requiera para
distintos datos.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Diseño de Algoritmos
Representación grafica de los Algoritmos

• La representación de un algoritmo se logra


mediante la independizacion de este, del lenguaje
de programación elegido. Con esto se logra que
pueda ser representado en cualquier lenguaje .
Para ello debe ser representado grafica y
numéricamente , así cualquier lenguaje de
programación será capaz de interpretar su
codificación.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Diseño de Algoritmos
Representación grafica de los Algoritmos

• Un algoritmo se representa tomando las


siguientes consideraciones:

• Diagrama de Flujo

• Diagrama Nassi- Schneiderman

• Pseudocódigo

• Lenguaje español

• Formulas
Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I
Diseño de Algoritmos
Pseudocódigo

– Es un lenguaje muy parecido al lenguaje utilizado para


escribir programas por computadora, es decir, un lenguaje
de pseudoprogramación.

– El pseudocódigo se concibió para superar las dos


principales limitaciones de los lenguajes algorítmicos
gráficos: son lentos de crear y difíciles de modificar sin un
nuevo dibujo.

– Por otra parte, el pseudocódigo es más fácil de utilizar ya


que es similar al nuestro, es una mezcla de lenguaje
natural y símbolos, términos y otras características
utilizadas en lenguajes de alto nivel (palabras reservadas).
Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I
Diseño de Algoritmos
Pseudocódigo
Las principales características de los pseudocódigos son:
3. Utilizan los operadores Aritméticos, Relacionales y
Lógicos.

2. Los nombres de sus identificadores (variables,


constantes, nombre del pseudocódigo, etc.), deben
cumplir con las reglas para la creación de los mismos.

3. Se pueden incluir comentarios dentro del pseudocódigo


para hacerlo más entendible, utilizando dos diagonales
invertidas [\\].

4. Se debe dejar una indentación (sangría o margen) en los


bloques de instrucciones.
Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I
Diseño de Algoritmos
5. Usa ciertas palabras claves (reservadas) utilizadas de
modo general en los diferentes lenguajes de
programación:
PSEUDOCÓDIGO, VARIABLES, INICIO, FIN, LEE,
ESCRIBE, IMPRIME, IF_THEN_ELSE, CASE OF, FOR DO,
WHILE DO REPEAT UNTIL, ARRAY.

4. Deben iniciar con el nombre del pseudocódigo, seguido


de la declaración de variables y luego el cuerpo del
pseudocódigo:
PSEUDOCÓDIGO nombre
DECLARACIONES DE VARIABLES
INICIO
\\ CUERPO DEL PSEUDOCÓDIGO
FIN

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Diseño de Algoritmos
– Ejemplo: Diseñe un pseudocódigo que lea 3 números,
los sume e imprima su resultado.

PSEUDOCÓDIGO sumatoria
VARIABLES
eN1, eN2, eN3, eSuma: Entero
INICIO
ESCRIBE ?Dame tres números:?
LEE eN1, eN2, eN3
eSuma = eN1 + eN2 + eN3
ESCRIBE ?El resultado de la suma es: ?, eSuma
FIN

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Diseño de Algoritmos
– Otro Ejemplo de Pseudocodigo:

Algoritmo Superficie_Circunferencia
const
PI = 3.14
var
entero: radio, s
inicio
leer( radio )
s = PI * radio * radio
escribir( “La superficie de la circunferencia de radio”,
radio, “es igual a “, s )
Fin_algoritmo

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Diseño de Algoritmos
Diagrama de Flujo (DFD)

– Es aquel diagrama que utiliza símbolos estándar y


en el que cada paso del algoritmo se visualiza
dentro del símbolo adecuado y el orden en que los
pasos se ejecutan se indica conectándolos con
flechas llamadas "líneas de flujo" porque indican el
flujo lógico del algoritmo.

– Es un medio de presentación visual y gráfica del


flujo de datos, las operaciones ejecutadas y la
secuencia en que se ejecutan dentro del algoritmo.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Diseño de Algoritmos
Algunos símbolos usados
Representa el inicio o el fin de un
A: Inicio / Fin
programa.

Representa cualquier tipo de


B: Entrada / Salida introducción de datos o salida de
información a la pantalla.

Indica cualquier tipo de operación


C: Proceso que pueda originar un cambio de
valor, operaciones aritméticas, etc.

Indica operaciones lógicas de


comparación de valores. En función al
D: Desición
resultado de la misma se determinará
el camino a seguir.

Enlaza dos partes de un diagrama de


E: Conector
flujo.

Muestran el sentido de ejecución de


F: Líneas de Flujo
las operaciones.

Se usa como símbolo de salida de


G: Impresora
información a través de impresora.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Diseño de Algoritmos
• Ejemplo: Diseñe un diagrama de flujo que lea 3
números, los sume e imprima el resultado.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Diseño de Algoritmos
• Las estructuras condicionales simples se les
conoce como “Tomas de decisión”. Estas tomas
de decisión tienen la siguiente forma:

Pseudocódigo: Diagrama de flujo:

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Diseño de Algoritmos
• Las estructuras condicionales dobles permiten
elegir entre dos opciones o alternativas posibles
en función del cumplimiento o no de una
determinada condición. Se representa de la
siguiente forma:

Pseudocódigo: Diagrama de flujo:

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Diseño de Algoritmos
• Las estructuras de comparación múltiples, son
tomas de decisión especializadas que permiten
comparar una variable contra distintos posibles
resultados, ejecutando para cada caso una serie
de instrucciones especificas. La forma común es
la siguiente:
Pseudocódigo: Diagrama de flujo:

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Diseño de Algoritmos
• Realizar un algoritmo en donde se pide la edad del usuario;
si es mayor de edad debe aparecer un mensaje indicándolo.
Expresarlo en Pseudocódigo y Diagrama de flujos. :
Pseudocódigo: Diagrama de flujo:

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Diseño de Algoritmos
• Se pide leer tres notas del alumno, calcular su definitiva en
un rango de 0-5 y enviar un mensaje donde diga si el
alumno aprobó o reprobó el curso. Exprese el algoritmo
usando Pseudocódigo y diagrama de flujos. . :
Pseudocódigo:

INICIO
Not1, Not2, Not 3 :REAL
Def: REAL
ESCRIBA ( “ Introduzca las
notas”)
LEA Not1, Not2, Not3
Def = (Not1 + Not2 + Not3) /3
Si Def < 3 entonces
Escriba “Reprobó el curso”
Sino
Escriba “Aprobó el curso”
Fin-Si
FIN
Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I
Diseño de Algoritmos

Diagrama de flujo:

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Diseño de Algoritmos

• Se desea escribir un algoritmo que pida la altura de


una persona, si la altura es menor o igual a 150 cm
envíe el mensaje: “Persona de altura baja”; si la altura
está entre 151 y 170 escriba el mensaje: “Persona de
altura media” y si la altura es mayor al 171 escriba el
mensaje: “Persona alta”.

Exprese el algoritmo usando Pseudocódigo y


diagrama de flujos.

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Diseño de Algoritmos

Pseuocódigo INICIO
Altura: ENTERO
ESCRIBA “Cuál es tu altura? ”
LEA Altura
Si Altura <=150 entonces
ESCRIBA “persona de altura baja”
Sino
Si Altura <=170 entonces
ESCRIBA “persona de altura media”
Sino
Si Altura>170 ENTONCES
ESCRIBA “persona alta”
Fin-Si
Fin-Si
Fin-Si
FIN

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I


Diseño de Algoritmos

Diagrama de Flujo

Presentado por: Ing. Erick Ramos M.Sc. ALGORITMOS, ESTRUCTURAS Y PROGRAMACION I