You are on page 1of 43

Algoritmos

y
Programas
Introducción
El objetivo de esta sesión consistirá
en explicar los conceptos de
algoritmo, programa y lenguaje de
programación. Así como explorar
otros temas concurrentes.
Una primera definición
Un algoritmo es una serie de pasos
organizados que describe el proceso a seguir
para solucionar un problema específico

La palabra algoritmo deriva de la traducción al


latín de la palabra árabe alkho warizmi, nombre
del matemático árabe que enunció reglas paso
a paso para sumar, restar, multiplicar y dividir
números decimales
2. Concepto de Algoritmo
La metodología de la programación
es aquella que es necesaria para
resolver problemas mediante
programas, su eje es el algoritmo.

Diseño
Problema del Programa
algoritmo
Pasos para la solución
de un problema
El diseño del algoritmo describe el
análisis del problema y desarrollo del
algoritmo.
Expresar el algoritmo como un
programa en un lenguaje de
programación.
Ejecutar y validar el programa por la
computadora.
Características de los
algoritmos
Preciso, indicará el orden de cada paso.
Definido, el mismo resultado se obtendrá
al ejecutar el algoritmo “n” ocasiones.
Finito, deberá terminar en algún
momento.
Ejemplo 2.1 Genere un algoritmo
que solucione la entrega de un
pedido a un cliente

Algoritmo cliente
Inicio
Leer el pedido
Examinar el historial crediticio del cliente
Si el cliente es solvente, entregar el
pedido. En caso contrario, rechazarlo.
Fin
Ejemplo 2.2 Genere un algoritmo que
sume los números entre el 3 y el 30.
Pseudocodigo Suma3_30
1. Inicio.
2. Hacer SUMA igual cero.
3. Asignar 3 a NUMERO.
4. Sumar NUMERO a SUMA.
5. Incrementar NUMERO en 1
6. Si NUMERO es menor o igual que 30 ir a 4; si
no imprimir a SUMA.
7. Fin
Ejemplo 2.3 Genere un algoritmo que
determine al mayor de tres números enteros.
Pseudocodigo Mayor
Inicio
Leer los números y guardarlos en NUM1, NUM2
y NUM3 respectivamente
Comparar NUM1 y NUM2, el número mayor se
guarda en AUX.
Comparar AUX y NUM3, imprimir el número
mayor.
Fin.
Tarea 2.1 Diseñe un algoritmo para
determinar si un número es primo o no.

Tarea 2.2 Genere un algoritmo que


sume los números entre el 2 y el 20.

Tarea 2.3 Genere un algoritmo que


sume los números entre el 5 y el 50 con
incrementos de 5 en 5
.
Solución número primo
Pseudocodigo Nprimo
1. Inicio
2. Leer valor de N
3. Asignar 2 a X
4. Dividir N por X (N/X)
5. Si el resultado de N/X es entero, entonces N
no es primo, ir a Fin. Caso contrario continuar
proceso
6. Suma 1 a X (X <- X + 1)
7. Si X es igual a N , entonces N es número
primo, caso contrario, ir al punto 4.
8. Fin
3. Los lenguajes de
programación
Cuando el procesador de datos es una
computadora entonces el algoritmo de
solución se expresa en un programa.
Por tanto, un programa es escrito en un
lenguaje de programación.
Luego, la programación consiste en
expresar las operaciones en forma de
programa de un algoritmo.
Instrucciones básicas
Entrada/Salida; transferencia de información entre
dispositivos periféricos y memoria central.

Aritmético/Lógicas; ejecutan operaciones de éstos


tipos.

Selectivas; seleccionan tareas en función de los


resultados

Repetitivas; permiten la iteración de secuencias de


instrucciones un número dado de veces
5. Constantes y Variables
Constantes: valores que durante la
ejecución de un programa no
cambian su valor.

Variables: valores que cambiarán


durante la ejecución del programa
8. Operación de Asignación

Es la forma de darle valores


tanto a variables como
constantes, se representa con el
símbolo
Tipos de asignación
Aritmética

Lógica

Cadena de carácteres
9. Entrada y salida de
información
La operación de lectura READ
permite el ingreso de los datos
necesarios para los cálculos
computacionales.

La operación de escritura WRITE


imprime la información procesada
por el programa y su respectivo
algoritmo.
PROBLEMAS RESUELTOS
CON COMPUTADORAS Y
HERRAMIENTAS DE
PROGRAMACION

19/05/2019 18
INDICE
OBJETIVO
SOLUCION DE PROBLEMAS
ANALISIS DEL PROBLEMA
DISEÑO DEL ALGORITMO
SOLUCION DEL PROBLEMA
MEDIANTE COMPUTADORA
REPRESENTACION GRAFICA DE
ALGORITMOS
PSEUDOCODIGO
19/05/2019 19
2.1 OBJETIVO

EXPONER LOS CONOCIMIENTOS


INDISPENSABLES PARA EL
APRENDIZAJE DE LA PROGRAMACION.

