Expresiones y sentencias

Documentos relacionados
Expresiones y sentencias

Principios de Computadoras II

Tema 4. Operadores y Expresiones

4. Operadores Operador asignación

Datos y tipos de datos

El lenguaje C. 1. Identificadores, constantes y variables

TEMA 3. OPERADORES Y EXPRESIONES.

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Lección 2 Introducción al lenguaje C

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

Operadores y Expresiones

Objetivos de la sesión. Expresiones aritméticas. Operadores Aritméticos 12/30/11

Curso de Java Introducción a la Programación II

Informática PRÀCTICA 3 Curs Práctica Nº 3: Tipos de datos simples. Constantes y variables. Operadores aritméticos. Formato de salida.

Datos y tipos de datos

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

Operadores aritméticos. / División operando enteros o reales si operandos son entero resultado es entero. Resto de caso resultado real

Elementos de un programa en C

Programación 1 Tema 3. Información, datos, operaciones y expresiones

Una expresión es una combinación de uno o más operandos y operadores para obtener un resultado.

Los parámetros: son los campos que se comunican a los métodos de los objetos.

Expresiones Lógicas y Operadores sobre Bits

Práctica de constantes, expresiones y operadores. Programación en C 1

TEMA 02 TIPOS, OPERADORES Y EXPRESIONES

OPERADORES Y EXPRESIONES

Tipos de datos y Operadores Básicos

Programación estructurada (Tipos, operadores y expresiones)

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Unidad I Tipos de Datos en C

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

Expresiones y Operadores

Operadores. Javier Fernández Rivera -

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica

1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

Escuela Normal Superior N 40 Mariano Moreno. Cuadernillo Propedéutico 2017 Nivel Superior

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Tema 1: Introducción a C

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:

Curso de Programación Avanzada en C

Comprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso.

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

Java. Introducción a la Programación Orientada a Objetos

Elementos léxicos del lenguaje de programación C

Tema 2. El lenguaje JAVA

Módulo. = Asignación = = Comp. de igualdad!= Com. de desigualdad <= Comp. menor o igual >= Comp. mayor o igual AND lógico OR lógica.

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Expresiones Aritméticas

PROGRAMACION ESTRUCTURADA: Tema 1. El lenguaje de programación C

Tema 05: Elementos de un programa en C

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

Tema 3. Tipos de datos simples

Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos.

TIPOS DE DATOS BASICOS EN LENGUAJE C

OPERADORES EN C++ TRANSVERSAL DE PROGRAMACIÓN BÁSICA

EXPRESIONES Y OPERADORES

Lenguajes de programación

3.3 Conceptos Básicos del Lenguaje Java

PRINCIPIOS DE PROGRAMACIÓN. Mtro. en Ingeniería de Software. Especialidad en e-commerce Ismael Jiménez Hernández

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Programación 1 Tema 3. Información, datos, operaciones y expresiones

Aritmética de Enteros y

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Capítulo 7 OPERADORES Y EXPRESIONES. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Tipos de Datos. Tipos de Datos Simples Estándar

Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno

Elementos léxicos del lenguaje de programación Java

Curso C++: Variables y Tipos

Fundamentos de Informática E.U.P. Universidad de Sevilla

PSEUDOCODIGO, DIAGRAMAS DE FLUJO Y ALGO DE C

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Descripción de un Programa

Programación en Lenguaje C

Fundamentos de Programación 2017-I

1 ELEMENTOS BASICOS DEL LENGUAJE

Características de JavaScript

Programación Tema 3: Tipos y expresiones simples. Programación DIT-UPM

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

TEMA 3: Programación en lenguajes de alto nivel

GUÍA DE TRABAJO N 1 C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 13

Conceptos básicos sobre gramáticas

Representación de datos y aritmética básica en sistemas digitales

Estatutos de Control C# Estatutos de Decisión (Selección)

Introducción rápida a la programación (estructurada ) con C++

Ficha de Aprendizaje N 13

Introducción a la Programación

Transcripción:

