2. FUNDAMENTOS DE PROGRAMACIÓN
ESTRUCTURADA
La programación estructurada
consiste en estructurar el desarrollo
de un programa para computadora
con mayor claridad y por consiguiente
habrá mayor tiempo para el proceso y
un resultado de mejor calidad.
3. 1.1 ¿ QUÉ ES UN LP ?
Definición: Un lenguaje de programación es un
sistema notacional para describir computaciones
de una forma legible tanto para la máquina como
para el ser humano. Un lenguaje de programación es
un lenguaje de computadora que los programadores
utilizan para comunicarse y para desarrollar programas
de software, aplicaciones, páginas webs, scripts u otros
conjuntos de instrucciones para que sean ejecutadas
por los ordenadores.
4. TIPOS DE L.P
Lenguajes de bajo nivel. Se trata de lenguajes de programación que están diseñados
para un hardware específico y que por lo tanto no pueden migrar o exportarse a otros
computadores.
Lenguajes de alto nivel. Se trata de lenguajes de programación que aspiran a ser un
lenguaje más universal, por lo que pueden emplearse indistintamente de la arquitectura
del hardware, es decir, en diversos tipos de sistemas. Los hay de propósito general y de
propósito específico.
Lenguajes de nivel medio. Este término no siempre es aceptado, que propone
lenguajes de programación que se ubican en un punto medio entre los dos anteriores:
pues permite operaciones de alto nivel y a la vez la gestión local de la arquitectura del
sistema.
5. OTRA FORMA DE CLASIFICACIÓN A
MENUDO ES LA SIGUIENTE:
• LENGUAJES IMPERATIVOS. MENOS FLEXIBLES, DADA LA
SECUENCIALIDAD EN QUE CONSTRUYEN SUS INSTRUCCIONES,
ESTOS LENGUAJES PROGRAMAN MEDIANTE ÓRDENES
CONDICIONALES Y UN BLOQUE DE COMANDOS AL QUE
RETORNAN UNA VEZ LLEVADA A CABO LA FUNCIÓN.
• LENGUAJES FUNCIONALES. TAMBIÉN LLAMADOS
PROCEDIMENTALES, ESTOS LENGUAJES PROGRAMAN
MEDIANTE FUNCIONES QUE SON INVOCADAS CONFORME A
LA ENTRADA RECIBIDA, QUE A SU VEZ SON RESULTADO DE
OTRAS FUNCIONES.
7. TRADUCCIÓN DEL LENGUAJE
• TRADUCTOR ES UN PROGRAMA QUE ACEPTA OTROS PROGRAMAS
ESCRITOS EN UN LENGUAJE Y:
• LOS EJECUTA DIRECTAMENTE (INTERPRETE)
• LOS TRANSFORMA EN UNA FORMA ADECUADA PARA SU EJECUCIÓN
(COMPILADOR).
entrada
código
fuente
salida
intérprete
8. PROGRAMAS Y ALGORITMOS
¿QUÉ ES UN ALGORITMO?
UN ALGORITMO ES UNA SECUENCIA DE PASOS A SEGUIR PARA RESOLVER UN
PROBLEMA.
POR EJEMPLO, CUANDO QUIERO VER UNA PELÍCULA DE VÍDEO, PODRÍA HACER LOS
SIGUIENTES PASOS (ALGORITMO):
- ELIJO UNA PELÍCULA DE LAS DE MI COLECCIÓN.
•-COMPRUEBO SI TV Y VÍDEO ESTÁN CONECTADOS A LA RED (Y PROCEDO).
•-SI LA TV ESTÁ APAGADA, LA ENCIENDO, SI NO, PUES NO. Y LO MISMO CON EL VÍDEO.
•-INTRODUZCO LA PELÍCULA EN EL VÍDEO. DEJO EL ESTUCHE SOBRE EL VÍDEO.
•-SI LA TV NO ESTÁ EN EL CANAL ADECUADO, LA CAMBIO, SI NO, PUES NO.
•-COJO LOS MANDOS A DISTANCIA (EL DEL TV Y EL DEL VÍDEO).
•-ME PONGO CÓMODO.
•-PULSO PLAY EN EL MANDO DEL VÍDEO.
9. METODOLOGÍA PARA LA
DESCOMPOSICIÓN DE UN
ALGORITMO
1. DEFINICIÓN DEL PROBLEMA: ESTE PASO DE LA METODOLOGÍA DEBEMOS
PLANTEARNOS LA PREGUNTA ¿CUÁL ES EL PROBLEMA EN CONCRETO?, VISUALIZAR
LA DELIMITACIÓN DEL PROBLEMA, ¿HASTA DÓNDE ABARCARÁ LA SOLUCIÓN DEL
PROBLEMA? Y SI ES POSIBLE RESOLVER EL ALGORITMO O NO.
• 2. ANÁLISIS: UNA VEZ IDENTIFICADO Y DELIMITADO EL PROBLEMA, ESTA FASE TIENE
EL OBJETIVO DE DIVIDIR EL PROBLEMA EN SUS COMPONENTES Y EXAMINAR DE QUÉ
MANERA PUEDEN UNIRSE, EN ESTA FASE SE DEBEN CONTESTAR LAS SIGUIENTES
PREGUNTAS:
• A. ¿QUÉ SE NECESITA PARA RESOLVER EL PROBLEMA?
• B. ¿QUÉ PASOS SON NECESARIOS PARA RESOLVER EL PROBLEMA?
• C. ¿QUÉ SE DEBE OBTENER PARA RESOLVER EL PROBLEMA?
10. 3. DISEÑO: HACIENDO USO DE ALTERNATIVAS DE
SOLUCIÓN COMO LO SON DIAGRAMAS DE FLUJO Y
PSEUDOCÓDIGO SE INDICAN LOS PASOS QUE DEBERÁ
SEGUIR EL ALGORITMO PARA OBTENER LA SOLUCIÓN DEL
PROBLEMA.
4. VERIFICACIÓN: DEFINIDO COMO LA ACCIÓN DE
COMPROBAR O EXAMINAR LA VERDAD DE ALGO,
APLICADO AL TEMA ACTUAL, ES LA FASE QUE NOS
PERMITE SABER SI EL ALGORITMO CUMPLIÓ O NO SU
OBJETIVO, PARA REALIZAR LA COMPROBACIÓN SE LE DAN
VARIABLES DE ENTRADA AL ALGORITMO Y SE OBSERVAN
LOS RESULTADOS QUE ARROJA
11. CASO PRACTICO
SE REQUIERE DE UN ALGORITMO QUE CALCULE EL SUELDO SEMANAL O
MENSUAL DE UN TRABAJADOR DE CONSTRUCCIÓN, AL EMPLEADO LE
PAGAN S/. 50.00 LA HORA Y CADA DÍA TRABAJA DURANTE 8 HORAS.
•FASE 1 DEFINICIÓN DEL PROBLEMA
•FASE 2 ANÁLISIS DEL PROBLEMA
•FASE 3 DISEÑO DEL ALGORITMO
•FASE 4 VERIFICACIÓN
12. FASE 1 DEFINICIÓN DEL PROBLEMA
NOMBRE DEL PROBLEMA Sueldo del trabajador
DELIMITACIÓN Obtener el sueldo semanal o mensual a
partir del pago de horas y el numero
de horas trabajadas
RESULTADO Sueldo semanal del trabajador
13. FASE 2 ANÁLISIS DEL PROBLEMA
DATOS DE ENTRADA PROCESO SALIDA
?Que necesito para
resolver el problema?
?Qué pasos necesito para
resolver el problema?
?Qué se obtiene para
resolver el problema)
• Pago por hora
• Numero de horas
trabajadas en un día
• Numero de días
trabajados
Sueldo=(pago por hora *
numero de horas
trabajadas en un día) *
numero de días
trabajadas
Sueldo mensual
14. FASE 3 DISEÑO DEL ALGORITMO
Inicio
Numerodiastrab VARIABLE DE ENTRADA
Constantes
Pagoporhora: 50
Numero de horas trab: 8
Operación
Sueldo= (pago x hora * numero
de horas trabajado en un dia) *
numero de días trabajados
Numerodiastrab
Salida
resultado
Fin
16. DIAGRAMA DE FLUJO
UN DIAGRAMA DE FLUJO ES UNA REPRESENTACIÓN GRÁFICA DEL ALGORITMO.
EXPRESAMOS LOS PASOS DEL ALGORITMO MEDIANTE UN ESQUEMA CON
UNOS SÍMBOLOS ESTABLECIDOS.
UN DIAGRAMA DE FLUJO DEBE PROPORCIONAR UNA INFORMACIÓN CLARA,
ORDENADA Y CONCISA DE TODOS LOS PASOS A SEGUIR.
18. EL PSEUDOCÓDIGO
EL PSEUDOCÓDIGO ES UNA FORMA DE ESCRIBIR LOS PASOS, PERO DE
LA FORMA MÁS CERCANA AL LENGUAJE DE PROGRAMACIÓN QUE
VAMOS A UTILIZAR, ES COMO UN FALSO LENGUAJE, PERO EN NUESTRO
IDIOMA, EN EL LENGUAJE HUMANO.
Comentarios
Poner comentarios de lo que vamos haciendo es muy útil, sobre todo cuando
llega la hora de revisar el programa, si no, más de una vez nos
encontraremos diciendo ¿qué hacía esto aquí?
// Esto será un comentario y no hará nada en el programa
19. LAS VARIABLES
UNA VARIABLE ES COMO UNA CAJA DONDE METEMOS COSAS (DATOS).
ESTOS DATOS LOS PODEMOS IR CAMBIANDO, AHORA PONGO UN 3, AHORA LO QUITO Y PONGO UN 5.
UNA VARIABLE TIENE UN NOMBRE, QUE PUEDE SER UNA LETRA, UNA PALABRA, VARIAS PALABRAS UNIDAS POR EL
GUION BAJO O VARIAS PALABRAS SIN SEPARAR, PERO LA PRIMERA LETRA DE CADA PALABRA EN MAYÚSCULAS.
EJEMPLO: VIDASPERDIDAS, VIDAPERDIDAS, VIDAS_PERDIDAS.
UNA VARIABLE DEPENDIENDO DE SU VALOR PUEDE SER NUMÉRICA, SI SOLO PUEDE TENER UN VALOR
NUMÉRICO, DE TEXTO, SI SOLO PUEDE CONTENER TEXTO (LETRA, PALABRA O FRASE TAMBIÉN LLAMADA STRING).
EN LAS VARIABLES DE TEXTO, SU VALOR (EL TEXTO), DEBE IR ENTRE COMILLAS, PARA DIFERENCIAR QUE EL TEXTO
ES TEXTO Y NO ES EL NOMBRE DE OTRA VARIABLE.
POR EJEMPLOS VIDAS = "CINCO" O VIDAS = "5". EN LOS DOS CASOS EL VALOR ES UN TEXTO, NUNCA EL VALOR
DE 5.
LAS NUMÉRICAS NO LLEVAN COMILLAS EN SU VALOR. POR EJEMPLO: VIDAS = 5.
EN ESTE CASO SU VALOR SI QUE ES EL NÚMERO 5.
20. HAY OTRAS VARIABLES QUE SE LLAMAN BOOLEANAS QUE SOLO PUEDEN TENER DOS VALORES
TRUE O FALSE.
NORMALMENTE TRUE SE PUEDE SUSTITUIR POR EL VALOR 1 Y FALSE POR EL 0.
VEAMOS ALGUNOS EJEMPLOS DE LOS TIPOS DE VARIABLES:
EDAD=3; //VARIABLE NUMÉRICA.
FÍJATE QUE ESTO EN NEGRITA ES UN COMENTARIO.
VARIABLEDETEXTO= “TENGO 14 AÑOS”; //FÍJATE QUE VA ENTRE COMILLAS.
VARIABLENUMERICA= EDAD + 2 ; //SU VALOR ES EL VALOR DE LA VARIABLE EDAD (NUMÉRICA) +2;
EN ESTE CASO SERÍA = 5 (3+2).
VARIABLEBOOLEANA = TRUE; EN ESTE CASO SERÍA DE VALOR 1
21. VARIABLES: SON VALORES QUE VAN CAMBIANDO
DURANTE LA EJECUCIÓN DE LOS PROCESOS DEL
ALGORITMO, EN ESTAS VARIABLES SE VAN A GUARDAR
LAS OPERACIONES QUE EL ALGORITMO REALICE PARA
RESOLVER EL PROBLEMA.
CONSTANTES: SON DATOS QUE SU VALOR NO VA A
CAMBIAR DURANTE TODO EL DESARROLLO DEL
ALGORITMO, LAS CONSTANTES PUEDEN TENER O NO
UN IDENTIFICADOR, PUES ESTOS VALORES PUEDEN
ESCRIBIRSE DIRECTAMENTE AL USAR LAS OPERACIONES
O BIEN ASIGNARLE UN IDENTIFICADOR, LAS
CONSTANTES TAMBIÉN TIENEN UN TIPO DE DATO.
22. OPERADORES Y EXPRESIONES
• ARITMETICOS
Operador Acción Ejemplo
+ Suma X = 5 + 4 | x= 9
- Resta X = 10 – 3 | x=7
* Multiplicación X = 3 * 2 | x = 6
/ División X = 10 / 2 | x = 5
% División Modular X = 1 / 3 | x = .66
++ Incremento X = 1; X++ | x = 2
-- Decremento X = 1; X-- | x = 0
^ Potencia X = 2 ^ 3 | x = 8
23. • RELACIONALES: ESTOS OPERADORES PERMITEN EVALUAR LA
RELACIÓN ENTRE UN PAR DE OPERANDO (CONSTANTES O VARIABLES)
Y PERMITEN DEVOLVER VALORES DE CIERTO O FALSO.
Operador Acción
> Mayor que
>= Mayor o igual que
< Menor que
<= Menor o igual que
== Igual / idéntico
¡= Diferente / distinto
24. LÓGICOS: SON OPERADORES QUE PERMITEN CONECTAR UN PAR DE
PROPIEDADES, ES DECIR, NOS PERMITEN OBTENER UNA RESPUESTA LÓGICA DE
LA COMPARACIÓN DE DOS OPERACIONES.
Operador Acción
&& Conjunción, and, Y
|| Disyunción, or, O
! Negación, no
25. ESTRUCTURAS DE CONTROL
• LAS ESTRUCTURAS DE CONTROL TIENEN UNA FINALIDAD
BASTANTE DEFINIDA: SU OBJETIVO ES IR SEÑALANDO EL ORDEN
EN QUE TIENEN QUE SUCEDERSE LOS PASOS DE UN
ALGORITMO O DE UN PROGRAMA.
LAS ESTRUCTURAS DE CONTROL SON DE TRES TIPOS:
SECUENCIALES
SELECTIVAS
REPETITIVAS
26. PARA QUE SIRVEN LAS ESTRCUTURAS DE
CONTROL
LAS ESTRUCTURAS DE CONTROL NOS DAN EL
PODER DE ALTERAR, CONTROLAR O MODIFICAR
EL ORDEN O EL FLUJO EN EL QUE SE EJECUTAN
LAS INSTRUCCIONES DE UN SOFTWARE A
VOLUNTAD. GRACIAS A LAS ESTRUCTURAS DE
CONTROL PODEMOS ABSTRAER ALGORITMOS O
SECUENCIAS DE INSTRUCCIONES EN UN
SOFTWARE PARA LOGRAR SU OBJETIVO.
27. 1. SECUENCIALES O DE SECUENCIA
ESTA ES LA ESTRUCTURA BÁSICA, YA QUE NOS PERMITE ASEGURAR QUE
UNA INSTRUCCIÓN SE EJECUTA DESPUÉS DE LA OTRA SIGUIENDO EL
ORDEN EN QUE FUERON ESCRITAS.
28. 2. SELECTIVAS, DE SELECCIÓN O CONDICIONALES
ESTE TIPO DE ESTRUCTURAS DE CONTROL NOS SIRVEN CUANDO
NECESITAMOS QUE SE EVALÚE EL VALOR DE ALGUNA VARIABLE O DE
ALGUNA CONDICIÓN PARA DECIDIR QUÉ INSTRUCCIONES EJECUTAR A
CONTINUACIÓN.
•SELECTIVAS SIMPLES: EVALÚAN UN VALOR O UNA CONDICIÓN Y
DETERMINAN LAS INSTRUCCIONES A EJECUTAR EN CASO DE CUMPLIRSE
LA CONDICIÓN.
29. • SELECTIVAS DOBLES: EVALÚAN UN VALOR O UNA CONDICIÓN.
DETERMINAN LAS INSTRUCCIONES A EJECUTAR EN CASO DE CUMPLIRSE LA
CONDICIÓN Y TAMBIÉN LAS INSTRUCCIONES A EJECUTAR EN CASO DE NO
CUMPLIRSE.
• SELECTIVAS MÚLTIPLES O ANIDADAS: PERMITEN COMBINAR SELECTIVAS
SIMPLES Y DOBLES PARA CREAR ESTRUCTURAS Y CONDICIONES MÁS
COMPLEJAS CUANDO EL ALGORITMO EN CUESTIÓN LO NECESITE.
30. 3. ITERATIVAS, DE ITERACIÓN, DE REPETICIÓN O
REPETITIVAS
ESTE TIPO DE ESTRUCTURAS DE CONTROL NOS
SIRVEN CUANDO NECESITAMOS QUE SE
EJECUTE UN CONJUNTO ESPECÍFICO DE
INSTRUCCIONES EN DIVERSAS OCASIONES. LA
CANTIDAD DE VECES QUE SE REPITE DICHO
BLOQUE DE ACCIONES PUEDE SER ESTÁTICO O
PUEDE DEPENDER DEL VALOR DE ALGUNA
VARIABLE O DE ALGUNA CONDICIÓN.
31. • ITERATIVAS CON CANTIDAD FIJA DE ITERACIONES: SE UTILIZAN CUANDO A
PRIORI SE CONOCE LA CANTIDAD DE OCASIONES QUE DEBE REPETIRSE UN
BLOQUE DE INSTRUCCIONES. NORMALMENTE, USAN UNA VARIABLE DE
ITERACIÓN O ÍNDICE PARA CONTAR LA CANTIDAD DE REPETICIONES QUE SE
HAN REALIZADO.
El valor inicial <valor1> de la <variable> irá
aumentando o disminuyendo según el
paso <valor3> hasta llegar al
valor <valor2>. Si no se especifica el valor
de paso, se sobrentiende que el aumento
es de uno en uno.
32. • ITERATIVAS CON CANTIDAD VARIABLE DE ITERACIONES: SE UTILIZAN CUANDO
LA CANTIDAD DE OCASIONES QUE DEBE REPETIRSE UN BLOQUE DE
INSTRUCCIONES ESTÁ DETERMINADO POR UNA CONDICIÓN. POR LO
REGULAR, EXISTEN DOS VARIANTES: REPETIR UN BLOQUE DE
INSTRUCCIONES MIENTRAS SE CUMPLA UNA CONDICIÓN O
REPARTIRLO HASTA QUE SE CUMPLA UNA CONDICIÓN.