You are on page 1of 41

UNIDAD 2.

ENTIDADES PRIMITIVAS PARA EL


DESARROLLO DE ALGORITMOS

2.1 Fórmulas matemáticas


2.2 Tipos de datos
2.3 Identificadores, constantes y variables.
2.1 Fórmulas matemáticas
Expresiones: son combinaciones de constantes, variables,
símbolos de operación, paréntesis y nombres de funciones
especiales. Ejemplo:
A+(b+3)/c
Cada expresión toma un valor que se determina tomando los
valores de variables y constantes implicadas y la ejecución de
las operaciones indicadas.
Una expresión consta de operadores y operandos.
Operadores: son signos que nos permiten expresar
relaciones entre variables y/o constantes, relaciones de las
cuales normalmente se desprende un resultado.
Según sea el tipo de datos que manipulan las expresiones,
se clasifican en:
Aritméticas
Relacionales
Lógicas
2.2 Tipos de datos
Simples: su principal característica es que
ocupan sólo una casilla de memoria, por lo
tanto, una variable simple hace referencia a un
único valor a la vez.
Tipos de datos simples
Enteros
Reales
Caracteres
Booleanos
Enumerados*
Subrangos*
* No existen en algunos lenguajes de programación.
2.2 Tipos de datos
Estructurados: se caracterizan por el hecho de
que con un nombre (identificador de variable
estructurada) se hace referencia a un grupo de
casillas de memoria. Es decir, un dato
estructurado tiene varios componentes. Cada uno
de los componentes puede ser a su vez un dato
simple o estructurado. Sin embargo, los
componentes básicos (de nivel más bajo) de
cualquier tipo estructurado son datos simples.
Arreglos
Cadena de caracteres
Registros
Conjuntos
2.2 Tipos de datos

Identific Identific
ador ador

a). Datos b). Datos


simples estructurados
2.2.1 Tipos de datos simples
Numéricos: dentro de este tipo de dato se
encuentran los enteros y los reales.
Enteros: son números que pueden estar
precedidos del signo + (más) o – (menos), y
que no tienen parte decimal. Ejemplos:
128 1538 -756.
Reales: son números que pueden estar
precedidos por el signo + o -, y que tienen
una parte decimal. Ejemplos:
7.5 128.0 -74.98 -18.0
2.2.1 Tipos de datos simples
Alfanuméricos: es una secuencia de
caracteres alfanuméricos que permiten
representar valores identificables de forma
descriptiva, esto incluye nombres de personas,
direcciones, etc.
Es posible representar números como
alfanuméricos, pero éstos pierden su propiedad
matemática, es decir, no se pueden hacer
operaciones con ellos. Este tipo de datos se
representan encerrados entre paréntesis.
Ejemplos:
“Universidad Politécnica de Morelos”
“01777-3091283”
“65890”
2.2.1 Tipos de datos simple

Lógicos: dentro de este tipo de datos se


encuentran los booleanos. Los datos booleanos
solo pueden tomar dos valores: verdadero (true)
o falso (false). Representan el resultado de
comparación entre dos datos.
2.3 IDENTIFICADORES,
CONSTANTES Y VARIABLES
Identificador: es una secuencia de
caracteres que sirve para identificar una
posición en la memoria de la computadora,
que nos permite acceder a su contenido.
Ejemplo: nombre, num_horas y calif2.
Reglas para formar un identificador
El primer carácter que forma un identificador
debe ser una letra (mayúscula o minúscula).
Los demás caracteres pueden ser letras,
dígitos o el símbolo _ (guión bajo).
2.3 IDENTIFICADORES,
CONSTANTES Y VARIABLES
Constante: son datos que no cambian durante la
ejecución de un programa. Para nombrar las
constantes se utilizan los identificadores. Los tipos
de constantes son de los tipos de datos, por lo
tanto puede haber constantes enteras, reales,
carácter, cadena de caracteres, booleanas, etc.
Variable: 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. Los nombres de las
variables deben ser representativas de la función
que cumplen en el programa.
2.3 IDENTIFICADORES,
CONSTANTES Y VARIABLES
Ejemplo:

area = pi * radio ^ radio

Variables: area y radio.


Constante: pi.

Las variables son como cajitas de diferentes tamaños y por


tal motivo se deben declarar previamente para que el
computador las dimensione de acuerdo a las necesidades.
Existen tipos de variables como tipos de datos existentes.
2.3.1Clasificación de variables
Tipo de variable según su contenido
Numéricas
Lógicas
Alfanuméricas
Tipo de variable según su uso
Variables de trabajo: son variables que reciben el
resultado de una operación matemática completa y que
se usan normalmente dentro de un programa.
Contadores: se utilizan para llevar el control del número
de ocasiones en que se realiza una operación o se
cumple una cierta condición. Pueden incrementar o
decrementar su valor.
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.
UNIDAD 3.
TÉCNICAS DE DISEÑO

