1. Definición del problema
2. Análisis del problema
3. Diseño del algoritmo
4. Verificación o pruebas
•Entrada
•¿Qué se necesita para realizar los pasos?
•Salida
•¿Qué se obtiene al final del algoritmo?
•Tipos de datos
•Números: enteros, reales, complejos
•Texto: letras, palabras, frases
•Otros
Datos a extraer del problema:
// Entrada de datos
// Proceso
// Salida de
información
Inicio
Fin
a,b
c=a+b
Escribir c
Inicio
Variables numericas a, b, resultado
Escribir "Ingresa el valor de a"
Leer a
Escribir "Ingresa el valor de b"
Leer b
resultado = a+b
Imprimir "El resultado es: resultado"
Fin
Pseudocódigo
Elementos de un Algoritmo
▪ Existen lenguajes de programación que no son tipados, es decir, no
van a tener ningún tipo de dato dentro de su estructura.
▪ Lo que sucede con un lenguaje de programación que no tiene tipo
de datos es que no va a ser tan fácil optimizar el uso de recursos.
▪ Las constantes las podemos utilizar siempre que vayamos a tener
un dato que nunca va a cambiar de forma sistemática.
▪ En las variables vamos a poder almacenar números cuyo valor va a
estar constantemente variando.
HERRAMIENTAS PARA EL CURSO
https://code.visualstudio.com/
https://www.python.org/downloads/
http://pseint.sourceforge.net/
HORARIO G20
Semanas Lunes Martes Miércoles Jueves Viernes Sábado
Semana 1
Inglés Inglés
Conceptualizació
n eintroducción al
curso
Actividades
para ejercitar el
pensamiento
lógico
Pensamiento
lógico
Estructurado
Diagramas de
flujo
Semana 2
Inglés Inglés Variables Entrada y Salida Operaciones
Aritméticas
Taller
Programación
Pseudoformal
Semana 3
Inglés Inglés Condicionales Ciclos Funciones y
Métodos
Tipos de
Variables
Semana 4
Inglés Inglés Listas Pilas y Colas Set y Diccionarios Taller de
Arreglos y
Listas
Semana 5
Inglés Inglés
Actividad
complementaria en
asesoría psicosocial
Métodos de
Ordenamiento
por
intercambio
Métodos de
Ordenamiento
por selección e
inserción
Taller de
Ordenamien
to
Semana 6
Inglés Inglés Actividad
complementaria en
asesoría psicosocial
Construcción y
Cargasde
Módulos
Módulo
Matemático
Módulo Funcional
Semana 7
Inglés
Actividad
complement
ariaen
asesoría
psicosocial
Proyecto Proyecto Proyecto
HORARIO G24
Semanas Lunes Martes Miércoles Jueves Viernes Sábado
Semana 1
Conceptualizació
ne introducción
al curso
Actividades para
ejercitar el
pensamiento
lógico
Pensamiento
lógico
Estructurado
Inglés Inglés
Diagramas de
flujo
Semana 2
Variables Entrada y Salida Operaciones Aritméticas Inglés Inglés
Taller
Programación
Pseudoformal
Semana 3
Condicionales Ciclos Funciones y Métodos Inglés Inglés Tipos de
Variables
Semana 4
Listas Pilas y Colas Set y Diccionarios Inglés Inglés Taller de Arreglos
y Listas
Semana 5
Métodos de
Ordenamiento
porintercambio
Métodos de
Ordenamiento por
selección e
inserción
Actividad
complementariaen
asesoría psicosocial
Inglés Inglés
Taller de
Ordenamiento
Semana 6
Construcción y
Cargas de
Módulos
Módulo
Matemático
Actividad
complementariaen
asesoría psicosocial
Inglés Inglés Módulo Funcional
Semana 7
Proyecto Proyecto Proyecto
Inglés
Actividad
complementar
ia
en asesoría
psicosocial
HORARIO G27
Semanas Lunes Martes Miércoles Jueves Viernes Sábado
Semana 1
Conceptualización e
introducción al curso
Actividades para
ejercitar el
pensamiento
lógico
Pensamiento lógico
Estructurado
Inglés Inglés Diagramas de flujo
Semana 2
Variables Entrada y Salida Operaciones
Aritméticas
Inglés Inglés Taller Programación
Pseudoformal
Semana 3
Condicionales Ciclos Funciones y
Métodos
Inglés Inglés Tipos de Variables
Semana 4
Listas Pilas y Colas Set y Diccionarios Inglés Inglés Taller de Arreglos y
Listas
Semana 5
Métodos de
Ordenamientopor
intercambio
Métodos de
Ordenamiento por
selección e
inserción
Actividad
complementaria en
asesoría psicosocial
Inglés Inglés Taller de Ordenamiento
Semana 6
Construccióny Cargas de
Módulos Módulo Matemático
Actividad
complementaria en
asesoría psicosocial
Inglés Inglés Módulo Funcional
Semana 7 Proyecto Proyecto Proyecto
Inglés
Actividad
complemen
taria
en
asesorí
a
psicoso
cial
La mayoría de los buenos
programadores lo son
no porque esperen que se les
pague o por la adulación del
público, sino porque les divierte
programar
¿QUÉ ES UN ALGORITMO?
• Surgio del matemático de Uzbequiztan Mohammed
ibn-Musa al- Khwarizmi , quien escribió un par de
libros en suépoca el mas importante de ellos “el arte
indio de contar” donde dio lasnociones para realizar
las operaciones matemáticas básicas siguiendo un
proceso
• La historia cuenta que se le atribuyo el método
indio de conteo numérico y se le empezó a
llamar método al-Khwarizmi , lo cual con los
años y al llevarse “descuidadamente” termino
llamándose algorismi,hoy diaAlgoritmo
ALGORITMOS EN LA COMPUTACIÓN
Un algoritmo es un procedimiento computacional que
toma un valor o conjunto de valores como entrada y
produce un valor o conjunto de valores como salida
“Un algoritmo se puede ver comouna herramienta para
resolver un problema computacional bien especificado”
Estrategias de programación:
Programación ingenua: Probar todas las
posibles soluciones y mirar cual es la correcta
Divide y vencerás: Partir el problema en
problemas m á s pequeños e intentar
solucionar estos
Programación dinámica:Un divide y vencerás
mejorado
Programación voraz: Una buena estrategia.
MOTIVACIÓN
¿TODOS LOSPROBLEMAS
SON “SOLUCIONABLES”?
Será posible que todos los problemas
existentes puedan representarse de manera
algorítmica, es decir, mediante un conjunto de
pasos o mediante un proceso
• Si la respuesta es si, seguramente
tendremos problemas que pueden
solucionar mediante varios algoritmos.
• ¿Cuántas formas diferentes de solución
encontramos?
• ¿Cuál fue mas óptima es decir se llevó en
menos tiempo?
http://www.uterra.com/juegos/torre_hanoi.php
Revisemos otro o usemos el
de la izquierda
Por definición sudoku solo
tiene una solución ¿la
encontraste?
http://www.sudoku-online.org/
¿TODOS LOSPROBLEMAS
SON “SOLUCIONABLES”?
2
1
1
3 4
2 4 3
Como en ciertos problemas (Como las torres de hanoi) es posible
encontrar mas de una solución, es necesario tener en cuenta algunas
condiciones
• Tiempode procesador ycantidad de memoria utilizados.
• Claridad, sencillez y facilidad de implantación, depuración y
mantenimiento.
¿TODOS LOSPROBLEMAS
SON “SOLUCIONABLES”?
DEFINICIÓN FORMAL
DE ALGORITMO
Unalgoritmoesunconjuntofinitode instruccionesque indicancómo
resolverunproblema
• noambiguas
• Efectivas
• producen al menosuna salida
• recibencero o másentradas
• ypara ejecutarse,necesitan una cantidad finitaderecursos.
AMBIGUEDAD
Hace referencia a que las instrucciones del Algoritmo
deben estar expresadas de manera clara y directa y no son
susceptibles a interpretacionessubjetivas
..RECIBIRENTRADAS
• Aunque no es obligatorio el algoritmo debe ejecutarse con
algunas entradas(parámetros)
• Si el algoritmo no recibe entradas, esperaríamos siempre
tener la mismasalida
CANTIDAD FINITA DE RECURSOS
Debe tener una terminación
Debe usar los recursos de maquina
PROCESOCOMPUTACIONAL
Siuna serie de instrucción cumple todas las condiciones
anteriores excepto que posee una cantidad finita de
tiempo de ejecución, es llamado PROCESO
COMPUTACIONAL
Ejemplo: Sistemas Operativos son “aplicaciones” que
nunca detienen sufuncionamiento
CONSIDERACIONES ADICIONALES
Siun problema tiene una solución algorítmica, pero dicha solución lleva
demasiado tiempo en su solución, se dice que el problema no tiene
solución computacional.
Muchos de los problemas que hace unos años se consideraban sin
solución computacional, hoy en dia ya son solucionables gracias al
poder de computo que setiene
DEFINICION
▶ La programación estructurada es un paradigma de programación
orientado a mejorar la claridad, calidad y tiempo de desarrollo de un
programa de computadora, utilizando únicamente procedimientos y
tres estructuras:
▶ La metodología de programación estructurada se fundamenta en
técnicas de segmentación, la cual plantea que un problema se puede
dividir en problemas más pequeños (módulos) y más simples de
resolver, de tal forma que la suma de las soluciones de cada problema
sea el resultado de la solución total de éste.
METODOLOGIA
PSEINT
• PSeInt de PSeudo Intérprete, es una herramienta educativa
utilizada principalmente por estudiantes para aprender los
fundamentos de la programación y el desarrollo de la lógica. Es
uno de los software más populares de su tipo y ampliamente
utilizado en universidades deLatinoamérica y España.
Pablo Novara http://pseint.sourceforge.net/
CARACTERISTICAS
▶ La estructura secuencial: Sucesión simple de dos o más operaciones, la
computadora ejecuta las líneas de código en el orden en que fueron
escritas. El control del programa fluye de la línea anterior a la línea
siguiente
▶Condicional
Se evalúa una expresión y, dependiendo del resultado, se decide la
siguiente sentencia a ejecutar.
Si – Entonces: es una estructura de control que depende del valor de
una condición lógica.
TIPOS
▶ Las estructuras de selección: bifurcación condicional de una o más
operaciones.Se basan en una declaración condicional. Si es verdadera,
ciertas líneas de código son ejecutadas. Si tal declaración es falsa,
esas líneas no serán ejecutadas. Las dos estructuras de selección más
comunes son: Si-Entonces (If-Then) y Si-Entonces-de lo contrario (If-
Then-Else).
CARACTERISTICAS
▶Iterativa
Repetimos un bloque de sentencias hasta que sea verdadera una
determinada condición.
MIENTRAS HACER: permite ejecutar una secuencia de instrucciones
repetidamente hasta que la condición no se cumpla.
TIPOS
▶Iterativa
Repetimos un bloque de sentencias hasta que sea verdadera una
determinada condición.
CICLO PARA(FOR): La instrucción Para ejecuta una secuencia de
instrucciones un número determinado de veces
TIPOS
▶ Las estructuras de repetición (o de ciclos): Repetición de una
operación mientras se cumple una condición. este funcionamiento es
cíclico. Tres estructuras de este tipo son: Repetir para (For-Next),
Repetir Mientras (While) y Repetir Hasta (Do- While).
CARACTERISTICAS
REGLAS PARA DEFINIR
UN IDENTIFICADOR
▶ Siempre una variable debe empezar con una letra, jamás debe
comenzar con un carácter numérico.
Ejemplo: nota1 Sí
▶ No deben existir espacios en blanco en una variable (variable es
la combinación de caracteres), es decir, debe ir junto o con un
carácter especial y no se debe dejar espacios.
Ejemplo: nota1 Sí nota 1 No
▶ La longitud de la variable depende del lenguaje que se esté
utilizando en la computadora
TIPOS DE
VARIABLES
Variables alfanuméricas se utilizan para almacenar caracteres, palabras
y/o frases de texto. Para asignar el valor a la variable, se encierra el
valor entre comillas dobles o simples, para delimitar su comienzo y su
final. Para representar caracteres especiales se utilizan los siguientes
signos.
Línea
Retorno de carro
Salto de página
Comilla doble
Variables numéricas: Son aquellas que tienen un contenido numérico y,
por tanto, se puede operar con ellas.
ejemplo, PI=3,14,16
TIPOS DE
VARIABLES
Tipo de dato Descripción Ejemplo
entero Tipo de dato asociado a cantidades enteras. No
poseen parte decimal. Ejemplo: 5, 6, -15, 199,…
Numero de vacas, edad.
real Tipo de dato asociado a cantidades con parte
decimal. Por ejemplo: 0.06, -3.4, 2.16,
1000.345,…
Estatura, peso, volumen.
lógicos Se refiere a aquellos datos que pueden tomar solo dos posibles valores falso (F) o verdadero
(T)
alfanuméricos Asociado a aquellos datos que contienen
caracteres alfanuméricos (letras, número, signos
de puntuación, etc).
Nombre, cedula, teléfono
OPERADORES LOGICOS:
Trabajan con dos operados y retornan un valor lógico basadas en las denominadas tablas de
verdad. El operador (NOT) actúa sobre un operador, estas tablas de verdad son conocidas y
usadas en el contexto de la vida diaria, por ejemplo: (SI HACE SOL Y TENGO TIEMPO, IRE A LA
PLAYA, si no NO HACE SOL, me quedaré en casa, ‘’ si llueve O hace viento, ire al cine.’’. Las
tablas de verdad de los operadores AND, OR y NOT se muestran en las tablas siguientes
OPERADORES
VENTAJAS
▶Los programas son más fáciles de entender. Un programa estructurado puede ser
leído en secuencia, de arriba hacia abajo.
▶Reducción del esfuerzo en las pruebas. El programa se puede tener listo para
producción normal en un tiempo menor del tradicional.
▶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.
▶ El principal inconveniente de esta 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.
▶Complejidad para adaptarse
DESVENTAJAS
RETO 1
▶Calculadora Suma, Resta: Multiplicación y División (RETO 1)
Realizar una Calculadora que a través de un menú me permita seleccionar las
operaciones básicas Suma, Resta, Multiplicación y División según la operación
seleccionar debe realizar operación entre dos números. Debe adjuntar
Seudocódigo, Pantallazo de PseInt(Código),Pantallazo del programa corriendo y
Diagrama de Flujo. Este reto debe subirse en pdf en la plataforma de la
misiontic2022.unab.edu.co.