Expresiones y sentencias Expresión Construcción (combinación de tokens) que se evalúa para devolver un valor. Sentencia Representación de una acción o una secuencia de acciones. En C, todas las sentencias terminan con un punto y coma [;]. Construcción de expresiones Literales y variables son expresiones primarias: 1.7 // Literal real de tipo double sum // Variable - Los literales se evalúan a sí mismos. - Las variables se evalúan a su valor. Los operadores nos permiten combinar expresiones primarias y otras expresiones formadas con operadores: 1 + 2 + 3*1.2 + (4 +8)/3.0 Los operadores se caracterizan por: - El número de operandos (unarios, binarios o ternarios). - El tipo de sus operandos (p.ej. numéricos o booleanos). - El tipo del valor que generan como resultado. Introducción a la Programación: C - 42 - Fernando Berzal

Número de operandos - Operadores unarios - Operadores binarios Operador Descripción - Cambio de signo! Operador NOT ~ Complemento a 1 Operadores Descripción + - * / % Operadores aritméticos ==!= < > <= >= && ^ & ^ << >> Operadores relacionales Operadores booleanos Operadores a nivel de bits Tipo de los operandos Operadores Descripción Operandos + - * / Números % Operadores aritméticos (% sólo enteros) ==!= Operadores de igualdad Cualesquiera Números < > <= >= Operadores de comparación o caracteres && ^ Operadores booleanos Booleanos ~ & ^ << >> Tipo del resultado Operadores a nivel de bits Enteros Operadores Descripción Resultado + - * / % Operadores aritméticos Número* ==!= < > <= >= Operadores relacionales && ^ Operadores booleanos ~ & ^ << >> Operadores a nivel de bits Booleano Entero Introducción a la Programación: C - 43 - Fernando Berzal

Sentencias de asignación Las sentencias de asignación constituyen el ingrediente básico en la construcción de programas con lenguajes imperativos. Sintaxis: <variable> = <expresión>; Al ejecutar una sentencia de asignación: 1. Se evalúa la expresión que aparece a la derecha del operador de asignación (=). 2. El valor que se obtiene como resultado de evaluar la expresión se almacena en la variable que aparece a la izquierda del operador de asignación (=). Restricción: El tipo del valor que se obtiene como resultado de evaluar la expresión ha de ser compatible con el tipo de la variable. Ejemplos x = x + 1; int mivariable = 20; // Declaración con inicialización otravariable = mivariable; // Sentencia de asignación NOTA IMPORTANTE: Una sentencia de asignación no es una igualdad matemática. Introducción a la Programación: C - 44 - Fernando Berzal

Efectos colaterales Al evaluar una expresión, algunos operadores provocan efectos colaterales (cambios en el estado del programa; es decir, cambios en el valor de alguna de las variables del programa). Operadores de incremento (++) y decremento (--) El operador ++ incrementa el valor de una variable. El operador -- decrementa el valor de una variable. El resultado obtenido depende de la posición relativa del operando: Operador x++ ++x x-- --x Descripción Post-incremento Evalúa primero y después incrementa Pre-incremento Primero incrementa y luego evalúa Post-decremento Evalúa primero y luego decrementa Pre-decremento Primero decrementa y luego evalúa Ejemplo Equivalencia Resultado i=0; i++; i=0; i=i+1; i=1; i=1; j=++i; i=1; i=i+1; j=i; j=2; i=1; j=i++; i=1; j=i; i=i+1; j=1; i=3; n=2*(++i); i=3; i=i+1; n=2*i; n=8; i=3; n=2*(i++); i=3; n=2*i; i=i+1; n=6; i=1; k=++i+i; i=1; i=i+1; k=i+i; k=4; El uso de operadores de incremento y decremento reduce el tamaño de las expresiones pero las hace más difíciles de interpretar. Es mejor evitar su uso en expresiones que modifican múltiples variables o usan varias veces una misma variable. Introducción a la Programación: C - 45 - Fernando Berzal

Operadores combinados de asignación (op=) C define 10 operadores que combinan el operador de asignación con otros operadores (aritméticos y a nivel de bits): Operador Ejemplo Equivalencia += i += 1; i++; -= f -= 4.0; f = f 4.0; *= n *= 2; n = n * 2; /= n /= 2; n = n / 2; %= n %= 2; n = n % 2; &= k &= 0x01; k = k & 0x01; = k = 0x02; k = k & 0x02; ^= k ^= 0x04; k = k & 0x04; <<= x <<= 1; x = x << 1; >>= x >>= 2; x = x >> 2; La forma general de los operadores combinados de asignación es variable op= expresión; que pasa a ser variable = variable op (expresión); OJO: Las expresiones con y sin operadores combinados de asignación no son siempre equivalentes. Ejemplo v[i++]+= 2; y v[i++]=v[i++]+2; no son equivalentes. Introducción a la Programación: C - 46 - Fernando Berzal