3.1 Técnicas de diseño TOP-DOWN.


3.2 Técnicas de diseño BOTTOM-UP.
INTRODUCCIÓN
La forma en que se plantea un
problema, es fundamental para
alcanzar una solución satisfactoria
del mismo.
En esta unidad se plantean dos
técnicas de diseño para el
planteamiento de problemas.
• Técnicas de diseño Top-Down.
• Técnicas de diseño Bottom-Up.
3.1 Técnicas de diseño TOP-DOWN
(ascendente, arriba-abajo)
Este diseño consiste en una serie de
descomposiciones sucesivas del problema
inicial, que recibe el refinamiento
progresivo del repertorio de instrucciones
que van a formar parte del programa.
Objetivos básicos
Simplificación del problema y de los subprogramas
de cada descomposición.
Las diferentes partes del problema pueden ser
programadas de modo independiente e incluso por
diferentes personas.
El programa final queda estructurado en forma de
bloque o módulos lo que hace más sencilla su lectura
y mantenimiento.
3.1 Técnicas de diseño BOTTOM-UP
(ascendente)
Este diseño se refiere a la identificación de
aquellos procesos que necesitan computarizarse
conforme vayan apareciendo, su análisis como
sistema y su codificación, o bien, la adquisición de
paquetes de software para satisfacer el problema
inmediato.
Diseño ascendente o “bottom-up”:
Primero se hace una planificación de los módulos de
bajo nivel que se vayan a necesitar.
Se desarrollan las partes más detalladas y con mayor
nivel de dificultad en primer lugar.
Se realiza el diseño del resto del sistema, acomodando
los diseños previos, hasta llegar finalmente al diseño del
sistema final.
Puede resultar una estructura de control inadecuada.
UNIDAD 4.
TÉCNICAS PARA LA
FORMULACIÓN DE ALGORITMOS

4.1 Programación estructurada


4.2 Diagrama de flujo
4.3 Pseudocódigo
4.4 Diagramas estructurados (Nassi-
Schneiderman)
INTRODUCCIÓN

El proceso de desarrollo de
algoritmos y diagramas de flujo es
fundamental dentro de la creación de
programas de computadora en la
parte de programación estructurada.
Por ello, es necsario conocer y
manejar la terminología que se utiliza
dentro de estas herramientas de
desarrollo de la programación.
4.1 Programación estructurada
Es una forma de escribir programas de
forma clara, para ello utiliza únicamente
tres estructuras:
Secuencial
Selectiva
Iterativa
Siendo innecesario y no permitiéndose el
uso de la instrucción o instrucciones de
transferencia incondicional ( GOTO ).
4.1.1 Surgimiento de la programación
estructurada

A fines de los años sesenta.


Un famoso Teorema de Dijkstra,
demostrado por Edsger Dijkstra en los
años sesenta, demuestra que todo
programa puede escribirse utilizando
únicamente las tres instrucciones de
control siguientes:
Secuencial de instrucciones.
Instrucción condicional.
Iteración, o bucle de instrucciones.
Solamente con estas tres estructuras se
puede hacer un programa informático.
4.1.2 Secuencias estructuradas
(estructuras de control)
ESTRUCTURA SECUENCIAL: una estructura de programa es
secuencial si se ejecutan una tras otra a modo de secuencia.

Ejemplo:
auxiliar:= x
x:= y
y:= auxiliar

Esta secuencia de instrucciones permuta los valores de x e y, con


ayuda de una variable auxiliar, intermedia.
PASOS
1º Guardamos una copia del valor de x en auxiliar.
2º Guardamos el valor de y en x, se pierde el valor anterior de x pero no
importa porque tenemos una copia en auxiliar.
3º Guardamos en y el valor de auxiliar, que es el valor inicial de x.
El resultado es el intercambio de los valores de x e y, en tres
operaciones secuenciales.
4.1.2 Secuencias estructuradas
(estructuras de control)
ESTRUCTURA SELECTIVA: La estructura selectiva permite
la realización de una instrucción u otra según un criterio,
solo una de estas instrucciones se ejecutará.
Ejemplo:
si a > b entonces
Escribir a es mayor que b
si_no
Escribir a no es mayor que b
fsi

si señala el comienzo de la instrucción condicional, y se espera


que después esté la condición de control de la instrucción.
entonces señala el fin de la condición, y después estará la
instrucción a realizar si la condición es cierta.
si_no separa la instrucción que se ejecutará si la condición es
cierta de la que se ejecutará si es falsa.
fsi indica que la instrucción condicional finaliza y el programa
seguirá su curso.
4.1.2 Secuencias estructuradas
(estructuras de control)
ESTRUCTURA ITERATIVA: un bucle iterativo o iteración de una secuencia
de instrucciones, hace que se repitan mientras se cumpla una condición, en
un principio el número de iteraciones no tiene porque estar determinado.
Ejemplo:
a:= 0
b:= 7
mientras b > a hacer
Escribir a
a:= a + 1
mientras

