Sei sulla pagina 1di 34

LOGO

Ing. Alexis Rocha H., MGTI Ingeniero en Sistemas Computacionales Magster en Gerencia de Tecnologas de la Informacin Email: alefroch22@hotmail.com La Libertad, Santa Elena, Ecuador Fundamentos y Lenguaje C

Docente:

Qu se quiere aprender al finalizar el Captulo 2? Conocer la definicin e inicializacin de los diferentes tipos de datos, constantes y variables. Comprender el uso adecuado de los diferentes tipos de expresiones, sus reglas de prioridad y operadores de asignacin. Desarrollar adecuadamente ejercicios aplicando las expresiones y los operadores de asignacin.

LOGO

Captulo 2

Unidad 2 Datos, Expresiones y Asignaciones

CONTENIDOS 2.1. Tipos de datos. 2.2. Constantes y Variables. 2.3. Expresiones Aritmticas y Reglas de Prioridad. 2.4. Expresiones Booleanas y Reglas de Prioridad. 2.5. Operadores de Asignacin. 2.6. Ejercicios de Aplicacin. 2.7. Evaluacin de la Unidad.

Tipos de Datos
En lenguajes de programacin, un tipo de dato es un atributo de una parte de los datos que indica el ordenador (y/o al programador) algo sobre la clase de datos sobre los que se va a procesar los datos.
Enteros (Int) Reales o Coma Flotante (Float) Cadena o Texto (Char) Numricos

Alfanumricos

2.1. Tipos de datos

TIPO Char Short Int Unsigned Int

Tamao en Bytes 1 2 2 2

RANGO Mnimo 0 -128 -32.768 0 Mximo 255 127 32.767 65.535

Long
Float Double

4
4 8

-2.147.483.648
3.4 * (10-38) 1.7 * (10
-308

2.147.483.637
3.4 * (1038) 1.7 * (10
308

Definiciones de datos
Tipo char char cadena = ; char opcion = 1; Tipo short short cont=0; Tipo int int anio=10; Tipo unsigned int unsigned int dias; Tipo long long Total_Acumulado; Tipo float float sueldo; Tipo double double total; = 165 (cdigo ascii)

Constantes y Variables
Qu es una Constante? Es un valor que permanece fijo durante la ejecucin de un programa. Qu es una Variable? Es un valor que siempre vara su valor durante la ejecucin de un programa, existen 2 tipos de variables: Globales y Locales. Variables Globales: Son las variables que se las definen en la funcin principal Main, en cualquier parte del programa se hace uso de ellas, estas variables son usadas en todo el programa. Variables Locales: Son las variables que solamente son definidas dentro de las Funciones, tienen una vida limitada, va desde el principio en que el usuario lo declara y se destruye cuando termina el bloque de cdigo escrito por el programador; se dispone de la memoria necesaria slo cuando se necesite la variable local. Las Constantes y las Variables son utilizadas en la entrada y salida de datos.
2.2. Constantes y Variables

Declaracin de Variables
<tipo de dato> <Nombre de variable> = Valor inicial; <tipo de dato> <Nombre_Var1>, <Nombre_Var2>, ; Ejemplo: Datos Enteros (int): int edad; int edad1; int edad = 0; int edad2; int edad1, edad2, edad3; int edad3; int edad1 = 30, edad2, edad3; int edad1 = edad2 = edad3 = 30; Datos Reales (float): float sueldo; float valor1, valor2 = 0.0; float s1, s2, s3; float valor = 99.99; Datos Cadena (char): char respuesta = S; char Nombre[ ] = Antonia;

Variables Cadenas de Caracteres (Char): Es una serie de 2 o ms caracteres entre comillas, por ejemplo: "Es una hilera" Las comillas no forman parte de la cadena. Las cadenas se almacenan como un arreglo de tipo char, ejemplo:

Declaracin de una Cadena de Caracteres: char nombre[35] char Indica el tipo de dato de cada elemento. [ ] Identifica la variable como un arreglo. 35 Indica el nmero de elementos mximo del arreglo. "x" no es igual que x, porque: x es de tipo char (1 byte) y "x" es de tipo arreglo de char (2 bytes)

Entrada/Salida de Datos
Entrada de Datos (Printf, Scanf): printf -> Presenta mensajes en pantalla como entrada/salida. scanf -> Permite ingresar el valor de una variable. gets -> Permite ingresar cadenas de texto. La funcin scanf requiere de variables de tipo Puntero, no variables convencionales dentro de un parntesis. Reglas del Scanf: Coloque un & antes de los nombres de variables. No coloque el & para nombres de arreglos. El & (ampersand) es un puntero. Asume como terminacin el primer espacio en blanco o la tecla Enter. Reglas del Gets: Asume como terminacin la tecla Enter.

Ejemplo: Ingreso de Datos (scanf): Ingrese su nombre: Anbal Serrano printf(Ingrese un nmero: ); Su nombre es: Anbal scanf(%d,&num); Su nombre es: Anbal Serrano scanf(%f,&var); scanf(%c,&var); scanf(%s,var); Ingreso de Datos (scanf y gets): printf(Ingrese su nombre: ); scanf(%s,nomb); gets(nomb); Salida de Datos (printf): printf(cadena de control, var1, var2 ); printf(Su nombre es: %s, nomb); (Asume: Anbal) Salida de Datos (gets): gets(nomb); (Asume: Anbal Serrano)

Cadenas de Control
Contiene los tipos de datos y formas de mostrarlas. %d, %i El dato se considera tipo entero (int). %f El dato se considera tipo real o (float). %c El dato se considera tipo caracter (char). %s El dato se considera tipo cadena (char). %ld El dato se considera tipo entero largo (long int). %lf El dato se considera tipo real largo (double). %u Decimal sin signo (unsigned decimal). %h Entero corto (short int). %o Octal. %x Hexadecimal. %e Notacin Cientfica. %p Puntero. %% Imprime Porcentaje.

Ejemplo: int i = 5; j = 10; float c = 91.146945, d = 49.1; 1) printf(%d %d %f %f, i, j, c, d); PANTALLA: 5 10 91.146945 49.1 2) printf(i=%d, j=%d, c=%f, d=%f, i, j, c, d); PANTALLA: i=5, j=10, c=91.146945, d=49.1 3) printf(%.2f, c); PANTALLA: 91.15 4) printf(El valor de c es %.3f, c); PANTALLA: El valor de c es 91.147

