Nivel 1. Problemas, soluciones y programas

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

Curso de java básico (scjp)
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Lenguaje de programación Java
Entendiendo la definición de clases
ALGEBRA RELACIONAL Y CALCULO RELACIONAL CON REFERENCIA A BASE DE DATOS
Resolución de Problemas Algoritmos y Programación
Arquitectura CLARO-TECNOTREE
Asignatura: Introducción a la programación
Introducción a la Programación
Técnico en programación de Software
3. INTRODUCCIÓN A LA PROGRAMACIÓN
ESTRUCTURAS DE SECUENCIA
Algoritmo y Estructura de Datos I
ESCUELA: NOMBRES: LÓGICA DE LA PROGRAMACIÓN UNIDAD 2: Naturaleza de los Datos FECHA: Ing. Patricio Abad Espinoza OCTUBRE 2009 – FEBRERO Ciencias.
METODOLOGIA DE LA PROGRAMACION
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
Conceptos Básicos de Java
Programación.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Funciones en lenguaje C
POO Java Módulo 3 Elementos de programas Identificadores
Java Orientado a Objetos CLASES,OBJETOS Y MÉTODOS
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
SCJP Sun Certified Programmer for Java 6
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Características de “C”
Características de “C” Y Esta conformado por un Ambiente Integrado. Y Es un Lenguaje de Nivel medio. Y Es un compilador. YContiene un conjunto de palabras.
Clase Teórica No. 4 Programación IV
PRINCIPIOS DE PROGRAMACION ESTRUCTURADA
CARACTERÍSTICAS DE LOS PROGRAMAS
El lenguaje de programación Java
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
Ingeniería de Sistemas Requerimientos
Tipo de Datos Básicos.
ESTRUCTURA DE DATOS ESD-243
Resumen Fundamentos de Programación/ Programación I
INTRODUCCION A LOS ALGORITMOS
Programación orientada a objetos. El método main es el comportamiento por el cual comienzan todos los programas en Java, de la misma forma en la que C,
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Nivel 2. Definición de situaciones y manejo de casos Fundamentos de programación Villalobos JA, Casallas R. Prentice Hall, Presentación creada por.
Departamento de Informática Universidad Técnica Federico Santa María Temas 2,3,4: Estructura de un Programa Pascal Declaraciones Tipos de Datos Simples.
A continuación… Repaso Repaso Estructuras de Decisión Ejemplos
Elementos básicos para el desarrollo de algoritmos
Algorit moAlgorit mo An á lisisAn á lisis Argumen toArgumen to Asignación Asociación Cometar ioCometar io Compilación Constan teConstan te Definición.
IDENTIFICADORES Un identificador es un "nombre" que nos permite dirigirnos específicamente a una de las entidades propias del lenguaje, es decir, son los.
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
Términos algoritmo diseñar algoritmo implementar algoritmo
PRINCIPIOS DE PROGRAMACIÓN
Expresiones Reglas de prioridad o precedencia
Presente un cuestionario con los aspectos mas importantes sobre los
Lic. Carla Aguirre Montalvo
Abstracción El concepto de abstracción es esencial en ciencias de la computación. Un programa es en sí mismo una abstracción, un modelo de la resolución.
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código.
Acceso a Datos Erick López Ovando Licenciado en Informática.
Proceso de desarrollo de Software
Programación Orientada a Objetos: CLASES Y OBJETOS
Clases “ Es una Abstracción de un elemento del mundo real ”
Especificación del Problema Partimos del hecho de un programador no puede resolver un problema que no entiende. Por esta razón, la primera etapa en todo.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) V. GESTIÓN DE TIPOS Y GENERACIÓN DE CÓDIGOS.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Concepto de Tipo y Subtipo Diseño e Implementación Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 10 Versión.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Introducción a la Programación Orientada a Objetos (POO) Conceptos de clase, objeto e interfaz. Atributos y métodos Fundamentos de Programación Departamento.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

Nivel 1. Problemas, soluciones y programas Presentación creada por M.J. Gaitán Fundamentos de programación Villalobos J.A., Casallas R. Prentice Hall, 2006

Problemas y soluciones Etapa 1 Etapa 2 Etapa N Proceso Programador Problema Cliente Usuario Programa Solución

