Está en la página 1de 58

CAPÍTULO III

PROGRAMACIÓN ALGORÍTMICA
Los paradigmas de programación

Diagramación y programación algorítmica


OBJETIVOS

Comprender e identificar los diferentes paradigmas de


programación.

Aplicar los métodos de diagramación y programación


algorítmica de manera manual en software como DIA, PSeInt.
Qué es un paradigma?
Paradigma es un modelo o patrón en cualquier disciplina científica.

Etimológicamente significa «modelo» o «ejemplo» . A su vez tiene las


mismas raíces que «demostrar».
Qué son paradigmas de programación?

Un paradigma de programación es una propuesta tecnológica


que es adoptada por una comunidad de programadores
cuyo núcleo central es incuestionable en cuanto a que
unívocamente trata de resolver uno o varios problemas
claramente delimitados.
Tipos de paradigmas de programación más
comunes :
• Imperativo o por procedimientos: es considerado el más común y está representado, por ejemplo, por C, BASIC o Pascal. Los
programas imperativos son un conjunto de instrucciones que le indican al computador cómo realizar una tarea.

• Declarativo: por ejemplo la programación funcional, la programación lógica, o la combinación lógico-funcional. está basado en el
desarrollo de programas especificando o "declarando" un conjunto de condiciones, proposiciones, afirmaciones, restricciones,
ecuaciones o transformaciones que describen el problema y detallan su solución.

- Funcional: está representado por Scheme o Haskell. Esta basado en la utilización de funciones aritméticas que no maneja datos
mutables o de estado.

- Lógico: está representado por Prolog. La programación lógica encuentra su hábitat natural en aplicaciones de inteligencia artificial o
relacionadas: sistema experto|Sistemas expertos, donde un sistema de información imita las recomendaciones de un experto sobre
algún dominio de conocimiento.

• Orientado a objetos: está representado por Smalltalk, un lenguaje completamente orientado a objetos. La programación orientada a
objetos es un paradigma que utiliza objetos como elementos fundamentales en la construcción de la solución. Un objeto es una
abstracción de algún hecho o ente del mundo real que tiene atributos que representan sus características o propiedades y métodos
que representan su comportamiento o acciones que realizan. Ej: C++ , Visual Basic, Fortran, Java
Python es un lenguaje multiparadigma, esto significa que combina
propiedades de diferentes paradigmas de programación. Principalmente
es un lenguaje orientado a objetos, todo en Python es un objeto, pero
también incorpora aspectos de la programación imperativa, funcional,
procedural y reflexiva.
Qué es un programa de computador?

Un programa de computador es un conjunto de


instrucciones que una vez ejecutadas realizarán una o
varias tareas en una computadora
Qué pasos debo seguir para realizar
un programa de computador?
Pasos Etapa Descripción

1 Análisis del problema Conducen al diseño detallado por medio un pseudocódigo escrito en forma de un algoritmo y
creación de un diagrama de flujo
2 Diseño de algoritmo y
diagramación

3 Codificación Se implementa el algoritmo en un código escrito en un lenguaje de programación. Refleja las


ideas desarrolladas en las etapas de análisis y diseño

4 Compilación y ejecución Traduce el programa fuente a programa en código de máquina y lo ejecuta.


 

5 Verificación Busca errores en las etapas anteriores y los elimina.


6 Depuración
7 Documentación Son comentarios, etiquetas de texto, que facilitan la comprensión del programa
Algoritmos de programación
Concepto de algoritmo
Los seres humanos realizamos una serie de pasos, procedimientos o acciones
que nos permiten alcanzar un resultado o resolver un problema, esto se
repite innumerables veces durante el día. En realidad estamos aplicando un
algoritmo para resolver un problema.

Definición de Algoritmo.- secuencia ordenada y cronológica de pasos que


llevan a la solución de un problema o a la ejecución de una tarea (o
actividad).
• El algoritmo debe tener las siguientes características:
 Tener un principio
 Ser simples, claros, precisos, exactos.
 Tener un orden lógico.
 Debe ser finito.
 Tener un fin.

• La definición de un algoritmo debe describir tres partes:


 Entrada.
 Proceso.
 Salida
Pseudocódigo
• La serie de pasos, procedimientos o acciones que nos permiten alcanzar un
resultado o resolver un problema a través de algoritmos, los desarrollamos
por medio de pseudocódigo.

• El pseudocódigo describe un algoritmo utilizando una mezcla de frases en


