Sunteți pe pagina 1din 50

Ingeniería de Sistemas e

Informática & Ingeniería Civil


Principios de Algoritmos

Mg. Díaz Sánchez Fernando


Dudas de la clase anterior…
Algoritmo

Recomendaciones

Imagen Extraída de: 2


https://proxy.duckduckgo.com/iu/?u=https%3A%2F%2Ftse3.mm.bing.net%2Fth%3Fid%3DOIP.JDK55f0ugka_RjhDbyzlTQHaFI%26pid%3DApi&f=1
Sesión 02 – Algoritmos,
Pseudocódigo y Lenguajes

Imágenes Extraída de:


https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.publicdomainpictures.net%2Fes%2Fview-image.php%3Fimage%3D160919%26picture%3Dhi-tech-
neon-y-resplandor-fondos&psig=AOvVaw2HjN8-9hbP8EXb0goUviXw&ust=1585440387601000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCPC_w_Lvu-
gCFQAAAAAdAAAAABAD
3
Logro de
Aprendizaje

Al finalizar la sesión, el
estudiante elabora
pseudocódigo básico, utilizando
variables, reconociendo tipo de
datos y palabras reservadas

Imágenes Extraída de:


https://c7.uihere.com/files/586/552/995/lemonade-drink-summer-lemon-thumb.jpg

4
Utilidad
Reconocer y usar los elementos básicos del diseño
de algoritmos usando diferentes técnicas de
representación

5
Imágenes Extraída de: https://live.staticflickr.com/7382/15787237274_8d3c544464_b.jpg
Contenido
1. Datos vs Información

2. Representación de un algoritmo
• Pseudocódigo
• Diagramas de Flujo

3. Lenguajes de Programación

4. Variables y tipos de datos

5. Palabras reservadas

6. Operadores aritméticos y de
asignación en pseudocódigo

6
1
Datos vs
Información

Imágenes Extraída de:


https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.publicdomainpictures.net%2Fes%2Fview-image.php%3Fimage%3D160919%26picture%3Dhi-tech-
neon-y-resplandor-fondos&psig=AOvVaw2HjN8-9hbP8EXb0goUviXw&ust=1585440387601000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCPC_w_Lvu-
gCFQAAAAAdAAAAABAD
7
1 Algoritmos | Datos vs Información

¿Qué son los Datos?

• Son hechos «crudos», que no han sido procesados


• Son hechos individuales
• Por si mismos, sin contexto no tienen mayor significado
• Son piezas de información, no información
• La calidad de datos es clave para obtener información
• Pueden extraerse de la información

Imagen extraída de: https://p2.piqsels.com/preview/161/126/446/cookbook-recipes-food-cook-


8
thumbnail.jpg
1 Algoritmos | Datos vs Información

Algunos ejemplos de Datos


• El código de un empleado
• Las horas trabajadas en la semana
• La temperatura del horno en un momento
• La talla de un orangután
• La velocidad de un choro
• El nombre de tu mascota

Menciona 3 datos más…

Imagen extraída de: https://p1.pxfuel.com/preview/650/406/447/math-work-mathematics-formulas-


9
calculation-education-study.jpg
1 Algoritmos | Datos vs Información

¿Qué es la Información?

• Es una representación de la realidad que puede responder a


las preguntas: ¿Quién?, ¿Qué?, ¿Cuándo?, ¿Dónde?.

• Son datos procesados, formateados y organizados con el


propósito de ser útiles.

• Según (Stair & Reynolds, 2016), es una colección de datos


organizados y procesados para tener valor adicional mas allá
del valor de los hechos individuales

Imagen extraída de: https://p2.piqsels.com/preview/161/126/446/cookbook-recipes-food-cook-


10
thumbnail.jpg
1 Algoritmos | Datos vs Información

Algunos ejemplos de Información


• El total de ventas del mes para un Administrador de Ventas
• Catálogo de artículos recomendados para un usuario online
• Listado de transacciones bancarias en un periodo dado
• Lista de incidentes de trabajo de tipo critico al año
• Historia clínica de un paciente

Menciona 1 ejemplo más…

Imagen extraída de: https://p1.pxfuel.com/preview/650/406/447/math-work-mathematics-formulas-


11
calculation-education-study.jpg
1 Algoritmos | Datos vs Información

¿Dónde encontrar datos de forma simple?


En la información…

• Reportes
• Boletas
• Facturas
• Avisos
• Credenciales
• Productos
• Estudios
• Internet
Imagen extraída de: https://p0.pikrepo.com/preview/899/371/online-reports-represents-business-graph-
12
and-analysis.jpg
2
Representación
de un Algoritmo