Especificación de un problema Requerimientos funcionales Mundo del problema Problema Análisis Cliente Programador Requerimientos no funcionales

Análisis de un problema Una compañía quiere hacer un programa para que los consumidores puedan consultar la información nutricional de sus productos. Cliente Compania de alimentos Usuario Consumidor Requerimientos funcionales R1.Dado el codigo de barras de un producto, dar la informacion de: calorias, carbohidratos, proteinas, lipidos, sales, tamano de porcion, Mundo del problema Lista de productos, informacion nutricional de cada producto Requerimientos no funcionales Distribuido en los supermercados, lector de barras, presentacion agradable, anuncio de la comapania

El proceso y las herramientas Problema Entender y especificar el problema: Requerimientos funcionales Mundo del problema Requerimientos no funcionales Análisis del problema Diseño de la solución Construcción de la solución Proceso Programador Detallar características de la solución antes de construirla. Uso de algún lenguaje Herramientas y lenguajes Implementar el programa y probar su funcionamiento Solución

Elementos que forman parte de la solución de un problema Diseño del programa Código fuente Código ejecutable Archivos de construcción compilador programa Datos de prueba Pruebas del programa

Construcción de un programa Programador usa Ambiente de desarrollo Código ejecutable crea tiene Se instala donde Compilador Editor crea traducido por entiende Usuario Código fuente Lenguaje de programación escrito en

Caso de estudio 1 Programa que administra la información de un paciente adulto Nombre, apellido, sexo, fecha de nacimiento, fecha de inicio del tratamiento, peso, estatura Cambiar: peso Calcular: edad actual, índice de masa corporal, peso ideal

Comprensión y especificación del problema Análisis del problema ¿Cómo se especifica un requerimiento funcional? ¿Cómo saber qué es un requerimiento funcional? ¿Cómo se describe el mundo del problema?

Requerimientos funcionales Nombre R1. Introducir datos del paciente Resumen Permite al usuario introducir la información del paciente: datos personales y datos del estado actual Entradas Nombre del paciente Apellido del paciente Sexo del paciente Fecha de nacimiento Fecha de inicio del tratamiento Estatura Peso Resultado Datos en memoria

Requerimientos funcionales Nombre R2. Actualizar el índice de masa corporal Resumen Permite actualizar el índice de masa corporal, de acuerdo con la información Entradas Peso Estatura Resultado El índice de masa corporal ha sido actualizado

Requerimientos funcionales Nombre R3. Actualizar edad actual Resumen Permite modificar la edad actual del paciente Entradas Fecha de nacimiento Fecha actual Resultado La edad del paciente ha sido actualizada

Requerimientos funcionales Nombre R4. Actualizar el peso ideal Resumen Permite modificar el peso ideal del paciente de acuerdo con su estatura, edad y sexo Entradas Estatura Edad Sexo Resultado El peso ideal del paciente ha sido actualizado

El modelo del mundo del problema Identificar entidades Modelar sus características Buscar sus relaciones Documentar El modelo del mundo del problema Clases atributos asociaciones nombre

El modelo del mundo del problema Identificación de entidades o clases Elementos concretos o abstractos Programas pequeños: buscar sustantivos en el enunciado del problema Entidad

El modelo del mundo del problema Modelado de características o atributos Clase: Atributo Valores posibles UML

El modelo del mundo del problema Modelado de características o atributos Clase: Atributo Valores posibles UML

El modelo del mundo del problema Relación entre entidades Fecha Paciente fechaNacimiento fechaIngreso

Requerimientos no funcionales Contexto de utilización del programa Restricciones definidas por el cliente Ejemplos: Múltiples usuarios Sistema de computación específico Capacidades de almacenamiento Tiempo de procesamiento

Elementos de un programa Datos Procedimientos Algoritmos Clases y objetos Tipos de datos Métodos Instrucciones Lenguaje de programación

Clases y objetos Clases Objeto Definen la estructura del programa Paciente nombre apellido sexo estatura peso algoritmos Fecha dia mes anio fechaNacimiento fechaIngreso Clases Definen la estructura del programa Entidades del mundo del problema Definido por atributos y métodos Objeto Instancia o ejemplar de una clase Valores propios para cada atributo {valores de atributos} estado del objeto fechaNacimiento fechaIngreso :Paciente nombre=“Luis” apellido=“Laos” sexo=Masculino estatura=168 peso=72 :Fecha dia=14 mes=5 anio=1972 dia=22 anio=2006 fechaNacimiento fechaIngreso :Paciente nombre=“Ana” apellido=“Ruiz” sexo=Femenino estatura=155 peso=50 :Fecha dia=24 mes=10 anio=1989 dia=15 mes=1 anio=2005

