27/07/14 Catedra de Programacion I 1 Programación I Operadores y Expresiones.

Slides:



Advertisements
Presentaciones similares
el 1, el 4 y el 9 tres cuadrados perfectos autosuficientes
Advertisements

FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE (SL-110) CAPÍTULO 5: DECLARACIÓN, INICIALIZACIÓN Y USO DE VARIABLES Ing. Ronald Criollo.
Universidad Tecnológica Nacional Facultad Regional Buenos Aires Ingeniería en Sistemas de Información Introducción a C Sistemas Operativos.
Curso de java básico (scjp)
Lenguaje C++.
Paso 1 Portada YO SOY EUROPEO Comisión Europea.
DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
Introducción al lenguaje C
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS (MICROEMPRESAS, resultados provisionales) 29 de julio de 2004.
Tema 4b Operadores.
Repaso para la construcción del intérprete 2012
Programación I Teoría I
Programación I Teoría III
Direcciones, Arreglos y Argumentos de Funciones
Una variable en un programa es algo con un nombre, cuyo valor puede variar. La manera en que el compilador y enlazador maneja esto es asignando un bloque.
Expresiones Racionales
Sintaxis básica del lenguaje
INTRODUCCION AL LENGUAJE C
INFORMATICA I Arreglos 1 CLASE 17.
Comité Nacional de Información Bogotá, Julio 27 de 2011 Consejo Nacional de Operación de Gas Natural 1 ESTADISTICAS NACIONALES DE OFERTA Y DEMANDA DE GAS.
Programación en C (Segunda Parte) DATSI, FI, UPM José M. Peña
Introducción al Lenguaje C (ANSI)
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Temas Operaciones básicas Operaciones Operadores Aritméticos
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Programación Estructurada
Números enteros.
Roberto Mercado Holguin
ESTRUCTURAS DE SECUENCIA
Una breve introducción
Ingeniero Anyelo Quintero
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.
ESCUELA: NOMBRES: LÓGICA DE LA PROGRAMACIÓN UNIDAD 2: Naturaleza de los Datos FECHA: Ing. Patricio Abad Espinoza OCTUBRE 2009 – FEBRERO Ciencias.
¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No.
Conceptos Básicos de Java
Programación.
APLICACIONES DE PILAS Estructuras de Datos.
Tipos de Datos Básicos 1.
Programación en C para electrónica
ESCUELA PROFESIONAL DE INGENIERIA INDUSTRIAL CURSO: GESTION DE LA CALIDAD ING.ELIZABETH FERG 1.
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.
JAVA J.A.C..
Unidad III Elementos del lenguaje C++
Tema 2: Los tipos de datos
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Operadores De C++ Carlos Roberto Arias. Operadores (Precedencia 1) Resolución de Ámbito, classname::memberResolución de Ámbito, classname::member Global.
Programa Vespertino de Automatización Equipos y Sistemas de Control Digital Lenguaje C Profesor: Felipe Páez Mejías D e p a r t a m e n t o d e I n g e.
Tipo de Datos Básicos.
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
El Concepto de Tipo Los tipos permiten indicar la característica de los valores (datos) manipulados en un programa. Toda variable tiene asociado un tipo.
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,
TÉCNICAS DE PROGRAMACIÓN Lenguaje C - 2
Características de “C” Y Esta conformado por un Ambiente Integrado. Y Es un Lenguaje de Alto Nivel. Y Es un compilador. YContiene un conjunto de palabras.
PROGRAMACIÓN MULTIMEDIA
FUNDAMENTOS DE PROGRAMACIÓN
Términos algoritmo diseñar algoritmo implementar algoritmo
Programación III Clase #03 Operadores. Expresiones Es cualquier cosa que retorne un valor. En C++ CASI todo son expresiones. Ejemplo: –5 –3 + 2 Las expresiones.
Estructura de un programa C

