Este documento describe las fases y herramientas para la resolución de problemas mediante computadoras y programación. Explica que un problema debe analizarse, diseñarse un algoritmo, codificarse y depurarse. Las herramientas clave son diagramas de flujo y pseudocódigo. También cubre conceptos como programación modular, estructuras de control, tipos de datos e instrucciones básicas para programar.
2. Contenido
Fases en la resolución de un problema
p
Herramientas de programación
Ejemplos
Programación modular
Estructuras de control
Resumen
3. Fases en la resolución de un problema
Análisis del problema
Diseño del algoritmo
Codificación
Compilación y ejecución
Verificación
Depuración
D ió
Mantenimiento
Documentación
4. Cont…
Cont
Análisis.- el problema se analiza teniendo presente las
especificaciones de los requisitos dados por el cliente o la
empresa que encarga el programa
Diseño.- una vez analizado el problema se di ñ una
Di ñ li d l bl diseña
solución que conducirá a un algoritmo que resuelva el
p
problema
Codificación (implementación).- la solución se escribe en la
sintaxis del lenguaje de alto nivel (por ejemplo C) y se
obtiene un programa
bi
5. Cont…
Cont
Compilación, ejecución y verificación.- El programa se
ejecuta, se comprueba rigurosamente y se eliminan todos los
errores que puedan aparecer
Depuración y mantenimiento.- el programa se analiza y
D ió t i i t l li
modifica cada vez que sea necesario, de modo que se
cumplan todas las necesidades de cambio de sus usuarios
p
Documentación.- escritura de las diferentes fases del ciclo
de vida del software, esencialmente el análisis, diseño y
codificación, unidos a manuales d usuario y d referencia
difi ió id l de i de f i
6. Algoritmo
Algoritmo.- es un método para resolver un problema
g p p
mediante una serie de pasos precisos definidos y finitos
Características de un algoritmo
Preciso (indicar el orden de realización en cada paso)
Definido (si se sigue dos veces se obtiene el mismo resultado cada
vez)
Finito (tiene fin; un numero determinado de pasos)
7. Herramientas de programación
Las dos herramientas mas utilizadas comúnmente para diseñar
p
algoritmos son; diagramas de flujo y pseudocódigos
Diagramas de flujo.- es una representación grafica de un
algoritmo. Los símbolos utilizados están normalizados por el
ANSI
Pseudocódigo.- es una h
P d ódi herramienta d programación en l
de ó la
que las instrucciones se escriben en palabras similares al ingles
o español, que facilitan tanto la escritura como la lectura de
programas
9. Símbolos de diagrama de flujo
Terminal, ( p
, (representa el inicio y el final de
un programa, también puede representar
una parada o interrupción programada
que sea necesario realizar)
Entrada/salida, (cualquier tipo de
introducción d datos en l memoria desde
i d ió de d la i d d
Salida
los periféricos o registro de la información
procesada en los periféricos)
10. Símbolos de diagrama de flujo
Proceso, (
, (cualquier tipo de operación que
q p p q
pueda originar cambio de valor, formato o
posición de la información almacenada,
operaciones aritméticas, transferencia, etc.)
f
Decisión, (indica operaciones lógicas o de
comparación entre d
ió datos, y en función del
f ió d l
resultado se determina cual de los distintos
caminos el programa debe seguir
11. Ejemplo 1
Calcular la paga neta
p g Algoritmo
de un trabajador Leer Horas, Tarifa, tasa
conociendo el numero Calcular Paga bruta=Horas * Tarifa
g
de horas trabajadas, Calcular impuestos=Paga Bruta * Tasa
la tarifa horaria y la Calcular paga Neta=Paga Bruta –
tasa de impuestos impuestos
Visualizar Paga bruta, Impuestos, Paga
Neta
12. Ejemplo 2; Suma o producto
//Algoritmo que lee 3 números y si el primero es positivo, calcula el producto de los otros dos y en otro caso calcula la
//suma. Se usan 3 variable enteras num1, num2 y num3, en las que se leen los datos, y otras dos en las que se calcula el
//producto o l suma.
// d la
Proceso Suma_o_Producto
Escribir "Introduce 3 números";
Leer num1, num2,num3;
Si num1>0 Entonces
producto<-num2*num3;
Escribir "El producto de los dos últimos números es: ",producto;
Sino
suma<-num2+num3;
Escribir "La suma de los dos últimos números es: ",suma;
FinSi
FinProceso
14. Ejemplos para la clase
Calcular el valor de la Dados 3 números
suma 1+2+3..+100 determinar si la suma de
cualquier pareja de ellos
Realizar la suma de es igual al tercer numero.
todos los números Si se cumple esta
pares entre 2 y 1000
t condición,
condición escribir
“iguales” y , en caso
contario escribir “distintos”
16. Codificación de un programa
Codificación es la escritura de un lenguaje de programación
g j p g
de la representación del algoritmo desarrollada en las
etapas precedentes. Dado que el diseño de un algoritmo es
independiente del lenguaje de programación utilizado para
su implementación, el código puede ser escrito con igual
facilidad en un lenguaje o en otro
17. Programación modular
La descomposición de un
programa en módulos
independientes mas simples
se conoce como “divide y
vencerás”. Se diseña cada
modulo con independencia
de los demás hasta la
descomposición del
problema en módulos en
forma jerárquica
18. Programación estructurada
Se refiere a un conjunto de técnicas que aumentan
considerablemente l productividad d l programa reduciendo el
id bl la d i id d del d i d l
tiempo requerido para escribir, verificar, depurar y mantener los
programas. La programación estructurada utiliza un numero
limitado de estructuras de control que minimizan la complejidad
de los programas y reducen los errores
La programación estructurada es el conjunto de técnicas que
incorpora;
Recursos abstractos
Diseño descendente
Estructuras básicas
19. Estructuras de control
Las estructuras de control de un lenguaje de programación,
g j p g ,
son métodos de especificar el orden en que las instrucciones
de un algoritmo se ejecutaran. El orden de ejecución de las
sentencias o instrucciones determinan el flujo de control
Las estructuras de control básico son
Secuencia
Selección
repetición
i ió
20. Resumen
El sistema mas idóneo para resolver un problema es
descomponerlo en módulos mas sencillos, y l
d l ód l ill luego mediante
di
diseños descendentes y refinamiento sucesivo, llegar a módulos
fácilmente codificables. Estos módulos se deben codificar con las
estructuras de control de programación estructurada
Secuenciales.- las instrucciones se ejecutan sucesivamente
Repetitivas.- una serie de instrucciones se repiten una y otra vez
p p
hasta que se cumpla una cierta condición
Selectivas.- permite elegir entre dos alternativas dependiendo de
una condición determinada
22. Contenido
Partes constitutivas de un programa
Instrucciones y tipos de instrucciones
Elementos básicos de un programa
Datos, tipos de datos
Expresiones
La operación de asignación
Estructura de algoritmo
Ejemplos
E l
23. Partes constitutivas de un programa
Conceptualmente un programa puede ser considerad como
p p g p
una caja negra. La caja negra o el algoritmo de resolución,
en realidad es el conjunto de códigos que transforman las
entradas del programa (datos) en salidas (resultados)
24. Instrucciones y tipos de instrucciones
El proceso de diseño del algoritmo o posteriormente de
codificación del programa consiste en definir las acciones o
instrucciones que resolverán el problema
Tipos de instrucciones
Instrucciones de inicio/ fin
Instrucciones de asignación
Instrucciones de lectura
Instrucciones de escritura
Instrucciones de bifurcación
25. Instrucciones de asignación
A 80 la variable A toma el valor de 80
Cual será el valor que tomara la variable C tras la
ejecución de las siguientes instrucciones
A 80
B A
C D
26. Instrucciones de lectura y escritura
Esta instrucción lee datos de un dispositivo de entrada
leer (A,B,C)
Leer (num1)
Estas instrucciones se escriben en un dispositivo de
salida
escribir (A,B,C)
Escribir (num1)
(n m1)
27. Instrucciones de bifurcación
El desarrollo lineal de un programa se interrumpe
cuando se ejecuta una bifurcación. Las bifurcaciones
pueden ser según el punto del programa a donde
ser,
se bifurca, hacia adelante o hacia atrás
Las bifurcaciones en el fl j d un programa se
L bif i l flujo de
realizan de modo condicional en función del
resultado d l evaluación e l condición
l d de la l ió la di ió
28. Elementos básicos de un programa
Los elementos básicos constitutivos de un programa o
algoritmo son;
Palabras reservadas (inicio, fin, si-entonces..etc.)
identificadores (nombres de variables, procedimientos..etc.)
variables procedimientos etc )
Caracteres especiales (coma, apostrofe, etc.)
Constantes
Variables
Expresiones
Instrucciones
29. Cont…
Cont
Además de estos elementos básicos, existen otros elementos que
forman parte d l programas, cuya comprensión y f i
f de los ió funcionamiento
i
será vital para el correcto diseño de un algoritmo y la codificación
del programa
Bucles
l
Acumuladores
Interruptores
Estructuras
Secuenciales
Selectivas
Repetitivas
30. Datos,
Datos tipos de datos
Los distintos tipos de datos se representan en
diferentes formas en la computadora. Los tipos de
datos simple son los siguientes;
Numéricos (integer, real)
Lógicos (b l )
Ló i (boolean)
Carácter (chart, string)
31. Datos numéricos
El tipo numérico es el conjunto de los valores
numéricos. Estos pueden representarse en dos
formas distintas;
Tipo numérico entero (integer)
5, 15 20
5 -15, 20, 6
Tipo numérico real (real)
0.8, 8 12 3 17 5 0 1240 23
0 8 -8.12, 3.17, 5.0, 1240.23
32. Datos booleanos y tipo carácter
El tipo lógico es aquel dato que solo puede tomar uno de
dos valores;
Verdadero (true)
Faso (false)
El tipo carácter es el conjunto finito ordenado de caracteres
que la computadora reconoce (A,B,C,a,b,c,1,2,3,+,-,*)
Una cadena (string) de caracteres es una sucesión de
caracteres que se encuentran delimitados por una comilla
‘hola buen día’
hola día
33. Constantes y variables
Los programas de computadora contienen ciertos
valores que no deben cambiar durante al ejecución del
programa. Tales valores se llaman constantes
De igual f
D i l forma existen otros valores que cambiaran
it t l bi
durante la ejecución de del programa; a estos valores
se les llama variables
Una constante es una partida de datos que pertenecen
sin cambios durante todo el desarrollo del algoritmo o
durante l ejecución d l programa
d t la j ió del
34. Expresiones
Las expresiones son combinaciones de constantes,
variables símbolos de operación, paréntesis y nombres
de funciones especiales; por ejemplo; a+(b+3)+√3
Las
L expresiones se clasifican en;
i l ifi
Aritméticas
Relacionales
Lógicas
Carácter
35. Expresiones aritméticas
Las expresiones aritméticas son análogas a las formulas
matemáticas
+ suma
- resta
* multiplicación
/ división
**, ^ exponenciación
div división entera
mod modulo (resto)
36. Reglas de prioridad
Las operaciones aritméticas dentro de una
p
expresión suelen seguir el siguiente orden de
prioridad;
Operador exponecial (^, **)
Operadores *,/
p /
Operadores div y mod
Operadores +,-
p ,
37. Ejemplos
-4*7+2^3/4-5
8+7*3+4*6
Que se obtiene en las variables A, B, C después de ejecutar
las instrucciones siguientes
l i t i i i t
A 3
B 20
C A+B
B A+B
A B-C
BC
38. Expresiones lógicas (booleanas)
Un segundo tipo de expresiones es la expresión lógica o
booleana, cuyo valor es siempre verdadero o falso
Operadores de relación
< menor que
> mayor que
= igual que
<= menor o igual que
>= mayor o igual que
<> distinto de
39. Operadores lógicos
Los operadores lógicos o booleanos básicos son; not
(no), and (y) y or (o)
AND OR NOT
40. Funciones internas
Las operaciones que se requieren en los
programas exigen en numerosas
ocasiones un numero determinado de
operadores
p especiales
p q
que se
denominan funciones internas
41. La operación de asignación
La operación de asignación es el modo de almacenar valores
p g
a una variable. La operación de asignación se representa con
el símbolo u operador
A 5
X Y+2
N N+1
N 8<5
42. Entrada y salida de información
Los cálculos que realizan las computadoras requieren para ser
q p q p
útiles la entrada de datos necesarios para ejecutar las
operaciones que posteriormente se convertirán en resultados,
es decir, salida
Leer (A, B, C)
Escribir (‘hola a todos’)
43. Estructura de algoritmo
Un algoritmo constara de dos componentes; una cabecera de
programa y un bl bloque algoritmo. L cabecera d programa es una
l i La b de
acción simple que comienza con la palabra algoritmo. Esta palabra
estará seguida por el nombre asignado al programa. El bloque
algoritmo es el resto del programa y consta de dos componentes o
secciones; las acciones de declaración y las acciones ejecutables
Algoritmo
Cabecera d l programa
C b del
Sección de declaración
Sección de acciones
44. Cont…
Cont
Cabecera del programa o algoritmo
Todos los programas deben comenzar con una cabecera en la que se exprese el
identificador o nombre correspondiente
Declaración de variables
En esta sección se declaran o describen todas las variables utilizadas en el
algoritmo
Declaración de constantes
En esta sección se declaran todas las constantes que tengan nombre
Comentarios
La documentación del programa es el conjunto de información interna externa
al programa que facilita su posterior mantenimiento
l f l
45. Ejemplos
Escriba un algoritmo que acepte 3 números enteros
e imprima el mayor de ellos
Diseñar un algoritmo para resolver una ecuación de
segundo orden AX2+BX+C=0
Escribir un algoritmo que calcule el producto de los
n primeros números naturales