Imágenes Extraída de:


https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.publicdomainpictures.net%2Fes%2Fview-image.php%3Fimage%3D160919%26picture%3Dhi-tech-
neon-y-resplandor-fondos&psig=AOvVaw2HjN8-9hbP8EXb0goUviXw&ust=1585440387601000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCPC_w_Lvu-
gCFQAAAAAdAAAAABAD
13
2 Algoritmos | Representación de un algoritmo

¿Cómo se representa un algoritmo?


✓ «Usando un método para
independizar al algoritmo del
lenguaje de programación»
(Joyanes, 2008).

✓ Con esto conseguimos que el


algoritmo se pueda usar
virtualmente en cualquier
lenguaje de programación

Imágenes Extraída de: https://p1.pxfuel.com/preview/605/38/531/mark-marker-hand-leave.jpg


14
2 Algoritmos | Representación de un algoritmo

¿Y que métodos podemos usar?


Según (Joyanes, 2008), estos métodos son los mas usuales:

Lenguaje Natural (idiomas) Fórmulas Matemáticas

Diagramas N-S
Diagramas de Flujo
(Nassi-Schneiderman)

Pseudocódigo

15
2 Algoritmos | Representación de un algoritmo

¿Qué es el Pseudocódigo?
✓ Según (Joyanes, 2008) es un
lenguaje de especificación de
algoritmos.

✓ Puede considerarse como un


primer borrador del software

✓ Es similar al lenguaje natural


con el objetivo de ser sencillo
de usar. (Joyanes & Zahonero,
2001)
Imágenes Extraída de: https://upload.wikimedia.org/wikipedia/commons/9/92/Pseudocode.PNG
16
2 Algoritmos | Representación de un algoritmo

¿Cuáles son las ventajas del pseudocódigo?


✓ Permite concentrarse en la
lógica del algoritmo y no en
las reglas de un lenguaje de
programación

✓ Facilita la traducción del


algoritmo a un lenguaje de
programación

✓ Es más sencillo de corregir


errores que en un lenguaje
Imágenes Extraída de: https://upload.wikimedia.org/wikipedia/commons/9/92/Pseudocode.PNG
17
2 Algoritmos | Representación de un algoritmo

Ejemplo de pseudocódigo usando PSeInt


Algoritmo para sumar 2 números
Entrada: numero1, numero2, sum
Salida: Un texto con el resultado de la suma de numero1 y numero2

1 Proceso Sumar2Numeros
2 Definir numero1,numero2,sum Como Entero
3
4 numero1 <- 10
5 numero2 <- 20
6 sum <- numero1 + numero2
7
8 Escribir “La suma es: ”, sum
9 FinProceso

18
2 Algoritmos | Representación de un algoritmo

¿Qué es el Diagrama de Flujo?


✓ Según (Joyanes, 2008) es la
técnica de representación mas
antigua.

✓ Es un diagrama que usa


símbolos estandarizados
(cajas) unidos por flechas

✓ El flujo que se crea, denota la


secuencia en que se debe
ejecutar el algoritmo
Imágenes Extraída de: https://res06.bignox.com/noxinfluencer/youtube/avatar/21883f9108b2c432a20e3f140dfed5b6.png
19
2 Algoritmos | Representación de un algoritmo

¿Que ventajas tiene el Diagrama de flujo?


✓ Usa símbolos estándar

✓ Facilita la revisión del flujo del


algoritmo

✓ Mejora la precisión

✓ Permite un mejor trabajo con


personas que usan diferentes
idiomas

Imágenes Extraída de: https://res06.bignox.com/noxinfluencer/youtube/avatar/21883f9108b2c432a20e3f140dfed5b6.png


20
2 Algoritmos | Representación de un algoritmo

Ejemplo de Diagrama de flujo


INICIO

Leer
num1, num2 Algoritmo para sumar 2 números
Entrada: num1, num2, sum
Salida: Un texto con el resultado de la suma
sum ← num1 + num2 de num1 y num2

Escribir
«La suma es:», sum

FIN
21
3
Lenguajes de
Programación

Imágenes Extraída de:


https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.publicdomainpictures.net%2Fes%2Fview-image.php%3Fimage%3D160919%26picture%3Dhi-tech-
neon-y-resplandor-fondos&psig=AOvVaw2HjN8-9hbP8EXb0goUviXw&ust=1585440387601000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCPC_w_Lvu-
gCFQAAAAAdAAAAABAD
22
3 Algoritmos | Lenguajes de Programación

