Fundamentos programcion unidad_i

61
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

Transcript of Fundamentos programcion unidad_i

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.

PASOS PARA LA RESOLUCIÓN

DE PROBLEMAS MEDIANTE EL

USO DEL COMPUTADOR

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.