TEMA 02 TIPOS, OPERADORES Y EXPRESIONES

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

Lección 2 Introducción al lenguaje C

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

Tipos de datos y Operadores Básicos

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

4. Operadores Operador asignación

Tema 4. Operadores y Expresiones

UNIDAD 2 Descripción de un programa

Fundamentos de Informática 5. Operadores, expresiones (y su aplicación)

Laboratorio de Arquitectura de Redes. Operadores y expresiones en lenguaje C

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

Tipos de Datos. Tipos de Datos Simples Estándar

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

Tipos de variables. Lenguaje C. Departamento de Electrónica. Tipos de datos, variables y constantes. Fundación San Valero

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

Principios de Computadoras II

Elementos de un programa en C

Informática Ingeniería en Electrónica y Automática Industrial

El lenguaje C. 1. Identificadores, constantes y variables

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

Curso de Programación Avanzada en C

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

Tipos de Datos en C. Palabras reservadas en C

Laboratorio de Arquitectura de Redes. Datos en lenguaje C

OPERADORES Y EXPRESIONES

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

CAPITULO 2: VARIABLES Y CONSTANTES

Tema 2. El lenguaje JAVA

Expresiones y sentencias

Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial

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

TEMA 3. OPERADORES Y EXPRESIONES.

Expresiones Lógicas y Operadores sobre Bits

Variables - Tipos de Datos - Operadores - Precedencia

Instituto Tecnológico de Celaya

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

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

LENGUAJE. Tema 2 Elementos de un programa

REPRESENTACIÓN DE DATOS

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

Constantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes:

Datos Elementales y formato de un programa en Java

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

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

Datos y tipos de datos

INICIACIÓN A LA PROGRAMACIÓN EN C

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

1. Presentación del lenguaje C Creado en 1972 por D. Ritchie Lenguaje de propósito general Portátil o transportable (generalmente) Inicialmente de niv

Expresiones y sentencias

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

PROGRAMACIÓN EN LENGUAJE C VARIABLES Y CONSTANTES

Unidad I Tipos de Datos en C

Unidad 1. Lógica de programación. Tema 2. Tipos básicos de datos y estructuras secuenciales

Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación:

Tema 1: Introducción a C

Expresiones y Operadores

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

PUNTEROS (Apuntadores)

Ficha de Aprendizaje N 13

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

Unidad 3. Lenguaje estructurado

Datos y tipos de datos

Tipos de datos y operadores en C++

Introducción al lenguaje C

TEMA 7. ARRAYS (LISTAS Y TABLAS).

Programación En Lenguaje C

Informática Ingeniería en Electrónica y Automática Industrial

Elementos léxicos del lenguaje de programación C

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Programación Estructurada. Sesión 2:El lenguaje de programación C

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

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

Programación en Lenguaje C

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

Curso Informática Lección 3. Tipos de datos, constantes y variables

Introducción a la Programación

Laboratorio de Informática GRADO EN FÍSICA

Un puntero no es más que una variable estática cuyo contenido es una dirección de memoria.

Unidad II Fundamentos de C++ M.C. Juan Carlos Olivares Rojas

El operador contenido ( ) permite acceder al contenido de

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

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

RESEÑA DE LENGUAJE C

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

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

Lenguajes de programación

PSEUDOCODIGO, DIAGRAMAS DE FLUJO Y ALGO DE C

UNIVERSIDAD MODULAR ABIERTA FACULTAD DE CIENCIAS ECONOMICAS

Java posee dos grandes categorías de tipos para las variables:

Tema 05: Elementos de un programa en C

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

Introducción al lenguaje C

Programación estructurada (Tipos, operadores y expresiones)

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

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

Tema#2. Tipos de Datos 10

Transcripción:

TEMA 02 TIPOS, OPERADORES Y EXPRESIONES 2.1.- Introducción. 2.2.- Datos. 2.3.- Entrada y salida básica. 2.4.- Modificadores. 2.5.- Cadenas de caracteres. 2.6.- Operadores. 2.7.- Precedencia de operadores. 2.8.- Ejercicios. 2.1.- Introducción. A modo de introducción tendremos en cuenta las siguientes consideraciones: Las variables y constantes son objetos básicos que se manipulan en un programa. Las declaraciones indican las variables que se van a utilizar y establecen su tipo y, a veces, su valor inicial. Los operadores especifican lo que se va a hacer con ella. Las expresiones combinan variables y constantes para producir nuevos valores. 2.2.- Datos Los programas funcionan con datos que contienen la información que manipularán. Estos datos se pueden dividir en constantes (valores fijos no alterables) y variables (valores que pueden cambiar). Para utilizar un dato este debe ser antes declarado dándole un nombre que utilizaremos después para referenciarlo. En la declaración avisamos al compilador de la existencia de una variable y del nombre de la misma. Ejemplo de declaración: int t ; /* t es una variable de tipo entero */ Ejemplo de declaración e inicialización: int t = 3 ; /* t comienza valiendo 3 */ Las variables se pueden conjugar con operadores mediante expresiones para dar lugar a nuevos valores. Ejemplo: b = a + 3 ;

