Tema 6: Elementos de programación adicionales

Slides:



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

EL LENGUAJE DE PROGRAMACIÓN C
Ingeniero Anyelo Quintero
JAVA J.A.C..
Unidad III Elementos del lenguaje C++
Tema 2: Los tipos de datos
Informática Ingeniería en Electrónica y Automática Industrial
El Lenguaje C++. Creación de programas simples de C++ Builder como ejercicios en C++. Los elementos de control fundamentales en C++, incluyendo operadores.
Tema 3: Operadores Antonio J. Sierra. Índice Aritméticos A nivel de bit Relacionales Lógicos Asignación.
Resumen Fundamentos de Programación/ Programación I
EXPRESIONES Y SENTENCIAS
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,
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.

Fundamentos de Programación
Estructuras de Decisión
Tipos de datos básicos en Java
Informática Ingeniería en Electrónica y Automática Industrial
Programación de Algoritmos Autor: Luis Eduardo Villavicencio Prof.: Ing. Danilo Jaramillo.
AYUDANTÍA 2 Lenguaje Imperativo y Java. Punteros Dirección a memoria (puede apuntar a NULL). Permite trabajar con memoria (variables dinámicas de heap).
CICLOS CONDICIONALES DINÁMICOS Y CICLOS CONDICIONALES FIJOS Aixa Sosa Colón NE: Programación 2250 – 3240 ONL Profesora. Rebecca Acevedo Rivera.
Programación II Sesión 3. TABLA DE CONTENIDO  Tipos de Datos en C  Delimitadores  Tipo Char  Tipo Int  Tipo Float  Tipo Double  Constantes  Operadores.
Ciclos Condicionales Joel R. Almodóvar Rivera Tarea 6-1 PROG2310L.
Control, adquisición y monitoreo con Arduino y Visual Basic .net
Representación de números en binario
Taller de Java Universidad de los Andes
SERIES Y SUMATORIAS.
Estructuras de Control en Visual Basic.net
Operadores Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.
ROBERTO PINEDA FLORES. ALEXIS JULIAN VELAZQUEZ NAVA.
Ciclos condicionales y exactos Estructura de control de ciclos
Anexo Chame-San Carlos
Tema 4 Elementos para el Desarrollo de Algoritmos
Estructuras de Control en Visual Basic.net
¿Qué es un OPERADOR? “Un operador es un elemento de programa que se aplica a uno o varios operandos en una expresión o instrucción. Los operadores que.
Tema 6. Conceptos básicos de programación (Clase 2)
TUTORIAL PSeint.
Leccion 5: Escogiendo un Tipo de Variable
Constantes y variables
Teclado y Pantalla (Java estándar)
Tema 4 Elementos para el Desarrollo de Algoritmos
LÓGICA DE PROGRAMACIÓN
EXPRESIONES Una expresión es una forma especial de asignación.
Unidad 3. Introducción a la programación
ESTRUCTURAS DE CONTROL EN VISUAL BASIC.NET Prof.: Rafael Mourglia.
PROGRAMACION: Que es un computador: Es un aparato electrónico que tiene el fin de recibir y procesar datos para realización de diversas operaciones..
Retroalimentación ejercicios de tarea. Ejercicios para resolver 1.¿Cuántos bytes hay exactamente en un sistema que contiene a.32 Kbytes b.64 Mbytes c.6.4.
HERRAMIENTAS DE PROGRAMACIÓN
Estructuras de Repetición Pseudocodigo1 Estructuras de Repetición Algoritmos Mientras Hacer-Mientras Para.
Unidad 3: Sistemas de Numeración. Í ndice Definición y Principios. Sistema de numeración decimal. Sistema de numeración binario. Conversión de un número.
Introducción práctica la uso de la tarjeta Arduino.
Características de “C”
Fundamentos de programación
Programación I MC José Andrés Vázquez Flores
Tema 3: Operadores Antonio J. Sierra.
Punto Flotante Además de los enteros, existen problemas que se desea modelar en la computadora que requieren de números fraccionarios, que en matemática.
Datos Numéricos Capítulo 3 Libro: Programación en Java - Thomas C. Wu 4to. Semestre – Opt. I – POO Introducción en Java.
PROGRAMACIÓN (2).
CICLOS EN JAVA FOR, WHILE, DO WHILE Un ciclo en Java o bucle en Java (como prefieras llamarlo) permite repetir una o varias instrucciones cuantas veces.
Informática Ingeniería en Electrónica y Automática Industrial
Tema 6. Conceptos básicos de programación (Clase 2)
Informática Ingeniería en Electrónica y Automática Industrial
JAVA: elementos básicos
Estructuras de Repetición Algoritmos
NATURALEZA DE LOS DATOS Valores Numéricos Son los valores que se pueden hacer cálculos aritméticosritméticos Tipos de valores Entero Real Cadena ( “ h”
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN  1. Algoritmos: conjunto de instrucciones programadas para resolver una tarea específica.  2. Datos:
Estructuras de control Java
UNIDAD II Generalidades sobre Algoritmos
Profesor del curso: UNIVERSIDAD NACIONAL DEL CENTRO DEL PERU 2019-I Facultad de Ingeniería de Sistemas 1.
SISTEMAS NUMERICOS “Introducción a la Programación” Rolando Montero.
Transcripción de la presentación:

Tema 6: Elementos de programación adicionales Introducción Representación interna de los datos Conversiones entre tipos de datos Operadores de incremento y decremento Operadores lógicos Operadores de asignación El operador condicional Sentencia switch Sentencia do Sentencia for Sentencias break y continue Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM Introducción En este capítulo veremos algunos conceptos adicionales de programación y constructores El capítulo 6 se centrará en: representación interna de los datos conversiones entre tipos de datos más operadores más sentencias de selección más sentencias de repetición Escuela Superior de Informática. UCLM

Representación interna de los datos Ya hemos comentado anteriormente que cada trozo de información almacenado en un computador se representa como valores binarios ¿Qué se representa con la siguiente cadena binaria? 01100001001010 No se puede contestar simplemente mirando la cadena de bits Debemos coger los valores binarios específicos y darles una interpretación Escuela Superior de Informática. UCLM

Representación de Enteros Hay cuatro tipos de enteros en Java. Cada uno utiliza un número distinto de bits para almacenar el valor Cada uno de ellos tiene un bit para el signo. Si es 1, el número es negativo; si es 0, el número es positivo byte short int long s 7 bits s 15 bits s 31 bits s 63 bits Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM Complemento a dos Los enteros se almacenan en formato complemento a dos con signo Un valor positivo es un número binario directamente Un valor negativo se representa invirtiendo todos los bits del correspondiente valor positivo y añadiendole 1 Para “descodificar” un valor negativo, se invierten todos los bits y se añade 1 Usando el complemento a dos el proceso de aritmética interna es más fácil Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM Complemento a dos El número 25 se representa en8 bits (byte) como 00011001 Para representar -25, primero se invierten todos los bits 11100110 después se añade 1 11100111 Note que el bit del signo se invierte, indicando que el número es negativo Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM Overflow y Underflow El almacenamiento de valores numéricos en un tamaño fijo puede conducir a problemas overflow y underflow Overflow ocurre cuando un número se hace demasiado grande para entrar en su espacio asignado Underflow ocurre cuando un número se hace demasiado pequeño para entrar en su espacio asignado Ver Overflow.java Escuela Superior de Informática. UCLM

Representación de valores en Punto Flotante Un valor decimal (base 10) en punto flotante se puede definir con la siguiente ecuación: signo * mantisa * 10 exponente donde signo es 1 ó -1 mantisa es un valor positivo que representa los dígitos significativos del número exponente es un valor que indica cómo se coloca el punto decimal con respecto a la mantisa Escuela Superior de Informática. UCLM

Representación de valores en Punto Flotante Por ejemplo, el número -843,977 se puede representar como -1 * 843977 * 10 -3 Los números en punto flotante se pueden representar en binario de la misma manera, excepto que la mantisa es un número binario y la base es 2 en vez de 10 signo * mantisa * 2 exponente Los valores en punto flotante se almacenan guardando cada uno de estos componentes en el espacio asignado Escuela Superior de Informática. UCLM

Representación de Caracteres Como ya se vio anteriormente, los caracteres se representan de acuerdo al conjunto de caracteres Unicode El conjunto de caracteres asigna un único número a cada carácter representado Almacenar el carácter es simplemente almacenar la versión binaria del número que lo representa. Por ejemplo, el carácter 'z' tiene el valor Unicode 122, el cuál se representa con 16 bits como, 0000000001111010 Escuela Superior de Informática. UCLM

Representación de Caracteres Al almacenarse como números, Java nos permite realizar algún procesamiento aritmético sobre los caracteres Por ejemplo, como 'A' se almacena con el valor Unicode 65, la sentencia char ch = 'A' + 5; almacenará el carácter 'F' en ch (valor Unicode 70) Esta relación puede ser útil a veces Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM Conversiones Cada valor de datos y cada variable se asocia con un tipo de datos particular Algunas veces es necesario convertir un valor de un tipo determinado a otro No todas las conversiones son posibles. Por ejemplo, valores lógicos (booleanos) no se pueden convertir a cualquier otro tipo de dato y viceversa Incluso aunque una conversión sea posible, debemos tener cuidado de que no se pierda información en el proceso Escuela Superior de Informática. UCLM

Conversiones por promoción Las conversiones por promoción (o ensanchamiento) son generalmente seguras porque van de un tipo de dato más pequeño a uno mayor Las conversiones por promoción son: Desde byte short char int long float A short, int, long, float, or double int, long, float, or double long, float, or double float or double double Escuela Superior de Informática. UCLM

Conversiones de estrechamiento Las conversiones de estrechamiento son más peligrosas porque van normalmente de un espacio asignado al dato menor a uno mayor Las conversiones de contracción son: Desde byte short char int long float double A byte o char byte o short byte, short, o char byte, short, char, o int byte, short, char, int o long byte, short, char, int, long, o float Escuela Superior de Informática. UCLM

Realizando Conversiones En Java, la conversión entre un tipo de dato a otro puede ocurrir de tres maneras: Conversión por asignación - cuando un valor de un tipo determinado se asigna a una variable de otro tipo Promoción aritmética - ocurre automáticamente cuando los operadores modifican los tipos de sus operandos para realizar correctamente la operación Moldes (Casting) - un operador fuerza a un valor a ser de otro tipo Escuela Superior de Informática. UCLM

Conversión por asignación Por ejemplo, si dinero es una variable de tipo float y euros es una variable de tipo int (que almacena 82), entonces: dinero = euros; convierte el valor 82 a 82.0 cuando se almacena El valor en euros no se cambia realmente A través de la asignación sólo se permiten conversiones de ampliación La conversión por asignación se puede dar también cuando se pasan parámetros (lo cual es una forma de asignación) Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM Promoción Aritmética Ciertos operadores requieren tipos consistentes para sus operandos Por ejemplo, si suma es una variable de tipo float y contador es una variable de tipo int , la sentencia resultado = suma / contador; convierte internamente el valor en contador a un float y después hace la división, produciendo un resultado en punto flotante El valor en contador no se cambia Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM Moldeado (Casting) Un molde es un operador que se especifica por un nombre de tipo colocado entre paréntesis Se coloca al lado del valor a convertir En el siguiente ejemplo se trunca la parte fraccionaria de un valor en punto flotante en dinero y se almacena la porción entera en euros euros = (int) dinero; El valor en dinero no cambia Si una conversión es posible, puede hacerse a través de un molde (cast) Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM Más Operadores Hemos visto algunos operadores de varios tipos: aritméticos y relacionales Hay muchos más operadores en Java que pueden usarse: operadores de incremento y de decremento operadores lógicos operadores de asignación el operador condicional Escuela Superior de Informática. UCLM

Operadores de incremento y decremento El operador de incremento (++) añade uno a su operando entero o en punto flotante El operador de decremento (--) substrae uno La sentencia contador++; es equivalente a contador = contador + 1; Escuela Superior de Informática. UCLM

Operadores de incremento y decremento Los operadores de incremento y de decremento se pueden aplicar como prefijos (antes de la variable) o como sufijos (después de la variable) Cuando se usan solos en una sentencia las formas prefijas y las sufijas son básicamente equivalentes: contador++; es equivalente a ++contador; Escuela Superior de Informática. UCLM

Operadores de incremento y decremento Cuando se usan en una expresión más larga, las formas prefijas y sufijas tienen un efecto diferente En ambos casos la variable se incrementa (o decrementa) Pero el valor usado en la expresión larga depende de la forma Expresión contador++ ++contador contador-- --contador Operación añade 1 substrae 1 Valor de la expresión valor antiguo nuevo valor Escuela Superior de Informática. UCLM

Operadores de incremento y decremento Si contador actualmente contiene 45, entonces total = contador++; asigna 45 a total y 46 a contador total = ++contador; asigna el valor 46 a total y a contador Escuela Superior de Informática. UCLM

Operadores de incremento y decremento Si suma contiene 25, entonces la sentencia System.out.println (suma++ + " " + ++suma + " " + suma + " " + suma--); imprimirá: 25 27 27 27 y suma contendrá 26 después de que se complete la línea Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM Operadores lógicos Hay tres operadores lógicos en Java: Todos ellos se aplican sobre operandos lógicos produciendo resultados lógicos (booleanos) El NO es monario (un operando), pero el Y y el O lógicos son binarios (dos operandos) Operador ! && || Operación NO lógico Y lógico O lógico Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM NO lógico El NO lógico se llama también negación lógica o complemento lógico Si a es verdadero, !a es falso; si a es falso, entonces !a es verdadero Las expresiones lógicas se pueden mostrar usando tablas de verdad a falso verdadero !a Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM Y lógico La expresión a && b es verdadera si ambos, a y b, son verdaderos y falsa en cualquier otro caso Las tablas de verdad muestran todas las combinaciones posibles de todos los términos a falso verdadero b a && b Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM O lógico La expresión a || b es verdadera si a o b o ambos son verdaderos y falsa en cualquier otro caso a falso verdadero b a || b Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM Operadores lógicos Las condiciones en las sentencias de selección y bucles pueden usar operadores lógicos para formar expresiones más complejas if (total < MAX && !found) System.out.println ("Procesando..."); Los operadores lógicos tienen relaciones de precedencia entre ellos y con otros operadores Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM Operadores lógicos Las expresiones completas se pueden evaluar usando tablas de verdad total < MAX falso verdadero found !found && !found Escuela Superior de Informática. UCLM

Operadores de asignación A menudo hacemos una operación sobre una variable y almacenamos el resultado en esa misma variable Java tiene operadores de asignación que simplifican el proceso Por ejemplo, la sentencia num += contador; es equivalente a num = num + contador; Escuela Superior de Informática. UCLM

Operadores de asignación Hay varios operadores de asignación, escritos como op=, tales como Operador += -= *= /= %= Ejemplo x += y x -= y x *= y x /= y x %= y Equivalente a x = x + y x = x - y x = x * y x = x / y x = x % y Escuela Superior de Informática. UCLM

Operadores de asignación El lado derecho de un operador de asignación puede ser una expresión completa Toda la expresión del lado derecho se evalúa primero y después se combina con la operación adicional Por tanto, result /= (total-MIN) % num; es equivalente result = result / ((total-MIN) % num); Escuela Superior de Informática. UCLM

El operador condicional Java tiene un operador condicional que evalúa una condición booleana (lógica) que determina cual de las dos expresiones se evaluará El resultado de la expresión elegida es el resultado del operador relacional completo Su sintaxis es: condición ? expresión1 : expresión2 Si la condición es verdadera, se evalúa expresión1; si es falsa, se evalúa expresión2 Escuela Superior de Informática. UCLM

El operador condicional Esto es similar a una sentencia if-else, excepto que esto es una expresión que devuelve un valor Por ejemplo: Masgrande = (num1 > num2) ? num1 : num2; Si num1 es mayor que num2, entonces se asigna num1 Masgrande; en otro caso, se asigna num2 Masgrande El operador condicional es ternario, es decir, que requiere tres operandos Escuela Superior de Informática. UCLM

El operador condicional Otro ejemplo: System.out.println (”Tu cambio es " + count + (count == 1) ? ”euro" : ”euros"); Si count es igual a 1, se imprime”euro”, en cualquier otro caso se imprimirá ”euros" Escuela Superior de Informática. UCLM

Otra sentencia de selección Las sentencias if y the if-else son sentencias de selección, que permiten seleccionar que sentencia se realizará a continuación en función de una condición booleana Otro constructor de selección, llamado sentencia switch, ofrece otra forma de elegir la próxima acción La sentencia switch evalúa una expresión y compara el resultado con una serie de valores La ejecución se transfiera a la lista de sentencias asociada con el primer valor que coincide Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM La sentencia switch La sintaxis de la sentencia switch es : switch (expresión) { case valor1: sentencia-lista1 case valor2: sentencia-lista2 case … } Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM La sentencia switch La expresión se debe evaluar para dar un valor entero o carácter La sentencia break se usa normalmente para terminar la lista de sentencias de cada caso, lo que causa que el control salte a la siguiente sentencia después de la sentencia switch y continúe Se puede añadir un caso default al final de la lista de casos y se ejecutará si no se ha realizado ningún otro caso Véase Vowels.java Escuela Superior de Informática. UCLM

Más constructores de repetición Además de los bucles while en Java hay otros dos constructores usados para realizar repeticiones la sentencia do la sentencia for Cada tipo de bucle tiene sus propias características particulares Se debe escoger que tipo de bucle usar en cada situación Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM La sentencia do La sentencia do tiene la siguiente sintaxis: do sentencia while (condición); La sentencia se ejecutará hasta que la condición sea falsa Es similar a la sentencia while, excepto que su condición de terminación se evalúa después del cuerpo del bucle Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM La sentencia do sentencia condición false true Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM La sentencia do Ver Dice.java La diferencia clave entre un bucle do y un bucle while es que el cuerpo del bucle do se ejecuta al menos una vez Si la condición de un bucle while es falsa inicialmente, el cuerpo del bucle nunca se ejecuta Otra forma de decir esto es que un bucle while se ejecuta cero o más veces y un bucle do se ejecuta una o más veces Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM La sentencia for La sintaxis de un bucle for es for (inicialización; condición; incremento) sentencia; lo que es equivalente a inicialización; while (condición) { incremento; } Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM La sentencia for Al igual que en un bucle while, la condición de una sentencia for se comprueba antes de ejecutarse el cuerpo del bucle Por tanto, un bucle for se ejecuta cero o más veces Es apropiado para ser ejecutado un número específico de veces, conocido a priori La parte de inicialización sólo se realiza una vez, pero la parte de incremento se ejecuta en cada iteración Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM La sentencia for sentencia condición false true inicialización incremento Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM La sentencia for Ejemplos: for (int count=1; count < 75; count++) System.out.println (count); for (int num=5; num <= total; num *= 2) { sum += num; System.out.println (sum); } Ver Dice2.java Escuela Superior de Informática. UCLM

Escuela Superior de Informática. UCLM La sentencia for Las tres expresiones de la cabecera de un bucle for son opcionales Si no se incluye la expresión de inicialización, la variable no se inicializa en ese punto y debe inicializarse en otro punto del programa Si no se incluye la condición, se considera siempre verdadera, y por tanto, estamos ante un bucle infinito Si no se incluye el incremento, no se realiza ninguna operación de incremento Siempre deben incluirse ambos puntos y comas (;) Escuela Superior de Informática. UCLM

Las sentencias break y continue La sentencia break, la cual se usa con las sentencias switch, también puede usarse dentro de un bucle Cuando se ejecuta una sentencia break, el control salta a la sentencia después del bucle (la condición no se evalúa otra vez) Un constructor similar, la sentencia continue, puede ejecutarse también en un bucle Cuando se ejecuta la sentencia continue, el control salta al final del cuerpo del bucle y se evalúa la condición Escuela Superior de Informática. UCLM

Las sentencias break y continue Éstas también se pueden usar para saltar a una línea determinada del programa usando una etiqueta Saltar de un punto a otro en un programa de manera no estructurada no es una buena práctica Por tanto, como regla, se debe evitar usar la sentencia break excepto cuando se necesite en sentencias switch, así como la sentencia continue Escuela Superior de Informática. UCLM