Вы находитесь на странице: 1из 64

Contenido

1. Análisis y Resolución de Problemas


2. Pseudocodigo
3. Entrada y Salida de Datos
4. Asignación
5. Estructuras de Control: secuencia
6. Ejercicios.

1
1. Análisis y Resolución de
Problemas
 Para el análisis se enfoca a trabajar
con algoritmos como método de
resolución de problemas.

2
La Tarea de la
programación:

 Consiste en lo que debe hacer un


computador, para resolver un
problema concreto en un lenguaje
de programación.

3
Fases que se debe tener en
cuenta:
1.Fase: Análisis del problema,
estableciendo con precisión lo que se
plantea.
2 Fase: Solución conceptual del
problema, describiendo un método
(Algoritmo) que lo resuelve.
3 Fase: Escritura del algoritmo en un
lenguaje de programación.

4
Primera Fase
 Consiste en precisar el enunciado,
identificar datos de entrada y los
resultados que se desea obtener.

 Descripción precisa del problema a


resolver o especificación.

5
Segunda Fase
 Trata del método o Algoritmo, tal que
partiendo de datos apropiados lleve
sistemáticamente a los resultados
descritos en la especificación.

 Debe ser correcto; esto es, que


resuelva el problema especificado.

6
Tercera Fase
 Para que el computador resuelva el
problema hay que escribir el
algoritmo en un lenguaje de
programación.

7
Algoritmo
Es la descripción precisa de los pasos
que nos llevan a la solución de un
problema planteado.
Los pasos son, en general, acciones u
operaciones que se efectúan sobre
ciertos objetos.

8
Un algoritmo afecta tres
partes

Entrada Proceso Salida


(datos) (instrucciones) (Resultados)

9
Características de un
algoritmo
 Precisión: debe expresarse de forma
NO ambigua. Afecta por igual a dos
aspectos.
A) al orden (encadenamiento o
concatenación) de los pasos que han
de llevarse a cabo.
B) al contenido de las mismas. Pues
cada paso debe saberse realizar de
manera automática.
10
Características de un
algoritmo
 Determinismo: todo algoritmo debe
responder del mismo modo ante las
mismas condiciones.

 Finitud: la descripción de un
algoritmo debe ser finita.

11
Cualidades deseables de un
algoritmo
Generalidad

Es deseable que un algoritmo sirva


para una clase de problemas lo mas
amplio posible.
Eficiencia

Se considera eficiente cuando menos


pasos emplea en llevar acabo su
cometido.

12
Manera de explicar o
escribir un algoritmo:
Ello se puede explicar:
 Mediante diagramas de flujo.

 Mediante PSeudocodigo.

13
Ejemplo de un
Procedimiento paso a paso
Tarea: Hacer una llamada por teléfono
publico.
Pasos:
1. Ir a un teléfono.
2. Levantar el auricular del teléfono.
3. Esperar el tono.
4. Sacar monedas exactas para hacer la
llamada.
5. Meter las monedas en la ranura.
6. Marcar el número. 14
Ejemplo suma de 2 números
enteros paso a paso
Enunciado:

sumar dos números enteros a y b.


Consiste en ir pasando de a a b una
unidad cada vez, de forma que,
cuando a = 0, el resultado será el
valor de b.

15
La forma como se lleva a
cabo:
Ejemplos:
repetir
(a,b) → (a -1, b +1) → (0,b) → b
(2,3) → (1,4) → (0,5)→ 5
(4,4) →(3,5) →(2,6) →(1,7) →(0,8) → 8

16
Ejemplo suma de 2 números
enteros paso a paso
Pasos:
0. inicio
 Leer dato a
 Leer dato b
 Verificar a=0, ir al paso 6.
 Desminuir una unidad a a (a = a-1)
 Aumentar en una unidad a b (b=b+1)
 Imprimir b
 fin

17
seudocodigo
 Sean a y b que pertenecen a Z
 Leer a y b
 mientras a <> 0 ,hacer a = a-1 y
b=b+1
 Imprimir b.

18
Diagrama de flujo:

19
Ejercicios.
Resolver los siguientes problemas
paso a paso y elaborar sus diagramas
de flujos.
2.Resolver una ecuación de primer
grado
a + bx =0. ( x pertenece a los
enteros.)
2. Sumar los 50 primeros números.
3. Restar dos números reales.
ejemplo: (b,a)
Universidad → Federico
Técnica ? Santa Maria 20
Segunda Parte

