Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8...

22
Programación en C++ Ingeniero Anyelo Quintero

Transcript of Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8...

Page 1: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.

Programación en C++

Ingeniero Anyelo Quintero

Page 2: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.

Tipos de datosunsigned char 8 bits 0 a 255

char 8 bits -128 a 127

short int 16 bits -32.768 a 32.767

unsigned int 32 bits 0 a 4.294.967.295

int 32 bits -2.147.483.648 a 2.147.483.647

unsigned long 32 bits 0 a 4.294.967.295

enum 16 bits -2.147.483.648 a 2.147.483.647

long 32 bits -2.147.483.648 a 2.147.483.647

float 32 bits 3,4*10-38 a 3,4*10+38 (6 dec)

double 64 bits 1,7*10-308 a 1,7*10+308 (15 dec)

long double 80 bits 3,4*10-4932 a 1,1*10+4932

Page 3: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.

El modificador unsigned se puede aplicar a enteros para obtener números sin signo (por omisión los enteros contienen signo), con lo que se consigue un rango mayor de números naturales.

Tamaños Asociados

Según la máquina y el compilador que se utilice los tipos primitivos pueden ocupar un determinado tamaño en memoria. La siguiente lista ilustra el número de bits que ocupan los distintos tipos primitivos la arquitectura "x86".Otras arquitecturas pueden requerir distintos tamaños de tipos de datos primitivos. C++ no dice nada acerca de cuál es el número de bits en un byte, ni del tamaño de estos tipos; más bien, ofrece solamente las siguientes "garantías de tipos":

Page 4: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.

Un tipo char tiene el tamaño mínimo en bytes asignable por la máquina, y todos los bits de este espacio deben ser "accesibles".El tamaño reconocido de char es de 1. Es decir, sizeof(char) siempre devuelve 1.Un tipo short tiene al menos el mismo tamaño que un tipo char.Un tipo long tiene al menos el doble tamaño en bytes que un tipo short.Un tipo int tiene un tamaño entre el de short y el de long, ambos inclusive, preferentemente el tamaño de un apuntador de memoria de la máquina.Un tipo unsigned tiene el mismo tamaño que su versión signed.

Page 5: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.
Page 6: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.

Definición de variables globales Una variable global se declara fuera de todas las funciones, incluyendo a la función main(). Una variable global puede ser utilizada en cualquier parte del programa. Por ejemplo:

short numero, suma; int numerogr, sumagr; char letra;

main() { ... }

Es también posible preinicializar variables globales usando el operador de asignación =, por ejemplo: float suma= 0.0; int sumagr= 0; char letra= 'A';

main() { ... }

Page 7: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.

Que es lo mismo que: float suma; int sumagr; char letra;

main() { suma = 0.0; sumagr= 0; letra = 'A';

... }

Page 8: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.

Dentro de C también se permite la asignación múltiple usando el operador =, por ejemplo:

a = b = c = d = 3; ...que es lo mismo, pero más eficiente que:a = 3; b = 3; c = 3; d = 3; La asignación múltiple se puede llevar a cabo, si todos los tipos de las variables son iguales. Se pueden redefinir los tipos de C usando typedef. Como un ejemplo de un simple uso se considera como se crean dos nuevos tipos real y letra. Estos nuevos tipos pueden ser usados de igual forma como los tipos predefinidos de C. typedef float real; typedef char letra; /* Declaracion de variables usando el nuevo tipo */ real suma=0.0; letra sig_letra;

Page 9: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.

Constantes ANSI C permite declarar constantes. Cuando se declara una constante es un poco parecido a declarar una variable, excepto que el valor no puede ser cambiado. La palabra clave const se usa para declarar una constante, como se muestra a continuación:const a = 1; int a = 2; Se puede usar const antes o después del tipo. Es usual inicializar una constante con un valor, ya que no puede ser cambiada de alguna otra forma. La directiva del preprocesador #define es un método más flexible para definir constantes en un programa. Frecuentemente se ve la declaración const en los parámetros de la función. Lo anterior simplemente indica que la función no cambiara el valor del parámetro. Por ejemplo, la siguiente función usa este concepto: char *strcpy(char *dest, const char *orig); El segundo argumento orig es una cadena de C que no será alterada, cuando se use la función de la biblioteca para copiar cadenas.