lenguaje común, instrucciones de programación y palabras clave que
definen las estructuras básicas.

• El objetivo del pseudocódigo es permitir que el programador se centre en


los aspectos lógicos de la solución, evitando las reglas de sintaxis de los
lenguajes de programación.

• No siendo el pseudocódigo un lenguaje formal, los pseudocódigo varían de


un programador a otro, es decir, no hay un pseudocódigo estándar.
Estructura y diseño de un algoritmo

Existe una gran cantidad de problemas que requieren de un análisis profundo y de un


pensamiento flexible y estructurado para la solución.

La idea es ofrecer un conjunto de técnicas y herramientas metodológicas que permitan


flexibilizar y estructurar el razonamiento utilizado en la solución de problemas, esto provocará
finalmente la construcción de algoritmos eficientes.

A continuación en la figura podemos observar las etapas que debemos seguir para la
solución de un problema

Problema

Análisis Construcción Verificación


profundo del del el
problema algoritmo algoritmo
Construcción de algoritmos

• La secuenciación es una estructura de control que permite a la


computadora ejecutar una acción, después otra, luego la que sigue y así
sucesivamente hasta la última.
• Dichas acciones pueden consistir en operaciones primitivas elementales
como declaraciones de variables, leer datos, imprimir datos o calcular
alguna expresión.
• Es conveniente etiquetar cada acción con números desde el uno en forma
ascendente de uno en uno, para denotar el orden secuencial.
• Por lo tanto los elementos básicos que integran la estructura de un
algoritmo son:
Construcción de algoritmos

1. Encabezado.- todo algoritmo debe tener un encabezado como identificación, el cual debe
empezar con la palabra Algoritmo seguida por una descripción del problema a resolver.
2. Inicio.- todo algoritmo debe empezar con la etiqueta 1, que marca el inicio del mismo.
3. Declaraciones.- después de marcar el inicio se debe hacer las declaraciones que se
necesiten como: variables, constantes, tipos de datos, etc.
4. Leer, calcular e imprimir.- los siguientes pasos pueden consistir en acciones tales como:
leer datos, calcular algunas expresiones aritméticas e imprimir datos tantas veces como se
requiera y en el orden apropiado para resolver el problema en cuestión.
5. Fin del algoritmo.- el último paso del algoritmo consiste en incluir la indicación fin.
Ejemplo No 1
Calcular e imprimir el sueldo de un empleado, se pedirá la clave del empleado, las horas trabajadas y el
pago por hora trabajada.

Algoritmo 1: Calcular el sueldo de un empleado

1. Inicio
2. Declaración de variables:
cve, ht: entero
pht, sueldo: real (flotante)
3. Leer cve, ht, pht
4. sueldo = ht * pht
5. Imprimir cve, sueldo
6. Fin
Ejemplo No 2
Desarrollar un algoritmo que permita leer un número en radianes e imprima su
equivalencia en grados; así mismo, leer un número en grados e imprima su equivalencia
en radianes.

Algoritmo 2: Convierte radianes a grados y grados a radianes

1. Inicio
2. Declaración de variables:
PI = 3.145926536: real (flotante)
rad, grad, numrad, numgrad: real (flotante)
3. Leer rad, grad
4. numgrad = rad * (180 / PI)
5. numrad = grad * (PI / 180)
6. Imprimir numgrad, numrad
7. Fin
Ejemplo No 3
Desarrollar un algoritmo para calcular el promedio de un estudiante, se pedirá la
matricula del estudiante y cuatro calificaciones de los exámenes. Se imprimirá la
matricula del estudiante y el promedio.

Algoritmo 3: Calcular promedio de un estudiante

1. Inicio
2. Declaración de variables
matest: entero
cal1, cal2, cal3, cal4, calfin: real (flotante)
3. Leer matest, cal1, cal2, cal3, cal4
4. calfin = (cal1 + cal2 + cal3 + cal4) / 4
5. Imprimir matest, calfin
6. Fin
Diagramas de flujo
Debemos recordar que un diagrama de flujo debe ilustrar
gráficamente los pasos o procesos a seguir para alcanzar la
solución de un problema.

Los símbolos colocados adecuadamente, permiten crear una