21
Definiciones básicas.
 Un algoritmo es una secuencia de pasos
que es llevado a cabo de forma mecánica
y sistemática por un actor que se
desenvuelve en un entorno dado para
resolver un problema determinado en un
tiempo finito.

 Instrucciones combinadas de forma


adecuada para resolver un determinado
problema en una cantidad finita de
tiempo.

 Los algoritmos tienen un inicio y un final,


son únicos y deben ser fácilmente
identificables. 22
Máquinas para aplicar
algoritmos
 3000 A.C: Ábaco de arena (Oriente medio).

 1500: Leonardo DaVinci diseño máquinas de calcular mecánicas.

 1642: Blaise Pascal creó la “Máquina Aritmética” que permitía


realizar sumas.

 1671: Gottfried Leibniz construyó una calculadora mecánica que


permitía sumar, restar, multiplicar, dividir y calcular raíces
cuadradas.

 1830: Charles Babbage diseño y desarrolló la primera


computadora de uso general, la “Máquina Analítica”; Ada
Lovelace se convirtió en la primera “programadora” del mundo al
escribir programas para dicha máquina.

 Durante la segunda guerra mundial se dio un impulso definitivo


hacia el desarrollo de los ordenadores y se estableció una
arquitectura que aún hoy perdura.
23
Ejemplo: Tortilla de patatas
a la española (6 personas).
 Ingredientes:
 2 vasos (de los de agua) de aceite (1/2 litro)
 sal
 8 huevos
 1 kg de patatas
 Se lavan las patatas una vez peladas, y se secan
con un paño; se parten en dos a lo largo y
después se cortan en láminas finitas. Se pone el
aceite en la sartén a calentar y se fríen las
patatas.
 Una vez fritas se separan y se ponen a escurrir
en un colador grande…….. se vuelve a mover por
el mango y cuando esté cuajada (a gusto) se
pasa a una fuente redonda y se sirve. 24
Elementos participantes en la
realización de un algoritmo
 Procesador: un procesador es un ente
que es capaz de entender los pasos
(acciones) que componen el algoritmo y
llevarlos a cabo (ejecutarlos).

 Entorno: es el conjunto de materiales


necesarios para la ejecución del
algoritmo.

 Acción: es un suceso, llevado a cabo por


el procesador, que modifica el entorno. 25
Partes de un algoritmo.

 Entrada : ingredientes y utensilios


empleados.

 Proceso : elaboración de la receta en


la cocina.

 Salida : terminación del plato.


26
Formas de describir un
algoritmo
 Dado que los algoritmos permiten
resolver problemas de forma
mecánica, está claro que resulta muy
interesante compartir dicho
algoritmo de tal manera que otras
personas puedan conocerlo y
aplicarlo; así surge el problema de
describir los algoritmos de forma tal
que todas las características que los
definen se mantengan invariables.
27
Lenguaje natural.

 Ejemplo: encontrar las raíces de una ecuación de


segundo grado.
 Podría describirse así:
 1. Definir los coeficientes de la ecuación de
segundo grado: a, b y c.
 2. Determinar el valor del discriminante: b2-4ac.
 3. Si el discriminante es cero sólo hay una
solución: -b/(2a).
 4. Si el discriminante es positivo pero no cero
hay dos soluciones: (-b+-discr)/(2a).
 5. Si el discriminante es negativo no hay
soluciones reales.

28
Lenguaje natural.
 La ventaja fundamental es la facilidad de
comprensión, cualquier persona que lea
dicho algoritmo podría entenderlo y
aplicarlo.
 Problemas en definirlo de esta forma:
 El lenguaje natural no es universal, este
algoritmo sería completamente inútil para los
no hispanoparlantes.
 El lenguaje natural es ambiguo y, por tanto,
susceptible de errores.
 El lenguaje natural es demasiado amplio, lo
que para una persona puede ser una
instrucción sencilla puede no serlo para otra y
desde luego no lo será para un ordenador. 29
Diagrama de flujo.

 Los organigramas o diagramas de