Page 10: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.

Operadores Aritméticos Lo mismo que en otros lenguajes de programación, en C se tienen los operadores aritméticos más usuales (+ suma, - resta, * multiplicación, / división y % módulo). El operador de asignación es =, por ejemplo: i=4; ch='y'; Incremento ++ y decremento -- unario. Los cuales son más eficientes que las respectivas asignaciones. Por ejemplo: x++ es más rápido que x=x+1. Los operadores ++ y - - pueden ser prefijos o postfijos. Cuando son prefijos, el valor es calculado antes de que la expresión sea evaluada, y cuando es postfijo el valor es calculado después que la expresión es evaluada. En el siguiente ejemplo, ++z es prefijo y -- es postfijo:int x,y,z;

main() { x=( ( ++z ) - ( y-- ) ) % 100;

}

Page 11: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.

Que es equivalente a:int x,y,z;

main() { z++; x = ( z-y ) % 100; y--; } El operador % (módulo o residuo) solamente trabaja con enteros, aunque existe una función para flotantes (15.1 fmod() ) de la biblioteca matemática. El operador división / es para división entera y flotantes. Por lo tanto hay que tener cuidado. El resultado de x = 3 / 2; es uno, aún si x es declarado como float. La regla es: si ambos argumentos en una división son enteros, entoces el resultado es entero. Si se desea obtener la división con la fracción, entonces escribirlo como: x = 3.0 / 2; o x = 3 / 2.0 y aún mejor x = 3.0 / 2.0.

Page 12: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.

Operadores de Comparación El operador para probar la igualdad es ==, por lo que se deberá tener cuidado de no escribir accidentalmente sólo =, ya que: if ( i = j ) ... Es una sentencia legal de C (sintácticamente hablando aunque el compilador avisa cuando se emplea), la cual copia el valor de ``j'' en ``i'', lo cual será interpretado como VERDADERO, si j es diferente de cero. Diferente es !=, otros operadores son: < menor que, > mayor que, <= menor que o igual a y >= (mayor que o igual a).

Operadores lógicos Los operadores lógicos son usualmente usados con sentencias condicionales o relacionales, los operadores básicos lógicos son: && Y lógico, || O lógico y ! negación.

Page 13: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.

Orden de precedencia Es necesario ser cuidadosos con el significado de expresiones tales como a + b * c, dependiendo de lo que se desee hacer (a + b) * c ó a + (b * c) Todos los operadores tienen una prioridad, los operadores de mayor prioridad son evaluados antes que los que tienen menor prioridad. Los operadores que tienen la misma prioridad son evaluados de izquierda a derecha, por lo que: a - b - c es evaluado como (a - b) - c

Page 14: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.

De acuerdo a lo anterior, la siguiente expresión: a < 10 && 2 * b < c Es interpretada como:

(a < 10) && ( (2 * b) < c ) y

a = b = 10 / 5 + 2; como

a = ( b = ( 10 / 5 ) + 2 );

Page 15: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.

Ejercicios•Leer la entrada de dos números y mostrar el doble producto del primero menos la mitad del segundo.

•Realizar un programas que sirva para convertir pulgadas en centimetros

1 pulgada =2.54 cm

•Escribir un programa que lea 4 datos en las variables X, Y, Z, W, calcule e imprima su producto, la suma y la media aritmetica

•Diseñar un programa que calcule la expresion: X=B2 – 4AC

Page 16: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.
Page 17: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.
Page 18: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.
Page 19: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.
Page 20: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.
Page 21: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.
Page 22: Programación en C++ Ingeniero Anyelo Quintero. Tipos de datos unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 short int 16 bits -32.768 a 32.767 unsigned.