Tipos de Expresiones
> Aritmticas > Operadores Aritmticos

Expresiones > Lgicas

> Operadores Relacionales

> Operadores Lgicos

Son elementos que relacionan de forma diferente, los valores de una o ms variables y/o constantes, es decir, los operadores nos permiten manipular valores.

2.3. Expresiones Aritmticas y Reglas de Prioridad

Expresiones Aritmticas y Reglas de Prioridad


OPERADORES ARITMTICOS: Implican una lgica aritmtica, se realizan operaciones usando valores Enteros y/o valores Reales (ya sea en variables o constantes).

Operadores Aritmticos: 1) **, ^ Potencia 2) * Producto o Multiplicacin 3) / Divisin (DIV) 4) % Mdulo (MOD) 5) + Suma 6) - Resta

Prioridad de los Operadores Aritmticos: Todas las expresiones entre parntesis se evalan primero, las expresiones con parntesis anidados se evalan de dentro hacia fuera, el parntesis ms interno se evala primero. Dentro de una misma expresin los operadores se evalan en el siguiente orden: 1) **, ^ Exponenciacin 2) *, /, % Multiplicacin, Divisin, Mdulo 3) +, - Suma, Resta

Los operadores en una misma expresin con igual nivel de prioridad se evalan de izquierda a derecha. Ejemplos: 7/2 = 3.5 3 + 5 * (10 (2 + 4)) = 23 12 mod 7 = 5 2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98 4 + 2 * 5 = 14 23 * 2 / 5 = 9.2

Tipos de Operaciones con Operadores Aritmticos: Suma y Resta Producto Entero Entero = Entero Entero * Entero = Entero Entero Real = Real Entero Real = Real Real Real = Real Real Real = Real Divisin Entero / Entero = Real Entero / Real = Real Real / Entero = Real Real / Real = Real / (div) asume el valor del cociente de una divisin. % (mod) asume el valor del residuo de una divisin. 7 (3) mod 4 1 div