flujo permiten describir los
algoritmos de forma gráfica; para
ello utilizan una serie de bloques que
indican distintas circunstancias y
flechas que muestran bajo qué
condiciones se pasa de un bloque a
otro.

30
Diagrama de flujo.
Algunos de los símbolos son los siguientes:

31
Diagrama de flujo.
 Ventajas:
 Los símbolos son universales.
 Son menos propensos a la ambigüedad.

 Por estar basados en un número


pequeño de bloques y reglas para su
empleo permiten delimitar mejor los
algoritmos.
 Se aproximan más a la forma en que
trabaja el computador.

32
Diagrama de flujo.
 Desventajas:
 El hecho de emplear símbolos supone que una
persona que desconozca los símbolos puede
tener dificultades para comprender el
algoritmo o no entenderlo en absoluto.
 Aunque los símbolos son universales el texto
que se coloca en su interior sigue siendo
lenguaje natural.
 Un computador no es capaz de utilizar una
representación visual como descripción de un
algoritmo.

33
Diagrama de flujo.
 EJEMPLO ORGANIGRAMA.
 Determinar la suma de los N
primeros números enteros de
acuerdo a la siguiente
 fórmula:
 Suma = N*(N+1)/2

34
Ejemplo Diagrama de
flujo.

35
Pseudocódigo

 El pseudocódigo pretende reunir en


un solo tipo de representación las
ventajas del lenguaje natural y de los
organigramas sin ninguno de sus
problemas; por tanto, el
pseudocódigo:
 Es fácilmente comprensible para una
persona que lo vea por vez primera.
 Está bien delimitado.

 Elimina las ambigüedades del lenguaje


36
Estilo de escritura de
Pseudocódigo.
 Un método para escribir algoritmos será el
siguiente:
 Algoritmo identificador {cabecera}
 {sección de declaraciones}
 var lista de identificadores: tipo de datos
 const lista de identificadores = valor
 inicio
 <sentencia S1>
 <Sentencia S2> {cuerpo del algoritmo}
 .
 .
 <Sentencia Sn>
 fin
37
Ejmeplo Pseudocódigo.
 Se definen: E/S
 Entrada: Número entero (N)
 Salidas: Suma

 PSEUDOCODIGO:
 inicio
 Ingresar un número entero: N
 Calcular suma por fórmula:
 Suma = N*(N+1)/2
 Escribir suma
 fin

38
Especificaciones al escribir
un algoritmo.
 Las entradas al programa deben ser establecidas por el
programador. Las entradas se darán por medio de un dispositivo
de entrada, puede ser teclado, disco, teléfono, etc., a este
proceso se le conoce como entrada de datos, operación de
lectura o acción de leer.

 Las salidas de datos se presentan en dispositivos periféricos de


salida, puede ser pantalla, impresora, discos, etc. La operación
de salida de datos se conoce también como escritura o acción
de escribir.

 El algoritmo de resolución, es en realidad el conjunto de códigos


que transforman las entradas del programa (datos), en salidas
(resultados).

39
Estructuras de programas

 Cualquier programa puede ser


realizado con una combinación de las
siguientes estructuras de sentencias
que definimos a continuación:
 Secuencial
 Selectiva

 Repetitiva

40
Estructura secuencial

 En esta estructura cada acción se


ejecuta en el orden preestablecido
por como son enumeradas a lo largo
del programa.
 Se ejecutan de forma secuencial (una
detrás de otra) y no puede verse
alterado el orden de ejecución.

41
Estructura secuencial
(gráficamente).

42
Estructuras de control
selectivas.
 En ciertos programas la evolución
natural del mismo durante su
ejecución, puede necesitar unas
variaciones de acuerdo con el
cumplimiento o no de alguna-as
condiciones.
 Mediante las estructuras selectivas
podemos tomar decisiones, en las
cuales se evalúa una condición y
en función del resultado se 43
Selección Incompleta
(simple)
 La estructura alternativa simple si-
entonces ejecuta una determinada
acción cuando se cumple una
determinada condición.
 La selección sÍ-entonces evalúa la
condición y si la condición es
verdadera, entonces ejecuta la
acción (o acciones) y si la condición
es falsa, entonces no hace nada y el
programa continua con la siguiente 44
Selección Incompleta
(simple)

45
Estructura de selección
completa.

 Se emplea cuando queremos matizar