Conversión de tipos En determinadas ocasiones, nos interesa convertir el tipo de un dato en otro tipo para poder operar con él. Ejemplo Convertir un número entero en un número real para poder realizar divisiones en coma flotante C permite realizar conversiones entre datos de tipo numérico (enteros y reales), así como trabajar con caracteres como si fuesen números enteros: - La conversión de un tipo con menos bits a un tipo con más bits es automática (vg. de short a long, de float a double), ya que el tipo mayor puede almacenar cualquier valor representable con el tipo menor (además de valores que no caben en el tipo menor). - La conversión de un tipo con más bits a un tipo con menos bits se realizar de forma explícita con castings. Como se pueden perder datos en la conversión, un buen compilador de C nos avisa de posibles conversiones erróneas (warnings) int i; char b; i = 13; b = 13; b = i; b = (char) i; i = (int) 14.456; // No se realiza conversión alguna // Se permite porque 13 está dentro // del rango permitido de valores // Podría ser un error // Fuerza la conversión // Almacena 14 en i i = (int) 14.656; // Sigue almacenando 14 Introducción a la Programación: C - 47 - Fernando Berzal

Castings Para realizar una conversión explícita de tipo (un casting ) basta con poner el nombre del tipo deseado entre paréntesis antes del valor que se desea convertir: char c; short x; long k; double d; Sin conversión de tipo: c = A ; x = 100; k = 100L; d = 3.0; Conversiones implícitas de tipo (por asignación): x = c; k = 100; k = x; d = 3; // char short // short long // short long // short double Conversiones implícitas de tipos (por promoción aritmética) c+1 // char short x / 2.0f // short float Posibles errores de conversión (no siempre detectados): x = k; // long short x = 3.0; // double short x = 5 / 2.0f; // float short Conversiones explícitas de tipo (castings): x = (short) k; x = (short) 3.0; x = (short) (5 / 2.0f); Introducción a la Programación: C - 48 - Fernando Berzal

Algunas conversiones de interés De números en coma flotante a números enteros Al convertir de número en coma flotante a entero, el número se trunca (redondeo a cero). En la biblioteca math.h existen funciones que nos permiten realizar el redondeo de otras formas: floor(x), ceil(x) El redondeo al que estamos acostumbrados tendremos que implementarlo nosotros: int i = x+0.5; Conversión entre caracteres y números enteros Como cada carácter tiene asociado un código ASCII, los caracteres pueden interpretarse como números enteros int i; char c; Ejemplo Equivalencia Resultado i = a ; i = (int) a ; i = 97 c = 97; c = (char) 97; c = a c = a +1; c = (char) ((int) a +1); c = b c = i+2; c = (char) (i+2); c = c Resumen de conversión de tipos Conversiones implícitas long double > double > float > unsigned long > long > unsigned short > short > char Conversiones explícitas (castings) (tipo) expresión Introducción a la Programación: C - 49 - Fernando Berzal

Evaluación de expresiones - La precedencia de los operadores determina el orden de evaluación de una expresión (el orden en que se realizan las operaciones): 3*4+2 es equivalente a (3*4)+2 porque el operador * es de mayor precedencia que el operador + - Cuando en una expresión aparecen dos operadores con el mismo nivel de precedencia, la asociatividad de los operadores determina el orden de evaluación. a b + c d es equivalente a ((a b) + c) d porque los operadores aritméticos son asociativos de izquierda a derecha a = b += c = 5 es equivalente a a = (b += (c = 5)) porque los operadores de asignación son asociativos de derecha a izquierda - La precedencia y la asociatividad determinan el orden de los operadores, pero no especifican el orden en que se evalúan los operandos de un operador binario (un operador con dos operandos): En C, los operandos se evalúan de izquierda a derecha: el operando de la izquierda se evalúa primero. Si los operandos no tienen efectos colaterales (esto es, no cambian el valor de una variable), el orden de evaluación de los operandos es irrelevante. NOTA: Siempre es recomendable el uso de paréntesis. Los paréntesis nos permiten especificar el orden de evaluación de una expresión, además de hacer su interpretación más fácil. Introducción a la Programación: C - 50 - Fernando Berzal