Fundamentos de Programación
PUNTEROS EN EL LENGUAJE C
Clase 1 Gabriela Araya Baez.. Char: Variable que almacena caracteres. Int: Variable que almacena enteros. Float: Variable que almacena decimales. Doble:
INTRODUCCION AL LENGUAJE C
Tipos de datos básicos en Java
Informática Ingeniería en Electrónica y Automática Industrial
Características de “C” Esta conformado por un Ambiente Integrado. Es un Lenguaje de Nivel medio.Es un compilador. Contiene un conjunto de palabras reservadas.
FUNDAMENTOS DE PROGRAMACIÓN VARIABLES, CONSTANTES Y TIPOS DE DATOS EN C.
Transcripción de la presentación:

27/07/14 Catedra de Programacion I 1 Programación I Operadores y Expresiones

27/07/14 Catedra de Programacion I 2 Operadores Los operadores en C se clasifican en: Aritméticos y de Manipulación de Bits Relacionales y Lógicos Incremento y Decremento Dirección e Indirección Condicional Coma Sizeof Cast

27/07/14 Catedra de Programacion I 3 Operadores Aritméticos Aplicables a operandos de tipo numérico: Aplicable SOLO a operandos de tipo Entero OperadorSignificadoAridad -OpuestoUnario + Indéntico valor Unario *MultiplicaciónBinario /DivisiónBinario +AdiciónBinario -SustracciónBinario OperadorSignificadoAridad% Módulo (resto) Binario (-1) (+1) Las expresiones formadas a partir de estos operadores devuelve un tipo numérico

27/07/14 Catedra de Programacion I 4 Operadores Aritméticos Ejemplos: Ejemplos: 5.0 / / / / 2 5 / / / 2 5 / 2 5 % 2 5 % 2 Double Devuelve un Double 2.5 Double Int Devuelve un Double 2.5 Int Double Devuelve un Double 2.5 Int Devuelve un Integer 2 Int Devuelve un Integer 1 Cuando los tipos de datos son diferentes se produce una conversión automática (cast) al tipo de datos más grande

27/07/14 Catedra de Programacion I 5 Operadores Relacionales Son aplicables a operandos del tipo numérico OperadorSignificadoAridad <MenorBinario <= Menor o igual Binario >MayorBinario >= Mayor o igual Binario ==IgualBinario !=DistintoBinario Las expresiones formadas a partir de estos operadores devuelve un tipo int cuyo valor es 0 si la expresión es falsa o 1 si es verdadera

27/07/14 Catedra de Programacion I 6 Operadores Relacionales Ejemplos: Sea la variable x del tipo int y z del tipo double. Suponiendo que x = 10 y z =10.5 evaluar las siguientes expresiones: x == 0 x == 0 z == 0 z == 0 x != z x != z x > z x > z x <= x x <= x Devuelve int 0 Devuelve int 1 Devuelve int 0 Devuelve int 1 Si bien esta expresión es correcta, cuando se trabaja con números reales NUNCA usar el operador == para verificar la igualdad. (Tener en cuenta que tanto los doubles como los floats poseen errores en su representación)

27/07/14 Catedra de Programacion I 7 Operadores Lógicos En C, todo igual a es interpretado como y todo valor es interpretado como En C, todo valor igual a cero es interpretado como FALSE y todo valor distinto de cero es interpretado como TRUE Los operadores son aplicables a tipos numéricos: Los operadores son aplicables a tipos numéricos: OperadorSignificadoAridad !NotUnario &&AndBinario ||OrBinario Las expresiones formadas a partir de estos operadores devuelve un tipo int cuyo valor es 0 si la expresión es falsa o 1 si es verdadera Nota: Logical NOT (!) !x → (x==0) ? 1:0

27/07/14 Catedra de Programacion I 8 Operadores Lógicos Ejemplos: int x = 10; double z = 10.5 x != 0 && z >10 x != 0 && z >10 x && z>10 x && z>10 x 20 x 20 Devuelve int 1 TRUE FALSE