estructura gráfica flexible que ilustra los pasos a seguir para
alcanzar un resultado específico.
El diagrama de flujo facilitará más tarde la escritura del
programa en algún lenguaje de programación
Reglas para la construcción de diagramas de flujo
1. Todo diagrama de flujo debe tener un inicio y un fin.
2. Todas las líneas utilizadas para indicar la dirección del flujo del diagrama deben estar
conectadas. La conexión puede ser a un símbolo que exprese lectura, proceso, decisión,
impresión, conexión o fin de diagrama.
3. El diagrama de flujo debe ser construido de arriba hacia abajo y de izquierda a derecha.
4. Las líneas utilizadas para indicar la dirección del flujo del diagrama deben ser rectas,
verticales y horizontales.
5. La notación utilizada en el diagrama de flujo debe ser independiente del lenguaje de
programación.
6. Es conveniente cuando realizamos una tarea compleja poner comentarios que expresen o
ayuden a entender lo que hicimos.
7. Si el diagrama de flujo requiere más de una hoja para su construcción, debemos utilizar los
conectores adecuados y enumerar las páginas convenientemente.
8. No puede llegar más de una línea a un símbolo.
Símbolos para la creación de diagramas de flujo

Símbolo utilizado para marcar el inicio y el fin del diagrama


flujo.
Símbolo utilizado para introducir los datos de entrada. Expresa lectura.

Símbolo utilizado para representar un proceso. En su interior se


expresan asignaciones, operaciones aritméticas, cambios de valor
de celdas en memoria, etc.

Símbolo utilizado para representar 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 o caminos
alternativos: verdadero o falso.
Símbolo utilizado para representar la impresión de un resultado.
Expresa escritura.

Símbolo utilizado para expresar conexión dentro de una misma


página.

Símbolos utilizados para expresar la dirección del flujo del diagrama

Símbolo utilizado para expresar conexión entre páginas diferentes.

Símbolo utilizado para representar 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 o caminos alternativos.
Diagrama de flujo Ejemplo 1

inicio

cve, ht
pht

sueldo = ht * pht

cve fin
sueldo
Diagrama de flujo Ejemplo 2

inicio

rad
grad

numgrad = rad * (180 / PI)

numgrad
numrad = grad * (PI / 180) fin
numrad
Diagrama de flujo Ejemplo 3

inicio

matest, cal1
cal2, cal3
cal4

calfin = (cal1 + cal2 + cal3 + cal4) / 4

matest fin
calfin
Contadores y acumuladores en programación
Contadores: algunas veces en programación se requiere tener un
control de las iteraciones que efectúa un programa, se puede contar
tanto incrementando Ejemplo: I=I+1 o decreciendo N=N-1, tenga en
cuenta que el igual es una asignación no una ecuación matemática.

Acumuladores: son variables en programación que permiten ir


guardando valores, pueden ser de suma o productoria, ejemplo
suma=suma+i o producto=producto*i
Ejemplo 4

Crear un algoritmo y un Diagrama de flujo que


encuentra la suma de los primeros N números
naturales
Algoritmo 4: Suma de los primeros N números naturales

1. Inicio
2. Declaración de variables
N, i, suma: entero “Se crean las variables a usar en el programa”
3. Leer N “Entrada de datos al programa”
4. suma=0 “arranque del acumulador”
5. i=1 “Arranque del contador”
6. Si i>N al paso 8 “Criterio de parada”
7. Si no suma= suma +i “Proceso iterativo, incrementa el acumulador”
i=i+1 pasar al paso 6 “Aumenta el contador y va a 6”
8. Imprima suma “Imprime resultados del programa con mensajes”
9. fin
Inicio

suma=0 Con contador creciente


i=1

Si
i>N
Ciclo o bucle
suma
No

suma=suma + i
i = i +1

Fin
Inicio

N
Con contador decreciente
suma=0

Si
N=0

suma
No

suma=suma + N
N=N-1

Fin
Inicio

suma=0

No
N<>0

suma
Si

suma=suma + N
N=N-1

Fin
Ejemplo 5
Crear un algoritmo y un Diagrama de flujo que permita
escribir los 100 primeros pares
Algoritmo 5: Escribe los 100 primeros pares

1. Inicio
2. Declaración de variables
N, p: entero
3. N=100
p=0
4. Si N>0
imprima p
p=p+2
N=N-1 pasar al paso 4
5. Si no pasar al siguiente
6. fin
INICIO

N=100
p= 0
Con contador decreciente

No
N>0 Fin

Si
Prueba de escritorio
Para los 3 primeros p
pares
N= 3 2 1 0
P= 0 2 4 6
p=p + 2
N=N-1
INICIO

