Sie sind auf Seite 1von 34

Programacin I

Ing. Msc. Edgar Sarmiento


edgar.sarmiento@outlook.com
Blog: programacionfim.blogspot.com
1
Algoritmos

Un algoritmo es un mtodo para resolver un problema.


La resolucin de un problema exige el diseo de un algoritmo que resuelva
el problema propuesto.

Las caractersticas fundamentales que debe cumplir todo algoritmo son:

Un algoritmo debe ser preciso e indicar el orden de realizacin de cada


paso.
Un algoritmo debe estar bien definido. Si se sigue un algoritmo dos
veces, se debe obtener el mismo resultado cada vez.
Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar
en algn momento; o sea, debe tener un nmero finito de pasos.
2
Algoritmos

La definicin de un algoritmo debe describir tres partes:


Entrada, Proceso y Salida.

Ejemplo: En el algoritmo de una receta de cocina se tendr:

Entrada: Ingredientes y utensilios empleados.


Proceso: Elaboracin de la receta en la cocina.
Salida: Terminacin del plato (por ejemplo, cordero).

3
Algoritmos
EJEMPLO 2.6
Realizar la suma de todos los nmeros pares entre 2 y 1.000.
El problema consiste en sumar 2 + 4 + 6 + 8 ... + 1.000. Utilizaremos las palabras
SUMA y NMERO (variables, sern denominadas ms tarde) para representar las
sumas sucesivas (2+4), (2+4+6), (2+4+6+8), etc. La solucin se puede escribir con
el siguiente algoritmo:

1. Inicio.
2. Establecer SUMA a 0.
3. Establecer NMERO a 2.
4. Sumar NMERO a SUMA. El resultado ser el nuevo valor de la suma
(SUMA).
5. Incrementar NMERO en 2 unidades.
6. Si NMERO =< 1.000 volver al paso 4; en caso contrario, escribir el ltimo
valor de SUMA y terminar el proceso.
7. Fin. 4
Diseo del Algoritmo
La informacin proporcionada al algoritmo
constituye su entrada y la informacin producida
por el algoritmo constituye su salida.

Los problemas complejos se pueden resolver ms


eficazmente con la computadora cuando se rompen
en subproblemas que sean ms fciles de
solucionar que el original.
A este proceso se denomina diseo descendente y
una vez perfeccionado se denomina refinamiento
del algoritmo. 5
Algoritmos

Para problemas complejos se necesitan con frecuencia


diferentes niveles de refinamiento antes de que se
pueda obtener un algoritmo claro, preciso y completo.

Ejemplo: El problema de clculo de la circunferencia y


superficie de un crculo se puede descomponer en
subproblemas ms simples:

1) leer datos de entrada


2) calcular superficie y longitud de circunferencia,
3) escribir resultados (datos de salida).
6
Algoritmos

7
Diseo de Algoritmos

Las ventajas ms importantes del diseo


descendente son:

1. El problema se comprende ms fcilmente al


dividirse en partes ms simples denominadas
mdulos.
2. Las modificaciones en los mdulos son ms fciles.
3. La comprobacin del problema se puede verificar
fcilmente.

8
Diseo de Algoritmos

Tras los pasos anteriores (diseo descendente y


refinamiento por pasos) es preciso representar el algoritmo
mediante una determinada herramienta de programacin:
diagrama de flujo pseudocdigo

9
Escritura de Algoritmos

Consiste en realizar una descripcin paso a paso con un


lenguaje natural del citado algoritmo.

Propiedades de la escritura de algoritmos:


Deben ir seguidas de alguna secuencia definida de
pasos hasta que se obtenga un resultado coherente.

Slo puede ejecutarse una operacin a la vez.

10
Escritura de
Algoritmos
Ejemplo: Algoritmo para localizar butacas del cine.
Si los nmeros de los asientos estn impresos en la entrada, la accin
compuesta se resuelve con el siguiente algoritmo:

1. inicio //algoritmo para encontrar la butaca del espectador


2. caminar hasta llegar a la primera fila de butacas
3. repetir
compara nmero de fila con nmero impreso en billete
si son iguales entonces pasar a la siguiente fila fin_si
hasta_que se localice la fila correcta
4. mientras nmero de butaca no coincida con nmero de billete
hacer avanzar a travs de la fila a la siguiente butaca
fin_mientras
5. sentarse en la butaca 11

6. fin
Representacin grafica
de Algoritmos

Los mtodos usuales para representar un


algoritmo son:

1. diagrama de flujo,
2. diagrama N-S (Nassi-Schneiderman)
3. lenguaje de especificacin de algoritmos:
pseudocdigo,
4. lenguaje espaol, ingls
5. frmulas. 12
Representacin Grafica
de Algoritmos
Por ejemplo, las frmulas para la solucin de una ecuacin
cuadrtica (de segundo grado) son un medio sucinto de expresar el
procedimiento algortmico que se debe ejecutar para obtener las
races de dicha ecuacin.

Sin embargo, no es frecuente que un algoritmo pueda ser expresado


por medio de una simple frmula.
13
Pseudocdigo
El pseudocdigo es un lenguaje de descripcin de
algoritmos.

El uso del pseudocdigo hace el paso de codificacin final


(esto es, la traduccin a un lenguaje de programacin)
relativamente ms fcil.

La ventaja del pseudocdigo: facilita la planificacin de


un programa.