27/07/14 Catedra de Programacion I 9 MUY IMPORTANTE!!! Los operadores && y || son de evaluación “LAZY”. Es decir, se evalúan los términos de izquierda a derecha, pero la evaluación se suspende en cuanto el resultado de la expresión queda determinado. E1 && E2  E2 solo se evaluara si E1 !=0 E1 || E2  E2 solo se evaluara si E1 ==0 Operadores Lógicos

27/07/14 Catedra de Programacion I 10 Operadores bitwise Sólo se aplican a tipos de datos enteros. OperadorSignificadoAridad ~Complemento a unoUnario <<Shift a izquierdaBinario >>Shift a derechaBinario &And bitwiseBinario |Or bitwiseBinario ^Xor bitwiseBinario Las expresiones formadas a partir de estos operadores siempre devuelve un tipo int cuyo valor es el resultado de la operación correspondiente

27/07/14 Catedra de Programacion I 11 Operadores bitwise Ejemplos: unsigned int x = 2; unsigned int y = 10; y & x x | y x ^ y y << x Devuelve int 2 Devuelve int 10 Devuelve int 8 Devuelve int 40 El operando de la izquierda es rotado la cantidad de bits especificado por el operando de la derecha

27/07/14 Catedra de Programacion I 12 Operadores Incremento/Decremento Son aplicables a tipos de datos numéricos OperadorSignificadoAridad ++ Pre/Pos incremento Unario -- Pre/Pos decremento Unario Las expresiones formadas a partir de estos operadores siempre devuelve el tipo de dato del operando El momento en el cual se realiza la operación depende de: a qué lado del operando se coloque el operador. Ejemplo: ++Operando : el valor devuelto es el valor del operando ya incrementado en 1. Operando++ : el valor devuelto es el valor del operando, el cual es luego incrementado en 1.

27/07/14 Catedra de Programacion I 13 Operadores Incremento/Decremento Ejemplos: int x = 10; double z = 10.5 x++ x++ --x --x z++ z++ --z --z Devuelve int 10 y luego x cambia su valor a 11 Devuelve int 9 y x cambia su valor a 9 Devuelve double 10.5 y luego z cambia su valor a 11.5 Devuelve double 9.5 y z cambia su valor a 9.5

27/07/14 Catedra de Programacion I 14 Operadores de asignación OperadorSignificadoAridad =AsignaciónBinario += ( Op1 = Op1 + Op2 )Asignación de incrementoBinario -= ( Op1 = Op1 - Op2 )Asignación de decrementoBinario *= ( Op1 = Op1 * Op2 )Asignación de multiplicaciónBinario /= ( Op1 = Op1 / Op2 )Asignación de divisiónBinario %= ( Op1 = Op1 % Op2 )Asignación de móduloBinario <<= ( Op1 = Op1 << Op2 )Asignación de rotación a izq.Binario >>= ( Op1 = Op1 >> Op2 )Asignación de rotación a der.Binario &= ( Op1 = Op1 & Op2 )Asignación de bitwise andBinario |= ( Op1 = Op1 | Op2 )Asignación de bitwise orBinario ^= ( Op1 = Op1 ^ Op2 )Asignación de bitwise xorBinario Las expresiones formadas a partir de estos operadores siempre devuelve el tipo de dato del operando situado a la izquierda

27/07/14 Catedra de Programacion I 15 Operador Sizeof. El operador sizeof devuelve el número (unsigned int) de bytes que son necesarios para poder almacenar una variable con el tipo del operando. Ejemplo: sizeof(int) sizeof(char) sizeof(x = 25) sizeof(x != 34) Devuelve int 4 (arq de 32bits) Devuelve int 1 Devuelve int 4 (arq de 32bits)

27/07/14 Catedra de Programacion I 16 Conversiones Automáticas Existen operaciones donde intervienen varios tipos de datos, por lo tanto es importante saber qué conversiones se efectúan automáticamente antes de efectuar las operaciones double  float ↑ long ↑ unsigned ↑ int  char, short Las flechas verticales muestran el orden básico. Las flechas horizontales indican conversiones automáticas, esto quiere decir el tipo float siempre se convierte a double antes de ser utilizado en una expresión y los tipos char y short son siempre convertidos a tipo int. El tipo double es el mayor y el tipo int el menor.