Ejemplos: 1) 2 ** (5 * 3 2 ** 3) 2) 3 3 ** 2 + 5 * 2 + 4 * 3 3) (6 / 2 mod 4) ** (3 6 / 3) * 3 4) (6 / 2 * 5 3 / 6 * 4) (5 ** 2 3 ** 2 + 8 * 5) + ((3 8 / 4 * 3 + 6) ** (4 / 2 3 ** 0)) 5) (18 div 5 - 4) ** (9 mod 5 - 2) + (6 * 2 ** (3 - 6 / 2)) (8 * 3 100 div 30 * 2) 6) 9 div 2 mod 3 * 2 4 ** (3 - 6 mod 4) + 6 7) (4 * 2 3 / (9 div 3) - 7) ** (3 ** 2 6 div 3 14 div 2) + 9 mod 4

Expresiones Booleanas y Reglas de Prioridad


OPERADORES RELACIONALES (O DE COMPARACIN): Se utilizan para establecer una relacin entre 2 valores, luego se compara estos valores entre s y esta comparacin produce un resultado de certeza o falsedad (Verdadero=True o Falso=False). Los operadores relacionales comparan valores del mismo tipo (numricos o cadenas), estos tienen el mismo nivel de prioridad en su evaluacin. Los operadores relacionales tienen menor prioridad que los aritmticos. Operadores Relacionales: 1) < Menor que 2) > Mayor que 3) <= Menor o igual que 4) >= Mayor o igual que 5) = Igual que 6) <>, !=, Diferente que, Distinto que
2.4. Expresiones Booleanas y Reglas de Prioridad

NOT (Operadores Relacionales) < >= > <= <= > >= < = != != =

Ejemplos: 1) Si a=10, b=20, c=30 a + b > c (Falso) a b < c (Verdadero) a b = c (Falso) a * b <> c (Verdadero) 2) Ejemplos No Lgicos a<b<c 10 < 20 < 30 T > 5 < 30 (No es lgico porque tiene diferentes operandos)

OPERADORES LGICOS: Estos operadores se utilizan para establecer relaciones entre valores lgicos, estos valores pueden ser resultado de una expresin relacional. Operadores Lgicos: 1) AND (y, &&) 2) OR (o, ll) 3) NOT (no, negacin, !p, ~p, p) Tabla de Verdad P Q P && Q P ll Q V V V V V F F V F V F V F F F F

~P ~Q F F F V V F V V

Ejemplo:

Prioridad de los Operadores Lgicos: 1) Not 2) And 3) Or Prioridad de los Operadores en General: 1) ( ) 2) **, ^ 3) *, /, % (Mod), Not 4) +, -, && (And) 5) >, <, >=, <=, <>, =, ll (Or) Ejemplos: Sea: a = 10 b = 12 c = 13 d = 10

Valor_1 :: Valor_2 Variable <, >, = Valor Fijo (Alfanumrico o Numrico) Expresin Aritmtica <=, >=, != Variable o Expresin Aritmtica (B + A) ** 2 <= C * D ** 2 A > 10; A <= B; A >= B * C ** 2; A = 16.25 Correcto B=8 A>B C = Z (caracter) A = 10 B=5 P: A < 25 (V) Q: B > 2 (V) P AND Q V AND V (V) Incorrecto A<C

P: A <= B (F) !P: V NOT (A <= B) A>B (V)

Operadores de Asignacin
Los operadores de asignacin generalmente usan el signo = Ejemplo: int a = b = c = 5; Tambin se podra definir: int a = 5, b = 5, c = 5; Otros Operadores: += a += b -= a -= b *= a *= b /= a /= b %= a %= b

a= a= a= a= a=

a+b a-b a*b a/b a%b

2.5. Operadores de Asignacin

int sueldo = 1000; sueldo += 500; sueldo = sueldo + 500; sueldo = 1500; semanal /= 7; semanal = semanal / 7; a = a + 1; a++; ++a; a = a 1; a--; --a; PANTALLA
a = 10; printf(%d, a); a++; printf(%d, a++); a++; printf(%d, a); 10 11 13 a = 10; printf(%d, a); a++; printf(%d, ++a); a++; printf(%d, a);

PANTALLA
10 12 13

Asignacin Booleana 1 = Verdad 0 = Falso int edad, mayoredad, joven; Posibilidades: 1 = Es mayor de edad. 1 = Edad entre 15 a 18. mayoredad joven 0 = No es mayor de edad. 0 = No est en el rango. printf(Ingrese su edad: ); scanf(%d,&edad); mayoredad = (edad > 18) joven = ( (edad >= 15) && (edad <= 18) ) edad = 19 mayoredad=1; edad = 17 mayoredad=0; joven=0; joven=1 if (mayoredad) printf(Es mayor de edad); else if (joven) printf(Es joven); else printf(Es adolescente);