14
Pseudocdigo
El programador se puede concentrar en la lgica y en las
estructuras de control y no preocuparse de las reglas de
un lenguaje especfico.

El algoritmo comienza con la palabra start y finaliza con la


palabra end, en ingls (en espaol,inicio, fin). Entre estas
palabras, slo se escribe una instruccin o accin por
lnea

La lnea precedida por // se denomina comentario. Es una


informacin al lector del programa y no realiza ninguna
instruccin ejecutable. 15
Estructuras de control de programacin
estructurada:
1. Secuenciales: las instrucciones se ejecutan
sucesivamente una despus de otra.
2. Repetitivas: una serie de instrucciones se
repiten una y otra vez hasta que se cumple una
cierta condicin.
3. Selectivas: permite elegir entre dos
alternativas (dos conjuntos de instrucciones)
dependiendo de una condicin determinada).
16
Pseudocdigo
Ejemplo: Algoritmo del arranque matinal de un automvil.

inicio
//arranque matinal de un automovil
introducir la llave de contacto
girar la llave de contacto
pisar el acelerador
oir el ruido del motor
pisar de nuevo el acelerador
esperar unos instantes a que se caliente el motor
fin
17
Diagramas de flujo

Un diagrama de flujo es un diagrama que utiliza


los smbolos estndar mostrados en la Tabla 2.1

El diagrama de flujo tiene los pasos del algoritmo


descritos con estos smbolos unidos por flechas,
denominadas lneas de flujo, que indican la
secuencia en que se debe ejecutar.

18
Diagramas de flujo

19
Diagramas de flujo

20
Diagramas de flujo

Los smbolos estndar normalizados por


ANSI (abreviatura de American National
Standars Institute)

los smbolos ms utilizados representan:

proceso decisin conectores


fin entrada/salida direccin del flujo
21
Diagramas de flujo

22
Ejemplos de
algoritmos
Suma de los nmeros pares comprendidos entre 2 y 100.

Pseudocdigo:
inicio
Definir : numero, Suma
Suma 2
numero 4
mientras (numero <= 100)
hacer
suma suma + numero
numero numero + 2
fin mientras
escribe ('Suma pares entre 2 y 100 =', suma)
23
fin
Ejemplos de
algoritmos
Se desea realizar el algoritmo que resuelva el siguiente
problema:

Clculo de los salarios mensuales de los empleados de


una empresa, sabiendo que stos se calculan en base a
las horas semanales trabajadas y de acuerdo a un precio
especificado por horas.
Si se pasan de 40 horas semanales, las horas
extraordinarias se pagarn a razn de 1,5 veces la hora
ordinaria.

24
Ejemplos de
algoritmos
Los clculos son:
1. Leer datos del archivo de la empresa, hasta que se
encuentre la ficha final del archivo (HORAS,
PRECIO_HORA, NOMBRE).

2. Si HORAS <= 40, entonces SALARIO es el producto


de horas por PRECIO_HORA.

3. Si HORAS > 40, entonces SALARIO es la suma de 40


veces PRECIO_HORA ms 1.5 veces PRECIO_HORA
por (HORAS-40).
25
Ejemplos de
algoritmos

26
Ejemplos de
algoritmos
Pseudocdigo:
Definir variables: horas, precioHora, salario
variable: nombre
variable: masDatos
inicio
escribir(' Introducir horas, precio hora y nombre')
repetir
escribir ('Nombre')
leer (Nombre)
escribir ('Horas trabajadas')
leer (horas)
escribir ('Precio hora')
leer (precio Hora)

27
Ejemplos de
algoritmos
Pseudocdigo (continuacin):

si (horas <= 40) entonces


Salario horas * precioHora
sino
Salario 40 * precioHora +
1.5 * (horas - 40) *
preciohora
fin si
escribir ( 'Salario de', nombre, salario)
escribir ('Mas trabajadores S/N')
leer (masDatos)
hasta masDatos = 'N'
fin

28
Ejemplos de
algoritmos
Ejemplo 3:
Dados tres nmeros, determinar si la suma de cualquier pareja de ellos
es igual al tercer nmero. Si se cumple esta condicin, escribir Iguales
y, en caso contrario, escribir Distintas.

En el caso de que los nmeros sean: 3 9 6


la respuesta es "Iguales", ya que 3 + 6 = 9.

Sin embargo, si los nmeros fueran: 2 3 4


el resultado sera "Distintas".

29
Ejemplos de
algoritmos
Ejemplo 3:
Para resolver este problema, se puede comparar la suma de cada
pareja con el tercer nmero.
Con tres nmeros solamente existen tres parejas distintas y el
algoritmo de resolucin del problema ser fcil.
Pasos del algoritmo:
1. Leer los tres valores, A, B y C.
2. Si A + B = C escribir "Iguales" y parar.
3. Si A + C = B escribir "Iguales" y parar.
4. Si B + C = A escribir "Iguales" y parar.
5. Escribir "Distintas" y parar.

30
Ejemplos

Pseudocdigo:

31
Herramienta para
diagramas de flujo

32
https://www.draw.io/
Diagrama de flujo

33
DEBER

Disear una solucin para resolver cada unos de los siguientes


problemas y tratar de refinar sus soluciones, realizar el
pseudocdigo y el diagrama de flujo:

1. Realizar una llamada telefnica desde un telfono

2. Cocinar una tortilla.

3. Sumar dos nmeros enteros.

4. Dividir un nmero entero por otro.

34

Das könnte Ihnen auch gefallen