Existen cinco tipos de datos básicos en C: Tipo Descripción Código en printf Longitud en bytes Rango char Carácter %c 1 0 a 255 int Entero %d 2-32768 a 32767 float punto flotante %f 4 aprox. 6 dígitos de precisión double punto flotante %lf 8 aprox. 12 dígitos de precisión. void sin valor 0 sin valor A la función printf se le indica el lugar y el tipo en que se escribirá una variable mediante los siguientes códigos: char %c int %d float % f double %lf Hay veces que interesa convertir un char en un int. Se puede hacer de varias formas. Una de ellas es escribiendo - Φ a continuación del elemento char. Ejemplo Ejemplo 1: Ejemplo 2: 6 - Φ char frase[a]=3; frase[a] - Φ frase[a] es un entero que vale 3 Programa 004 #include<stdio.h> void main ( ) { int i=1; char c ='c'; float f = 1.0; double d = 1e-1; printf(" i=%d\n c=%c\n f=%f\n d=%lf\n",i,c,f,d); }

Los datos, según la tabla anterior, pueden ser: 2.2.1- Char. Los CARACTERES se definen con apóstrofes. Ejemplo válido: Ejemplo inválidos: r, 3', U. Rrr porque son varios caracteres. e porque no está delimitado por apóstrofes y es tomado como variable. 3 porque no está delimitado por apóstrofes y es tomado como un entero. 2.2.2.- Int. Los ENTEROS indican un número con signo sin parte decimal. Se pueden escribir: En decimal, escribiendo el número sin empezar por 0 (a excepción del 0). En hexadecimal, empezando el número por 0x. Ejemplo: 0xE, 0x1d, 0x8. En octal, empezando el número por 0. Ejemplo: 02, 010. 2.2.3.- Float y Double. Los tipos FLOAT y DOUBLE tienen parte real y parte decimal. El tipo double tiene el doble de precisión que el tipo float. Por lo demás son iguales. El número no puede empezar por e o E ya que el compilador lo interpretaría como un identificador y no como un número. Ejemplos: 1.0e9 1*(10**9) 1 000 000 000-3E-8-3*(10**-8) -0.000 000 03-10.1-10.1-3.082e-2-0.03082 2.2.4.- Void. El tipo VOID significa sin valor, sin tipo. Tiene varios usos: - Uno es al declarar un argumento de función de este tipo. Lo que estamos haciendo es indicar que este parámetro no se utilizará. Ej:main (void) indica que no utilizaremos ningún parámetro. - Otro es al declarar una función como de este tipo. La función no devolverá valor alguno. Ej: void main (int argc) no devolverá nada al sistema. - Otro es declarar un puntero void que podrá apuntar a cualquier tipo de dato.

2.3.- Entrada y salida básica. Analizaremos ahora las funciones de entrada y salida básica que nos proporciona el lenguaje C para poseer, al menos, unos elementos con los que podamos dar nuestros primeros pasos. Para ello observamos el siguiente programa: Programa 005 #include<stdio.h> void main () { } int num1; printf("introduzca un numero:"); scanf("%d",&num1); printf("el n mero %d en decimal\n",num1); printf("es %x en hexadecimal",num1); La segunda sentencia declara una variable de tipo int llamada num1. La cuarta sentencia, scanf, es una llamada a una función de entrada. Esta función recoge información del dispositivo de entrada estándar, en este caso el teclado. La función recibe dos parámetros: el primero es una cadena de formato (va entre comillas) y el segundo es un puntero a una variable donde se va almacenar ese dato. El primero indica el tipo de dato que se va almacenar en el segundo. %d especifica un número entero %u especifica un número entero, sin signo %f especifica un número de coma flotante %e especifica un número de coma flotante en formato exponencial %g selecciona %f o %e según el tamaño del número %c especifica un carácter %s especifica una cadena (string) %o especifica un número OCTAL, sin signo % x especifica un número HEXADECIMAL, sin signo.

