Upload
nany-hernandez
View
89
Download
0
Tags:
Embed Size (px)
Citation preview
UNIVERSIDAD DEL MAGDALENA
FACULTAD CIENCIAS DE LA EDUCACIÓN
PROGRAMA DE LICENCIATURA EN EDUCACIÓN
BÁSICA CON ÉNFASIS EN INFORMÁTICA
Fundamentos de Programación
Conceptos básicos
Conceptos básicos sobre lógica deprogramación.
Tipos de expresiones
Aritméticas
Relacionales
Lógicas
Tablas de verdad: Conjunción, Disyunción,Negación.
DEFINICIONES
Expresiones: Es una combinación de variables,constantes, operadores y referencias queexpresan cálculos aritméticos y/o lógicos a serrealizados.
En su forma más simple una expresión estaconstituida por una variable o constante.
Constantes: Una constante es un valor invarianteque puede ser referenciado en el algoritmo porel valor mismo o un nombre. Se pueden declararconstantes de cualquier tipo simple de dato.
DEFINICIONES (CONT.)
Variables: Una variable es un nombre compuesto por letras y números (el primer carácter ha de ser una letra) con el que se designan un almacén de valores, puede variar a lo largo del algoritmo. Se pueden definir variables de cualquier tipo de dato simple o compuesto.
Operadores: Se llaman operadores a todosaquellos símbolos que realizan una operacióndeterminada del argumento antecedente con elconsecuente.
CARACTERÍSTICAS DE LOS
ALGORITMOS
Preciso
Indicar el orden de realización de cada paso.
El orden de realización de las operacionesdebe estar dado en una forma clara.
No debe existir ambigüedad en el mismo.
Todos los posibles caminos de solucióndeben aparecer recogidos en el algoritmo.
CARACTERÍSTICAS DE LOS
ALGORITMOS (CONT.)
Deterministico
Si se sigue el algoritmo dos o más vecessobre los mismos datos de entrada se debeobtener el mismo resultado cada vez.
Finito
Debe tener un número finito de pasos.
El algoritmo debe terminar en un momentodeterminado después de ejecutar un númerofinito de pasos.
CARACTERÍSTICAS DE LOS
ALGORITMOS (CONT. 2)
Elemental La secuencia de las operaciones debe ser
detallada. Los pasos deben estar indicados como
instrucciones sencillas, de ser posiblerepresentables en el lenguaje de programación autilizar después.
General Debe encontrar la solución para las diferentes
instancias del problema que resuelve, no debeestar sujeto a unos parámetros de entradaespecíficos.
TABLA DE VERDAD
NEGACIÓN
Q Negación (!)
V F
F V
Del lado izquierdo se encuentran los casosposibles y del lado derecho el resultado deaplicar negación al valor de la izquierda.
Para una variable existen 21 casos posibles.
TABLA DE VERDAD
CONJUNCIÓN
Q P &
V V V
V F F
F V F
F F F
En la conjunción se requiere que ambaspreposiciones sean verdaderas para que elresultado sea verdadero.
Para dos variables existen 22 casos posibles.
TABLA DE VERDAD
DISYUNCIÓN
Q P ||
V V V
V F V
F V V
F F F
En la disyunción se requiere que ambaspreposiciones sean falsas para que el resultadosea falso.
CONSTRUCCIÓN DE TABLAS DE
VERDAD. CASOS POSIBLES
En general para n variables existen 2n casosposibles.
Las repeticiones de los valores en cada columnaes 2n-1 , 2n-2 … 2o
Ej. Para 3 variables. Los casos posibles son : 23 = 8
Las repeticiones de los valores en cada columnaes:
23-1 , 23-2 … 23-3 , es decir: 22 , 21 … 20, es decir: 4,2 y 1.
EJERCICIOS CON TABLAS DE
VERDAD
Construya la tabla de verdad de lassiguientes expresiones lógicas:
P || Q || R & Z
P! & Q || R ! || Z
P & Q ! || R
(R || Q & Z) !
P ! || Q & R ! || Z
TIPOS DE EXPRESIONES
Expresiones aritméticas: Son expresiones deresultado numérico. Los valores posiblescomo resultado de las expresionesaritméticas pertenecen a los tipos de datosentero o real.
Ej.: Expresiones aritméticas
a/b a dividido entre b
a * b a multiplicado por b
a – b a menos b
a + b a sumado a b
PRECEDENCIA ENTRE OPERADORES
ARITMÉTICOS
Los operadores siguen un orden de precedenciaa la hora de evaluar las expresiones, ordenadosen orden de mayor a menor prioridad losoperadores aritméticos son:
PotenciaciónDivisión y multiplicación
Suma y resta. Esto quiere decir que aunque las expresiones son
leídas de izquierda a derecha se realizan primerolas operaciones aritméticas de potenciación,después las de división y multiplicación yfinalmente las sumas y restas.
EJERCICIOS. PRECEDENCIA ENTRE
OPERADORES ARITMÉTICOS
Ej.: Para valores a = 5, b = 2, c = 3, ¿Cuál es elresultado de valuar la siguiente expresiónaritmética?
a * b ^ c
40
a + b * c
11
TIPOS DE EXPRESIONES
Expresiones lógicas: Son expresiones que tienen por resultado dos valores posibles: Verdadero o Falso.
Los operadores en una expresión lógicapueden ser de dos tipos:
Operadores relacionales
Operadores lógicos
OPERADORES RELACIONALES
Operan sobre expresiones de diferentes tipos(numéricos, alfanuméricos, lógicos) y retornan unvalor del tipo lógico:
Operador Operación que denota < Menor que > Mayor que <= Menor o igual que >= Mayor o igual que == Igualdad != Desigualdad
PRECEDENCIA ENTRE OPERADORES
RELACIONALES
Al igual que los operadores aritméticos para cambiar el orden de evaluación se utilizan los paréntesis y la evaluación de las expresiones con operadores de igual prioridad se realiza de izquierda a derecha.
Ordenados en orden de mayor a menor la prioridad los operadores relacionales es:
<, >, <=, >=
==, !=
EJERCICIOS. PRECEDENCIA ENTRE
OPERADORES RELACIONALES
Los operadores relacionales tienen un nivel deprecedencia menor que los operadores aritméticos.
Ej.: Para valores a = 5, b = 2, c = 3, ¿Cuál es elresultado de valuar la siguiente expresión relacional?
a > b +c
Falso
a == b + c
Verdadero
OPERADORES LÓGICOS
Estos operadores se basan en la aritméticadel lenguaje binario, en el que existen sólodos valores, 0 ó 1, Falso o Verdadero. Operansólo sobre operandos lógicos.
Operador Operación que denota
! NOT
& AND
|| OR
PRECEDENCIA ENTRE OPERADORES
LÓGICOS
De mayor a menor la precedencia de losoperadores lógicos es:
!
&
||
Los operadores lógicos, al igual que losrelacionales tienen un nivel de precedenciamenor que los operadores aritméticos.
EJERCICIOS. PRECEDENCIA ENTRE
OPERADORES LÓGICOS
Ej.: Para valores a = 5, b = 2, c = 3, ¿Cuál es elresultado de valuar la siguiente expresión lógica?
a > b +c & (a==b)
a > (b + c) & (a==b)
Falso
a == b + c || (a < b)
a == (b + c) || (a < b)
Verdadero
EJERCICIOS DE PRECEDENCIA DE
OPERADORES ARITMÉTICOS
Para valores a = 2, b = 2, c = 7, ¿Cuál es elresultado de valuar las siguientesexpresiones?
a + b * c
a / c + b
a ^ b / c
a * b / c
a + b - c
a * b ^ c
EXPRESIONES ALGEBRAICAS Y
EXPRESIONES ALGORITMICAS
Ecuación cuadrática:
Para que el computador la evalúe tal comonosotros lo haríamos debemos recordar laprecedencia de los operadores y utilizar losparéntesis para dar prioridad cuando seanecesario.
EXPRESIONES ALGEBRAICAS Y
EXPRESIONES ALGORITMICAS (CONT).
Ecuación cuadrática:
X = (-1)*b + sqrt(b ^ 2 – 4* a * c) / 2 * a
¿Cuáles son las operaciones que puede queno se realicen en el orden que deseamos?
X = (-1)*b + sqrt((b ^ 2 – (4* a * c)) /( 2 * a)
REPRESENTACIÓN DE HECHOS A TRAVÉS DE
EXPRESIONES ALGORÍTMICAS
En general todo lo que decimos podemosrepresentarlo a través de variables,constantes y operadores, es decir, a través deexpresiones algorítmicas.
Representar hechos a través de expresionesalgorítmicas es el primer paso paradesarrollar el pensamiento algorítmico.
EJEMPLOS. REPRESENTACIÓN DE HECHOS A
TRAVÉS DE EXPRESIONES ALGORÍTMICAS
Mis gastos semanales vienen dados por el totalde almuerzos y cenas que consumo en launiversidad y los pasajes de ida y vuelta de lunesa viernes.
Primero definir las variables.
GastosSemanales
TotalAlmuerzos
TotalCenas
TotalPasajes
EJEMPLOS. REPRESENTACIÓN DE HECHOS
A TRAVÉS DE EXPRESIONES ALGORÍTMICAS
(CONT.)
Segundo escribir la expresión algebraica (general)
GatosSemanales = TotalAlmuerzos + TotalCenas +TotalPasajes
Tercero escribir las expresiones algebraicasparciales.
TotalAlmuerzos = CostoAlmuerzo *CantidadDiasClase
TotalAlmuerzos = CostoAlmuerzoLun +CostoAlmuerzoMar + … + CostoAlmuerzoVier.
EJEMPLOS. REPRESENTACIÓN DE HECHOS
A TRAVÉS DE EXPRESIONES ALGORÍTMICAS
(CONT. 2)
¿Cuáles serian las expresiones algebraicaspara TotalCenas?
TotalCenas = CostoCena * CantidadDiasClase
TotalCenas = CostoCenaLun + CostoCenaMar+ … + CostoCenaVier.
EJEMPLOS. REPRESENTACIÓN DE HECHOS
A TRAVÉS DE EXPRESIONES ALGORÍTMICAS
(CONT. 3)
¿Cuáles serian las expresiones algebraicaspara TotalPasajes?
TotalPasajes = CostoPasajes *CantidadDiasClase * 2
TotalPasajes = TotalPasajesIda +TotalPasajesVuelta
TotalPasajesIda = CosPasIdaLun +CosPasIdaMar + … + CosPasIdaVier
TotalPasajesVuelta = CosPasVuelLun +CosPasVuelMar + … + CosPasVuelVier
PASOS PARA LA REPRESENTACIÓN DE
HECHOS A TRAVÉS DE EXPRESIONES
ALGORÍTMICAS
Definir las variables.
Escribir la expresión algebraica general.
Escribir las expresiones algebraicas parciales.
En el caso de presentarse conflicto para laevaluación de la expresión algebraica (enestricto orden de izquierda a derecha) por elcomputador, (debido a la precedencia deoperadores) , se tiene un cuarto paso queconsiste en convertir la expresión algebraicaen una expresión algorítmica.
EJERCICIOS
El bono de un vendedor es su salario basemás una comisión que representa el 5% dela sumatoria de la cantidad de productosvendidos.
Definir las variables.
BonoVendedor
SalarioBase
Comision
EJERCICIOS (CONT. 2)
El bono de un vendedor es su salario basemás una comisión que representa el 5% dela sumatoria de la cantidad de productosvendidos.
Escribir la expresión algebraica general.
BonoVendedor = SalarioBase + Comision
EJERCICIOS (CONT. 2)
El bono de un vendedor es su salario basemás una comisión que representa el 5% dela sumatoria de los costos de los productosvendidos.
Escribir las expresiones algebraicas parciales.
Comision = SumaCostoProductos*0,05
SumaCostoProductos = CostoProd1 +CostoProd2 + … + CostoProdN
RESOLUCIÓN DE PROBLEMAS
El programador de computadoras es ante quenada una persona que resuelve problemas, por loque para llegar a ser un programador eficaz senecesita aprender a resolver problemas de unmodo riguroso y sistemático.
A la metodología necesaria para resolverproblemas mediante el uso del computador se ledenomina Metodología de la Programación.
El eje central de la Metodología de laProgramación es el algoritmo.
CASOS DE ESTUDIO N°1. UN
EMPLEADOFUNDAMENTOS DE PROGRAMAC IÓN. APREND IZAJE ACT IVO
BASADO EN CASOS . 2006 . V I LLALOBOS, J . CASALLAS, G .
Administrar la información de un empleado.
El empleado tiene nombre, apellido, género,fecha de nacimiento, fecha de ingreso ysalario básico. Desde el programa se debepoder cambiar el salario del empleado ycalcular su edad, antigüedad en la empresa ycesantías.
1. ANÁLISIS DEL PROBLEMA (E-P-S)
Se identifica la naturaleza del problema y seanaliza la forma de resolverlo.
Si es necesario se recurre a la bibliografía enbusca de métodos para solucionarlo.
En este paso se describen los datos deentrada, el proceso y los resultados o salida.
ANÁLISIS DEL PROBLEMA
EJEMPLO
¿Comprendemos totalmente de que trata elproblema?
¿Manualmente se cómo obtener todo lo solicitado?
En caso que alguna respuesta sea negativa se deberecurrir a la bibliografía / buscar información.
Cesantías.
El trabajador tiene derecho a que se le pague unsalario mensual por cada año de trabajo oproporcionalmente a la fracción de año trabajado.
http://www.gerencie.com/prestaciones-sociales.html
ESPECIFICACIONES DE
ENTRADA
Información necesaria para la solución delproblema.
Se debe responder a las siguientespreguntas:
¿Cuántos y cuáles son los datos deentrada?
¿Cuándo los datos de entrada sonválidos?
Bajo qué condiciones va a ser resuelto elproblema.
ESPECIFICACIONES DE
ENTRADA
EJEMPLO
¿Cuántos y cuáles son los datos de entrada?
Son 7.
Nombre, apellido, género, fecha de nacimiento,fecha de ingreso , salario básico.
Fecha actual.
¿Cuándo los datos de entrada son válidos?
Género (F o M).
Fechas (Día entre 1 y 31, Mes entre 1 y 12, Año >1900).
Bajo qué condiciones va a ser resuelto el problema.
No se verifica si el mes posee menos de 31 días.
ESPECIFICACIONES DE
PROCESOS
Verificar que se tiene el conocimientoadecuado de los procedimientosmatemáticos y/o lógicos necesarios paraalcanzar la solución del problema desde unpunto de vista teórico.
De ser necesario, se recurrirá a la bibliografíaadecuada para ubicar la informaciónrequerida para tener capacidad de solución,a nivel teórico, del problema.
ESPECIFICACIONES DE
PROCESOS
CONT.
Determinar las operaciones o cálculosnecesarios para encontrar la solución delproblema.
Se debe responder a las siguientespreguntas:
¿Cuáles operaciones se emplearan?
¿Cuántos requerimientos?
Variables requeridas
ESPECIFICACIONES DE
PROCESOS
EJEMPLO
¿Cuáles operaciones se emplearán?
Restas y Multiplicaciones
¿Cuántos requerimientos?
3
Variables requeridas
DifAnyoNacimiento-Actual, Mes, Día
DifAnyoIngreso-Actual, Mes, Día
ESPECIFICACIONES DE
SALIDA
Resultados finales de los cálculos solicitados.
¿Cuántos y cuáles son los datos que se producirán (datos de salida)?
Cambiar el salario del empleado – Salario Actual.
Calcular su edad actual – Edad del empleado.
Calcular antigüedad en la empresa – Tiempo de servicio.
Calcular cesantías. Monto a recibir por retiro de la organización.
2. DISEÑO DEL ALGORITMO
Una vez especificado los datos de entrada y losresultados, se procederá al diseño del algoritmo.
Esto conlleva a un análisis lógico de lasoperaciones que deben ejecutarse para alcanzarla solución del problema.
Se debe describir la secuencia ordenada de pasosque conducen a la solución del problemaplanteado.
El algoritmo debe cumplir con las característicasmencionadas (Diapositivas 4-6).
3. REPRESENTACIÓN DEL
ALGORITMO
Pseudocódigo Diagrama de Flujo
El algoritmo debe ser expresado a través deuna técnica de representación de algoritmos.
4. PRUEBA DEL ALGORITMO
En esta fase se corrigen errores de lógica, queconducen a la obtención de resultados noesperados.
El programador elige un conjunto de datos deentrada y ejecuta manualmente cada sentenciadel algoritmo y verifica que los resultadosobtenidos sean los esperados.
Este proceso debe ser llevado a cabo conconjuntos de datos que permitan ejecutar todoslos caminos posibles del programa.
5. CODIFICACIÓN
En esta fase, se traduce el pseudocódigo odiagrama de flujo a un lenguaje de programaciónespecifico.
Se define las variables a utilizar y se codifica todoel procedimiento.
Las instrucciones expresadas en el algoritmo setraducen a instrucciones en algún lenguajeprogramación para obtener el programa fuente.
6. PRUEBA Y DEPURACIÓN
DEL PROGRAMA
Una vez escrito el programa fuente, se procede a sucompilación.
El compilador toma el código escrito en el lenguajeempleado y lo traduce a código máquina (que es como loentiende el computador). En esta fase se ponen demanifiesto los errores sintácticos y de programación que sepuedan haber cometido.
Se deben corregir todos los errores y avisos del compilador,una vez hecho esto el compilador devuelve un archivoobjeto y uno ejecutable.
Después de la ejecución del programa se hace laverificación de que los resultados obtenidos secorrespondan con los esperados.
6. PRUEBA Y DEPURACIÓN
DEL PROGRAMA
Una vez escrito el programa fuente, se procede a sucompilación.
El compilador toma el código escrito en el lenguajeempleado y lo traduce a código máquina (que es como loentiende el computador). En esta fase se ponen demanifiesto los errores sintácticos y de programación que sepuedan haber cometido.
Se deben corregir todos los errores y avisos del compilador,una vez hecho esto el compilador devuelve un archivoobjeto y uno ejecutable.
Después de la ejecución del programa se hace laverificación de que los resultados obtenidos secorrespondan con los esperados.
TIPOS DE ESTRUCTURAS DE
CONTROL DE FLUJO DE DATOS
Secuenciales
Permite indicar la ejecución incondicional devarias acciones de forma secuencial.
Condicionales
Son aquellas que permiten variar el orden deejecución del programa según se verifiquen ono ciertas condiciones.
Repetitivas
Son las que permiten la repetición desecuencias de sentencias un númerodeterminado de veces.
TIPOS DE ESTRUCTURAS DE
CONTROL DE FLUJO DE DATOS
EJEMPLO
Secuenciales
Operaciones aritméticas: restas,multiplicaciones…
Condicionales
Verificación de datos de entrada
Alternativas para el usuario
Repetitivas
Después de ingresados los datos de entrada,se puede realizar un solo cálculo. No hayestructuras repetitivas.
CASOS DE ESTUDIO N°2. RESULTADOS DE UNA
ENCUESTAFUNDAMENTOS DE PROGRAMAC IÓN. APREND IZAJE ACT IVO BASADO
EN CASOS . 2006 . V I LLALOBOS, J . CASALLAS, G .
Manejar los resultados de una encuesta de opinión.
En la encuesta se dividen a las personas en 3 rangosde edad menores de 18, entre 18 y 55 y mayores de55 años. La encuesta tiene una única pregunta:Calidad de un curso entre 0 y 10. El encuestado debeinformar si es soltero o casado.
El programa debe informar el valor total de laencuesta, promediar todas las notas y mostrarlas porpantalla. También debe ser capaz de presentarresultados según rango de edad y estado civil. Elprograma presenta por pantalla el promedio de lascalificaciones del curso , dadas por las personas quecumplen con el perfil pedido.
Se puede suponer que al momento de calcular losresultados hay por lo menos una persona de cadaperfil.
ANÁLISIS DEL PROBLEMA
EJEMPLO
¿Comprendemos totalmente de que trata elproblema?
¿Manualmente se cómo obtener todo losolicitado?
En caso que alguna respuesta sea negativa sedebe recurrir a la bibliografía / buscarinformación.
ESPECIFICACIONES DE
ENTRADA
EJEMPLO
¿Cuántos y cuáles son los datos de entrada?
Son 3.
Edad del encuestado
Puntuación con que se evalúa al curso
Estado civil del encuestado
¿Cuándo los datos de entrada son válidos?
Edad (>1 y < 100)
Estado Civil (S o C).
Puntuación (entre 0 y 10)
Bajo qué condiciones va a ser resuelto el problema.
Para obtener los resultados se va suponer queexiste información para poder obtenerlos.
ESPECIFICACIONES DE
PROCESOS
EJEMPLO
¿Cuáles operaciones se emplearán?
Sumas, Multiplicaciones y Divisiones
¿Cuántos requerimientos?
7
Variables requeridas
TotalEnc18C, TotalEnc18S, TotalEnc18-55C,TotalEnc18-55S…
AcumPunt18C, AcumPunt18S, AcumPunt18-55C,AcumPunt18-55S…
ESPECIFICACIONES DE
SALIDA
¿Cuántos y cuáles son los datos que se producirán (datos de salida)?
Promedio encuestados menores de 18 solteros
Promedio encuestados mayores de 18 y menores de 55, solteros
…
Promedio encuestados
TIPOS DE ESTRUCTURAS DE
CONTROL DE FLUJO DE DATOS
Secuenciales Operaciones aritméticas: restas,
multiplicaciones… Condicionales
Verificación de datos de entrada Alternativas para el usuario
Repetitivas Todas las instrucciones se repiten por cada
encuestado. Un estructura de controlrepetitiva engloba todo el proceso deencuesta.
CASOS DE ESTUDIO N°3. NOTAS DE UN CURSO.FUNDAMENTOS DE PROGRAMAC IÓN. APREND IZAJE ACT IVO BASADO
EN CASOS . 2006 . V I LLALOBOS, J . CASALLAS, G .
Administrar las calificaciones de los alumnosde un curso, en el cual hay doce estudiantes,de cada uno de los cuales se tiene la notadefinitiva que obtuvo (un valor entre 0,0 y5,0).
Se quiere algoritmo que permita cambiar lanota de un estudiante, calcular el promediodel curso y establecer el número deestudiantes que está por encima de dichopromedio.
CASOS DE ESTUDIO N°4. UNA ALCANCÍA.FUNDAMENTOS DE PROGRAMAC IÓN. APREND IZAJE ACT IVO BASADO
EN CASOS . 2006 . V I LLALOBOS, J . CASALLAS, G .
Se quiere construir un algoritmo paramanejar una alcancía. En la alcancía esposible guardar monedas de distintasdenominaciones: $50, $100, $200 y $500. Nose guardan billetes o monedas de otrosvalores.
En general el usuario puede agregar unamoneda de una de las denominaciones quese manejan, informar cuántas monedas tienede cada denominación, calcular el total dedinero ahorrado y romper la alcancía, esdecir, vaciar su contenido.