SlideShare una empresa de Scribd logo
1 de 80
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 1
09/03/2022
Introducción a los
fundamentos de la
programación estructurada
Unidad 1
Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo
para uso de los cursos de Algoritmos y Lógica de Programación
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 2
09/03/2022
Objetivo general de la Unidad 1
Aplicar los fundamentales de la lógica de programación
estructurada mediante pseudocódigo o diagramas de flujo
para representar soluciones a los diversos problemas de la
vida real.
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 3
09/03/2022
Contenido
• Introducción y lógica de programación. Fases para la
resolución de problemas.
• Análisis del Problema. (Entrada-Proceso-Salida).
• Diseño de algoritmos mediante las técnicas de
pseudocódigo y diagramas de flujo
• Estructuras de control de flujo en algoritmos: de decisión
y repetición
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 4
09/03/2022
¿Qué son Ciencias de la
Computación?
• También conocida como informática
• La informática es la rama del conocimiento que nos
ayuda a resolver problemas por medio del uso del
computador.
• Los problemas que se pueden resolver con el
computador están íntimamente ligados a la
automatización de actividades que realizan los seres
humanos.
• Por Ejemplo:
– Llevar las cuentas
– Organizar las reuniones
– Enviar y recibir mensajes
– Buscar información
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 5
09/03/2022
La programación: resolución de
problemas
❑ Un programa es una secuencia de instrucciones con un propósito
concreto que un ordenador puede interpretar y ejecutar
❑ Programar es resolver problemas
❑ Conjunto de actividades implicadas en la descripción, el desarrollo y
la implementación eficaz de soluciones algorítmicas a problemas
bien especificados
Algoritmo 1. m. Conjunto ordenado y finito de operaciones que
permite hallar la solución de un problema.
(Extraído del Diccionario de la RAE, 22ª edición)
❑ Un algoritmo es, por tanto, una sistemática que transforma un
estado inicial en un estado final
❑ La entrada del programa: Precondiciones
❑Descripción del estado inicial (datos y situación de partida)
❑ La salida del programa: Postcondiciones
❑Descripción del estado final (datos y situación deseada al acabar)
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 6
09/03/2022
Lenguajes de Programación
• Un lenguaje se puede definir como un conjunto
de palabras y formas de expresión por medio de
las cuales se comunican y relacionan miembros
de una comunidad determinada.
• Un lenguaje de programación es el lenguaje a
través del cual los seres humanos se comunican
con la computadora.
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 7
09/03/2022
Lenguajes de Programación
Máquina ( 0’s y 1’s)
Alto nivel (C, vb,perl..)
Más parecido
al lenguaje
natural, más
fácil de
entender
Más
parecido al
lenguaje del
computador
Bajo Nivel (Ensamblador)
• Las computadoras “hablan” su propio lenguaje, el cual es numérico
y está limitado a 1s y 0s (Sistema Binario).
• Para poder comunicarnos con ellas, existen varias alternativas:
– Usar el mismo lenguaje de ellas: un lenguaje de máquina
– Usar un lenguaje parecido al de las computadoras: un lenguaje
de bajo nivel
– Usar un lenguaje parecido al nuestro: un lenguaje de alto nivel
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 8
09/03/2022
El Proceso de Programar
• Escribir un programa es un proceso lento.
• Los programas son escritos para resolver
problemas. El proceso de resolver un
problema es complejo y se han desarrollado
metodologías formales.
• De las metodologías podemos distinguir tres
pasos básicos:
1. Identificación del problema
2. Análisis y resolución del problema
3. Implementación de la solución
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 9
09/03/2022
Identificar el problema: ¿Qué hago?
• Para identificar el problema se realizan
dos actividades:
– Dada una situación determinada, descubrir
cuál es el problema que esta involucra.
– Crear un enunciado (no mayor de 4 líneas)
que exprese con precisión y de manera clara
el problema a resolver
1
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 10
09/03/2022
Resolución del problema:¿Cómo lo
hago?
• Para diseñar una solución es necesario:
– Entender a cabalidad el problema
– Identificar las áreas del conocimiento que abarca
el problema.
– Determinar las actividades que se pueden
ejecutar con ayuda de un computador
– Determinar como el computador va a realizar las
actividades a él encomendadas (entradas,
procesos y salidas)
– Plantear y contrastar soluciones alternativas y
escoger la mejor.
2
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 11
09/03/2022
Implementación de la solución:
¿Cómo hago que el computador lo haga?
• Una vez que se tiene una idea concreta de cómo
resolver un problema hay que hacer que el
computador realice las instrucciones deseadas.
Idea solución
Datos entrada
Información
Salida
Descomponer
Algoritmo
3
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 12
09/03/2022
Algoritmos: La fuente de todo
• Un algoritmo
– Es un conjunto de pasos que detallan el camino a la
solución de un problema
• Problema: Cambiar de llanta A por llanta B
Llanta A (Averiada)
Llanta B (Repuesto)
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 13
09/03/2022
Algoritmos: La fuente de todo
• Problema: Cambiar de llanta A por llanta B
– Paso 1: Sacar llanta B del baul
– Paso 2: Destornillar tuercas de llanta A
– Paso 3: Subir gata bajo el carro
– Paso 4: Remover llanta A del auto
– Paso 5: Colocar llanta B en el espacio sobrante
– Paso 6: Bajar gata
– Paso 7: Asegurar tuercas en llanta B
• La idea siempre es
– Evitar la ambigüedad
– Que se pueda entender a toda costa
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 14
09/03/2022
¿Qué es un Algoritmo?
• Dado que el computador sólo puede ejecutar
instrucciones sencillas, es necesario descomponer
cada acción en un subconjunto de operaciones mas
pequeñas.
• Dado que el computador ejecuta solo una instrucción
a la vez es necesario establecer un orden lógico para
la ejecución de las mismas.
• El conjunto de estas instrucciones ordenadas se
conoce como algoritmo.
• Un algoritmo es como una receta de cocina, en la cual
se debe declarar que ingredientes -datos- son
necesarios, como son cocinados -procesados- y
cuales son los resultados -información-
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 15
09/03/2022
Algoritmos
• Un algoritmo debe ser:
• Claro, sin ambigüedades: para poder seguir y ejecutar
cada uno de sus pasos.
• Efectivo: para que todos los pasos puedan llevarse a
cabo. Por ejemplo:
– Suba al piso inferior y camine 3 pasos a la derecha (seria
imposible de llevar a cabo).
• Finito: tener principio y fin. Un paso mal planteado
puede provocar que el algoritmo no encuentre un fin.
Por ejemplo:
– Espere hasta que aparezcan tres hermanos gemelos.
Un algoritmo con las mismas entradas siempre debe producir
el mismo resultado.
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 16
09/03/2022
Ejemplo de algoritmo
• Búsqueda de la palabra
PSICOSOMÁTICO en
el diccionario.
– Defina y describa en sus
palabras los pasos que
debería seguir para
buscar la palabra.
– Generalice los pasos y
escriba un conjunto de
instrucciones que sirvan
para encontrar cualquier
palabra en un
diccionario.
• Para buscar la
palabra
PSICOSOMATICO:
1. Buscar un diccionario
Español-Español
2. Buscar la sección que
contiene la letra P
3. Dentro de la sección P,
4. Buscar la siguiente letra S,
5. Buscar la siguiente letra I
6. En la parte de Psico, buscar
Psicosomático
7. Escribir el significado en
algún lugar
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 17
09/03/2022
Antes que se acomoden..
• 4 Grupos de 5 integrantes
– Los que Uds elijan
– Si quieren elijan a alguien con quien nunca
han hablado, q les parezca simpático,
misterioso, loco, creativo, crítico,
materialista, risueño, …
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 18
09/03/2022
Trabajo grupal: Torres de Hanoi
• Trasladar de torre 1 a torre 3 los discos
– Sin dejar disco por debajo de uno más grande.
– Escribir los pasos.
Torre1 Torre2 Torre3
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 19
09/03/2022
Torres de Hanoi - Solución
• Estado inicial.
Torre1 Torre2 Torre3
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 20
09/03/2022
Torres de Hanoi - Solución
• Mover disco verde a torre 3.
Torre1 Torre2 Torre3
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 21
09/03/2022
Torres de Hanoi - Solución
• Mover disco azul a torre 2.
Torre1 Torre2 Torre3
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 22
09/03/2022
Torres de Hanoi - Solución
• Mover disco verde a torre 2.
Torre1 Torre2 Torre3
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 23
09/03/2022
Torres de Hanoi - Solución
• Mover disco rojo a torre 3.
Torre1 Torre2 Torre3
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 24
09/03/2022
Torres de Hanoi - Solución
• Mover disco verde a torre 1.
Torre1 Torre2 Torre3
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 25
09/03/2022
Torres de Hanoi - Solución
• Mover disco azul a torre 3.
Torre1 Torre2 Torre3
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 26
09/03/2022
Torres de Hanoi - Solución
• Mover disco verde a torre 3.
Torre1 Torre2 Torre3
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 27
09/03/2022
Torres de Hanoi - Solución
• Estado final.
Torre1 Torre2 Torre3
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 28
09/03/2022
Contenido
• Introducción y lógica de programación. Fases para la
resolución de problemas.
• Análisis del Problema. (Entrada-Proceso-Salida).
• Diseño de algoritmos mediante las técnicas de
pseudocódigo y diagramas de flujo
• Estructuras de control de flujo en algoritmos: de decisión
y repetición
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 29
09/03/2022
Implementación de la solución:
¿Cómo hago que el computador lo haga?
• Una vez que se tiene una idea concreta de cómo
resolver un problema hay que hacer que el
computador realice las instrucciones deseadas.
Idea solución
Datos entrada
Información
Salida
Descomponer
Algoritmo
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 30
09/03/2022
Conceptos Básicos
• Programa
– Grupo de instrucciones que indican a la computadora que debe hacer.
– Es un conjunto de instrucciones que el computador puede “entender” y
ejecutar. Para poder “entender” el significado de una instrucción, estas
deben ser escritas en el lenguaje que el computador maneja (0’s y 1’s).
El proceso de escribir estas instrucciones se llama programación.
– La programación abarca también un conjunto de técnicas formales e
informales que nos permiten escribir programas eficientes y rápidos.
• Datos
– Representación de hechos y/o eventos, sin ningún significado
– Sirven de materia prima para los Sistemas de Información
• Información
– Es el resultado del procesamiento de datos
– Tiene significado para el usuario
– Puede ser utilizada como “dato” para otro proceso
Procesamiento
datos información
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 31
09/03/2022
Conceptos Básicos
• Procesamiento
– Se refiere al grupo de operaciones que se aplican sobre los datos
para conseguir la información.
– La computadora es una máquina que efectúa operaciones para
“recibir” datos, “procesarlos” y “mostrar” la información obtenida a
quien corresponde.
Juan, Pérez
Pedro, Rodríguez
Luis, Pozo
Juan, Pérez $100
Pedro, Rodríguez $150
Luis, Pozo $140
Procesamiento
Calcular salarios
Datos de entrada
(ingresados por teclado)
Información
(mostrados por pantalla)
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 32
09/03/2022
Identificadores
• Un identificador es el nombre que se le
asigna a los datos de un programa
(constantes, variables, tipos de datos), y
que nos permiten el acceso a su
contenido.
• Ejemplo:
– Calf1
– Valor_1
– Num_hrs
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 33
09/03/2022
Tipos de datos
• Es el valor que puede tomar una constante o variable .
Por ejemplo, para representar los datos de un alumno
como: Nombre, Num_cta, calf1, calf2, etc.
• Los tipos de datos más utilizados son:
– a) Numéricos: Representan un valor entero y real.
Ejemplo:
Entero: 250, -5 Real: 3.1416, -27.5
– b) Lógicos: Solo pueden tener dos valores (verdadero o
falso), y son el resultado de una comparación.
– c) Alfanuméricos: Son una serie de caracteres que
sirven para representar y manejar datos como nombres de
personas, artículos, productos, direcciones, etc.
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 34
09/03/2022
Operadores
• Es un símbolo que permite manipular los
valores de variables y/o constantes.
• Operador de asignación = ó 
– Sirve para recuperar o guardar los valores obtenidos al
realizarse o ejecutarse una expresión.
• Operadores de relación
1) Mayor que >
2) Menor que <
3) Mayor igual que >=
4) Menor igual que <=
5) Igual =
6) Diferencia < > !=
•Son empleados para comparar
dos ó más valores.
•Su resultado produce valores
como verdadero y falso.
•Tienen el mismo nivel de
prioridad.
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 35
09/03/2022
Operaciones Matemáticas
• Con los datos numéricos se pueden efectuar operaciones
matemáticas, a través de los operadores aritméticos:
Operador Significado Tipos de
operandos
Ejemplo Tipo de resultado Ejemplo
+ Suma Entero o real 4+2
4.35+ 2
4.35 + 2.5
Entero o real 6
6.35
6.85
- Resta Entero o real 4-2
4.35- 2
4.35 - 2.5
Entero o real 2
2.35
1.85
Div División entera Entero 10 div 6 Entero 1
Mod (%) Modulo Entero 10 mod 6 Entero 4
* Multiplicación Entero o real 4*2
4.35* 2
4.35 * 2.5
Entero o real 8
8.7
10.875
/ División Real 4.00/2.00
4.35/ 2.5
Real 2.00
1.74
^ Potenciación Entero o real 4^2
4.5 ^ 2
4.5 ^ 0.5
Entero o real 16
20.25
2.121
Precedencia
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 36
09/03/2022
Operaciones Lógicas
• Con los datos lógicos se pueden efectuar
operaciones lógicas.
Operador Significado Ejemplo Tipo de
resultado
Resultado
No(not) Negación de un valor No(6>10) Entero o real Verdadero
Y(and) Conjunción (1<5) y
(5>10)
Ecuador
clasificó y
Colombia no
clasificó
Entero o real Falso
Verdadero
O (or) Disyunción (5>10) o
(10<9)
Entero o real Falso
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 37
09/03/2022
1) Matemáticos
2) Relacionales
3) Lógicos
4) De asignación
Siempre se ejecutan
de izquierda a
derecha en caso de
haber dos ó más
operadores con el
mismo nivel de
prioridad.
Prioridad entre los Operadores
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 38
09/03/2022
Ejemplo
• Se desea ordenarle al computador que
sume dos números enteros ingresados
por teclado y muestre el resultado
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 39
09/03/2022
Fases de un Programa
• Usualmente los programas en C y en la
mayoría de lenguajes, constan de tres fases:
– Fase de Entrada: se le indica al usuario que
datos debe ingresar a la computadora y se
recopila esa información
– Fase de Procesamiento: los datos ingresados
son procesados, se efectúan cálculos.
– Fase de Salida: la información generada es
mostrada, se despliegan los resultados
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 40
09/03/2022
La Suma de Enteros
En Pseudocódigo
Begin
{
int a,b;
int suma;
Write (“1er numero”);
Read (a);
Write (“2do numero”);
Read (b);
suma = a + b;
Write (suma);
}
End
Fase de Procesamiento
Fase de Salida
Las variables que se van a
usar se “nombran” o
declaran al inicio del
programa
Fase de Entrada
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 41
09/03/2022
Contenido
• Introducción y lógica de programación. Fases para la
resolución de problemas.
• Análisis del Problema. (Entrada-Proceso-Salida).
• Diseño de algoritmos mediante las técnicas de
pseudocódigo y diagramas de flujo
• Estructuras de control de flujo en algoritmos: de decisión
y repetición
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 42
09/03/2022
Formas de Representar un Algoritmo
• Un algoritmo puede ser representado en
papel utilizando cualquiera de las siguientes
formas:
– Lenguaje natural (en nuestro caso español)
• Un lenguaje expresado de esta forma, corre el riesgo
de no ser suficientemente claro.
– Gráficos
• Un método que tiene mucha acogida, cada paso, se
especifica a través de un gráfico.
– Pseudocódigo
• Un lenguaje más formal que el natural, pero
suficientemente flexible y fácil para ser comprendido
por alguien sin mucha experiencia.
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 43
09/03/2022
Ejemplo: Aprobar o no aprobar
• Escriba un algoritmo que dadas tres notas de un
sujeto
– Determine si el sujeto aprueba o no la materia
Si la primera nota mas la segunda nota o la
primera mas la tercera o la segunda mas la
tercera es mayor a 14
Aprueba
Si no
Reprueba
Lenguaje Natural
if nota1 + nota2 >= 14 or
nota1 + nota3 >= 14 or
nota2 + nota3 >= 14
Write(“Aprueba”);
else
Write(“Reprueba”);
end if
Pseudocódigo
INICIO
FIN
nota1,
nota2,
nota3
“Reprueba”
NO
SI
Diagrama de Flujo
“Aprueba”
nota1+nota2 >= 14 or
nota2+nota3 >= 14 or
nota1 + nota3 >= 14
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 44
09/03/2022
Gráficos: Diagramas de Flujo (DFD)
• Son representaciones
gráficas de secuencias de
pasos a realizar.
• Cada operación se
representa mediante un
símbolo normalizado el
Instituto Norteamericano
de Normalizacion (ANSI).
• Las líneas de flujo indican
el orden de ejecución.
• Los diagramas de flujo
suelen ser usados solo
para representar
algoritmos pequeños, ya
que abarcan mucho
espacio.
escribir “La nota es: ”, nota
fin
Inicio
escribir “ingrese nota ”
leer nota
nota < 0 or nota > 20
SI
NO
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 45
09/03/2022
Símbolos
• Terminal (representa el inicio y el fin. Puede
representarse también una parada o
interrupción programada que sea necesario
realizar en el programa
• Entrada/Salida (cualquier tipo de introducción
de datos en la memoria desde los periféricos)
• Proceso (cualquier tipo de operación que
pueda originar cambio de valor, formato o
posición de la información almacenada en
memoria, operaciones aritméticas, de
transferencia, etc.)
• Decisión (indica operaciones lógicas o de
comparación entre datos –normalmente dos-
y en función del resultado de la misma
determina cuál de los distintos caminos
alternativos del programa se debe seguir)
SI
NO
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 46
09/03/2022
Símbolos
• Decisión múltiple (en función del
resultado de la comparación se seguirá
uno de los diferentes caminos de acuerdo
con dicho resultado)
• Conector (sirve para enlazar dos partes
cualesquiera de un ordinograma a través
de un conector en la salida y otro
conector en la entrada. Se refiere a la
conexión en la misma página del
diagrama)
• Indicador de dirección o línea de flujo
(indica el sentido de ejecución de las
operaciones)
• Conector (conexión entre dos puntos del
organigrama situado en páginas
diferentes)
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 47
09/03/2022
Símbolos
• Llamada subrutina o a un proceso
determinado (una subrutina es un
módulo independiente del programa
principal, que recibe una entrada
procedente de dicho programa, realiza
un tarea determinada y regresa, al
terminar, al programa principal)
• Pantalla (se utiliza en ocasiones en
lugar del símbolo de E/S)
• Impresora (se utiliza en ocasiones en
lugar del símbolo de E/S)
• Teclado (se utiliza en ocasiones en
lugar del símbolo de E/S)
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 48
09/03/2022
¿Qué es el Pseudocódigo?
• Es la representación narrativa de los pasos que debe seguir
un algoritmo para dar solución a un problema determinado. El
Pseudocódigo utiliza palabras que indican el proceso a
realizar.
• Describen un algoritmo de forma similar a un lenguaje de
programación pero sin su rigidez, de forma más parecida al
lenguaje natural.
• Presentan la ventaja de ser más compactos que los
diagramas de flujo, más fáciles de escribir para las
instrucciones complejas y más fáciles de transferir a un
lenguaje de programación.
• El pseudocódigo no está regido por ningún estándar.
• Algunas palabras usadas son LEER/IMPRIMIR para
representar las acciones de lectura de datos y salida de
datos.
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 49
09/03/2022
Pseudocódigo
• El pseudocódigo es un lenguaje de documentación de
programas similar al inglés (o español), parecido a
cualquier lenguaje de programación de alto nivel.
• No necesita seguir ninguna regla específica, como sí
lo requieren los programas que van a ser compilados.
• Normalmente no es muy específico para las áreas de
E/S.
• Tiene la ventaja que se puede crear fácilmente con
cualquier editor de texto.
• No hay ningún estándar en la industria definido para
los pseudocódigos.
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 50
09/03/2022
Reglas parecidas a un Diagramas de flujo
Instrucción Operación de
E/S
Condición Inicio y Fín
If, Else, Or,
And, End if,
While
Begin,
End
Write, Print,
etc.
Se usan Verbos
para describir
acciones
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 51
09/03/2022
Palabras Claves en Pseudocódigo
• El pseudocódigo puede utilizar palabras claves o
palabras especiales que van indicando lo que significa el
algoritmo.
• Ejemplo de palabras claves en pseudocódigo:
- Inicio y Fin
- Sí <condición>
- Entonces <acciones>
- Sino <acciones>
- Mientras <condición> hacer
- Repetir / hasta <condición>
- Desde / hasta
- Según sea
• Los comentarios van encerrados entre llaves.
• Hay que utilizar las sangrías.
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 52
09/03/2022
Estructura de los Pseudocódigos
• La estructura recomendada para los algoritmos
en pseudocódigo es:
Algoritmo <nombre algoritmo>
Var
<nombre>: <tipo>
Inicio
<Instrucciones>
Fin
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 53
09/03/2022
Estructura Secuencial
• Es aquella en la que una acción sigue a
otra en secuencia. Las tareas se suceden
en tal modo que la salida de una es la
entrada de la siguiente y así
sucesivamente hasta el final del proceso.
• La estructura secuencial tiene una entrada
y una salida
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 54
09/03/2022
Secuencia
• Se compone de un grupo de acciones que se realizan
todas y en el orden en que están escritas, sin posibilidad
de omitir ninguna de ellas.
• Las tareas se suceden de forma tal que la salida de una
de ellas es la entrada de la siguiente y así
sucesivamente hasta el final del proceso.
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 55
09/03/2022
Ejemplo: Calcular el producto de dos
números
algoritmo Producto
var
entero : A, B, P
inicio
escribir “Ingrese dos números”
leer A, B
P ← A * B
escribir “El producto es: “ , P
fin
A B P
??? ??? ???
Ingrese dos números
10 5
El producto es: 50
10 5 50
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 56
09/03/2022
Ejemplo: Calcular el monto de igv a
cancelar de una venta
algoritmo MontoIgv
const
IGV = 0.19
var
entero : venta, monto
inicio
escribir “Ingrese monto de venta”
leer venta
monto ← venta * IGV
escribir “El monto de igv de la venta es : “ , monto
fin
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 57
09/03/2022
Ejemplo: Suma de Dos Números
algoritmo SumadeDosNumeros
var
entero : N1, N2, S
inicio
Leer N1,N2
S ← N1 + N2
Escribir “La suma es: ”, S
fin
Inicio
leer N1, N2
S ← N1 + N2
escribir “La suma es: ”
, S
fin
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 58
09/03/2022
Ejemplo: Área de un círculo
algoritmo AreaCirculo
const
PI = 3.141592
var
entero : R, A
inicio
Leer R
A ← PI * R * R
Escribir “El área es: ”, A
fin
leer R
A ← PI * R * R
escribir “El área es: ”, A
fin
Inicio
PI ← 3.141592
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 59
09/03/2022
Pseudocódigo vs 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.
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 60
09/03/2022
Contenido
• Introducción y lógica de programación. Fases para la
resolución de problemas.
• Análisis del Problema. (Entrada-Proceso-Salida).
• Diseño de algoritmos mediante las técnicas de
pseudocódigo y diagramas de flujo
• Estructuras de control de flujo en algoritmos: de decisión
y repetición
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 61
09/03/2022
Decisión/Selección de Alternativa
• Permite la selección entre dos grupos de acciones
dependiendo de que una determinada condición se cumpla o
no.
• Estas estructuras se utilizan para tomar decisiones lógicas;
por ello recibe también el nombre de estructuras de decisión
o alternativas o condicionales.
• Las condiciones que se especifican usan expresiones lógicas
y usan la figura geométrica en forma de rombo. Estas
estructuras pueden ser: Simples o dobles.
– Simple: Solo obliga a realizar acciones si se cumple la
condición. El “no cumplimiento” de la condición implica que no
se realizará ninguna acción.
– Doble: El cumplimiento o no de la condición lógica obliga a la
ejecución de diferentes grupos de acciones.
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 62
09/03/2022
Decisión/Selección de Alternativa
2
C
o
n
d
ic
io
n
A
c
c
io
n
S
I
N
O C
o
n
d
ic
io
n
A
c
c
io
n
S
I
A
c
c
io
n
N
O
1
Decisión Simple Decisión Doble
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 63
09/03/2022
Decisión/Selección de Alternativa
• Estructura de elección entre varios casos
– Este tipo de estructura permite decidir entre varios
caminos posibles, en función del valor que tome una
determinada instrucción.
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 64
09/03/2022
Ejemplo: ¿Cliente es un miembro
registrado?
Problema: “Alquiler de video”.
Subproblema: “Verificar si el cliente es un miembro registrado”.
NO SI
¿Número encontrado?
Obtener
Identificación
Introducir nro.
Teléfono en la
Computadora
Iniciar Proceso: Nuevo
Miembro
Proceder con el
Alquiler
Nota: este
diagrama es
solo parte de la
solución general
del problema (no
esta completo)
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 65
09/03/2022
Ejemplo: ¿Edad adulta?
Determinar si una persona es adulta
algoritmo Edades
var
entero : edad
inicio
escribir “Ingrese edad”
leer edad
si edad>=18 entonces
escribir “La persona es adulta”
fin_si
fin
leer edad
escribir
“La persona es adulta”
fin
Inicio
escribir “Ingrese edad: ”
edad >= 18
SI
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 66
09/03/2022
Ejemplo: ¿mayor-menor?
Determinar si una persona es adulta o
menor de edad
algoritmo Edades
var
entero : edad
inicio
escribir “Ingrese edad”
leer edad
si edad>=18 entonces
escribir “La persona es adulta”
si_no
escribir “La persona es menor
de edad”
fin_si
fin
leer edad
escribir
“La persona es
adulta”
fin
Inicio
escribir “Ingrese edad: ”
edad >= 18
SI
escribir
“La persona es
menor de edad”
NO
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 67
09/03/2022
Ejemplo: # ¿+, -, 0?
Determinar si una valor entero ingresado
es positivo, negativo o cero.
algoritmo Numero
var
entero : valor
inicio
escribir “Ingrese un valor entero”
leer valor
si valor>0 entonces
escribir “El número es positivo”
si_no
si valor<0 entonces
escribir “El número es negativo”
si_no
escribir “El número es cero”
fin_si
fin_si
fin
leer valor
escribir
“El número es
positivo”
fin
Inicio
escribir “Ingrese un
valor entero: ”
Valor > 0
SI
NO
Valor < 0
escribir
“El número es
negativo”
SI
escribir
“El número es
cero”
NO
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 68
09/03/2022
Ejemplo: ¿nombre del día?
Desarrollar un pseudocódigo que solicite un valor del día entre 1 y 7 y se
muestre el nombre del día
algoritmo NombresdeDias
var
entero : dia
inicio
escribir “Ingrese un valor entre 1 y 7”
leer dia
seún_sea dia hacer
caso 1: escribir “Lunes”
caso 2: escribir “Martes”
caso 3: escribir “Miércoles”
caso 4: escribir “Jueves”
caso 5: escribir “Viernes”
caso 6: escribir “Sábado”
caso 7: escribir “Domingo”
en_otro_caso: escribir “Error”
fin_segun
fin
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 69
09/03/2022
leer dia
escribir
“Lunes”
fin
Inicio
escribir “Ingrese
un valor entre 1 y 7 : ”
según sea dia
escribir
“Martes”
escribir
“Miércoles”
escribir
“Jueves”
escribir
“Viernes”
escribir
“Sábado”
escribir
“Domingo”
escribir
“Error”
1 2 3 4 5 6 7 en otro caso
algoritmo NombresdeDias
var
entero : día
inicio
escribir “Ingrese un valor entre 1 y 7”
leer dia
seún_sea dia hacer
caso 1: escribir “Lunes”
caso 2: escribir “Martes”
caso 3: escribir “Miércoles”
caso 4: escribir “Jueves”
caso 5: escribir “Viernes”
caso 6: escribir “Sábado”
caso 7: escribir “Domingo”
en_otro_caso: escribir “Error”
fin_segun
fin
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 70
09/03/2022
Iteración o Repetición
• Permite repetir una o varias instrucciones
un número determinado de veces que
vendrá determinado por una condición.
Esta condición se conoce como condición
de salida.
• A estos tipos de estructuras se las conoce
también con el nombre de bucles o lazos
y al hecho de repetir la ejecución de
acciones se llama iteración.
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 71
09/03/2022
Estructura repetitiva Para (For)
• Se caracteriza porque la
condición de salida del bucle
está situada al comienzo del
mismo, es decir las acciones
la hace mientras se cumple
determinada condición.
• Cuando se ejecuta una
estructura de este tipo, lo que
primero se hace es evaluar la
condición, si la misma es falsa
no se realiza ninguna acción.
• Si la condición resulta
verdadera entonces se
ejecuta el cuerpo del bucle
(acciones de la Figura).
• Este mecanismo se repite
mientras la condición sea
verdadera.
acciones
indices
Se hace notar que en este tipo de
estructura las acciones pueden no
ejecutarse ninguna vez.
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 72
09/03/2022
Ejemplo: primeros 5 números
Mostrar los primeros 5 números
algoritmo mostrarnumeros
var
entero : i
Inicio
para i ← 1 hasta 5 hacer
escribir “Número ”, i
fin_para
fin
Inicio
escribir “Numero ”
, i
fin
i ← 1 hasta 5
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 73
09/03/2022
Ejemplo: sumar 5 números
Calcular la suma de 5 números
ingresados por el usuario
algoritmo sumadenumeros
var
entero : N, S, i
Inicio
S ← 0
para i ← 1 hasta 5 hacer
escribir “Ingrese número”
leer N
S ← S + N
fin_para
escribir “La suma total es : “ , S
fin
S ← S + N
escribir “La suma total es: ”, S
fin
Inicio
S ← 0
escribir “ingrese numero ”
i ← 1 hasta 5
leer N
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 74
09/03/2022
Estructura repetitiva Mientras (while)
• Se caracteriza porque la
condición de salida del bucle
está situada al comienzo del
mismo, es decir las acciones
la hace mientras se cumple
determinada condición.
• Cuando se ejecuta una
estructura de este tipo, lo que
primero se hace es evaluar la
condición, si la misma es falsa
no se realiza ninguna acción.
• Si la condición resulta
verdadera entonces se
ejecuta el cuerpo del bucle
(acciones de la Figura). Este
mecanismo se repite mientras
la condición sea verdadera.
condicion
SI
NO
acciones
Se hace notar que en este tipo de estructura
las acciones pueden no ejecutarse ninguna
vez.
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 75
09/03/2022
Ejemplo: Sumar N #
Calcular la suma de N números ingresados
por el usuario
algoritmo sumadenumeros
var
entero : N, S, num, i
inicio
S ← 0
i ← 0
escribir “Ingrese cantidad de números: ”
leer N
mientras i < N hacer
escribir “Ingrese número”
leer num
S ← S + num
i ← i + 1
fin_mientras
escribir “La suma total es : “ , S
fin
S ← S + num
i ← i + 1
escribir “La suma total es: ”, S
fin
Inicio
S ← 0
i ← 0
escribir “ingrese numero ”
leer num
i < N
escribir “ingrese numero ”
leer N
SI
NO
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 76
09/03/2022
Ejemplo: Contar # +
Contar los números enteros positivos
introducidos por teclado.
algoritmo sumadenumeros
var
entero : num, cont
inicio
cont ← 0
escribir “Ingrese número”
leer num
mientras num > 0 hacer
cont ← cont + 1
escribir “Ingrese número”
leer num
fin_mientras
escribir “El número de enteros
positivos es : “ , cont
fin
cont ← cont + 1
escribir “el numero de enteros
Positivos es: ”, cont
fin
Inicio
cont ← 0
escribir “ingrese numero ”
leer num
num > 0
escribir “ingrese numero ”
leer num
SI
NO
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 77
09/03/2022
Estructura repetitiva Hacer (do-while)
• Se caracteriza porque la
condición que controla la
realización de las acciones del
bucle está al final del
mismo.
• En este tipo de iteración las
acciones se repiten mientras
la condición sea falsa, lo
opuesto a la estructura hacer
mientras.
• Este tipo de bucle se usa para
situaciones en las que se
desea que un conjunto de
instrucciones se ejecute al
menos una vez antes de
comprobar la condición de
iteración.
• La figura muestra la gráfica
correspondiente.
condicion
SI
NO
acciones
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 78
09/03/2022
Ejemplo: Nota válida
Leer por teclado una nota validada
algoritmo validanota
var
entero : nota
inicio
hacer
escribir “Ingrese nota”
leer nota
mientras (nota <0 or nota > 20)
escribir “La nota es : “ , nota
fin
escribir “La nota es: ”, nota
fin
Inicio
escribir “ingrese nota ”
leer nota
nota < 0 or nota > 20
SI
NO
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 79
09/03/2022
Ejemplo: número del mes
Leer por el número del mes
algoritmo mes
var
entero : mes
inicio
hacer
escribir “Ingrese mes”
leer mes
mientras (mes <1 or mes > 12)
escribir “El mes es : “ , mes
fin escribir “El mes es: ”, mes
fin
Inicio
escribir “ingrese mes ”
leer mes
mes < 1 or mes > 12
SI
NO
Algoritmos y Lógica de Programación Carrera de Software
Ph.D. Franklin Parrales 80
09/03/2022
Introducción a los
fundamentos de la
programación estructurada
Unidad 1
Final de la unidad

Más contenido relacionado

La actualidad más candente

Diagrama de flujo
Diagrama de flujo Diagrama de flujo
Diagrama de flujo albaniprz
 
Principios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwarePrincipios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwareJose Patricio Bovet Derpich
 
Taller ingernieria de requerimientos
Taller ingernieria de requerimientosTaller ingernieria de requerimientos
Taller ingernieria de requerimientosXilena16
 
MANUAL DE ENSAMBLAJE DE UNA PC
MANUAL DE ENSAMBLAJE DE UNA PCMANUAL DE ENSAMBLAJE DE UNA PC
MANUAL DE ENSAMBLAJE DE UNA PCJuan Machaca
 
Informe de desensamble y ensamble de la pc
Informe de desensamble y ensamble de la pcInforme de desensamble y ensamble de la pc
Informe de desensamble y ensamble de la pcwaltergentil96
 
IIS Unidad1: Introducción a la Ingeniería de Software
IIS Unidad1: Introducción a la Ingeniería de SoftwareIIS Unidad1: Introducción a la Ingeniería de Software
IIS Unidad1: Introducción a la Ingeniería de SoftwareFranklin Parrales Bravo
 
Informe de desensamble y ensamble de una computadora
Informe de desensamble y ensamble de una computadoraInforme de desensamble y ensamble de una computadora
Informe de desensamble y ensamble de una computadoraJohanna Castro Plaza
 
Ensamblaje y desmontaje
Ensamblaje y desmontajeEnsamblaje y desmontaje
Ensamblaje y desmontajeDaniel Pérez
 
Ensamble y desensamble de pc
Ensamble y desensamble de pcEnsamble y desensamble de pc
Ensamble y desensamble de pcdianamare
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareJahiro Bojorquez
 
Programacion Orientada a Objetos - Undiad 4 polimorfismo
Programacion Orientada a Objetos - Undiad 4 polimorfismoProgramacion Orientada a Objetos - Undiad 4 polimorfismo
Programacion Orientada a Objetos - Undiad 4 polimorfismoJosé Antonio Sandoval Acosta
 
Mi lenguaje de programación de preferencia es C++
Mi lenguaje de programación de preferencia es C++Mi lenguaje de programación de preferencia es C++
Mi lenguaje de programación de preferencia es C++N_Alejandrino
 
Infografia componentes internos del pc
Infografia componentes internos del pcInfografia componentes internos del pc
Infografia componentes internos del pcDaniel Arango
 
Manual paso a paso del armado de una pc
Manual paso a paso del armado de una pcManual paso a paso del armado de una pc
Manual paso a paso del armado de una pcEnriqueGranados
 

La actualidad más candente (20)

Diagrama de flujo
Diagrama de flujo Diagrama de flujo
Diagrama de flujo
 
Principios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del softwarePrincipios de diseño de la arquitectura del software
Principios de diseño de la arquitectura del software
 
Taller ingernieria de requerimientos
Taller ingernieria de requerimientosTaller ingernieria de requerimientos
Taller ingernieria de requerimientos
 
Conceptos de diseño
Conceptos de diseñoConceptos de diseño
Conceptos de diseño
 
MANUAL DE ENSAMBLAJE DE UNA PC
MANUAL DE ENSAMBLAJE DE UNA PCMANUAL DE ENSAMBLAJE DE UNA PC
MANUAL DE ENSAMBLAJE DE UNA PC
 
Informe de desensamble y ensamble de la pc
Informe de desensamble y ensamble de la pcInforme de desensamble y ensamble de la pc
Informe de desensamble y ensamble de la pc
 
PSW Unidad 1 PROCESO DE SOFTWARE
PSW Unidad 1 PROCESO DE SOFTWAREPSW Unidad 1 PROCESO DE SOFTWARE
PSW Unidad 1 PROCESO DE SOFTWARE
 
IIS Unidad1: Introducción a la Ingeniería de Software
IIS Unidad1: Introducción a la Ingeniería de SoftwareIIS Unidad1: Introducción a la Ingeniería de Software
IIS Unidad1: Introducción a la Ingeniería de Software
 
Informe de desensamble y ensamble de una computadora
Informe de desensamble y ensamble de una computadoraInforme de desensamble y ensamble de una computadora
Informe de desensamble y ensamble de una computadora
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Ensamblaje y desmontaje
Ensamblaje y desmontajeEnsamblaje y desmontaje
Ensamblaje y desmontaje
 
VISUAL BASIC 6.0
VISUAL BASIC 6.0VISUAL BASIC 6.0
VISUAL BASIC 6.0
 
Métodos Formales
Métodos FormalesMétodos Formales
Métodos Formales
 
Cuestionario java
Cuestionario java Cuestionario java
Cuestionario java
 
Ensamble y desensamble de pc
Ensamble y desensamble de pcEnsamble y desensamble de pc
Ensamble y desensamble de pc
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de software
 
Programacion Orientada a Objetos - Undiad 4 polimorfismo
Programacion Orientada a Objetos - Undiad 4 polimorfismoProgramacion Orientada a Objetos - Undiad 4 polimorfismo
Programacion Orientada a Objetos - Undiad 4 polimorfismo
 
Mi lenguaje de programación de preferencia es C++
Mi lenguaje de programación de preferencia es C++Mi lenguaje de programación de preferencia es C++
Mi lenguaje de programación de preferencia es C++
 
Infografia componentes internos del pc
Infografia componentes internos del pcInfografia componentes internos del pc
Infografia componentes internos del pc
 
Manual paso a paso del armado de una pc
Manual paso a paso del armado de una pcManual paso a paso del armado de una pc
Manual paso a paso del armado de una pc
 

Similar a ALP Unidad 1: Introducción a los fundamentos de la programación estructurada

Unidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptUnidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptssuser6eba56
 
Unidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosUnidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosAlexandra Ochoa
 
Trabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodoTrabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodogabrielaalban8
 
Open class 1_PE.pdf
Open class 1_PE.pdfOpen class 1_PE.pdf
Open class 1_PE.pdfRicardo89199
 
Algoritmo y programación
Algoritmo y programaciónAlgoritmo y programación
Algoritmo y programaciónVision Mundial
 
Introducción a Programa-me - Concurso español de programacion
Introducción a Programa-me - Concurso español de programacionIntroducción a Programa-me - Concurso español de programacion
Introducción a Programa-me - Concurso español de programacionJosé Ráez Rodríguez
 
Metodología para la creación de algoritmos 0
Metodología para la creación de algoritmos 0Metodología para la creación de algoritmos 0
Metodología para la creación de algoritmos 0Eliezer Cordova
 
Metodología para la creación de algoritmos
Metodología para la creación de algoritmosMetodología para la creación de algoritmos
Metodología para la creación de algoritmosEliezer Cordova
 
Programación algoritmica
Programación algoritmicaProgramación algoritmica
Programación algoritmicaMaría C. Plata
 
Programación estructurada (2).pptx
Programación estructurada (2).pptxProgramación estructurada (2).pptx
Programación estructurada (2).pptxEduardoSaynes
 
Introducción a Programa-me - Concurso español de programacion (actualizado)
Introducción a Programa-me - Concurso español de programacion (actualizado) Introducción a Programa-me - Concurso español de programacion (actualizado)
Introducción a Programa-me - Concurso español de programacion (actualizado) José Ráez Rodríguez
 
Guia de programación 10
Guia de programación 10Guia de programación 10
Guia de programación 10mariacepla
 
Trabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodoTrabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodogabrielaalban8
 
Clase 1 Itinerario
Clase 1 ItinerarioClase 1 Itinerario
Clase 1 Itinerariovbalda
 

Similar a ALP Unidad 1: Introducción a los fundamentos de la programación estructurada (20)

Presentación lenguaje programación
Presentación lenguaje programaciónPresentación lenguaje programación
Presentación lenguaje programación
 
Unidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptUnidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.ppt
 
Unidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosUnidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmos
 
Trabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodoTrabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodo
 
Open class 1_PE.pdf
Open class 1_PE.pdfOpen class 1_PE.pdf
Open class 1_PE.pdf
 
Programación
ProgramaciónProgramación
Programación
 
Algoritmo y programación
Algoritmo y programaciónAlgoritmo y programación
Algoritmo y programación
 
Introducción a Programa-me - Concurso español de programacion
Introducción a Programa-me - Concurso español de programacionIntroducción a Programa-me - Concurso español de programacion
Introducción a Programa-me - Concurso español de programacion
 
Metodología para la creación de algoritmos 0
Metodología para la creación de algoritmos 0Metodología para la creación de algoritmos 0
Metodología para la creación de algoritmos 0
 
Metodología para la creación de algoritmos
Metodología para la creación de algoritmosMetodología para la creación de algoritmos
Metodología para la creación de algoritmos
 
Fp03
Fp03Fp03
Fp03
 
Clase 1
Clase 1Clase 1
Clase 1
 
Introduccion.ppt
Introduccion.pptIntroduccion.ppt
Introduccion.ppt
 
Algoritmos y programacion
Algoritmos y programacionAlgoritmos y programacion
Algoritmos y programacion
 
Programación algoritmica
Programación algoritmicaProgramación algoritmica
Programación algoritmica
 
Programación estructurada (2).pptx
Programación estructurada (2).pptxProgramación estructurada (2).pptx
Programación estructurada (2).pptx
 
Introducción a Programa-me - Concurso español de programacion (actualizado)
Introducción a Programa-me - Concurso español de programacion (actualizado) Introducción a Programa-me - Concurso español de programacion (actualizado)
Introducción a Programa-me - Concurso español de programacion (actualizado)
 
Guia de programación 10
Guia de programación 10Guia de programación 10
Guia de programación 10
 
Trabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodoTrabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodo
 
Clase 1 Itinerario
Clase 1 ItinerarioClase 1 Itinerario
Clase 1 Itinerario
 

Más de Franklin Parrales Bravo

Presentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaPresentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaFranklin Parrales Bravo
 
IW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebIW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebFranklin Parrales Bravo
 
IW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaIW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaFranklin Parrales Bravo
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosFranklin Parrales Bravo
 
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebIW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebFranklin Parrales Bravo
 
AD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaFranklin Parrales Bravo
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasFranklin Parrales Bravo
 
EP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosEP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosFranklin Parrales Bravo
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosFranklin Parrales Bravo
 
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosAD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosFranklin Parrales Bravo
 
EP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosEP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosFranklin Parrales Bravo
 
EP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraEP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraFranklin Parrales Bravo
 
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareGCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareFranklin Parrales Bravo
 
GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software Franklin Parrales Bravo
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosFranklin Parrales Bravo
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosFranklin Parrales Bravo
 
RD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoRD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoFranklin Parrales Bravo
 
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4Franklin Parrales Bravo
 
RD Unidad 1: Principios de Comunicación y Redes
RD Unidad 1: Principios de Comunicación y RedesRD Unidad 1: Principios de Comunicación y Redes
RD Unidad 1: Principios de Comunicación y RedesFranklin Parrales Bravo
 

Más de Franklin Parrales Bravo (20)

Presentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaPresentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en Cuenca
 
IW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebIW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería Web
 
IW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaIW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicua
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos
 
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modeladoMOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
 
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebIW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
 
AD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuida
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidas
 
EP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosEP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgos
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidos
 
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosAD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
 
EP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosEP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectos
 
EP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraEP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestra
 
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareGCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
 
GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivos
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a Objetos
 
RD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoRD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y Enrutamiento
 
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
 
RD Unidad 1: Principios de Comunicación y Redes
RD Unidad 1: Principios de Comunicación y RedesRD Unidad 1: Principios de Comunicación y Redes
RD Unidad 1: Principios de Comunicación y Redes
 

ALP Unidad 1: Introducción a los fundamentos de la programación estructurada

  • 1. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 1 09/03/2022 Introducción a los fundamentos de la programación estructurada Unidad 1 Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo para uso de los cursos de Algoritmos y Lógica de Programación
  • 2. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 2 09/03/2022 Objetivo general de la Unidad 1 Aplicar los fundamentales de la lógica de programación estructurada mediante pseudocódigo o diagramas de flujo para representar soluciones a los diversos problemas de la vida real.
  • 3. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 3 09/03/2022 Contenido • Introducción y lógica de programación. Fases para la resolución de problemas. • Análisis del Problema. (Entrada-Proceso-Salida). • Diseño de algoritmos mediante las técnicas de pseudocódigo y diagramas de flujo • Estructuras de control de flujo en algoritmos: de decisión y repetición
  • 4. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 4 09/03/2022 ¿Qué son Ciencias de la Computación? • También conocida como informática • La informática es la rama del conocimiento que nos ayuda a resolver problemas por medio del uso del computador. • Los problemas que se pueden resolver con el computador están íntimamente ligados a la automatización de actividades que realizan los seres humanos. • Por Ejemplo: – Llevar las cuentas – Organizar las reuniones – Enviar y recibir mensajes – Buscar información
  • 5. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 5 09/03/2022 La programación: resolución de problemas ❑ Un programa es una secuencia de instrucciones con un propósito concreto que un ordenador puede interpretar y ejecutar ❑ Programar es resolver problemas ❑ Conjunto de actividades implicadas en la descripción, el desarrollo y la implementación eficaz de soluciones algorítmicas a problemas bien especificados Algoritmo 1. m. Conjunto ordenado y finito de operaciones que permite hallar la solución de un problema. (Extraído del Diccionario de la RAE, 22ª edición) ❑ Un algoritmo es, por tanto, una sistemática que transforma un estado inicial en un estado final ❑ La entrada del programa: Precondiciones ❑Descripción del estado inicial (datos y situación de partida) ❑ La salida del programa: Postcondiciones ❑Descripción del estado final (datos y situación deseada al acabar)
  • 6. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 6 09/03/2022 Lenguajes de Programación • Un lenguaje se puede definir como un conjunto de palabras y formas de expresión por medio de las cuales se comunican y relacionan miembros de una comunidad determinada. • Un lenguaje de programación es el lenguaje a través del cual los seres humanos se comunican con la computadora.
  • 7. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 7 09/03/2022 Lenguajes de Programación Máquina ( 0’s y 1’s) Alto nivel (C, vb,perl..) Más parecido al lenguaje natural, más fácil de entender Más parecido al lenguaje del computador Bajo Nivel (Ensamblador) • Las computadoras “hablan” su propio lenguaje, el cual es numérico y está limitado a 1s y 0s (Sistema Binario). • Para poder comunicarnos con ellas, existen varias alternativas: – Usar el mismo lenguaje de ellas: un lenguaje de máquina – Usar un lenguaje parecido al de las computadoras: un lenguaje de bajo nivel – Usar un lenguaje parecido al nuestro: un lenguaje de alto nivel
  • 8. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 8 09/03/2022 El Proceso de Programar • Escribir un programa es un proceso lento. • Los programas son escritos para resolver problemas. El proceso de resolver un problema es complejo y se han desarrollado metodologías formales. • De las metodologías podemos distinguir tres pasos básicos: 1. Identificación del problema 2. Análisis y resolución del problema 3. Implementación de la solución
  • 9. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 9 09/03/2022 Identificar el problema: ¿Qué hago? • Para identificar el problema se realizan dos actividades: – Dada una situación determinada, descubrir cuál es el problema que esta involucra. – Crear un enunciado (no mayor de 4 líneas) que exprese con precisión y de manera clara el problema a resolver 1
  • 10. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 10 09/03/2022 Resolución del problema:¿Cómo lo hago? • Para diseñar una solución es necesario: – Entender a cabalidad el problema – Identificar las áreas del conocimiento que abarca el problema. – Determinar las actividades que se pueden ejecutar con ayuda de un computador – Determinar como el computador va a realizar las actividades a él encomendadas (entradas, procesos y salidas) – Plantear y contrastar soluciones alternativas y escoger la mejor. 2
  • 11. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 11 09/03/2022 Implementación de la solución: ¿Cómo hago que el computador lo haga? • Una vez que se tiene una idea concreta de cómo resolver un problema hay que hacer que el computador realice las instrucciones deseadas. Idea solución Datos entrada Información Salida Descomponer Algoritmo 3
  • 12. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 12 09/03/2022 Algoritmos: La fuente de todo • Un algoritmo – Es un conjunto de pasos que detallan el camino a la solución de un problema • Problema: Cambiar de llanta A por llanta B Llanta A (Averiada) Llanta B (Repuesto)
  • 13. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 13 09/03/2022 Algoritmos: La fuente de todo • Problema: Cambiar de llanta A por llanta B – Paso 1: Sacar llanta B del baul – Paso 2: Destornillar tuercas de llanta A – Paso 3: Subir gata bajo el carro – Paso 4: Remover llanta A del auto – Paso 5: Colocar llanta B en el espacio sobrante – Paso 6: Bajar gata – Paso 7: Asegurar tuercas en llanta B • La idea siempre es – Evitar la ambigüedad – Que se pueda entender a toda costa
  • 14. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 14 09/03/2022 ¿Qué es un Algoritmo? • Dado que el computador sólo puede ejecutar instrucciones sencillas, es necesario descomponer cada acción en un subconjunto de operaciones mas pequeñas. • Dado que el computador ejecuta solo una instrucción a la vez es necesario establecer un orden lógico para la ejecución de las mismas. • El conjunto de estas instrucciones ordenadas se conoce como algoritmo. • Un algoritmo es como una receta de cocina, en la cual se debe declarar que ingredientes -datos- son necesarios, como son cocinados -procesados- y cuales son los resultados -información-
  • 15. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 15 09/03/2022 Algoritmos • Un algoritmo debe ser: • Claro, sin ambigüedades: para poder seguir y ejecutar cada uno de sus pasos. • Efectivo: para que todos los pasos puedan llevarse a cabo. Por ejemplo: – Suba al piso inferior y camine 3 pasos a la derecha (seria imposible de llevar a cabo). • Finito: tener principio y fin. Un paso mal planteado puede provocar que el algoritmo no encuentre un fin. Por ejemplo: – Espere hasta que aparezcan tres hermanos gemelos. Un algoritmo con las mismas entradas siempre debe producir el mismo resultado.
  • 16. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 16 09/03/2022 Ejemplo de algoritmo • Búsqueda de la palabra PSICOSOMÁTICO en el diccionario. – Defina y describa en sus palabras los pasos que debería seguir para buscar la palabra. – Generalice los pasos y escriba un conjunto de instrucciones que sirvan para encontrar cualquier palabra en un diccionario. • Para buscar la palabra PSICOSOMATICO: 1. Buscar un diccionario Español-Español 2. Buscar la sección que contiene la letra P 3. Dentro de la sección P, 4. Buscar la siguiente letra S, 5. Buscar la siguiente letra I 6. En la parte de Psico, buscar Psicosomático 7. Escribir el significado en algún lugar
  • 17. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 17 09/03/2022 Antes que se acomoden.. • 4 Grupos de 5 integrantes – Los que Uds elijan – Si quieren elijan a alguien con quien nunca han hablado, q les parezca simpático, misterioso, loco, creativo, crítico, materialista, risueño, …
  • 18. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 18 09/03/2022 Trabajo grupal: Torres de Hanoi • Trasladar de torre 1 a torre 3 los discos – Sin dejar disco por debajo de uno más grande. – Escribir los pasos. Torre1 Torre2 Torre3
  • 19. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 19 09/03/2022 Torres de Hanoi - Solución • Estado inicial. Torre1 Torre2 Torre3
  • 20. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 20 09/03/2022 Torres de Hanoi - Solución • Mover disco verde a torre 3. Torre1 Torre2 Torre3
  • 21. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 21 09/03/2022 Torres de Hanoi - Solución • Mover disco azul a torre 2. Torre1 Torre2 Torre3
  • 22. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 22 09/03/2022 Torres de Hanoi - Solución • Mover disco verde a torre 2. Torre1 Torre2 Torre3
  • 23. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 23 09/03/2022 Torres de Hanoi - Solución • Mover disco rojo a torre 3. Torre1 Torre2 Torre3
  • 24. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 24 09/03/2022 Torres de Hanoi - Solución • Mover disco verde a torre 1. Torre1 Torre2 Torre3
  • 25. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 25 09/03/2022 Torres de Hanoi - Solución • Mover disco azul a torre 3. Torre1 Torre2 Torre3
  • 26. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 26 09/03/2022 Torres de Hanoi - Solución • Mover disco verde a torre 3. Torre1 Torre2 Torre3
  • 27. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 27 09/03/2022 Torres de Hanoi - Solución • Estado final. Torre1 Torre2 Torre3
  • 28. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 28 09/03/2022 Contenido • Introducción y lógica de programación. Fases para la resolución de problemas. • Análisis del Problema. (Entrada-Proceso-Salida). • Diseño de algoritmos mediante las técnicas de pseudocódigo y diagramas de flujo • Estructuras de control de flujo en algoritmos: de decisión y repetición
  • 29. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 29 09/03/2022 Implementación de la solución: ¿Cómo hago que el computador lo haga? • Una vez que se tiene una idea concreta de cómo resolver un problema hay que hacer que el computador realice las instrucciones deseadas. Idea solución Datos entrada Información Salida Descomponer Algoritmo
  • 30. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 30 09/03/2022 Conceptos Básicos • Programa – Grupo de instrucciones que indican a la computadora que debe hacer. – Es un conjunto de instrucciones que el computador puede “entender” y ejecutar. Para poder “entender” el significado de una instrucción, estas deben ser escritas en el lenguaje que el computador maneja (0’s y 1’s). El proceso de escribir estas instrucciones se llama programación. – La programación abarca también un conjunto de técnicas formales e informales que nos permiten escribir programas eficientes y rápidos. • Datos – Representación de hechos y/o eventos, sin ningún significado – Sirven de materia prima para los Sistemas de Información • Información – Es el resultado del procesamiento de datos – Tiene significado para el usuario – Puede ser utilizada como “dato” para otro proceso Procesamiento datos información
  • 31. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 31 09/03/2022 Conceptos Básicos • Procesamiento – Se refiere al grupo de operaciones que se aplican sobre los datos para conseguir la información. – La computadora es una máquina que efectúa operaciones para “recibir” datos, “procesarlos” y “mostrar” la información obtenida a quien corresponde. Juan, Pérez Pedro, Rodríguez Luis, Pozo Juan, Pérez $100 Pedro, Rodríguez $150 Luis, Pozo $140 Procesamiento Calcular salarios Datos de entrada (ingresados por teclado) Información (mostrados por pantalla)
  • 32. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 32 09/03/2022 Identificadores • Un identificador es el nombre que se le asigna a los datos de un programa (constantes, variables, tipos de datos), y que nos permiten el acceso a su contenido. • Ejemplo: – Calf1 – Valor_1 – Num_hrs
  • 33. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 33 09/03/2022 Tipos de datos • Es el valor que puede tomar una constante o variable . Por ejemplo, para representar los datos de un alumno como: Nombre, Num_cta, calf1, calf2, etc. • Los tipos de datos más utilizados son: – a) Numéricos: Representan un valor entero y real. Ejemplo: Entero: 250, -5 Real: 3.1416, -27.5 – b) Lógicos: Solo pueden tener dos valores (verdadero o falso), y son el resultado de una comparación. – c) Alfanuméricos: Son una serie de caracteres que sirven para representar y manejar datos como nombres de personas, artículos, productos, direcciones, etc.
  • 34. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 34 09/03/2022 Operadores • Es un símbolo que permite manipular los valores de variables y/o constantes. • Operador de asignación = ó  – Sirve para recuperar o guardar los valores obtenidos al realizarse o ejecutarse una expresión. • Operadores de relación 1) Mayor que > 2) Menor que < 3) Mayor igual que >= 4) Menor igual que <= 5) Igual = 6) Diferencia < > != •Son empleados para comparar dos ó más valores. •Su resultado produce valores como verdadero y falso. •Tienen el mismo nivel de prioridad.
  • 35. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 35 09/03/2022 Operaciones Matemáticas • Con los datos numéricos se pueden efectuar operaciones matemáticas, a través de los operadores aritméticos: Operador Significado Tipos de operandos Ejemplo Tipo de resultado Ejemplo + Suma Entero o real 4+2 4.35+ 2 4.35 + 2.5 Entero o real 6 6.35 6.85 - Resta Entero o real 4-2 4.35- 2 4.35 - 2.5 Entero o real 2 2.35 1.85 Div División entera Entero 10 div 6 Entero 1 Mod (%) Modulo Entero 10 mod 6 Entero 4 * Multiplicación Entero o real 4*2 4.35* 2 4.35 * 2.5 Entero o real 8 8.7 10.875 / División Real 4.00/2.00 4.35/ 2.5 Real 2.00 1.74 ^ Potenciación Entero o real 4^2 4.5 ^ 2 4.5 ^ 0.5 Entero o real 16 20.25 2.121 Precedencia
  • 36. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 36 09/03/2022 Operaciones Lógicas • Con los datos lógicos se pueden efectuar operaciones lógicas. Operador Significado Ejemplo Tipo de resultado Resultado No(not) Negación de un valor No(6>10) Entero o real Verdadero Y(and) Conjunción (1<5) y (5>10) Ecuador clasificó y Colombia no clasificó Entero o real Falso Verdadero O (or) Disyunción (5>10) o (10<9) Entero o real Falso
  • 37. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 37 09/03/2022 1) Matemáticos 2) Relacionales 3) Lógicos 4) De asignación Siempre se ejecutan de izquierda a derecha en caso de haber dos ó más operadores con el mismo nivel de prioridad. Prioridad entre los Operadores
  • 38. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 38 09/03/2022 Ejemplo • Se desea ordenarle al computador que sume dos números enteros ingresados por teclado y muestre el resultado
  • 39. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 39 09/03/2022 Fases de un Programa • Usualmente los programas en C y en la mayoría de lenguajes, constan de tres fases: – Fase de Entrada: se le indica al usuario que datos debe ingresar a la computadora y se recopila esa información – Fase de Procesamiento: los datos ingresados son procesados, se efectúan cálculos. – Fase de Salida: la información generada es mostrada, se despliegan los resultados
  • 40. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 40 09/03/2022 La Suma de Enteros En Pseudocódigo Begin { int a,b; int suma; Write (“1er numero”); Read (a); Write (“2do numero”); Read (b); suma = a + b; Write (suma); } End Fase de Procesamiento Fase de Salida Las variables que se van a usar se “nombran” o declaran al inicio del programa Fase de Entrada
  • 41. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 41 09/03/2022 Contenido • Introducción y lógica de programación. Fases para la resolución de problemas. • Análisis del Problema. (Entrada-Proceso-Salida). • Diseño de algoritmos mediante las técnicas de pseudocódigo y diagramas de flujo • Estructuras de control de flujo en algoritmos: de decisión y repetición
  • 42. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 42 09/03/2022 Formas de Representar un Algoritmo • Un algoritmo puede ser representado en papel utilizando cualquiera de las siguientes formas: – Lenguaje natural (en nuestro caso español) • Un lenguaje expresado de esta forma, corre el riesgo de no ser suficientemente claro. – Gráficos • Un método que tiene mucha acogida, cada paso, se especifica a través de un gráfico. – Pseudocódigo • Un lenguaje más formal que el natural, pero suficientemente flexible y fácil para ser comprendido por alguien sin mucha experiencia.
  • 43. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 43 09/03/2022 Ejemplo: Aprobar o no aprobar • Escriba un algoritmo que dadas tres notas de un sujeto – Determine si el sujeto aprueba o no la materia Si la primera nota mas la segunda nota o la primera mas la tercera o la segunda mas la tercera es mayor a 14 Aprueba Si no Reprueba Lenguaje Natural if nota1 + nota2 >= 14 or nota1 + nota3 >= 14 or nota2 + nota3 >= 14 Write(“Aprueba”); else Write(“Reprueba”); end if Pseudocódigo INICIO FIN nota1, nota2, nota3 “Reprueba” NO SI Diagrama de Flujo “Aprueba” nota1+nota2 >= 14 or nota2+nota3 >= 14 or nota1 + nota3 >= 14
  • 44. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 44 09/03/2022 Gráficos: Diagramas de Flujo (DFD) • Son representaciones gráficas de secuencias de pasos a realizar. • Cada operación se representa mediante un símbolo normalizado el Instituto Norteamericano de Normalizacion (ANSI). • Las líneas de flujo indican el orden de ejecución. • Los diagramas de flujo suelen ser usados solo para representar algoritmos pequeños, ya que abarcan mucho espacio. escribir “La nota es: ”, nota fin Inicio escribir “ingrese nota ” leer nota nota < 0 or nota > 20 SI NO
  • 45. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 45 09/03/2022 Símbolos • Terminal (representa el inicio y el fin. Puede representarse también una parada o interrupción programada que sea necesario realizar en el programa • Entrada/Salida (cualquier tipo de introducción de datos en la memoria desde los periféricos) • Proceso (cualquier tipo de operación que pueda originar cambio de valor, formato o posición de la información almacenada en memoria, operaciones aritméticas, de transferencia, etc.) • Decisión (indica operaciones lógicas o de comparación entre datos –normalmente dos- y en función del resultado de la misma determina cuál de los distintos caminos alternativos del programa se debe seguir) SI NO
  • 46. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 46 09/03/2022 Símbolos • Decisión múltiple (en función del resultado de la comparación se seguirá uno de los diferentes caminos de acuerdo con dicho resultado) • Conector (sirve para enlazar dos partes cualesquiera de un ordinograma a través de un conector en la salida y otro conector en la entrada. Se refiere a la conexión en la misma página del diagrama) • Indicador de dirección o línea de flujo (indica el sentido de ejecución de las operaciones) • Conector (conexión entre dos puntos del organigrama situado en páginas diferentes)
  • 47. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 47 09/03/2022 Símbolos • Llamada subrutina o a un proceso determinado (una subrutina es un módulo independiente del programa principal, que recibe una entrada procedente de dicho programa, realiza un tarea determinada y regresa, al terminar, al programa principal) • Pantalla (se utiliza en ocasiones en lugar del símbolo de E/S) • Impresora (se utiliza en ocasiones en lugar del símbolo de E/S) • Teclado (se utiliza en ocasiones en lugar del símbolo de E/S)
  • 48. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 48 09/03/2022 ¿Qué es el Pseudocódigo? • Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El Pseudocódigo utiliza palabras que indican el proceso a realizar. • Describen un algoritmo de forma similar a un lenguaje de programación pero sin su rigidez, de forma más parecida al lenguaje natural. • Presentan la ventaja de ser más compactos que los diagramas de flujo, más fáciles de escribir para las instrucciones complejas y más fáciles de transferir a un lenguaje de programación. • El pseudocódigo no está regido por ningún estándar. • Algunas palabras usadas son LEER/IMPRIMIR para representar las acciones de lectura de datos y salida de datos.
  • 49. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 49 09/03/2022 Pseudocódigo • El pseudocódigo es un lenguaje de documentación de programas similar al inglés (o español), parecido a cualquier lenguaje de programación de alto nivel. • No necesita seguir ninguna regla específica, como sí lo requieren los programas que van a ser compilados. • Normalmente no es muy específico para las áreas de E/S. • Tiene la ventaja que se puede crear fácilmente con cualquier editor de texto. • No hay ningún estándar en la industria definido para los pseudocódigos.
  • 50. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 50 09/03/2022 Reglas parecidas a un Diagramas de flujo Instrucción Operación de E/S Condición Inicio y Fín If, Else, Or, And, End if, While Begin, End Write, Print, etc. Se usan Verbos para describir acciones
  • 51. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 51 09/03/2022 Palabras Claves en Pseudocódigo • El pseudocódigo puede utilizar palabras claves o palabras especiales que van indicando lo que significa el algoritmo. • Ejemplo de palabras claves en pseudocódigo: - Inicio y Fin - Sí <condición> - Entonces <acciones> - Sino <acciones> - Mientras <condición> hacer - Repetir / hasta <condición> - Desde / hasta - Según sea • Los comentarios van encerrados entre llaves. • Hay que utilizar las sangrías.
  • 52. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 52 09/03/2022 Estructura de los Pseudocódigos • La estructura recomendada para los algoritmos en pseudocódigo es: Algoritmo <nombre algoritmo> Var <nombre>: <tipo> Inicio <Instrucciones> Fin
  • 53. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 53 09/03/2022 Estructura Secuencial • Es aquella en la que una acción sigue a otra en secuencia. Las tareas se suceden en tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el final del proceso. • La estructura secuencial tiene una entrada y una salida
  • 54. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 54 09/03/2022 Secuencia • Se compone de un grupo de acciones que se realizan todas y en el orden en que están escritas, sin posibilidad de omitir ninguna de ellas. • Las tareas se suceden de forma tal que la salida de una de ellas es la entrada de la siguiente y así sucesivamente hasta el final del proceso.
  • 55. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 55 09/03/2022 Ejemplo: Calcular el producto de dos números algoritmo Producto var entero : A, B, P inicio escribir “Ingrese dos números” leer A, B P ← A * B escribir “El producto es: “ , P fin A B P ??? ??? ??? Ingrese dos números 10 5 El producto es: 50 10 5 50
  • 56. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 56 09/03/2022 Ejemplo: Calcular el monto de igv a cancelar de una venta algoritmo MontoIgv const IGV = 0.19 var entero : venta, monto inicio escribir “Ingrese monto de venta” leer venta monto ← venta * IGV escribir “El monto de igv de la venta es : “ , monto fin
  • 57. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 57 09/03/2022 Ejemplo: Suma de Dos Números algoritmo SumadeDosNumeros var entero : N1, N2, S inicio Leer N1,N2 S ← N1 + N2 Escribir “La suma es: ”, S fin Inicio leer N1, N2 S ← N1 + N2 escribir “La suma es: ” , S fin
  • 58. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 58 09/03/2022 Ejemplo: Área de un círculo algoritmo AreaCirculo const PI = 3.141592 var entero : R, A inicio Leer R A ← PI * R * R Escribir “El área es: ”, A fin leer R A ← PI * R * R escribir “El área es: ”, A fin Inicio PI ← 3.141592
  • 59. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 59 09/03/2022 Pseudocódigo vs 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.
  • 60. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 60 09/03/2022 Contenido • Introducción y lógica de programación. Fases para la resolución de problemas. • Análisis del Problema. (Entrada-Proceso-Salida). • Diseño de algoritmos mediante las técnicas de pseudocódigo y diagramas de flujo • Estructuras de control de flujo en algoritmos: de decisión y repetición
  • 61. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 61 09/03/2022 Decisión/Selección de Alternativa • Permite la selección entre dos grupos de acciones dependiendo de que una determinada condición se cumpla o no. • Estas estructuras se utilizan para tomar decisiones lógicas; por ello recibe también el nombre de estructuras de decisión o alternativas o condicionales. • Las condiciones que se especifican usan expresiones lógicas y usan la figura geométrica en forma de rombo. Estas estructuras pueden ser: Simples o dobles. – Simple: Solo obliga a realizar acciones si se cumple la condición. El “no cumplimiento” de la condición implica que no se realizará ninguna acción. – Doble: El cumplimiento o no de la condición lógica obliga a la ejecución de diferentes grupos de acciones.
  • 62. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 62 09/03/2022 Decisión/Selección de Alternativa 2 C o n d ic io n A c c io n S I N O C o n d ic io n A c c io n S I A c c io n N O 1 Decisión Simple Decisión Doble
  • 63. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 63 09/03/2022 Decisión/Selección de Alternativa • Estructura de elección entre varios casos – Este tipo de estructura permite decidir entre varios caminos posibles, en función del valor que tome una determinada instrucción.
  • 64. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 64 09/03/2022 Ejemplo: ¿Cliente es un miembro registrado? Problema: “Alquiler de video”. Subproblema: “Verificar si el cliente es un miembro registrado”. NO SI ¿Número encontrado? Obtener Identificación Introducir nro. Teléfono en la Computadora Iniciar Proceso: Nuevo Miembro Proceder con el Alquiler Nota: este diagrama es solo parte de la solución general del problema (no esta completo)
  • 65. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 65 09/03/2022 Ejemplo: ¿Edad adulta? Determinar si una persona es adulta algoritmo Edades var entero : edad inicio escribir “Ingrese edad” leer edad si edad>=18 entonces escribir “La persona es adulta” fin_si fin leer edad escribir “La persona es adulta” fin Inicio escribir “Ingrese edad: ” edad >= 18 SI
  • 66. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 66 09/03/2022 Ejemplo: ¿mayor-menor? Determinar si una persona es adulta o menor de edad algoritmo Edades var entero : edad inicio escribir “Ingrese edad” leer edad si edad>=18 entonces escribir “La persona es adulta” si_no escribir “La persona es menor de edad” fin_si fin leer edad escribir “La persona es adulta” fin Inicio escribir “Ingrese edad: ” edad >= 18 SI escribir “La persona es menor de edad” NO
  • 67. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 67 09/03/2022 Ejemplo: # ¿+, -, 0? Determinar si una valor entero ingresado es positivo, negativo o cero. algoritmo Numero var entero : valor inicio escribir “Ingrese un valor entero” leer valor si valor>0 entonces escribir “El número es positivo” si_no si valor<0 entonces escribir “El número es negativo” si_no escribir “El número es cero” fin_si fin_si fin leer valor escribir “El número es positivo” fin Inicio escribir “Ingrese un valor entero: ” Valor > 0 SI NO Valor < 0 escribir “El número es negativo” SI escribir “El número es cero” NO
  • 68. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 68 09/03/2022 Ejemplo: ¿nombre del día? Desarrollar un pseudocódigo que solicite un valor del día entre 1 y 7 y se muestre el nombre del día algoritmo NombresdeDias var entero : dia inicio escribir “Ingrese un valor entre 1 y 7” leer dia seún_sea dia hacer caso 1: escribir “Lunes” caso 2: escribir “Martes” caso 3: escribir “Miércoles” caso 4: escribir “Jueves” caso 5: escribir “Viernes” caso 6: escribir “Sábado” caso 7: escribir “Domingo” en_otro_caso: escribir “Error” fin_segun fin
  • 69. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 69 09/03/2022 leer dia escribir “Lunes” fin Inicio escribir “Ingrese un valor entre 1 y 7 : ” según sea dia escribir “Martes” escribir “Miércoles” escribir “Jueves” escribir “Viernes” escribir “Sábado” escribir “Domingo” escribir “Error” 1 2 3 4 5 6 7 en otro caso algoritmo NombresdeDias var entero : día inicio escribir “Ingrese un valor entre 1 y 7” leer dia seún_sea dia hacer caso 1: escribir “Lunes” caso 2: escribir “Martes” caso 3: escribir “Miércoles” caso 4: escribir “Jueves” caso 5: escribir “Viernes” caso 6: escribir “Sábado” caso 7: escribir “Domingo” en_otro_caso: escribir “Error” fin_segun fin
  • 70. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 70 09/03/2022 Iteración o Repetición • Permite repetir una o varias instrucciones un número determinado de veces que vendrá determinado por una condición. Esta condición se conoce como condición de salida. • A estos tipos de estructuras se las conoce también con el nombre de bucles o lazos y al hecho de repetir la ejecución de acciones se llama iteración.
  • 71. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 71 09/03/2022 Estructura repetitiva Para (For) • Se caracteriza porque la condición de salida del bucle está situada al comienzo del mismo, es decir las acciones la hace mientras se cumple determinada condición. • Cuando se ejecuta una estructura de este tipo, lo que primero se hace es evaluar la condición, si la misma es falsa no se realiza ninguna acción. • Si la condición resulta verdadera entonces se ejecuta el cuerpo del bucle (acciones de la Figura). • Este mecanismo se repite mientras la condición sea verdadera. acciones indices Se hace notar que en este tipo de estructura las acciones pueden no ejecutarse ninguna vez.
  • 72. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 72 09/03/2022 Ejemplo: primeros 5 números Mostrar los primeros 5 números algoritmo mostrarnumeros var entero : i Inicio para i ← 1 hasta 5 hacer escribir “Número ”, i fin_para fin Inicio escribir “Numero ” , i fin i ← 1 hasta 5
  • 73. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 73 09/03/2022 Ejemplo: sumar 5 números Calcular la suma de 5 números ingresados por el usuario algoritmo sumadenumeros var entero : N, S, i Inicio S ← 0 para i ← 1 hasta 5 hacer escribir “Ingrese número” leer N S ← S + N fin_para escribir “La suma total es : “ , S fin S ← S + N escribir “La suma total es: ”, S fin Inicio S ← 0 escribir “ingrese numero ” i ← 1 hasta 5 leer N
  • 74. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 74 09/03/2022 Estructura repetitiva Mientras (while) • Se caracteriza porque la condición de salida del bucle está situada al comienzo del mismo, es decir las acciones la hace mientras se cumple determinada condición. • Cuando se ejecuta una estructura de este tipo, lo que primero se hace es evaluar la condición, si la misma es falsa no se realiza ninguna acción. • Si la condición resulta verdadera entonces se ejecuta el cuerpo del bucle (acciones de la Figura). Este mecanismo se repite mientras la condición sea verdadera. condicion SI NO acciones Se hace notar que en este tipo de estructura las acciones pueden no ejecutarse ninguna vez.
  • 75. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 75 09/03/2022 Ejemplo: Sumar N # Calcular la suma de N números ingresados por el usuario algoritmo sumadenumeros var entero : N, S, num, i inicio S ← 0 i ← 0 escribir “Ingrese cantidad de números: ” leer N mientras i < N hacer escribir “Ingrese número” leer num S ← S + num i ← i + 1 fin_mientras escribir “La suma total es : “ , S fin S ← S + num i ← i + 1 escribir “La suma total es: ”, S fin Inicio S ← 0 i ← 0 escribir “ingrese numero ” leer num i < N escribir “ingrese numero ” leer N SI NO
  • 76. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 76 09/03/2022 Ejemplo: Contar # + Contar los números enteros positivos introducidos por teclado. algoritmo sumadenumeros var entero : num, cont inicio cont ← 0 escribir “Ingrese número” leer num mientras num > 0 hacer cont ← cont + 1 escribir “Ingrese número” leer num fin_mientras escribir “El número de enteros positivos es : “ , cont fin cont ← cont + 1 escribir “el numero de enteros Positivos es: ”, cont fin Inicio cont ← 0 escribir “ingrese numero ” leer num num > 0 escribir “ingrese numero ” leer num SI NO
  • 77. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 77 09/03/2022 Estructura repetitiva Hacer (do-while) • Se caracteriza porque la condición que controla la realización de las acciones del bucle está al final del mismo. • En este tipo de iteración las acciones se repiten mientras la condición sea falsa, lo opuesto a la estructura hacer mientras. • Este tipo de bucle se usa para situaciones en las que se desea que un conjunto de instrucciones se ejecute al menos una vez antes de comprobar la condición de iteración. • La figura muestra la gráfica correspondiente. condicion SI NO acciones
  • 78. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 78 09/03/2022 Ejemplo: Nota válida Leer por teclado una nota validada algoritmo validanota var entero : nota inicio hacer escribir “Ingrese nota” leer nota mientras (nota <0 or nota > 20) escribir “La nota es : “ , nota fin escribir “La nota es: ”, nota fin Inicio escribir “ingrese nota ” leer nota nota < 0 or nota > 20 SI NO
  • 79. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 79 09/03/2022 Ejemplo: número del mes Leer por el número del mes algoritmo mes var entero : mes inicio hacer escribir “Ingrese mes” leer mes mientras (mes <1 or mes > 12) escribir “El mes es : “ , mes fin escribir “El mes es: ”, mes fin Inicio escribir “ingrese mes ” leer mes mes < 1 or mes > 12 SI NO
  • 80. Algoritmos y Lógica de Programación Carrera de Software Ph.D. Franklin Parrales 80 09/03/2022 Introducción a los fundamentos de la programación estructurada Unidad 1 Final de la unidad