27/07/14 Catedra de Programacion I 17 Conversiones Automáticas Lo tipos de datos long son convertidos a int o a char truncando bits de la izquierda Ejemplo:float X=8.452 int i=3; X=i; i=X; - La instrucción X=i indica que en la variable X queda almacenado el número La instrucción i=X permite truncar decimales de X, quedando en la variable i el número 8 Ejemplo: long i=45618, j= char c, int x; c=i;x=j; En la variable c queda almacenado 50 y en x

27/07/14 Catedra de Programacion I 18 Operador Cast El operador cast convierte el tipo de dato del operando al tipo de datos especificado entre paréntesis. Ejemplo: int x = 10; double z = 10.5 (int)z z = x * 2 z = (double)x Devuelve int 10 Devuelve double 20 Devuelve double 10.0 El operador cast NO cambia el tipo de datos del operando!! Si bien C realiza una serie de cast en forma implícita, por claridad, siempre hacer los cast de manera explicita

27/07/14 Catedra de Programacion I 19 Operador Condicional Sintaxis: Operando1 ? Operando2 : Operando3 Operación: Se evalúa el Operando1. Si es verdadera la evaluación del Operando1, el resultado es el Operando2 Sino (en caso contrario) el resultado es el Operando 3. Ejemplo: Max = x > z ? x : z Las expresiones formadas a partir de este operador siempre devuelve el tipo de dato resultante de la segunda evaluación (Operando2 u Operando3)

27/07/14 Catedra de Programacion I 20 Precedencia de Operadores TypeOperatorsAssociativity highest () [] left to right unary ! * & (type) right to left multiplicative * / % left to right additive + - left to right relational >= left to right equality == != left to right logical and && left to right logical or || left to right conditionnal ?: right to left assignment = += -= *= /= %= right to left comma, left to right Mayor Precedencia Precedencia: Determina que operación se llevará a cabo primero dentro de un conjunto de operaciones con distinta precedencia. Asociatividad: Determina que operación se llevará a cabo primero dentro de un conjunto de operaciones con igual precedencia.

27/07/14 Catedra de Programacion I 21 Precedencia de Operadores Ejemplos: int y = 1 X = * 2 X = X = y & 0x80 == 0x80 X = (y & 0x80) == 0x80 x = 11 x = 3 x = 1 x = 0

27/07/14 Catedra de Programacion I 22 Ejemplos a compilar prepostT.c int x=5,y=5; int main(void) { printf("Valores iniciales de x e y\n"); printf("x=%d, y=%d \n",x,y); while( x ) { printf("x-- vale: %d, --y vale: %d \n",x--,--y); printf("despues de la invocacion\n"); printf("x vale: %d, y vale: %d \n",x,y); } return; }

27/07/14 Catedra de Programacion I 23 Ejemplos a compilar prepostT.c – La salida será: Valores iniciales de x e y x=5, y=5 x-- vale: 5, --y vale: 4 despues de la invocacion x vale: 4, y vale: 4 x-- vale: 4, --y vale: 3 despues de la invocacion x vale: 3, y vale: 3 x-- vale: 3, --y vale: 2 despues de la invocacion x vale: 2, y vale: 2 x-- vale: 2, --y vale: 1 despues de la invocacion x vale: 1, y vale: 1 x-- vale: 1, --y vale: 0 despues de la invocacion x vale: 0, y vale: 0

27/07/14 Catedra de Programacion I 24 Ejemplos a compilar Lazytest.c char a=3,b=3; int main(void) { while( a-- || (b=0)) { printf("a=%d, b=%d\n",a,b); } return; }

27/07/14 Catedra de Programacion I 25 Ejemplos a compilar Lazytest.c – La salida será: a=2, b=3 a=1, b=3 a=0, b=3

27/07/14 Catedra de Programacion I 26 Bibliografía K & R: Capitulo 2 y apéndice A.4, A.5, A.6