qué acción se realizará cuando sí se
cumple la condición y cual se hará
cuando no se cumpla.

46
Estructura de selección
completa.

47
Estructura de selección
completa.

48
Selección múltiple (según
(valor) )
 A veces es necesario que existan más de dos
elecciones posibles.
 Este problema se podría resolver por
estructuras selectivas simples o completas
que estuvieran anidadas o en cascada; sin
embargo por este método si el número de
alternativas es grande puede plantear serios
problemas de escritura del algoritmo y
naturalmente de legibilidad.
 La estructura de decisión múltiple evaluará una
expresión que podrá tomar n valores distintos
(siempre un valor enumerado). Según que elija
uno de estos valores en la condición, se realizará
una de las n acciones.
49
Selección múltiple
(según (valor) )

50
Estructuras de control
repetitivas.
 Algunas veces nos podremos encontrar
ciertas tareas dentro de un programa que
deben repetirse un numero
determinado o indeterminado de
veces.
 Las estructuras que repiten una secuencia
de instrucciones un número
determinado de veces se denominan
bucles y se denomina iteración al hecho
de repetir la ejecución de una secuencia
de acciones.
 Por ejemplo: supongamos que se desea
sumar una lista de 25 números escritos 51
Estructuras de control
repetitivas.
 Inicio
 { entero numero,suma;
 suma=0;
 Leer (numero);
 suma=suma+numero;
 Leer (numero);
 suma=suma+numero;
 ....
 ....
 }

52
Estructuras de control
repetitivas.
 y así sucesivamente para cada número de la lista
(los 25 alumnos!!!) .
 Cuando se utiliza un bucle para sumar una lista
de números, se necesita saber cuántos números
se han de sumar. Para ello necesitaremos
conocer algún medio para finalizar el bucle. En el
ejemplo anterior se repetiría desde 1 hasta 25
la acción de pedir la nota.
 Otra variante del bucle la podemos pensar con el
siguiente ejercicio; Un profesor quiere meter las
notas pero debe tener la posibilidad de parar de
meterlas cuando el quiera, por ejemplo cuando
escriba el –1. Con lo que conocemos de
programación hasta ahora ¿Cómo se plantearía
el programa?, 53
Estructura desde...hasta

 Una variable contendrá los valores el


numero de veces que queramos
realizar una secuencia de código,
por lo tanto debemos conocer
obligatoriamente el numero de
veces (iteraciones) que se
realizaran.
 En pseudocódigo:
 i=indice
 desde i=valor_inicial hasta
i=valor_final incremento valor 54
Estructura mientras

 Es aquella en la que la acción o


grupo de acciones se repetirá
mientras se cumpla la condición y
en el momento en que no se cumpla
se saldrá del bucle.

55
Estructura mientras.

56
Estructura repetir

 Es aquella en la que la acción o


grupo de acciones se repetirá hasta
que se cumpla la condición y en el
momento en que se cumpla se saldrá
del bucle.

57
Estructura repetir.

58
Diferencias de las estructuras
mientras y repetir
 La estructura mientras termina cuando
la condición es falsa, mientras que
repetir termina cuando la condición es
verdadera.
 En la estructura repetir el cuerpo del
bucle se ejecuta siempre al menos una
vez; por el contrario, mientras es más
general y permite la posibilidad de que el
bucle pueda no ser ejecutado. Para usar
la estructura mientras se debe estar
seguro de que se cumplirá la condición de
entrada. 59
Ejemlo Pseudocódigo.
 Diseñar un algoritmo para saber si
un número es primo o no.

60
Ejemplo 2.
 Supongamos que queremos hacer un
programa que nos calcule el área de
un triángulo. Primero debemos
pensar que A=(b*h)/2. Por lo tanto
necesito pedir dos datos y presentar
un resultado.

61
Ejemplo 3.
 Queremos determinar la cantidad
pagada por llamada en la empresa
telefónica, teniendo en cuenta los
siguientes aspectos:
 1. Cada llamada es de cinco minutos y
éstas tienen un costo de 0.60 Pesos.
 2. Pasados los cinco minutos por
llamada, cada minuto que se adicione
tendrá un costo de 0.30 Pesos.

62
Ejemplo 4.
 Se desea realizar 100 facturas para
cien clientes.

63
¿Preguntas?

64

Вам также может понравиться