N=100
p= 0
i=1 Con contador creciente

No
i<=N Fin

Si
Prueba de escritorio
Para los 3 primeros p
pares
N= 3
P= 0 2 4
i=1 2 3 4
p=p + 2
i=i+1
Prueba de escritorio
Para los 3 primeros pares
P= 0 2 4 6
i= 1 2 3 4
Ejemplo 6
Crear un algoritmo y un Diagrama de flujo que pida 3
números y diga cual es el mayor
Algoritmo 6: Determina cual es el mayor de 3 números

1. Inicio
2. Declaración de variables
a,b,c,mayor: entero
3. Leer a,b,c
4. mayor=a
5. Si mayor>b
Si mayor>c
6. imprima “a es el mayor” pasar 11
7. Si no imprima “c es el mayor” pasar 11
8. Si no, haga mayor=b
9. Si mayor>c

imprima “b es el mayor” pasar 11


10.Si no imprima “c es el mayor” pasa11

11. fin
Encuentra el mayor de N números

Con contador creciente


mayor
Ejemplo 7

La sucesión de Fibonacci se define de la siguiente forma: a1=1


a2=1 a3=2 a4=3 an=an-1 + an-2
Para n>2, es decir, los dos primeros son 1 y el resto cada uno es
la suma de los dos anteriores, los primeros son: 1, 1, 2, 3, 5,
8, 13, 21, …. Hacer un algoritmo y un diagrama de flujo para
calcular el N-ésimo
término de la sucesión.
Algoritmo 7: Determina el N-ésimo termino de la sucesión de Fibonacci

1. Inicio
2. Declaración de variables
N,a,b,c: entero
3. Leer N
4. Si N<=2
5. imprimir 1 pasar al paso 10
6. Si no
a=1
b=1
7. c=a+b
a=b
b=c
N=N-1
8. Si N=2 imprimir b pasar al paso 10
9. Si no pasar al paso 7
10. fin
Inicio

Si No
N<=2 a=1

b=1

c=a+b

a=b

b=c

N=N-1

1 Si No
b N=2

Fin
Si No

N=3
a112
B123
C23
I234
Ejemplo 8
Hacer un algoritmo y un diagrama de flujo
que lea N números y escriba la suma de
los pares y el producto de los impares
Algoritmo 8:Determina la suma de pares y producto de impares de N
números
1. Inicio
2. Declaración de variables
N,sp,pi, A: entero
3. Leer N
4. sp=0
5. pi=1
6 leer A

7 Si el resto de A entre 2=0

sp=sp+A pasar 9
8.Si no pi=pi*A
9. N=N-1
10. Si N=0
imprimir sp, pi pasar 12
11. Si no pasar al paso 6
12. fin
Inicio

sp=0

pi=1

A
Si No
A MOD 2=0

sp=sp+A pi=pi*A

N=N-1
No
N=0
Si
sp,pi

Fin
Inicio

sp=0

pi=1
i=0
A
Si No
A MOD 2=0

sp=sp+A pi=pi*A

i=i+1
No
N<=i
Si
sp,pi

Fin
Ejemplo 9
Hacer un algoritmo y un diagrama de flujo
para calcular AB , siendo B un entero,
nótese que B puede ser cero o negativo.
No se puede emplear logaritmos. No se
debe usar el símbolo de potenciación.
Algoritmo 9: Calcular AB
1. Inicio
2. Declaración de variables
A,B,p: entero
3. Leer A,B
4. p=1
5. Si B=0 pasar 12
6. Si no
Si B>0 pasar a 8
7. Si no
A=1/A
B=-B
8. p=p*A
9. B=B-1
10. Si B=0 pasar 12
11 Si no pasar 8
12.imprimir p
13. fin
Inicio

A,B

p=1

B=0
No Si
B>0
No Si

A=1/A

B=-B
p=p*A
B=B-1

No B=0
Si
p

Fin
Ejemplo 10
Hacer un algoritmo y un diagrama de flujo
para calcular el factorial de N (N!
=1*2*3*….*N)
Algoritmo 10: Calcular Factorial de N

1. Inicio
2. Declaración de variables
N,p: entero
3. Leer N
4. p=1
5. Si N>1
p=p*N
N=N-1 pasar al paso 5
6. Si no imprimir p
13. fin
Inicio

P=1
i=1

No P
i<=N

Si

P=P*i
Fin
i=i+1

También podría gustarte