19/05/2019 20
2.2 SOLUCION DE PROBLEMAS

Fases de fragmentación:
 Análisis del problema: definición concisa
a fin de que sea analizado en todo
detalle.
 Diseño del algoritmo: procedimiento,
paso a paso, para la solucionar el
problema dado.
 Solución del algoritmo con la
computadora: codificación del algoritmo
en un lenguaje de programación
19/05/2019 21
2.3 ANALISIS DEL PROBLEMA
El propósito es ayudar al programador a
llegar a un cierto grado de comprensión
de la naturaleza del problema.

Una buena definición del problema,


junto con una descripción detallada de
entrada y salida, son los requisitos más
importantes para una solución eficaz.

19/05/2019 22
2.3 ANALISIS DEL PROBLEMA cont.

1. Que información debe proporcionar la


solución del problema.

Solución del
Problema

Análisis del Diseño del Solución por


Problema algoritmo computadora
2.3 ANALISIS DEL PROBLEMA cont.

2. Que datos se necesitan para resolver el


problema.

Análisis del
Problema

Definicióndel Especificaciones Especificaciones


Problema de entrada de salida
2.3 ANALISIS DEL PROBLEMA cont.

Ejemplo: leer los lados de un triángulo


rectangulo e imprima la hipotenusa.

 Entradas: valores de los lados (variable


LADO1 y variable LADO2).
 Salida: valor de la hipotenusa (variable
LADO3).
 Variables: LADO1, LADO2 y LADO3 (tipo
reales).
2.4 DISEÑO DEL ALGORITMO

La información proporcionada al algoritmo


constituye su entrada y la información
producida constituye su salida.

Los problemas complejos se resuelven


eficazmente si se fragmentan en
subproblemas que sean más sencillos de
solucionar que el original. Esta técnica es
conocida como divide y vencerás (divide and
conquer).
2.4 DISEÑO DEL ALGORITMO cont.

La descomposición del problema


original en subproblemas cuya solución
puede implementarse a través de la
computadora se le denomina diseño
descendente (top down design)
La descripción detallada de la solución
mediante pasos específicos se le
denomina refinamiento del algoritmo
(stepwise refinement).
2.4 DISEÑO DEL ALGORITMO cont.

Diseño del
algoritmo

Diseño Refinamiento Herramientas de


descendente por pasos programación
–diagramas de flujo
-pseudocódigo
2.4 DISEÑO DEL ALGORITMO cont.
Ejemplo: Determine a los números
menores que 90 y múltiplos de 9, así
como su sumatoria.
Definicióndel Especificaciones Especificaciones
Problema de entrada de salida

Imprimir TOTAL = 0 NUM, TOTAL


múltiplos de 9 NUM = 9
y su suma LIMITE = 90
siempre y
cuando sea
menor que 90
2.4 DISEÑO DEL ALGORITMO cont.

Diseño Refinamiento Herramientas de


descendente por pasos programación

Múltiplos de 9 a) Num=9
b) Print num
c) Num <= 90
regresar a)
d) Num=+9

Sumatoria Total=+num
2.4 DISEÑO DEL ALGORITMO cont.

Pseudocodigo lista_numeros
1. Inicio
2. Total=0, Num=9, Limite=90
3. Print Num
4. Total=Total+Num
5. Si Num <= Limite entonces
Num=Num+9 y regresar a 3
6. Print Total
7. Fin
tarea
1. Determine si una palabra es un
palíndromo.
2. Determine el máximo común divisor
para dos números enteros.
3. Lea e imprima una serie de números
distintos de cero. El algoritmo
terminará con un valor que no se debe
imprimir . Finalmente obtenga la
cantidad de valores leídos.
tarea
4. Imprima y sume la serie de números
múltiplos de 3 en el rango cerrado de 3 y
99.
5. Lea cuatro números e imprima el mayor
de ellos.
6. Calcule la superficie de un triangulo en
función de la base y la altura.
2.5 SOLUCION DE PROBLEMAS
MEDIANTE LA COMPUTADORA
Una vez diseñado el algoritmo y
representado mediante una herramienta de
programación se debe:

Solución del
Problema por
Computadora

Codificación Ejecución del Comprobación


del programa programa del programa
2.6 REPRESENTACION GRAFICA
DE LOS ALGORITMOS

Los métodos usuales para representarlo


son:
1. Diagrama de flujo
2. Lenguaje de especificación de algoritmo
2.6 REPRESENTACION GRAFICA DE
LOS ALGORITMOS cont
2.7 PSEUDOCODIGO

Es un lenguaje de especificación de
algoritmos que permite una codificación
rápida y simple.
Su ventaja radica en que el
programador no debe preocuparse por
la sintaxis de un lenguaje de
programación en particular.
Utiliza palabras sencillas de entender
para codificar programas.
Instrucción Selectiva Compuesta
Instrucción Selectiva Múltiple
Instrucción Repetitiva “While”
Instrucción Repetitiva “Repeat”
Instrucción Repetitiva “For”
FIN

You might also like