Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingeniería Informática
Algoritmos cotidianos
Algoritmo:
Se trata de una serie de instrucciones o reglas establecidas que, por medio de una
sucesión de pasos, permiten arribar a un resultado o solución.
Nos permite desarrollar problemas, nos obliga a pensar, y eso hace que podemos
desarrollar nuestra capacidad como programadores y/o como persona.
E S
n a
tr li
Para que un algoritmo d ordenada, finita y
a se considere como tal, debe ser una secuencia
d de un comportamiento) de instrucciones. a
definida (formalización
a
Características
Carácter finito. "Un algoritmo siempre debe terminar después de un número finito
de pasos".
Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación
específica con las entradas".
Tipos de Algoritmos
Cualitativos:
Cuantitativos:
Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso.
Algoritmo cotidiano
Es la serie de pasos que realizamos en nuestra vida diaria para realizar las diferentes
tareas y actividades comunes, desde los pasos al levantarnos, así como ir de compras, etc.
2
Estructura de un algoritmo
Cabecera
Bloque de declaraciones
Se utiliza para definir las variables que se utilizarán a lo largo del algoritmo.
Inicio
Bloque de instrucciones:
Es la parte principal del algoritmo y está definido entre otras cosas por:
Entrada
Corresponde a los datos necesarios que requiere el proceso para ofrecer los
resultados esperados.
Proceso
Salida
3
Un algoritmo se puede representar de diferentes formas, entre ellas se encuentran
el diagrama de flujo y el pseudocódigo:
Indica la salida de
Imprimir
información.
4
Conector fuera de página.
Representa la continuidad
del diagrama en otra
página.
Ejemplo:
Entero
Real
Lógico
Caracter
Cadena
5
Un dato de tipo entero es aquel que puede tomar por valor un número perteneciente al
conjunto de los números enteros (Z), el cual está formado por los números naturales, sus
opuestos (números negativos) y el cero.
Ejemplo: La edad de una persona y el año en que nació, son dos datos de tipo entero:
edad...: 29
año....: 1976
Un dato de tipo real es aquel que puede tomar por valor un número perteneciente al
conjunto de los números reales (R), el cual está formado por los números racionales e
irracionales.
Ejemplo: El peso de una persona (en kilogramos) y su altura (en centímetros), son datos
que pueden considerarse de tipo real.
peso.....: 75.3
altura...: 172.7
En programación, un dato de tipo lógico es aquel que puede tomar por valor sólo uno de
los dos siguientes: { verdadero o falso }.
Los valores "verdadero" y "falso" son contrapuestos, de manera que, un dato de tipo
lógico siempre está asociado a que algo se cumpla o no se cumpla.
Ejemplo: El estado de una barrera de paso de trenes es un dato que puede considerarse
de tipo lógico, por ejemplo, asociando "verdadero" a que esté subida y "falso" a que esté
bajada.
{A,B,C,...,Z,a,b,...,z,á,..,Á,...Ú,ç,Ç,..ñ,Ñ,0,1,...,9,=,+,?,*,#,...}
Representación interna.
6
Para representar cada caracter, basta con codificarlo con un determinado código binario.
Lo importante es que esa codificación sea conocida por las distintas computadoras,
lenguajes de programación, sistemas operativos, aplicaciones, etc. y así puedan
entenderse, esto es, hay que definir un estándar de codificación que sea aceptado y
conocido por todos. Habitualmente, en estos casos, lo que suele ocurrir es que no hay un
único estándar. Uno de los más aceptados es el llamado ASCII que asigna a cada caracter
un número binario de 7 bits (es decir, un número decimal entre 0 y 127). Mostramos en la
siguiente tabla algunos de los caracteres llamados “imprimibles” (los que pueden
visualizarse en pantalla o imprimirse). El resto son caracteres de control y otros especiales.
En 1991 se definió un nuevo estándar llamado UNICODE el cual asigna un código a más de
50000 símbolos de todos los alfabetos europeos, chinos, japoneses, coreanos y otros más.
Los símbolos del 0 al 127 del estándar UNICODE coinciden con los del estándar ASCII.
Un dato de tipo cadena es aquel que puede tomar por valor una secuencia de caracteres.
En pseudocódigo, el valor de un dato de tipo cadena se puede representar entre comillas
simples (') o dobles (").
7
Obsérvese que, en la cadena "La Odisea", el carácter espacio en blanco también se cuenta.
Identificadores
Ejemplo 1: Algunos identificadores válidos que pueden ser definidos por el programador
son:
numero
dia_del_mes
pinguino_1
_ciudad
z
8
Ejemplo 2: Los siguientes identificadores no son válidos por incumplir la segunda regla:
numero123
_dia
numero*
lugar de nacimiento
mes
Por último, hay que decir que, es aconsejable que los identificadores tengan un significado
afín a lo que representan.
Variables
Ejemplo de variables:
9
Para que un programa pueda hacer uso de una o más variables, éstas deben ser
declaradas previamente. Todas las variables de un programa se declaran de la misma
forma, indicando de cada una de ellas:
entero edad
Ejemplo 2: Si se desea declarar una variable para almacenar un número entero y que,
inicialmente, contenga el valor 35, se debe escribir:
entero numero 35
Constante
Ejemplo 1: Las siguientes constantes de tipo entero están expresadas por su valor:
-5
10
10
Ejemplo 2: De modo que, si se quieren declarar las constantes de tipo entero del
ejemplo anterior, asignándoles un identificador, se puede escribir, por ejemplo:
TEMPERATURA = -5
MES 10
O también:
8.12
000.333 (Los ceros a la izquierda no son significativos)
1111.809
-3200. (También se puede escribir -3200.0)
.56 (También se puede escribir 0.56)
11
Ejemplo 2: Las siguientes constantes de tipo real están expresadas correctamente:
-77e-3
+1111e+2
2000E+2
3040e2
{ verdadero, falso }
Ejemplo:
ESTADO verdadero
INTERRUPTOR falso
Ejemplo 1: Las siguientes constantes de tipo caracter están expresadas por su valor:
'a'
'T'
'5'
12
'+'
'.'
LETRA 's'
NUMERO '9'
SIGNO '-'
ESPACIO_EN_BLANCO ' '
Una constante de tipo cadena es aquella que representa a un valor (dato) que representa a
una secuencia de caracteres.
Ejemplo 1: Las siguientes constantes de tipo cadena están expresadas por su valor:
"Alejandro"
"Lucerna"
"Barcelona 2000"
NOMBRE "Alejandro"
CIUDAD "Lucerna"
OLIMPIADAS "Barcelona 2000"
1) caracter u
2) vocal i
3) letra j
4) cadena "nombre"
5) entero numero <- 7.0
6) 888.8
13
7) verdadero
8) nueve 9
9) logico CIERTO
10) interruptor falso
11) _123 "un dos tres"
12) real 40.09
13) barra <- '\'
14) a .9E-2
15) b 6.e5
16) caracter v, w, x
Respuestas
8) nueve 9
9) logico CIERTO
10) interruptor falso
11) _123 "un dos tres"
14) a .9E-2
15) b 6.e5
16) caracter v, w, x
No son correctas:
14
Salida:
Donde “El resultado es:” es un mensaje que se desea imprimir y r es una variable
que contiene un valor.
a+(b+3) + c
Cada expresión toma un valor que se determina tomando los valores de las variables y
constantes implicadas y la ejecución de las operaciones indicadas.
Según sea el tipo de datos que manipulan, se clasifican las expresiones en:
Aritméticas
Relacionales
Lógicas
15
Las expresiones aritméticas
Son analógicas a las fórmulas matemáticas. Las variable y constantes son numéricas (real
o entera) y las operaciones son aritméticas.
Operadores: Son elementos que relacionan de forma diferente, los valores de una o más
variables y/o constantes. Es decir, los operadores nos permiten manipular los valores.
Aritméticos
Lógicos
Operadores aritméticos
Pueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros, el
resultado es entero; si alguno de ellos es real, el resultado es real.
Formato
Valor
Ejemplos
a + b
5+ 3
Operadores aritméticos
+ Suma
- Resta
* Multiplicación
/ División
Ʌ
Exponenciación
div División entera
mod Módulo (residuo de la división entera)
16
Ejemplo:
Todas las expresiones entre paréntesis ( ) se evalúan primero. Las expresiones con
paréntesis anidados se evalúan de adentro a afuera, el paréntesis más interno se evalúa
primero.
()
Ʌ
Exponencial
*,/ Multiplicación, división
mod, div Modulo y división entera
+,- Suma y resta
Ejemplos:
Los operadores en una misma expresión con igual nivel de prioridad se evalúan de
izquierda a derecha.
a) 3+4*5=14 3+20=23
b) 23*2/5=9.2 46/5=9
c) 3+5*(10-(2+4))=23 3+5*(10-6)
3+5*(4)=3+20=23
d) 3.5+5.09-14.0/40=5.09 3.5+5.09-3.5
5.09
17
Expresiones lógicas booleanas
Operadores relacionales
Operadores relacionales
<> Diferente
= Igual
Ejemplos:
18
Operadores lógicos
And Y
OR O
Not Negación
Tablas de verdad
Operador And
V And V V
V And F F
F And V F
F And F F
Operador Or
V Or V V
V Or F V
F Or V V
F Or F F
19
Operador Not
Not V F
Not F V
Ejemplos:
20
Prioridad de los operadores en general
1. ( )
Ʌ
2.
4. +, - ,And
Ejemplo:
Operadores de asignación
21
Ejemplos de problemas secuenciales
1) Suponga que un individuo desea invertir su capital en un banco y desea saber cuánto
dinero ganará después de un mes si el banco paga a razón de 2% mensual.
22
Inicio
Imprimir “Introduzca el capital invertido: “
Leer capital
ganancia capital * 0.02
Imprimir “La ganancia de esta inversión al
aplicar el 2% de interés mensual a
un capital de $”, capital, “será de
$”, ganancia
Fin
23
2) Hacer un algoritmo que permita convertir kilogramos en gramos.
Inicio
Imprimir “Introduzca los kilogramos: “
Leer kg
gr ← kg * 1000
Imprimir kg, “ kilogramos equivalen a “, gr, “ gramos”
Fin
24
Si introducimos 1.5 como valor para la variable kilogramos, en pantalla se observaría:
Para comprobar que comprendieron este tema, los reto a que resuelvan el
siguiente problema:
25
Estructuras Selectivas.
Las estructuras lógicas selectivas se encuentran en la solución algorítmica de casi todo tipo
de problemas. Las utilizamos cuando en el desarrollo de la solución de un problema
debemos tomar una decisión, para establecer un proceso o señalar un camino alternativo
a seguir.
Esta toma de decisión (expresada con un rombo) se basa en la evaluación de una o más
condiciones que nos señalarán como alternativa o consecuencia, la rama a seguir.
Hay situaciones en las que la toma de decisiones se realiza en cascada. Es decir se toma
una decisión, se marca la rama correspondiente a seguir, se vuelve a tomar otra decisión y
así sucesivamente. Por lo que para alcanzar la solución de este problema o subproblema
debemos aplicar prácticamente un árbol de decisión.
Las estructuras algorítmicas selectivas que se utilizan para la toma de decisiones lógicas
las podemos clasificar de la siguiente forma:
Si (condición) Entonces
instrucción 1
instrucción 2
.........
instrucción n
Fin_Si
26
Ejemplo:
Algoritmo: Numero
Inicio
Leer a
Si (a = 5) Entonces
Imprimir "Es un 5"
Fin_Si
Fin
27
Diagrama de flujo
Algoritmo
Si (condición) Entonces
instrucción 1
instrucción 2
...................
instrucción n
Si_no
instrucción a
instrucción b
...................
instrucción z
Fin_Si
Ejemplo:
Algoritmo: Numero
Inicio
Leer a
Si (a = 5) Entonces
Imprimir "Es un 5"
Si_no
Imprimir "No es un 5"
Fin_Si
Fin
28
Ejemplo: Hacer un algoritmo en
diagrama de flujo y pseudocódigo,
que lea el nombre de un estudiante,
su calificación de Español y
Matemáticas, que calcule el promedio
de las dos y que imprima un mensaje
de felicitaciones si el promedio es
Algoritmo: Promedio
Inicio
Leer nombre
Leer m
Leer e
p (m+e)/2
Si (p>=70) Entonces
Imprimir ‘Felicidades’
Fin_Si
Fin
mayor o igual a 70
29
Ejemplo:
Leer el total de una compra, si es mayor a 5000 hacerle un 10% de descuento e imprimir el
total a pagar.
Algoritmo: Compra
Inicio
Leer compra
Si (compra>5000) Entonces
descto compra*0.10
totalCompra=compra-descto
Imprimir ‘El total es ’,totalCompra
Fin_Si
Fin
30
Ejemplo:
Leer el sueldo de un trabajador, si su sueldo es menor a 1000 deberemos aumentarle el
15%, en caso contrario aumentarle el 12%. Imprimir el nuevo sueldo del trabajador
Algoritmo: Sueldo
Inicio
Leer sueldo
Si (sueldo<1000) Entonces
aumento sueldo*0.15
Si_no
aumento sueldo*0.12
Fin_Si
totalSueldo sueldo+aumento
Imprimir (‘El sueldo total es’,totalSueldo)
Fin
31