Esta instrucción tiene tres palabras reservadas mientras, hacer y fmientras.


mientras: señala el comienzo del bucle y después de esta palabra se espera la
condición de repetición, si la condición es cierta se pasa al cuerpo del bucle, si
no al final de la instrucción mientras.
hacer: señala el final de la condición, lo que esté después será el cuerpo del
bucle.
fmientras: señala el final del cuerpo del bucle y de la instrucción mientras.
El bucle mientras, se repite mientras la condición sea cierta, esta condición se
comprueba al principio por lo que el cuerpo del bucle puede que no se ejecute
nunca, cuando la condición es falsa en un principio, o que se repita tantas veces
como sea necesario, mientras la condición sea cierta.
4.1.2 Secuencias estructuradas
(estructuras de control): Iterativa
En el ejemplo tenemos dos variables a y b que al iniciarse el
bucle tienen los valores a=0 y b=7.
La condición del bucle es b > a.
Cuando a=0 y b=7. la condición es cierta, en el cuerpo del
bucle se escribe el valor de a en pantalla y se incrementa a
en una unidad. Entonces a=1 y b=7.
...
...
Cuando a=6 y b=7. la condición es cierta, se escribe el valor
de a en pantalla y se incrementa en una unidad.
Resultando que a=7 y b=7. Entonces la condición es falsa y
la instrucción mientras finaliza.
La salida por pantalla de este ejemplo seria 0 1 2 3 4 5 6
Algunos lenguajes ofrecen un modelo de estructuras
iterativas algo diferente donde la condición puede variar en
cada iteración.
4.1.3 Anidamiento
El cuerpo de cualquier estructura puede ser una
instrucción simple u otra estructura, que a su vez
puede anidar a otra.
Ejemplo:
si a > b entonces
auxiliar:=a
a:= b
b:= auxiliar
si_no
nada
fsi
escribir a y b
4.1.4 Ventajas de la programación
estructurada
Los programas son más fáciles de entender. Un programa
estructurado puede ser leído en secuencia, de arriba hacia abajo,
sin necesidad de estar saltando de un sitio a otro en la lógica, lo
cual es típico de otros estilos de programación. La estructura del
programa es más clara puesto que las instrucciones están más
ligadas o relacionadas entre sí, por lo que es más fácil comprender
lo que hace cada función.
Reducción del esfuerzo en las pruebas. El programa se puede
tener listo para producción normal en un tiempo menor del
tradicional; por otro lado, el seguimiento de las fallas("debugging")
se facilita debido a la lógica más visible, de tal forma que los
errores se pueden detectar y corregir más fácilmente.
Reducción de los costos de mantenimiento.
Programas más sencillos y más rápidos.
Aumento de la productividad del programador.
Se facilita la utilización de las otras técnicas para el
mejoramiento de la productividad en programación.
Los programas quedan mejor documentados internamente.
4.1.5 Desventajas de la
programación estructurada
El principal inconveniente de este
método de programación, es que se
obtiene un único bloque de programa,
que cuando se hace demasiado grande
puede resultar problemático su manejo,
esto se resuelve empleando la
programación modular, definiendo
módulos interdependientes
programados y compilados por
separado, cada uno de los cuales ha
podido ser desarrollado con
programación estructurada.
4.2 Diagramas de flujo (flujogramas)

Es la representación gráfica de un algoritmo.


Es la representación detallada en forma gráfica de
cómo deben realizarse los pasos en la
computadora para producir resultados.
Está representación gráfica se da, cuando se
relacionan entre sí varios símbolos mediante
líneas que indican el orden en que se deben
ejecutar los procesos.
Si el diagrama de flujo está completo y correcto, el
paso del mismo a un lenguaje de programación es
relativamente simple y directo.
4.2.1 Características de los
diagramas de flujo
Según Gómez Cejas, Guillermo. Año 1.997:
Sintética: La representación que se haga de un
sistema o un proceso deberá quedar resumido en
pocas hojas, de preferencia en una sola. Los
diagramas extensivos dificultan su comprensión y
asimilación, por tanto dejan de ser prácticos.
Simbolizada: La aplicación de la simbología
adecuada a los diagramas de sistemas y
procedimientos evita a los analistas anotaciones
excesivas, repetitivas y confusas en su
interpretación.
De forma visible a un sistema o un proceso:
Los diagramas nos permiten observar todos los
pasos de un sistema o proceso sin necesidad de
leer notas extensas.
4.2.2 Símbolos de los diagramas de
flujo (flujogramas)