¿Qué es un Lenguaje de Programación?


✓ Es un lenguaje utilizado para
escribir programas de
computadoras

✓ Los programadores son las


personas que escriben estos
programas

✓ El algoritmo escrito a un
lenguaje de programación se
denomina código fuente
23
Imágenes Extraída de: https://live.staticflickr.com/7382/15787237274_8d3c544464_b.jpg
3 Algoritmos | Lenguajes de Programación

¿Qué es un Lenguaje de Programación?


✓ La programación es la
actividad que consiste en
expresar un algoritmo en
forma de programa

✓ El proceso de traducir un
algoritmo de pseudocódigo o
diagrama de flujo en un
lenguaje se denomina
codificación

24
Imágenes Extraída de: https://live.staticflickr.com/7382/15787237274_8d3c544464_b.jpg
3 Algoritmos | Lenguajes de Programación

Tipos de Lenguajes de Programación


✓ Según (Joyanes, 2008), los
lenguajes de programación se
dividen en 3 tipos:

✓ Lenguajes máquina

✓ Lenguajes de bajo nivel

✓ Lenguajes de alto nivel

25
Imágenes Extraída de: https://live.staticflickr.com/7382/15787237274_8d3c544464_b.jpg
3 Algoritmos | Lenguajes de Programación

Algunos Lenguajes de Programación

Imágenes extraídas de: https://bitsinteligentes.com/wp-content/uploads/2019/02/python.png, https://www.seekpng.com/png/detail/223-


2231910_java-logo-vector-tools-for-java-developer.png, https://img.icons8.com/color/480/c-programming.png,
https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/ISO_C%2B%2B_Logo.svg/911px-ISO_C%2B%2B_Logo.svg.png,
https://lenguajesdeprogramacion.net/wp-content/uploads/2018/01/lenguaje-javascript-logo.png,
https://upload.wikimedia.org/wikipedia/commons/thumb/2/27/PHP-logo.svg/1280px-PHP-logo.svg.png
26
4
Variables y
Tipos de dato

Imágenes Extraída de:


https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.publicdomainpictures.net%2Fes%2Fview-image.php%3Fimage%3D160919%26picture%3Dhi-tech-
neon-y-resplandor-fondos&psig=AOvVaw2HjN8-9hbP8EXb0goUviXw&ust=1585440387601000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCPC_w_Lvu-
gCFQAAAAAdAAAAABAD
27
4 Algoritmos | Variables y Tipos de datos

¿Qué es una Variable?


✓ Es un elemento que permite
almacenar un valor de forma
temporal
telefono
✓ El valor que guarda, puede
cambiar mientras el programa se
975364712
encuentra ejecutándose

✓ Un programa puede tener


muchas variables, pero cada una
se identifica de manera única
mediante su nombre 28
4 Algoritmos | Variables y Tipos de datos

¿Qué es una Variable?


«Se debe pensar en la variable como en una posición de memoria,
cuyo contenido puede variar mediante instrucciones de
asignación» (Joyanes, 2008)

Propiedades
telefono ✓ Nombre
✓ Tipo de Dato
✓ Tamaño
975364712 ✓ Valor
✓ Tiempo de Vida
✓ Ambito
caracter de 9 bytes ✓ Mutable por defecto

29
4 Algoritmos | Variables y Tipos de datos

Nomenclatura de Variables

telefono Reglas para nombrar variables


✓ Solo pueden contener letras,
números y underscores(_)
975364712 ✓ No pueden empezar con números o
símbolos matemáticos
✓ No se permiten espacios como parte
caracter de 9 bytes de nombre de una variable
✓ No se pueden usar keywords

Recomendaciones para nombrar variables


✓ Usar nombres cortos , descriptivos y en minúscula
✓ Usar una convención de nomenclatura de variables
30
4 Algoritmos | Variables y Tipos de datos

Ejemplos de Nomenclatura de Variables


CORRECTO INCORRECTO
✓ edad $edad
✓ horas_extra horas extra
✓ facebook facebook.com
✓ codigo_alumno codigo _alumno
✓ precio_final &precio_final
✓ nota1 1raNota
✓ tiene_sobrepaso Definir
✓ item Escribir
✓ descripcion #descripción
✓ resultado 123
31
4 Algoritmos | Variables y Tipos de datos

¿Qué es el Tipo de dato de una variable?