Type Casting y Operador Condicional


Type Casting (datos reales o decimales) float A, X; X = A / 360; puede salir error porque es nmero entero X = A / float(360); solucin Operador Condicional (?:) Sintaxis:
(Expresin_Condicional) ? (Expresin_Verdad) : (Expresin_Falso); Ejemplo: (NHE > 0) ? (Phe = Phe * 2) : (Phe = 0); sueldo = Nhl * Ph + NHE * Phe; Nhl = Nmero de horas laboradas Ph = Pago por hora NHE = Nmero de horas extras Phe = Pago por horas extras

Ejemplo: > Sin horas extras: Nhl = 40; Ph = 3; NHE = 0; Phe = 0; > Con horas extras: Nhl = 40; Ph = 3; NHE = 5; Phe = 6;

sueldo = (40 * 3) + (0 * 0) sueldo = 120 + 0 sueldo = 120

sueldo = (40 * 3) + (5 * 6) sueldo = 120 + 30 sueldo = 150

Ejercicios de Aplicacin
Dada las siguientes expresiones, evale y de sus resultados: Parte 1: A: 9 + 5 3 ** 0 > 3 3 ** 2 + 5 * 2 + 4 * 3 = (V o F) B: 5 * 3 ** 2 <= 6 * 7 + 3 = (V o F) C: 2 ** (5 * 3 2 ** 3) >= 8 * 9 + 6 * 5 * 2 = (V o F) D: 8 * 2 + 9 * 5 - 10 <> 16 * 5 4 = (V o F) Parte 2: A AND B: (V o F) C OR D: (V o F) !A AND B: (V o F) !(A AND C): (V o F) Parte 3: (A and B) or (C or D) and (!A and B) or !(A and C): (V o F)

2.6. Ejercicios de Aplicacin

Dada las siguientes expresiones relacionales: a: 7 div 4 mod 3 + 6 ** 2 * (3 4 mod 3) >= 8 ** ((4 div 2) / 4) b: (64 mod 9) ** ((2 4 mod 5) - 3) < 6 + 4 * 8 ** ((5 div 3) - 2) c: 75 div (32 mod 9) 8 ** (9 div 4) + 32 != 125 (5 mod 8) * 9 Evaluar: (!A and !B or C) and (A or B and !C) or (!B and !C) Una persona es contratada si tiene al menos 18 aos de edad y obtiene ms de 85 puntos en una de 2 pruebas. Indique cul de las expresiones lgicas propuestas es la correcta: (Edad=17, Calificacin 1=90, Calificacin 2=85) a: (Edad >= 18) and (Calificacin 1 > 85) or (Calificacin 2 > 85) b: (Edad >= 18) and ((Calificacin 1 > 85) or (Calificacin 2 > 85)) c: (Edad >= 18) and (Calificacin 1 > 85) and (Calificacin 2 > 85) d: ((Edad >= 18) and (Calificacin 1 > 85)) or (Calificacin 2 > 85)

Si A=20 y B=8, indique cmo son las siguientes expresiones: a: (A > 15) and (B < 10) or (A B <= 20) b: (A <= 15) and ((B > 6) and (A * B > 100 A / B)) c: (A >= 20) and (B > 4) or (B / A >= 20 - B) Evale: a: (9 div 2) / 4 19 mod 10 6 mod 5 div 3 <= 4 ** (6 div 3) 64 * (115 mod 100) b: (12 ** ((3 mod 2 * 6 5 ** (15 120 div 8)) - 4)) 2 >= 1 / 2 + 1 / 3 + 1 / (5 div 2) c: 3 ** (8 div 4 (7 mod 5) * 6) <= 35 / 7 + 1 / (360 div 11) Evaluar (A=F, B=F, C=V): !(C and (A or B)) and (C or B and !A) and (B or !C and A) or (!B and C or (!B and !A)) or (!C and !(A or B and C)) or (A and !C and (B or !C) or !B)

Informacin en la Web
http://www.slideshare.net/SuperFonso/tipos-de-datos-en-programacion http://www.desarrolloweb.com/articulos/2165.php

LOGO

Fundamentos de Programacin

Potrebbero piacerti anche