2.4.- Modificadores. A excepción del tipo void, los tipos de datos básicos pueden tener varios modificadores precediéndoles. Pueden ser modificadores de tipo o modificadores de acceso. 2.4.1.- Modificadores de tipo. Un modificador de tipo se usa para alterar el significado del tipo base para que se ajuste más precisamente a las necesidades de cada momento Modificador Descripción Tipos a los que se les puede aplicar signed con signo int, char unsigned sin signo int, char long Largo int, char, doublé short Corto int, char 2.4.2.- Modificadores de acceso. Indican el tipo de acceso al tipo de datos que modifican. Los de tipo constante (const) se inicializan al declarar la variable y no se pueden modificar en el programa. El siguiente ejemplo daría error: const int i = 8 ; int i = 7 ; Los del tipo volatil (volatile) indica al compilador que esa variable puede ser modificada por algo externo al programa (por el sistema operativo, por un driver de dispositivo). 2.5.- Cadenas de caracteres. Las cadenas de caracteres (string) es un tipo derivado. Esto significa que se forman a partir de los tipos básicos. Se forman delimitando los caracteres entre comillas. Las comillas no forman parte de la secuencia. Ejemplos: Esto es una cadena a // Tiene solo un carácter pero sigue siendo una cadena. \n Esto es otra cadena \a con alarma

Una cadena es sinónimo de un array unidimensional, un vector. Es una secuencia de datos que se encuentran almacenados en memoria de una forma consecutiva limitados por un carácter nulo (null). Este carácter se utiliza para señalar el final de la cadena. Por ello hemos de tener en cuenta que al definir una cadena el tamaño de la variable es 1 carácter mayor que la cadena escrita. Por ejemplo: abc se almacena en memoria a b C \0 Vemos que tiene 4 caracteres. Atención! El carácter nulo \0' no es la cifra 0 (cuyo código ASCII es 48), sino un carácter no imprimible, cuyo código ASCII es 0. Para dividir una cadena de caracteres en varias líneas usamos el código %s que indica a la función printf que escriba una cadena en su lugar. Ejemplo: La sentencia saldría printf ( Hola pepito %s, grillo ); Hola pepito grillo 2.6.- Operadores. Un operador es un signo que realiza una determinada acción sobre unos operandos. El operando es el valor manipulado por el operador, puede ser un dato o el valor devuelto por la función. Se dice que el operador es binario si opera con dos operandos y es monario cuando opera con uno solo. Hay varios tipos de operadores: aritméticos, relacionales y lógicos, a nivel de bits y especiales. 2.6.1.- Operador aritmético. Operador Signo Tipo Suma + Binario o unario Resta - Binario o unario Multiplicación * Binario División / Binario Resto % Binario Incremento + + Unario Decremento - - Unario

Los operadores de suma y resta unarios devuelven los valores positivo y negativo del operando. El operador resto hace la misma acción que la división pero devuelve el resto de la operación en vez del cociente (Ejemplo a = 11 % 3; a = 2; ). Los operadores incremento ( ++ ) y decremento ( - - ) modifican en 1 el valor del operando (Ejemplo a ++; a = a + 1; y ejemplo a - - ; a = a -1; ). Atención! Hay dos modalidades para cada operador incremento y decremento. Son el prefijo (antes) y el sufijo (después). Los operadores prefijo incrementan o decrementan el valor del dato antes de devolver el valor del dato que modifican. Los operadores sufijo modifican el dato después de devolver el dato. Ejemplo int x,y; int x,y; x = 2; x = 2; y = ++ x; y = x ++; printf( x= %d y= %d,x,y); printf( x= %d y= %d,x,y); Salida x = 3 y = 3 Salida x = 3 y = 2 Modifica y devuelve Devuelve y modifica 2.6.2.- Operadores relacionales y lógicos. Se usan para generar resultados del tipo Verdadero / Falso. Símbol o Nombre Ejemplos > Mayor 3 > 1 Verdadero 1 4 > 4 Falso 0 5 > 12 Falso 0 >= Mayor o igual 16 >= 10 Verdadero 1 2 >= 2 Verdadero 1 11 >= 12 Falso 0 < Menor 5 < 4 Falso 0 3 < 3 Falso 0 2 < 3 Verdadero 1 <= Menor o igual 2 <= 3 Verdadero 1 4 <= 4 Verdadero 1 5 < 11 Falso 0 = = Igual 60 = = 60 Verdadero 1 12 = = 32 Falso 0! = No igual 6! = 7 Verdadero 1 12! = 12 Falso 0