Tipos de datos Java Características Ejemplos Simples Compuestos Enteros int -32768 32767 48 -360 Reales double -2.9E39 1.7E38 49.5 -3.1416 Carácter char Un solo carácter alfanumérico o especial ‘a’ ’A’ ‘7’ ‘+’ 97 65 55 43 Lógicos boolean true false Compuestos Cadena String Secuencia de caracteres “Qué bien” “”

Paquetes Estructura jerárquica de las clases de un programa ClaseInterfaz1 ClaseInterfaz2 … ClaseMundo1 ClaseMundo2 … ClaseUtil1 ClaseUtil2 … ClasePrueba1 …

Java Bloque de instrucciones { } Comentarios Declaración de una clase De línea // De sección Declaración de una clase Archivo: Fecha.java public class Fecha { // Aquí va la declaración de la clase Fecha }

Java Declaración del paquete de la clase package uami.intProg.paciente /** * Esta clase representa a un paciente */ public class Fecha { // Aquí va la declaración de la clase Fecha }

Java Declaración de atributos de la clase package uami.intProg.paciente /* Esta clase representa una fecha */ public class Fecha { // Atributos------------------- private int dia; private int mes; private int anio; } Fecha int dia int mes int anio algoritmos

Java Declaración de atributos de la clase package uami.intProg.paciente /* Esta clase representa a un paciente */ public class Paciente { // Atributos private String nombre; private String apellido; private int sexo; //1=masculino,2=femenino private int estatura; private double peso; private Fecha fechaNacimiento; private Fecha fechaIngreso; } Paciente String nombre String apellido int sexo int estatura double peso algoritmos Fecha int dia int mes int anio fechaNacimiento fechaIngreso

Métodos Cada algoritmo de una clase es un método Elementos Solución de un problema puntual Servicio que la clase presta a las demás o a ella misma Elementos Nombre Lista de parámetros (con su tipo) Información que no tiene el objeto pero que se necesita para resolver el problema puntual Tipo de respuesta (si no hay salida, void ) Cuerpo del método Conjunto de instrucciones Signatura: encabezado (método sin cuerpo)

Métodos Nombre: Parámetros: Retorno: Descripción: public tipo nombre(tipo parametros) { //Cuerpo del método } Parámetros: Retorno: Descripción:

Métodos Fecha Paciente String nombre String apellido int dia int sexo int estatura double peso void cambiarPeso(double nuevoPeso) double calcularIMC() double calcularPesoIdeal(Fecha fechaActual) Fecha int dia int mes int anio int darDia() int darMes() int datAnio() fechaNacimiento fechaIngreso

Métodos Nombre: Parámetros: Retorno: Descripción: public tipo nombre(tipo parametros) { //Cuerpo del método } Parámetros: Retorno: Descripción:

Instrucciones Retorno public class Fecha { // Atributos------------------- private int dia; private int mes; private int anio; // Metodos--------------------- public int darDia() return dia; } public int darMes() return mes; public int darAnio() return anio;

Instrucciones Expresiones Aritméticas var1 11 var2 2 Orden de operadores Operator Descripción Ejemplo Resultado - Negación -var1 -11 ++ Incremento var1++ 12 - - Decremento var1-- 10 * Multiplicación var1*var2 22 / División var1/var2 5.5 % Módulo var1%var2 1 + Adición var1+var2 13 Substracción var1-var2 9 = Asignación var1=var2 var1 2

Instrucciones Expresiones Lógicas Resultado: falso / verdadero (false / true) Operadores relacionales < menor que <= menor o igual > mayor que >= mayor o igual != diferente == igual Operadores lógicos && y (and) || o (or) ! negación (not) valor1 valor2 valor1 OR valor2 valor1||valor2 V F valor1 valor2 valor1 AND valor2 valor1&&valor2 V F valor NOT(valor) !valor V F

Instrucciones Expresiones Reglas de prioridad o precedencia Expresiones entre paréntesis Si hay anidados, de adentro hacia fuera Orden !,-(negación) ++,-- *, /, %, &&, +, -, || <, > ,==,<=,>=,!= Si coinciden varios operadores de igual prioridad en una expresión, de izquierda a derecha

Instrucciones Asignación Operandos Operadores atributoModificarse = expresión; Operandos Elementos de una expresión Operadores Aritméticos Lógicos Relaciones entre los operandos areaTriangulo = base*altura/2;

Instrucciones Asignación public class Paciente { // Atributos------------------------------ private String nombre; private String apellido; private int sexo; //1=masculino,2=femenino private int estatura; private double peso; private Fecha fechaNacimiento; private Fecha fechaIngreso; //Metodos---------------------------------- public void cambiarPeso(double nuevoPeso) peso = nuevoPeso; } public double calcularIMC() return peso/(estatura*estatura); …

Instrucciones Llamada de un método sin parámetros Uso del servicio que proporciona una clase Misma clase nombreMetodo() Otra clase referenciada como atributo nombreAtributo.nombreMetodo()

Instrucciones Llamada de un método con parámetros ¿Cuándo? Declaración Información en sus atributos no es suficiente Declaración Signatura o encabezado de un método modificador tipo de nombre del lista de parametros: tipo nombre de control retorno método de acceso public void metodo1(int a, double b, char c) ¿Cómo se utilizan los valores? Utilizar el nombre del parámetro en el cuerpo, como con los atributos

Instrucciones Llamada de un método con parámetros ¿Cómo se definen los valores? Al hacer la llamada al método, pasar los valores con los que se desea que el método trabaje Constantes Atributos del objeto que hace la llamada Parámetros del método desde el que se hace la llamada Expresiones con los anteriores Relación entre valores y parámetros Los valores se pasan el orden en el que están declarados los parámetros Mismos tipos de datos Mismo número de valores y parámetros

Instrucciones public class C2 { private int art1; private C1 obj; public void m2(int x) obj.m1(x,34+atr1,”prueba”); } public class C1 { public void m1(int param1, int param2, String param3) … }

Instrucciones Creación de objetos new NombreObjeto( ) Objetos del modelo del mundo: creados tipicamente por la interfaz de usuario Una referencia a un objeto se puede guardar en cualquier atributo o variable del mismo tipo.

Diseño de la solución Segunda etapa del proceso de desarrollo de un programa Refinamientos sucesivos Requerimientos funcionales Interfaz de usuario Diseño de la solución Mundo del problema Arquitectura de la solución Requerimientos no funcionales Diseño de las clases

Arquitectura de la solución División del problema en problemas más pequeños Diseño de alto nivel que permita la unión Arquitectura básica con tres grupos de clases: Interfaz de usuario Modelo del mundo Pruebas Cada grupo de clases en un paquete

Construcción de la solución Archivos fuente Organización y convenciones Cliente Archivos compilados Interfaz de usuario Archivos de documentación Construcción de la solución Arquitectura de la solución Archivos empaquetados Usuario Diseño de las clases Archivos ejecutables

Nivel 1 Especificación del problema Análisis del problema Requerimientos funcionales Mundo del problema Requerimientos no funcionales Diseño de la solución Programa: datos y métodos Interfaz de usuario, arquitectura de la solución, diseño de las clases Construcción de la solución

Ejercicios de expresiones Expresión Resultado Operadores 2+3*11= (2+3)*11= 3+7*2-4*6= -3*5+2/4-5= -3*5+2/(4-5)= -(3*5+2)/(4-5)= (-3*5+2)/(4-5)= 3<6 4!=2+1 4.8/(2.6-3)*2= ‘a’==‘A’ !(7>=-2) Expresión Resultado Operadores 1.0>=2*(3.1-2.6) 17>-8 3>2 (17>-8)&&(3>2) (17>-8)||(3>2) !(17>-8) !(17>-8)&&(3>2) (3/4>0.6)&&(5<3) 39%4= (25%8)>(47%6) 39/4= !(!((3>1)&&(2<10))||((4>1)&&(1<2)))

Ejercicios de expresiones Expresión matemática Expresión algorítmica (pasar de oC a oF) (pasar de oF a oK)