Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ALTO HUALLAGA
MANUAL AUTOFORMATIVO
LOGICA DE PROGRAMACION
Autor:
Ing. Mucha Colca Edgar Dennis
edmucha@hotmail.com
APRENDIZAJE 1ACTIVIDAD DE
TEMAS
PÁG. 2
Resolución de problemas
FUNDAMENTOS DE
mediante el razonamiento lógico
ALGORITMOS
PÁG. 3
Diseño de algoritmos EL SUBTÍTULO VA AQUÍ
RAZONAMIENTO
LÓGICO
(INFORMÁTICA)
ABSTRACCIÓN
(INFORMÁTICA)
CARACTERÍSTICAS:
Definición: Un algoritmo se entiende como una sucesión finita de pasos que debe cumplir las siguientes especificaciones:
Cada paso del algoritmo debe estar bien definido: Esto significa que la definición de un paso debe ser suficientemente clara, para que una
persona pueda entenderla y realizarla. Si bien no se puede dar un criterio determinístico para decidir si un paso está bien definido,
debemos apelar al sentido común para decidir que un paso está especificado sin ambigüedades.
Un algoritmo debe tener un principio y un fin: Un programa es un algoritmo escrito con un objetivo: conseguir un resultado. ¡No tiene
sentido crear un programa que espere ~ segundos (infinitos segundos) y luego escriba en pantalla “Hola Mundo!
DISEÑO DE ALGORITMOS
Una computadora no tiene capacidad para solucionar problemas más que cuando se le Proporcionan los pasos sucesivos a realizar, para
ello elaboramos un algoritmo.
Es un método para resolver un problema mediante una secuencia de instrucciones, cada una de las cuales especifica las operaciones que
debe realizar la computadora
¿QUÉ ES UN ALGORITMO?
Por algoritmo, se entiende a un conjunto finito de instrucciones que se deben seguir para resolver un problema. No obstante, desde el
punto de vista de la programación de ordenadores, la definición del algoritmo como la especificación de una serie de pasos, es
incompleta. Debe observarse que los ordenadores son equipos que tienen limitaciones físicas en cuanto a capacidad de almacenamiento
y procesamiento
Algoritmo divide y vencerás: El método está basado en la resolución recursiva de un problema dividiéndolo en dos o más
subproblemas de igual tipo o similar.
Algoritmos voraces (greedy): seleccionan los elementos más prometedores del conjunto de candidatos hasta encontrar una
solución. En la mayoría de los casos la solución no es óptima.
Algoritmos paralelos: permiten la división de un problema en subproblemas de forma que se puedan ejecutar de forma
simultánea en varios procesadores.
Algoritmos probabilísticos: algunos de los pasos de este tipo de algoritmos están en función de valores pseudoaleatorios
Algoritmos determinísticos: El comportamiento del algoritmo es lineal: cada paso del algoritmo tiene únicamente un paso
sucesor y otro antecesor.
Algoritmos no determinísticos: El comportamiento del algoritmo tiene forma de árbol y a cada paso del algoritmo puede
bifurcarse a cualquier número de pasos inmediatamente posteriores, además todas las ramas se ejecutan simultáneamente.
Metaheurísticas: encuentran soluciones aproximadas (no óptimas) a problemas basándose en un conocimiento anterior (a veces
llamado experiencia) de los mismos.
Programación dinámica: intenta resolver problemas disminuyendo su coste computacional aumentando el coste espacial.
Ramificación y acotación: se basa en la construcción de las soluciones al problema mediante un árbol implícito que se recorre de
forma controlada encontrando las mejores soluciones.
Vuelta Atrás (Backtracking): se construye el espacio de soluciones del problema en un árbol que se examina completamente,
almacenando las soluciones menos costosas.
EJEMPLO 1:
Algoritmo “Papa-frita”
Inicio:
Tomar las papas
Pelar las papas
Cortar las papas en tiras
Tomar el sartén y colocarla sobre la estufa
Encender el fuego de la estufa
Colocar el sartén con aceite para calentar
Esperar hasta que el aceite esté caliente
Colocar las papas para freir
Aguardar 10 minutos hasta que las papas estén fritas
Retirar las papas y servir
Fin
PSEUDOCÓDIGO
(INFORMÁTICA)
Una computadora no tiene capacidad para solucionar problemas más que cuando se le Proporcionan los pasos sucesivos a realizar, para
ello elaboramos un algoritmo.
Es un método para resolver un problema mediante una secuencia de instrucciones, cada una de las cuales especifica las operaciones que
debe realizar la computadora
DEFINICIÓN
El pseudocódigo (o falso lenguaje) es comúnmente utilizado por los programadores para omitir secciones de código o para dar una
explicación del paradigma que tomó el mismo programador para hacer sus códigos, esto quiere decir que el pseudocódigo no es
programable sino facilita la programación.
El principal objetivo del pseudocódigo es el de representar la solución a un algoritmo de la forma más detallada posible, y a su vez lo más
parecida posible al lenguaje que posteriormente se utilizará para la codificación del mismo
El pseudocódigo utiliza para representar las acciones sucesivas palabras reservadas en inglés (similares a sus homónimos en los lenguajes
de programación), tales como star,begin, end, stop, if-then-else, while, repeat-until….etc
Es un lenguaje de especificación de algoritmos. El uso de tal lenguaje hace el paso de codificación final (esto es, la traducción a un
lenguaje de programación) relativamente fácil.
REGLAS DE CONSTRUCCIÓN
Las principales características de este lenguaje son: * Se puede ejecutar en un ordenador * Es una forma de representación sencilla de
utilizar y de manipular. * Facilita el paso del programa al lenguaje de programación. * Es independiente del lenguaje de programación
que se vaya a utilizar. * Es un método que facilita la programación y solución al algoritmo del programa. Todo documento en
pseudocódigo debe permitir la descripción de: * Instrucciones primitivas. * Instrucciones de proceso. * Instrucciones de control. *
Instrucciones compuestas. * Instrucciones de descripción. Estructura a seguir en su realización: * Cabecera. * Programa. * Modulo. *
Tipos de datos. * Constantes. * Variables. * Cuerpo. * Inicio. * Instrucciones. * Fin.
PROGRAMAR: LOS CONCEPTOS BÁSICOS
Lenguaje de programación: Sistema de símbolos y reglas que permite la construcción de programas con los que la computadora puede
operar, así como resolver problemas de manera eficaz.
Estos contienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada / salida, calculo, manipulación de textos,
lógica / comparación y almacenamiento / recuperación.
Lenguaje Máquina: Son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traducción
posterior para que la CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje maquinan se expresan en términos de
la unidad de memoria más pequeña el bit (dígito binario 0 ó 1).
Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones se escriben en códigos alfabéticos conocidos como
mnemotécnicos para las operaciones y direcciones simbólicas.
Lenguaje de Alto Nivel: Los lenguajes de programación de alto nivel (BASIC, pascal, cobol, fortran, etc.) son aquellos en los que las
instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos (en general en ingles), lo que
facilita la escritura y comprensión del programa.
TIPOS DE OPERADORES
OPERADORES ARITMÉTICOS
Los operadores aritméticos nos permiten realizar operaciones aritméticas
Operador Nombre Ejemplo
+ Suma 1+1
- Resta 10-2
* Multiplicación 2*2
/ División 09/03
mod modulo 15 mod 2
div Parte entera 20 div 3
^ Potencia 3^2
OPERADORES LOGICOS
OPERADORES COMPARACIÓN
Los operadores de comparación nos permiten evaluar las expresiones situadas a su derecha e izquierda, devolviendo un valor booleano
VERDADERO o FALSO.
Operador Nombre Ejemplo
= Igual A1=B1
> Mayor que A1>B1
< Menor que A1<B1
>= Mayor o igual que A1>=B1
<= Menor o igual que A1<=B1
<> No es igual a A1<>B1
TIPOS DE DATOS
Números enteros
El tipo int (del inglés integer, que significa «entero») permite representar números enteros.
Los valores que puede tomar un int son todos los números enteros: ... -3, -2, -1, 0, 1, 2, 3, ...
Números reales
El tipo float permite representar números reales.
El nombre float viene del término punto flotante, que es la manera en que el computador representa internamente los números reales.
Caracteres
En este tipo de dato se encuentran todos los caracteres conocidos, una letra, un número, un símbolo especial. Por lo tanto, está
conformado por los DÍGITOS:'0', '1', '2', ... , '9'; LETRAS: 'a', 'b', 'c', ... , 'z'; MAYÚSCULAS: 'A', 'B', 'C', ... , 'Z'; y CARACTERES ESPECIALES: '%',
'*', '?', ... , '/'. En algunos lenguajes de programación como Java y C#, se utiliza la comilla simple (' ') para identificar un caracter, sin
embargo esto puede cambiar dependiendo del lenguaje de programación.
Cadenas
Constituyen conjuntos de caracteres, es decir la UNIÓN DE VARIOS CARACTERES, que pueden ser palabras o frases. El valor de este tipo
de datos se encierra generalmente entre comillas (" ").
Boolean
Los booleanos o tipos de datos lógicos, únicamente reciben dos valores: true ó false. Se utilizan generalmente como banderas, para
identificar si se realizó o no un proceso. Más adelante se podrán aplicar en ejemplos y comprender su funcionamiento. Lo importante por
ahora es conocer que únicamente pueden tomar DOS VALORES: VERDADERO (true) o FALSO (false
https://www.hostgator.mx/blog/logica-de-programacion-primer-paso/
https://studentplace98.blogspot.com/2018/12/fundamentos-de-programacion-algoritmos.html
https://www.udima.es/es/analisis-diseno-algoritmos.html
http://www.aliat.org.mx/BibliotecasDigitales/sistemas/Analisis_y_disenio_de_algoritmos.pdf