«Conjunto específico de valores de los datos, determinan como se
representan y lo que puede hacer con ellos» (Joyanes, 2008)

Tipo de Dato Representados por el siguiente conjunto de valores

Entero Números enteros (incluyen negativos)


Numérico
Real o
Números de punto flotante (incluyen negativos)
Flotante
Conjunto de caracteres alfanuméricos (números, letras,
Carácter o Cadena
signos de puntuación, etc.)

Lógico o Booleano Solo 2 posibles valores (Verdadero o Falso)

32
4 Algoritmos | Variables y Tipos de datos

Tipos de dato en PSeInt

Entero
Tipos de datos
Numéricos
Real
Tipos de Datos

Caracter

Lógico

33
4 Algoritmos | Variables y Tipos de datos

Analizando Tipos de datos


Valor Tipo Valor Tipo • El tipo de dato Lógico (o
-15 Entero 10:15 Caracter booleano) debe ser visto
como un ESTADO BINARIO
0 Entero 01/18/21 Caracter
158 Entero 158ml Caracter • Es decir, solo admite 2
0.0 Real Verdadero Logico posibles valores. Si/No,
Verdadero/Falso, 1/0,
158.9 Real “Verdadero” Caracter
Gordo/Flaco,
700MB Caracter 42158452 Entero Aprobo/Desaprobo,
Quince Caracter 42158452.6 Real Encendido/Apagado, etc.
Juan Caracter 15+58 Caracter
• No confundir ESTADO
Si Logico .25 Real BINARIO con TEXTO
Falso Logico No Logico
34
4 Algoritmos | Variables y Tipos de datos

Identificando Tipos de datos en Documentos

Valor Tipo
¿Es un Entero ó un Caracter? 760 Entero
760 mill Caracter
DEPENDE DEL PROGRAMADOR !

• Sin embargo, se RECOMIENDA PRIORIZAR los tipos de datos


numéricos porque con ellos podremos realizar cálculos (incluso
si no los usamos).
35
5
Palabras
Reservadas

Imágenes Extraída de:


https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.publicdomainpictures.net%2Fes%2Fview-image.php%3Fimage%3D160919%26picture%3Dhi-tech-
neon-y-resplandor-fondos&psig=AOvVaw2HjN8-9hbP8EXb0goUviXw&ust=1585440387601000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCPC_w_Lvu-
gCFQAAAAAdAAAAABAD
36
5 Algoritmos | Palabras reservadas

¿Qué es una Palabra Reservada?


✓ Es una palabra que no puede ser
utilizada como nombre
(identificador) de una variable

✓ El propósito de las palabras


reservadas o keywords, es
impedir la ambigüedad en el
manejo de las variables en el
programa

✓ Tienen un significado especial


para el computador
37
Imágenes Extraída de: https://storage.needpix.com/rsynced_images/keywords-letters-2041816_1280.jpg
5 Algoritmos | Palabras reservadas

¿Cuáles son las Palabras Reservadas?


✓ Las palabras reservadas son
distintas por cada lenguaje

✓ El Pseudocódigo, al ser un
lenguaje, también las usa. entre
las principales tenemos: leer,
pedir, escribir, mostrar, imprimir,
proceso, definir, si, sino, para,
mientras, repetir, según, hacer,
entero, real, carácter, cadena,
como, verdadero, falso,
booleano, etc
38
Imágenes Extraída de: https://storage.needpix.com/rsynced_images/keywords-letters-2041816_1280.jpg
6
Operadores
Aritméticos y
Operadores de
Asignación
Imágenes Extraída de:
https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.publicdomainpictures.net%2Fes%2Fview-image.php%3Fimage%3D160919%26picture%3Dhi-tech-
neon-y-resplandor-fondos&psig=AOvVaw2HjN8-9hbP8EXb0goUviXw&ust=1585440387601000&source=images&cd=vfe&ved=0CAIQjRxqFwoTCPC_w_Lvu-
gCFQAAAAAdAAAAABAD
39
6 Algoritmos | Operadores aritméticos y de asignación

¿Qué operadores aritméticos puedo usar?


La gran mayoría de lenguajes soporta todos los operadores
aritméticos, sin embargo se diferencian según su sintaxis
Operador Operación Pseudocódigo PSeInt Python
+ Suma 10+5 = 15 10+5 = 15 10+5 = 15
- Resta 20-2 = 18 20-2 = 18 20-2 = 18
* Multiplicación 3*3 = 9 3*3 = 9 3*3 = 9
/ División 10/2 = 5 10/2 = 5 10/2 = 5
^ Exponente 3^3 = 27 3^3 = 27 3**3 = 27
div Parte entera 9 div 2 = 4 TRUNC(9/2) = 4 9 // 2 = 4
mod Residuo 9 mod 2 = 1 9 mod 2 = 1 9%2=1

