2. AlgoritmoAlgoritmo
Un algoritmo es un conjunto ordenado yUn algoritmo es un conjunto ordenado y
finito de instrucciones que conducen a lafinito de instrucciones que conducen a la
solución de un problema.solución de un problema.
Si un algoritmo puede ser ejecutado porSi un algoritmo puede ser ejecutado por
una computadora, se dice que es ununa computadora, se dice que es un
algoritmo computacionalalgoritmo computacional; en caso; en caso
contrario, se dice que es uncontrario, se dice que es un algoritmo noalgoritmo no
computacionalcomputacional..
3. Figura Problema, algoritmo y programa
Todo algoritmo debe tener las siguientes características:
•Debe ser preciso, es decir, cada instrucción debe indicar de
forma inequívoca que se tiene que hacer.
•Debe ser finito, es decir, debe tener un número limitado de
pasos.
•Debe ser definido, es decir, debe producir los mismos
resultados para las mismas condiciones de entrada.
4. Todo algoritmo puede ser descompuestoTodo algoritmo puede ser descompuesto
en tres partes:en tres partes:
Entrada de datos.Entrada de datos.
Proceso.Proceso.
Salida de resultados.Salida de resultados.
5. Ejemplo 1:-Ejemplo 1:- Algoritmo para preparar cevicheAlgoritmo para preparar ceviche
de bonito para 6 personas.de bonito para 6 personas.
Entradas :Entradas :
- 1 kilo de bonito- 1 kilo de bonito
- 3 camotes sancochados- 3 camotes sancochados
- 3 cebollas cortadas a lo largo- 3 cebollas cortadas a lo largo
- 1 rocoto en rodajas- 1 rocoto en rodajas
- 3 ramas de apio picado- 3 ramas de apio picado
- 2 ramitas de culantro picado- 2 ramitas de culantro picado
- 4 vasos de jugo de limón- 4 vasos de jugo de limón
- 4 cucharadas de ajo molido- 4 cucharadas de ajo molido
- 2 cucharadas de ají amarillo molido- 2 cucharadas de ají amarillo molido
- sal y pimienta- sal y pimienta
Proceso :Proceso :
- Cortar la carne de pescado en pequeños trozos.- Cortar la carne de pescado en pequeños trozos.
- Mezclar la carne con el jugo de limón, el ajo, la pimienta, el culantro, el ají- Mezclar la carne con el jugo de limón, el ajo, la pimienta, el culantro, el ají
amarillo y el apio.amarillo y el apio.
- Dejar reposar 30 minutos.- Dejar reposar 30 minutos.
- Agregar sal al gusto y echar las cebollas cortadas.- Agregar sal al gusto y echar las cebollas cortadas.
- Servir acompañando el cebiche con el camote sancochado y el rocoto en- Servir acompañando el cebiche con el camote sancochado y el rocoto en
rodajasrodajas
Salida :Salida :
El cevicheEl ceviche
6. Ejemplo 1.2:-Ejemplo 1.2:- Algoritmo para expresar en centímetros yAlgoritmo para expresar en centímetros y
pulgadas una cantidad dada en metros.pulgadas una cantidad dada en metros.
Entrada:Entrada:
La cantidad M de metrosLa cantidad M de metros
Proceso:Proceso:
Cálculo de centímetros : C = M*100Cálculo de centímetros : C = M*100
Cálculo de pulgadas : P = C/2.54Cálculo de pulgadas : P = C/2.54
Salida :Salida :
La cantidad C de centímetros y laLa cantidad C de centímetros y la
cantidad P de pulgadascantidad P de pulgadas
7. El PseudocódigoEl Pseudocódigo
El pseudocódigo es un lenguaje deEl pseudocódigo es un lenguaje de
pseudoprogramación utilizado parapseudoprogramación utilizado para
escribirescribir algoritmos computacionalesalgoritmos computacionales..
8. VariablesVariables
Una variable es una localización o casillero en laUna variable es una localización o casillero en la
memoria principal que almacena un valor quememoria principal que almacena un valor que
puede cambiar en el transcurso de la ejecuciónpuede cambiar en el transcurso de la ejecución
del programa.del programa.
Cuando un programa necesita almacenar unCuando un programa necesita almacenar un
dato, necesita una variable.dato, necesita una variable.
Toda variable tiene unToda variable tiene un nombrenombre, un, un tipo de datotipo de dato
y uny un valorvalor..
Antes de poder utilizar una variable es necesarioAntes de poder utilizar una variable es necesario
declararla especificando sudeclararla especificando su nombrenombre y suy su tipo detipo de
datodato. Para declarar variables usaremos los. Para declarar variables usaremos los
siguientes formatos:siguientes formatos:
9. VariablesVariables
Declaración de una variable:Declaración de una variable:
tipo nombretipo nombre
Declaración de varias variables con el mismo tipo de dato:Declaración de varias variables con el mismo tipo de dato:
tipo nombre1, nombre2, nombre3, ..., nombrentipo nombre1, nombre2, nombre3, ..., nombren
Donde:Donde:
tipotipo Es el tipo de dato de la variable que puede ser: ENTERO (si la variableEs el tipo de dato de la variable que puede ser: ENTERO (si la variable
almacenará un número entero) , REAL (si la variable almacenará unalmacenará un número entero) , REAL (si la variable almacenará un
número decimal) , CARACTER (si la variable almacenará un carácter),número decimal) , CARACTER (si la variable almacenará un carácter),
CADENA (si la variable almacenará un conjunto de carácteres) o LOGICOCADENA (si la variable almacenará un conjunto de carácteres) o LOGICO
(si la variable almacenará el valor(si la variable almacenará el valor verdaderoverdadero o el valoro el valor falsofalso).).nombre1,nombre1,
nombre2, ..., nombrennombre2, ..., nombren Nombres de las variables.Nombres de las variables.
10. Declaración de variables.Declaración de variables.
La siguiente instrucción declara la variableLa siguiente instrucción declara la variable edadedad de tipode tipo
ENTEROENTERO y la variabley la variable descuentodescuento de tipo REAL.de tipo REAL.
ENTEROENTERO edadedad
REALREAL descuentodescuento
Esto crea los casilleros de memoriaEsto crea los casilleros de memoria edadedad yy descuentodescuento..
Luego de la creación, las variables están indefinidas ( ? ).Luego de la creación, las variables están indefinidas ( ? ).
11. Declaración de variables.Declaración de variables.
La siguiente instrucción declara las variablesLa siguiente instrucción declara las variables nota1nota1,, nota2nota2 yy
nota3nota3, todas de tipo, todas de tipo ENTEROENTERO..
ENTEROENTERO nota1, nota2, nota3nota1, nota2, nota3
Esto crea los casilleros de memoriaEsto crea los casilleros de memoria nota1nota1,, nota2nota2 yy nota3nota3..
Luego de la creación, las variables están indefinidas ( ? ).Luego de la creación, las variables están indefinidas ( ? ).
12. LiteralesLiterales
Se denominan literales a todos aquellosSe denominan literales a todos aquellos valoresvalores queque
figuran en el pseudocódigo y pueden ser:figuran en el pseudocódigo y pueden ser:
Literales enterosLiterales enteros
12, 20300, 15, etc.12, 20300, 15, etc.
Literales realesLiterales reales
3.1416, 2345.456, etc.3.1416, 2345.456, etc.
Literales de carácterLiterales de carácter
'a', 'B', ';', '<', '+', etc.'a', 'B', ';', '<', '+', etc.
Lieterales de cadenaLieterales de cadena
"Hola", "Algoritmos Computacionales", etc."Hola", "Algoritmos Computacionales", etc.
Literales lógicosLiterales lógicos
verdadero, falsoverdadero, falso
13. Instrucciones AlgorítmicasInstrucciones Algorítmicas
BásicasBásicas
EntradaEntrada
Consiste en obtener un dato de un dispositivo deConsiste en obtener un dato de un dispositivo de
entrada, como el teclado, y almacenarlo en una variable.entrada, como el teclado, y almacenarlo en una variable.
En general, la acción de ingresar un dato a unaEn general, la acción de ingresar un dato a una variablevariable
se expresa en el pseudocódigo mediante la palabrase expresa en el pseudocódigo mediante la palabra
LEERLEER, de la siguiente forma:, de la siguiente forma:
LEERLEER variablevariable
Por ejemplo, la instrucción:Por ejemplo, la instrucción:
LEERLEER estaturaestatura
Solicita el ingreso de un valor, desde algún dispositivoSolicita el ingreso de un valor, desde algún dispositivo
de entrada (como el teclado), para la variablede entrada (como el teclado), para la variable estaturaestatura..
14. Instrucciones AlgorítmicasInstrucciones Algorítmicas
BásicasBásicas
SalidaSalida
Consiste en mostrar el valor de una variable en unConsiste en mostrar el valor de una variable en un
dispositivo de salida, como la pantalla. En general, ladispositivo de salida, como la pantalla. En general, la
acción de mostrar el valor de unaacción de mostrar el valor de una variablevariable se expresase expresa
en el pseudocódigo mediante la palabraen el pseudocódigo mediante la palabra IMPRIMIRIMPRIMIR de lade la
siguiente forma:siguiente forma:
IMPRIMIRIMPRIMIR variablevariable
Por ejemplo, la instrucción:Por ejemplo, la instrucción:
IMPRIMIRIMPRIMIR importeCompraimporteCompra
Muestra, en algún dispositivo de salida (como la pantalla),Muestra, en algún dispositivo de salida (como la pantalla),
el valor de la variableel valor de la variable importeCompraimporteCompra..
15. Instrucciones AlgorítmicasInstrucciones Algorítmicas
BásicasBásicas
AsignaciónAsignación
Consiste en asignar a unaConsiste en asignar a una variablevariable el valor deel valor de
unauna expresiónexpresión. La expresión puede ser una. La expresión puede ser una
simple variable, un simple literal o unasimple variable, un simple literal o una
combinación de variables, literales ycombinación de variables, literales y
operadores. La asignación se expresa en eloperadores. La asignación se expresa en el
pseudocódigo de la siguiente forma:pseudocódigo de la siguiente forma:
variable = expresiónvariable = expresión
DondeDonde variablevariable y el valor dey el valor de expresiónexpresión debendeben
tener el mismo tipo de dato.tener el mismo tipo de dato.
16. Ejemplo:-Ejemplo:- Algoritmo para expresar en centímetros yAlgoritmo para expresar en centímetros y
pulgadas una cantidad dada en metros.pulgadas una cantidad dada en metros.
Esta es una solución en pseudocódigo delEsta es una solución en pseudocódigo del
ejemplo anterior utilizando conceptosejemplo anterior utilizando conceptos
computacionales de variable, entrada decomputacionales de variable, entrada de
datos y salida de resultados. La solucióndatos y salida de resultados. La solución
considera que 1 metro = 100 centímetrosconsidera que 1 metro = 100 centímetros
y que 1 pulgada = 2.54 centímetros.y que 1 pulgada = 2.54 centímetros.
22. Estructuras de SecuenciaEstructuras de Secuencia
Una estructura secuencial es aquella en laUna estructura secuencial es aquella en la
que las instrucciones están una aque las instrucciones están una a
continuación de la otra siguiendo unacontinuación de la otra siguiendo una
secuencia única, sin cambios de ruta. Lasecuencia única, sin cambios de ruta. La
estructura secuencial tiene una entrada yestructura secuencial tiene una entrada y
una salida.una salida.
En la Figura se muestra el diagrama deEn la Figura se muestra el diagrama de
flujo y el pseudocódigo de una estructuraflujo y el pseudocódigo de una estructura
secuencial.secuencial.
23.
24. Ejercicio 1Ejercicio 1:- Diseñe un pseudocódigo que halle el área y el perímetro:- Diseñe un pseudocódigo que halle el área y el perímetro
de un rectángulo. Considere que: area = base x altura yde un rectángulo. Considere que: area = base x altura y
perimetro = 2 x (base+altura).perimetro = 2 x (base+altura).
25. Ejemplo 2Ejemplo 2:- Diseñe un pseudocódigo para convertir una:- Diseñe un pseudocódigo para convertir una
longitud dada en metros a sus equivalentes en centímetros,longitud dada en metros a sus equivalentes en centímetros,
pies, pulgadas y yardas. Considere que: 1 metro = 100pies, pulgadas y yardas. Considere que: 1 metro = 100
centímetros, 1 pulgada = 2.54 centimetros, 1 pie = 12centímetros, 1 pulgada = 2.54 centimetros, 1 pie = 12
pulgadas, 1 yarda = 3 pies.pulgadas, 1 yarda = 3 pies.
26. Estructuras de SelecciónEstructuras de Selección
Las estructuras de selección son estructuras deLas estructuras de selección son estructuras de
control utilizadas para la toma decisiones dentrocontrol utilizadas para la toma decisiones dentro
de un programa. A estas estructuras se conocende un programa. A estas estructuras se conocen
también comotambién como estructuras selectivasestructuras selectivas oo
estructuras de decisiónestructuras de decisión y son las siguientes:y son las siguientes:
La estructura de selección simple (La estructura de selección simple (SISI).).
La estructura de selección doble (La estructura de selección doble (SI-SINOSI-SINO).).
La estructura de selección múltiple (La estructura de selección múltiple (SEGUNSEGUN))
27. Estructuras de SelecciónEstructuras de Selección
La estructura de selección simple permiteLa estructura de selección simple permite
ejecutar una acción o un grupo deejecutar una acción o un grupo de
acciones sólo si se cumple unaacciones sólo si se cumple una
determinada condición. Así, en el gráficodeterminada condición. Así, en el gráfico
siguiente, si la condición es verdadera sesiguiente, si la condición es verdadera se
ejecuta la acciónejecuta la acción accionaacciona; en caso; en caso
contrario, no se hace nada.contrario, no se hace nada.
28.
29. ejemploejemplo
Por ejemplo, si se desea cambiar el signo de unPor ejemplo, si se desea cambiar el signo de un
número únicamente en caso que sea negativo,número únicamente en caso que sea negativo,
podemos escribir:podemos escribir:
SISI( numero < 0 )( numero < 0 )
numero = -1 * numeronumero = -1 * numero
Si el número no es negativo, simplemente estaSi el número no es negativo, simplemente esta
estructura se pasaría por alto y se continuaríaestructura se pasaría por alto y se continuaría
en la siguiente instrucción después delen la siguiente instrucción después del SISI..
30. Estructura de SelecciónEstructura de Selección
Doble SI - SINODoble SI - SINO
La estructura de selección doble permiteLa estructura de selección doble permite
seleccionar una ruta de dos rutas posibles enseleccionar una ruta de dos rutas posibles en
base a la verdad o falsedad de una condición.base a la verdad o falsedad de una condición.
Así, en la Figura siguiente, si la condición esAsí, en la Figura siguiente, si la condición es
verdadera, se ejecuta la acción A; en casoverdadera, se ejecuta la acción A; en caso
contrario, se ejecuta la acción B.contrario, se ejecuta la acción B.
En la Figura se muestra el diagrama de flujo y elEn la Figura se muestra el diagrama de flujo y el
pseudocódigo de la estructura de selecciónpseudocódigo de la estructura de selección
doble.doble.
31.
32. ejemploejemplo
Por ejemplo, la siguiente estructura de selección doblePor ejemplo, la siguiente estructura de selección doble
determina si una persona es mayor o menor de edad:determina si una persona es mayor o menor de edad:
SISI( edad >= 18 )( edad >= 18 )
estadoestado == "Mayor de edad""Mayor de edad"
SINOSINO
estadoestado == "Menor de edad“"Menor de edad“
Esto imprime "Mayor de edad" si la persona tiene 18Esto imprime "Mayor de edad" si la persona tiene 18
años ó más e imprime "Menor de edad" si la personaaños ó más e imprime "Menor de edad" si la persona
tiene menos de 18 años. En cualquiera de los casos,tiene menos de 18 años. En cualquiera de los casos,
después de efectuar la impresión, se ejecutará ladespués de efectuar la impresión, se ejecutará la
primera instrucción que sigue a la estructuraprimera instrucción que sigue a la estructura SI...SINOSI...SINO..
33. Estructura de Selección DobleEstructura de Selección Doble
en Cascada SI-SINO-SIen Cascada SI-SINO-SI
La estructura de selección doble enLa estructura de selección doble en
cascada esta formada por variascascada esta formada por varias
estructuras de selección doble SI-SINOestructuras de selección doble SI-SINO
puestas una a continuación de otra depuestas una a continuación de otra de
forma que a un SI-SINO le sigue otro SI-forma que a un SI-SINO le sigue otro SI-
SINO.SINO.
34.
35. ejemploejemplo
Por ejemplo, la siguiente estructura de selección doble en cascada determina elPor ejemplo, la siguiente estructura de selección doble en cascada determina el
signo de un número entre positivo, negativo o cero:signo de un número entre positivo, negativo o cero:
SISI( n > 0 )( n > 0 )
signosigno == "Positivo""Positivo"
SINOSINO
SISI( n < 0 )( n < 0 )
signosigno == "Negativo""Negativo"
SINOSINO
signosigno == "Cero""Cero"
Usando el otro formato tendríamos:Usando el otro formato tendríamos:
SISI( n > 0 )( n > 0 )
signosigno == "Positivo""Positivo"
SINO SISINO SI( n < 0 )( n < 0 )
signosigno == "Negativo""Negativo"
SINOSINO
signosigno == "Cero""Cero"
36. Estructura de Selección MúltipleEstructura de Selección Múltiple
SEGUNSEGUN
La estructura de selección múltipleLa estructura de selección múltiple
SEGUNSEGUN permite elegir una ruta de entrepermite elegir una ruta de entre
varias rutas posibles, en base al valor devarias rutas posibles, en base al valor de
una variable que actúa comouna variable que actúa como selectorselector. La. La
estructura compara el valor delestructura compara el valor del selectorselector
con las constantes c1, c2, ..., cn en ordencon las constantes c1, c2, ..., cn en orden
descendente. En el momento en que sedescendente. En el momento en que se
encuentre una coincidencia, se ejecuta laencuentre una coincidencia, se ejecuta la
acción correspondiente a dicha constanteacción correspondiente a dicha constante
y se abandona la estructura.y se abandona la estructura.
37.
38. ejemploejemplo
Por ejemplo, la siguiente estructura de selecciónPor ejemplo, la siguiente estructura de selección
múltiple determina el nombre de la estación delmúltiple determina el nombre de la estación del
año conociendo el número de la estación (1año conociendo el número de la estación (1
para Primavera, 2 para Verano, 3 para Otoño ypara Primavera, 2 para Verano, 3 para Otoño y
4 para Invierno) :4 para Invierno) :
SEGUNSEGUN(numeroEstacion)(numeroEstacion){{
CASOCASO 11 :: nombreEstacion = "Primavera"nombreEstacion = "Primavera"
CASOCASO 2 : nombreEstacion = "Verano"2 : nombreEstacion = "Verano"
CASOCASO 3 : nombreEstacion = "Otoño"3 : nombreEstacion = "Otoño"
DEFECTO :DEFECTO : nombreEstacion = "Invierno"nombreEstacion = "Invierno"
}}
39. Ejercicio 1:-Ejercicio 1:- En una playa de estacionamiento cobran $ 2.5 por hora oEn una playa de estacionamiento cobran $ 2.5 por hora o
fracción. Diseñe un algoritmo que determine cuanto debe pagar unfracción. Diseñe un algoritmo que determine cuanto debe pagar un
cliente por el estacionamiento de su vehículo, conociendo el tiempo decliente por el estacionamiento de su vehículo, conociendo el tiempo de
estacionamiento en horas y minutos.estacionamiento en horas y minutos.
40. EjercicioEjercicio
Una tienda ha puesto en oferta la venta al porUna tienda ha puesto en oferta la venta al por
mayor de cierto producto, ofreciendo unmayor de cierto producto, ofreciendo un
descuento del 15% por la compra de más de 3descuento del 15% por la compra de más de 3
docenas y 10% en caso contrario. Además pordocenas y 10% en caso contrario. Además por
la compra de más de 3 docenas se obsequiala compra de más de 3 docenas se obsequia
una unidad del producto por cada docena enuna unidad del producto por cada docena en
exceso sobre 3. Diseñe un algoritmo queexceso sobre 3. Diseñe un algoritmo que
determine el monto de la compra, el monto deldetermine el monto de la compra, el monto del
descuento, el monto a pagar y el número dedescuento, el monto a pagar y el número de
unidades de obsequio por la compra de ciertaunidades de obsequio por la compra de cierta
cantidad de docenas del producto.cantidad de docenas del producto.
41.
42. diagrama de flujodiagrama de flujo
Un diagrama de flujo es la representaciónUn diagrama de flujo es la representación
gráfica de un proceso.gráfica de un proceso.
Un diagrama de flujo tiene como objetivoUn diagrama de flujo tiene como objetivo
facilitarnos la comprensión de un algoritmo ofacilitarnos la comprensión de un algoritmo o
simplificar el análisis de un proceso.simplificar el análisis de un proceso.
El diagrama de flujo consta de símbolos comoEl diagrama de flujo consta de símbolos como
cuadros, rombos, óvalos, etc. que representan acuadros, rombos, óvalos, etc. que representan a
cada uno de los pasos a seguir durante uncada uno de los pasos a seguir durante un
proceso.proceso.
Estos símbolos están conectados por flechas deEstos símbolos están conectados por flechas de
un solo sentido y nos indican la secuencia enun solo sentido y nos indican la secuencia en
que se van desarrollando las distintas tareas.que se van desarrollando las distintas tareas.
43.
44.
45.
46.
47.
48.
49.
50.
51. TareaTarea
Hacer los 15 ejercicios de algoritmos conHacer los 15 ejercicios de algoritmos con
algún simulador de diagramas de flujo,algún simulador de diagramas de flujo,
por ejemplo PSEINT, DFD u otro quepor ejemplo PSEINT, DFD u otro que
conozcan.conozcan.