Los operadores relacionales realizan una comparación entre los dos operandos situados a sus lados. Esta comparación da lugar a un valor verdadero o falso. En C cualquier valor distinto de 0 es verdadero, cualquier valor igual a 0 es falso ( Cuando no se puede definir un valor determinado, para indicar verdadero se utiliza el 1 ). Los operadores lógicos conectan dos expresiones entre si. Son: Símbolo Nombre Ejemplos & & And Verdadero si los dos operandos verdadero 5 & & 6 Verdadero 1 19 & & 0 Falso 0 Or Verdad, si es uno de ellos. 3 0 Verdadero 1 2 6 Verdadero 1 0 0 Falso 0! Not Si el operando verdadero da falso y al revés! 5 Falso 0! -15 Falso 0! 0 Verdadero 1 2.6.3.- Operadores de bits. Estos operadores modifican o comparan a nivel de bits. * operador OR Si x = 1 0 0 0 0 0 0 0 1 z = 3 0 0 0 0 0 0 1 1 entonces x z 0 0 0 0 0 0 1 1

* operador XOR ^ Si y = 15 0 0 0 0 1 1 1 1 z = 3 0 0 0 0 0 0 1 1 entonces y ^ z = 12 0 0 0 0 1 1 0 0 * operador AND & Si y = 15 0 0 0 0 1 1 1 1 z = 3 0 0 0 0 0 0 1 1 entonces y & z = 3 0 0 0 0 0 0 1 1 * operador desplazamiento hacia la derecha >> Si x = 1 x >> 1 x = 0 y = 15 y >> 2 y = 3 z = 3 z >> 1 z = 1 en general indica dividir por la n-esima potencia de dos. * operador desplazamiento hacia la izquierda << Si x = 1 x << 1 x = 2 y = 15 y << 2 y = 60 z = 3 z << 1 z = 6 en general indica multiplicar por la n-esima potencia de dos. * operador complemento Invierte los ceros por unos y los unos por ceros Si y = 15 Entonces y = 240 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0

2.6.4.- Operadores especiales 2.6.4.1.- Operador condicional? Su expresión es: variable = expresión1? expresión 2 : expresión 3 ; Si la expresión 1 es verdad la variable toma el valor de la expresión 2 Si la expresión 1 es falsa la variable toma el valor de la expresión 3 Ejemplo mayor = ( a > b )? 1 : 2 ; Si a > b mayor = 1 Si a <= b mayor = 2 2.6.4.2.- Operadores de dirección & y contenido *. Operan con punteros. Un puntero es una variable que contiene dirección de memoria. Son monarios. 2.6.4.3.- Operador sizeof Es monario y devuelve el tamaño en bytes del operando 2.6.4.4.- Operador coma, Tiene dos usos, uno para representar una lista de elementos y otro para encadenar varias expresiones (en este último uso se evalúa de izquierda a derecha y el valor final es el de la expresión más a la derecha). 2.6.4.5.- Operadores punto. y flecha Se utilizan en los tipos compuestos de datos. 2.6.4.6.- Operadores paréntesis y corchetes Los paréntesis aumentan la precedencia de la expresión que encierran, osea fuerzan la evaluación de la expresión antes que del resto de la sentencia. Los corchetes se usan para indexar arrays. 2.6.4.7.- Operadores de asignación. Se utiliza para asignar un valor a las variables. Una sentencia de asignación es una expresión. El valor de esta expresión es el valor que se le asigna a la variable. Se evalúa de derecha a izquierda.

= x = 5 * = x * = 10 x = x * 10 / = x / = 10 x = x / 10 % = x % = 2 x = x % 2 + = x + = 5 x = x + 5 - = x - = 5 x = x - 5 << = x << = 4 x = x << 4 >> = x >> = 12 x = x >> 12 & = x & = 1 x = x & 1 = x = 4 x = x 4 ^ = x ^ = 6 x = x ^ 6 2.7.- Precedencia de operadores. Al evaluar una expresión se sigue un orden de izquierda a derecha evaluándose antes los operadores de mayor preferencia. Esta preferencia es: Categoría Operador Más alta ( ) [ ]. Unarios Multiplicadores * / % Aditivos! + - ++ - - & * sizeof + - (binarios) Desplazamiento << >> Relacionales < < = > > = Igualdad = =! = AND de bits XOR de bits OR de bits AND lógico & ^ OR lógico Condicional? & & Asignamiénto = *= /= += -= &= ^= = << = >> = Coma,