40
6 Algoritmos | Operadores aritméticos y de asignación

¿Cómo usar el operador de asignación?


Forma de asignación Ejemplo
variable ← expresión edad ← 19
variable1,variable2 ← exp1,exp2 codigo,nota ← ‘234513’,20
variable1 ← variable2 nota_final ← suma_de_notas
variable ← expresión de cálculo promedio ← (nota1+nota2)/2

Nota: La mayoría de lenguajes cambian el signo ← por el signo =


Nota: PSe-Int promueve el uso del signo ← usando 2 caracteres: <-

41
6 Algoritmos | Operadores aritméticos y de asignación

Asignación de valores enteros en PSeInt


edad
Definir edad Como Entero
19 edad <- 19
dia cantidad
Definir dia,cantidad Como Entero
7 140 dia <- 7
cantidad <- 140
total
dia x Definir total Como Entero
cantidad total <- dia * cantidad
42
6 Algoritmos | Operadores aritméticos y de asignación

Asignación de valores reales en PSeInt


precio
Definir precio Como Real
2.99 precio <- 2.99
nota1 nota2
Definir nota1,nota2 Como Real
10.5 18.0 nota1 <- 10.5
nota2 <- 18.0
prom
(nota1 + Definir prom Como Real
nota2)/2 prom <- (nota1+nota2)/2
43
6 Algoritmos | Operadores aritméticos y de asignación

Asignación de valores Caracter en PSeInt


nombre
Definir nombre Como Caracter
JUAN nombre <- ‘’JUAN’’
mes inicial
Definir mes,inicial Como Caracter
ENE J mes <- ‘ENE’
inicial <- ’J’
codigo
Definir codigo Como Caracter
ENE-J codigo <- mes + ‘-’ + inicial
44
6 Algoritmos | Operadores aritméticos y de asignación

Asignación de valores Lógicos en PSeInt

aprobado
Definir aprobado Como Logico
Verdadero
aprobado <- Verdadero

es_oro toxico
Definir es_oro,toxico Como Logico
Falso Falso
toxico <- Falso
es_oro <- Falso

45
6 Algoritmos | Operadores aritméticos y de asignación

Ejemplo: Algoritmo para sumar 2 números


Entrada: numero1, Proceso
numero2, sum

Salida: Un texto con la


suma de numero1 y
numero2

Ejecución:
La suma es: 30

46
6 Algoritmos | Operadores aritméticos y de asignación

La instrucción Escribir
• Permite mostrar la SALIDA de un algoritmo
• Se utiliza por lo general para mostrar los valores de nuestras
variables y otros mensajes importantes

Sintaxis Básica: Escribir <expr1>, <expr2>, <exprN>

Ejemplo Salida
Escribir “Hola Mundo” Hola Mundo
Definir numero Como Entero
numero <- 100 Hola: 100
Escribir “Hola:”, numero
47
Práctica
1. Descarga el archivo Sesion02-Tarea.pdf
2. Identifica 2 variables, sus valores y sus tipos de datos
3. Elabora un algoritmo con pseudocódigo donde se definan
todas las variables identificadas previamente
4. Sube tu archivo en Canvas (S02.s1 – Resolver ejercicios)

Imágenes Extraída de:


https://c1.wallpaperflare.com/preview/202/519/739/office-work-business-workspace.jpg

48
Resumiendo
1. Un dato es….

2. ¿Cómo se representan los


algoritmos?

3. ¿Que son los Lenguajes de


Programación?

4. Las variables son…. y sus tipos de


datos son….

5. Algunas palabras reservadas…

6. ¿Cómo asignar un valor a una


variable?
Imágenes Extraída de:
https://p2.piqsels.com/preview/490/113/77/digital-marketing-emarketing-the-positioning-of-the-seo.jpg

49
Bibliografía
• Joyanes, Luis (2008). Fundamentos de Programación, 4ta
edición. Madrid. Mc Graw Hill.

• Joyanes, L., & Zahonero, I. (2001). Programación en C,


Metodología, algoritmos y estructura de datos. Madrid:
McGraw Hill.

• Ralph M. Stair, George W. Reynolds. Fundamentals of


Information Systems, Eighth Edition. 2016 - CENGAGE Learning

50

S-ar putea să vă placă și