Representa el Inicio o el Fin del diagrama de


flujo (algoritmo).

Símbolo utilizado para introducir los datos de


entrada. Expresa lectura.

Representa un proceso. Indica la asignación


de un valor de memoria y/o la ejecución de
una operación aritmética.
4.2.2 Símbolos de los diagramas de
flujo (flujogramas)

Representa una decisión.


En su interior se almacena una condición, y
dependiendo del resultado de la evaluación de
la misma se sigue por una de las ramas, Si o
No.
Se utiliza en la estructura selectiva si
entonces y si entonces/sino y en las
estructuras repetitivas repetir y mientras.
Representa una decisión múltiple.
En su interior se almacena un selector, y
dependiendo del valor de dicho selector se
sigue por una de las ramas.
Se utiliza en la estructura selectiva si múltiple.
4.2.2 Símbolos de los diagramas de
flujo (flujogramas)

Representa la escritura (impresión) de un


resultado.

Se utilizan para expresar la dirección del flujo


del diagrama.

Conector lógico dentro de una página.


Representa la continuidad del diagrama
dentro de la misma página.
Conector lógico fuera de la página.
Representa la continuidad del diagrama en
otra página.
4.2.2 Símbolos de los diagramas de
flujo (flujogramas)

Representa la salida de datos en la pantalla o


monitor.

Representa los subprogramas.

Representa una entrada de datos utilizando el


teclado.
Lo que se escribe en su interior es el nombre
de la variable(s) en que se almacenará el dato
que entra en el teclado.
Etapas en la Proceso de
construcción de un información en la
diagrama de flujo computadora
Inicio

Lectura ENTRADA
de datos

Procesamiento PROCESO
de datos

Impresión SALIDA
de resultados

Fin
4.2.3 Reglas para el diseño de
diagramas de flujo
Todo diagrama de flujo debe tener un inicio y un fin.
Las líneas utilizadas para indicar la dirección del flujo del diagrama
deben ser rectas, verticales y horizontales. Se debe evitar el cruce
de líneas.
Todas las líneas utilizadas para indicar la dirección del flujo del
diagrama deben estar conectadas. La conección puede ser un
símbolo que exprese lectura, proceso, decisión, impresión,
conexión o fin de diagrama.
Los conectores solo se deben usar cuando sea necesario.
El diagrama de flujo debe estar construido de arriba hacia abajo
(top-down) y de izquierda a derecha.
La notación utilizada en el diagrama de flujo debe ser
independiente del lenguaje de programación.
Si el diagrama de flujo requiere más de una hoja, utilizar
conectores adecuados y enumerar las páginas convenientemente.
Un símbolo no puede llevar más de una línea.
Todo texto escrito dentro de un símbolo debe estar escrito
claramente, evitando el uso de muchas palabras.
VÁLIDOS

E NO VÁLIDOS
j
e
m
p
l
o
s
4.3 Pseudocódigo
Es la representación narrativa de los pasos que
debe seguir un algoritmo para dar solución a un
problema determinado.
Es una 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.
No hay ningún compilador o intérprete de
pseudocódigo informático, y por tanto no puede
ser ejecutado en una computadora, pero las
similitudes con la mayoría de los lenguajes
informáticos lo hacen fácilmente convertible.
4.3.1 Estructuras de control en
pseudocódigo
Secuencial
Instrucción 1
Instrucción 2


Instrucción n
Selectiva
si (condición) entonces
Instrucción 1
si_no
Instrucción2
fsi
Iterativa
mientras (condición) hacer
Instrucción
fmientras
4.3.2 Ventajas de pseudocódigo a
un diagrama de flujo
Ocupa menos espacio en una hoja de
papel.
Permite representar en forma fácil
operaciones repetitivas complejas.
Es muy fácil pasar de pseudocódigo a un
programa en algún lenguaje de
programación.
Si se siguen las reglas se puede observar
claramente los niveles que tiene cada
operación.
4.4 Diagramas estructurados
(Nassi-Schneiderman)
El diagrama estructurado N-S también
conocido como Diagrama de Chapín es
como un diagrama de flujo en el que se
omiten las flechas de unión y las cajas son
contiguas.
Las acciones sucesivas se pueden escribir
en cajas sucesivas y como en los
diagramas de flujo, se pueden escribir
diferentes acciones en una caja.
4.4 Diagramas estructurados
(Nassi-Schneiderman)
Inicio

Leer
Inicio Nombre, Hrs, Precio

Accion1 Calcular
Salario= Hrs*Precio
Accion2 Calcular
Imp = Salario * 0.15
...
Calcular
Fin Neto = Salario + Imp
Escribir
Nombre, Imp, Neto

Fin

You might also like