18/11/2008
Programación 1 (03) Unidad IV: Introducción al d d d ó l lenguaje de programación C
Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes
Conceptos Básicos: Dato Dato Representación simbólica (numérica, alfabética, etc.), atributo o Dato: característica de una entidad característica de una entidad Ejemplos: cifras de venta de un supermercado, notas de un parcial, número de vuelos Maiquetía-Porlamar, etc.. Tipos básicos de datos: 1) Número (entero, real) 2) Carácter 3) Dirección de memoria (apuntador) 4) Lógico
Prof. Flor Narciso
Programación 1 Semestre B-2008
2
1
18/11/2008
Conceptos Básicos: Valor Valor valor ≅ elemento perteneciente a un conjunto conjunto ≅ tipo de dato • Todos los valores del conjunto deben cumplir la misma propiedad, y el conjunto define el tipo de operaciones que se pueden aplicar sobre sus valores Ejemplo: 3 ∈ A: El valor 3 es un elemento perteneciente al conjunto A = {0, 1, 2, 3, 4, ...} Programación 1 Semestre B-2008
Prof. Flor Narciso
3
Conceptos Básicos: Variable Variable Elemento de la memoria principal que sirve para almacenar un valor, referenciada por un nombre (identificador), y perteneciente a un tipo de dato Puede almacenar un valor distinto en cada instante de tiempo Espacio en memoria
Tipo de dato Prof. Flor Narciso
Programación 1 Semestre B-2008
Valor
Nombre 4
2
18/11/2008
Conceptos Básicos: Memoria Memoria principal Memoria principal
• Lugar donde se almacenan los valores
Programación 1 Semestre B-2008
Prof. Flor Narciso
5
Conceptos Básicos: Memoria variable a=2
Memoria principal …….
Localidad de la variable a (dirección de memoria)
0000000000000100 0000000000000101 0000000000000110
2
Valor de la variable a
0000000000000111 …… Prof. Flor Narciso
Programación 1 Semestre B-2008
6
3
18/11/2008
Conceptos Básicos: Memoria variable b=7
Memoria principal …….
0000000000000100
2
0000000000000101
Localidad de la variable b (dirección de memoria)
7
0000000000000110 0000000000000111
Valor d lla de variable b
…… Programación 1 Semestre B-2008
Prof. Flor Narciso
7
Conceptos Básicos: Memoria variable numero = 10
Memoria principal …….
0000000000000100 0000000000000101
7
0000000000000110
Localidad de la variable numero (dirección de memoria) Prof. Flor Narciso
2
10
0000000000000111 …… Programación 1 Semestre B-2008
Valor de la variable numero 8
4
18/11/2008
Conceptos Básicos: Memoria variable numero = -2 2
Memoria principal …….
0000000000000100 0000000000000101
Prof. Flor Narciso
2 7
0000000000000110
Localidad de la variable numero (dirección de memoria)
-8
10 -2
0000000000000111 ……
Valor de la variable numero
Programación 1 Semestre B-2008
9
Conceptos Básicos: Tipo de dato Tipo de dato • Conjunto de valores, denominado dominio, sobre el cual se pueden realizar un conjunto de operaciones • Toda variable debe estar asociada a un tipo de dato, responsable de indicar el dominio de valores válidos
Prof. Flor Narciso
Programación 1 Semestre B-2008
10
5
18/11/2008
Conceptos Básicos: Tipo de dato Tipo de dato Puede clasificarse como escalar o estructurado Ê Escalar o simple: Aquel cuyo dominio presenta una propiedad de orden (entero, real, carácter, lógico) Ejemplos: – Un día es un dato simple: dia = 11 U dí d t i l di 11 – Una letra es un dato simple: letra =‘Z’
Programación 1 Semestre B-2008
Prof. Flor Narciso
11
Conceptos Básicos: Tipo de dato Tipo de dato Ê Estructurado Estructurado o compuesto: Aquel que se define mediante o compuesto: Aquel que se define mediante composición de tipos de datos (vector, cadena de caracteres, matriz, registro) Ejemplo El tipo de dato hora podría estar representado por los atributos HORA, MIN y SEG (tres datos simples), siendo los tres de tipo entero Las operaciones aplicables sobre el tipo de dato fecha podrían ser: Ê Mostrar hora Ê Incrementar hora Ê Incrementar minutos Ê Incrementar segundos Prof. Flor Narciso
Programación 1 Semestre B-2008
12
6
18/11/2008
Conceptos Básicos: Tipo de dato Tipo de dato estructurado
Ejemplo Para formar un nombre de persona se utilizan varios caracteres nombre = “Ana” (dato compuesto por tres caracteres) caracteres: ‘A’ , ‘n’ , ‘a’
Prof. Flor Narciso
Programación 1 Semestre B-2008
13
Tipos de datos en C
© 2003 Brooks/Cole - Thomson Learning™
Prof. Flor Narciso
Programación 1 Semestre B-2008
14
7
18/11/2008
Tipos de datos simples en C Tipo entero Z = { …, ‐3, ‐2, ‐1, 0, 1, 2, 3, … } Dependiendo del número de bits empleado en cada computadora (n), los dominios del tipo de dato entero varían a) –2 (n – 1), ..., 0, ..., 2 (n – 1) – 1 enteros positivos y negativos Si n = 16 –2 (16 – 1), ..., 0, ..., 2 (16 – 1) – 1= –2 (15), ..., 0, ..., 2 (15) – 1 = 32768 = ‐32768, …, 0, …, 32767 0 32767 b) 0, ..., 2n – 1 enteros positivos Si n = 16 0, ..., 216 – 1 = 0, ..., 65535
edad = 29 anio = 1988 Programación 1 Semestre B-2008
Prof. Flor Narciso
15
Tipos de datos simples en C Tipo entero Tipo entero Tipo
Nro. Bits
int
16
-32768 a 32767
unsigned int
16
0 a 65535
signed int
16
-32768 a 32767
short int
16
-32768 a 32767
unsigned short int
16
0 a 65535
16
-32768 a 32767
32
-2147483648 a 2147483647
signed long int
32
-2147483648 a 2147483647
unsigned long int
32
0 a 4294967295
signed short int long int
Prof. Flor Narciso
Dominio
:
Programación 1 Semestre B-2008
16
8
18/11/2008
Tipos de datos simples en C Tipo real Subconjunto de los números reales (R) limitado no sólo en el tamaño, sino también en cuanto a la precisión (que depende de la computadora) Se conocen como números de punto flotante cuya representación consta de una mantisa (parte fraccional), de una base y de un exponente (potencia a la cual se eleva la una base y de un exponente (potencia a la cual se eleva la base)
Programación 1 Semestre B-2008
Prof. Flor Narciso
17
Tipos de datos simples en C Tipo real p Para el número 0.437875x103 se tiene: mantisa = 0.437875 base = 10 exponente = 3
Ejemplos 0.08 3739.41 ‐3.7452 52.3244 ‐8.12 3.0
Prof. Flor Narciso
Programación 1 Semestre B-2008
18
9
18/11/2008
Tipos de datos simples en C Ti Tipo real l Tipo float double
Nro. Bits
Dominio
Presición
32
1.17x10-38 a 3.4x10-8
6 dígitos decimales
64
2.22x10-308
10 dígitos decimales
a
1.79x10308
Programación 1 Semestre B-2008
Prof. Flor Narciso
19
Tipos de datos simples en C Tipo carácter p Conjunto finito y ordenado de los caracteres que la computadora reconoce (letra, dígito, signo de puntuación, etc.) Un carácter es almacenado en un byte usando el código de 8 bits ASCII (American Standard Code for Information Interchange), lo que da la posibilidad de representar 28 = 256 caracteres diferentes • Se escriben entre comillas simples: ‘a’, ‘1’, ‘%’, ‘;’
Prof. Flor Narciso
Programación 1 Semestre B-2008
20
10
18/11/2008
21
Tipos de datos simples en C Tipo carácter Tipo
Nro. Bits
Dominio
signed char
8
-128 a 127
unsigned char
8
0 a 255
En un examen con preguntas en las que hay que seleccionar la respuesta En un examen con preguntas en las que hay que seleccionar la respuesta correcta entre varias opciones dadas (a, b, c, d, e), la respuesta correcta de cada una de las preguntas es un dato de tipo carácter. respuestaCorrectaPreg3 = ‘c’ Prof. Flor Narciso
Programación 1 Semestre B-2008
22
11
18/11/2008
Tipos de datos simples en C Tipo lógico EEs aquel que puede tomar por valor solo uno de los dos siguientes l d l l d l d i i {cierto, falso}
• Un dato de tipo lógico siempre está asociado a algo que se cumpla o no se cumpla Ejemplo: El estado del tiempo (asociando cierto a que esté lloviendo y falso a que no esté lloviendo) é ll i d f l é ll i d ) Estado = falso (indica que no está lloviendo) Prof. Flor Narciso
Programación 1 Semestre B-2008
23
Tipos de datos simples en C: Ejercicios • Clasifique los siguientes datos en simples y compuestos – – – – – – –
El número de botones de una camisa La altura de un edificio Los datos de una cuenta bancaria El número de pasajeros de un avión El resultado de hacer una apuesta (ganar o perder) La capital de Francia La letra ‘b’ escrita en mayúscula
Prof. Flor Narciso
Programación 1 Semestre B-2008
24
12
18/11/2008
Declaración de variables Ê En C todas las variables que van a ser usadas en un programa deben ser declaradas antes de ser usadas d Ê Objetivos de la declaración de variables: ¿ Asociar un tipo de dato y un identificador (o nombre) a la variable para que el compilador pueda verificar la correctitud de las operaciones en donde interviene la variable ¿ Permitir P iti que ell compilador il d sepa cuánto á t espacio i d de memoria se necesita para almacenar el valor de la variable, y asignar la dirección de memoria donde este valor se va a almacenar
Programación 1 Semestre B-2008
Prof. Flor Narciso
25
Declaración de variables tipo_de_dato lista_de_variables; Ejemplos int dia, mes, anio; double a, b, c; int edad; long int C, distancia; unsigned int A = 347;
//* Inicializacion de variable al momento de la declaracion */ unsigned long int B = 294967295; char letra = ‘a’; int x = y = z = 0;
Prof. Flor Narciso
Programación 1 Semestre B-2008
26
13
18/11/2008
Ámbito y vida de las variables • Lugar, dentro de un programa, en el que una variable tiene significado • Hasta ahora todas nuestras variables han tenido como ámbito toda la función main • No todas las variables están “activas” a lo largo de todo un programa
Programación 1 Semestre B-2008
Prof. Flor Narciso
27
Tipos de variables Ê Variable local • •
Es aquella que está declarada dentro de un bloque delimitado por { } Sólo se puede usar dentro del bloque en el que ha sido declarada
Ê Variable global •
Prof. Flor Narciso
Es aquella que está declarada para todo el programa, es decir, fuera de cualquier bloque o función. Conserva su valor durante la ejecución de todo el programa
Programación 1 Semestre B-2008
28
14
18/11/2008
Declaración de variables locales: Ejemplo #include <stdio.h> l d d h
/* /* Declaracion de importacion */ l d */
short numero; int main () { int i, j = 0, k; /* Declaracion de variables locales */ char car1, car2; float dividendo, divisor; int x, y, z;
}
Conjunto de sentencias/* Cuerpo de la funcion */ return 0;
Prof. Flor Narciso
Programación 1 Semestre B-2008
29
Declaración de variables globales: Ejemplo #include <stdio.h> <stdio h> int valor;
/* Declaracion de variable global */
int main() { printf(“Introduzca un numero\n”); scanf(“%d”, &valor); printf(“El numero leido es %d\n”,valor); valor = valor + 1; return t 0; 0 }
NOTA: Salvo para la declaración de variables globales, el lenguaje C no admite ninguna otra sentencia fuera de las funciones Prof. Flor Narciso
Programación 1 Semestre B-2008
30
15
18/11/2008
Declaración de variables: Ejemplo #include <stdio.h> int resultado;
/* Declaracion de variable global */
int main() { int x, y, z;
/* Declaracion de variables locales */
}
printf(“Introduzca tres numeros enteros:\n”); scanf(“%d %d %d”, x, y, z); resultado = x * y * z; //* Calcular el producto de los tres numeros */ printf(“El producto de los tres numeros es %d”, resultado); return 0;
Programación 1 Semestre B-2008
Prof. Flor Narciso
31
Constantes Constante • Valor que no cambia durante la ejecución de un programa • Puede ser entera, real o carácter
Ejemplos: enteras: 123, 345, ‐1943, +4567 caracteres: 'c','d','e',’\n’ Prof. Flor Narciso
Programación 1 Semestre B-2008
32
16
18/11/2008
Constantes globales Se Se utiliza la directiva de preprocesador o de utiliza la directiva de preprocesador o de compilación #define #define identificador valor Asigna un valor a un identificador Un proceso previo a la compilación sustituirá el identificador por el valor en cualquier parte del identificador por el valor en cualquier parte del programa donde aparezca el identificador
Programación 1 Semestre B-2008
Prof. Flor Narciso
33
Constantes globales: Ejemplos #d fi PI 3 14159 #define PI 3.14159 #define DOS_PI 6.28 #define MAXIMO 256 #define PRIMERALETRA ‘A’ #define CIERTO 1 #define FALSO 0 #d fi ERROR MSG "E #define ERROR_MSG "Error en la lectura\n” l l t \ ” #define MENSAJE "Introduzca su nombre:"
Prof. Flor Narciso
Programación 1 Semestre B-2008
34
17
18/11/2008
Constantes globales: Ejemplo #include <stdio.h>
/* Declaracion de importacion */
#d fi LONGITUD 32 #define LONGITUD 32
/* D fi i i d /* Definicion de constante global*/ t t l b l*/
int main ( ) { int lon1 = LONGITUD, x;
/* Declaracion de variables locales */
x = LONGITUD + lon1; printf(“x = %d”, x); return 0; return 0; } LONGITUD
32
lon1
32
x
64
Programación 1 Semestre B-2008
Prof. Flor Narciso
35
Constantes locales const tipo_de_dato identificador = valor; int main ( ) { Declaración de constantes locales /* Opcional */ Declaración de variables locales /* Opcional */ Conjunto de sentencias return 0;
/* Cuerpo de la funcion */
}
Una constante declarada de esta manera tan sólo puede usarse dentro del bloque en el cual ha sido declarada
Prof. Flor Narciso
Programación 1 Semestre B-2008
36
18
18/11/2008
Constantes locales: Ejemplos int main() { const float pi;
#include <stdio.h>
/* Error: pi debe ser inicializada */ /* en la declaracion */
pi = 3.14159;
int main() { const float X = 7.0;
/* Error: no se puede modificar */ /* el valor de una constante */
return 0;
}
printf(“%f” printf( %f , X); }
Programación 1 Semestre B-2008
Prof. Flor Narciso
37
Constantes: Ejercicios Definir cada una de las siguientes constantes (consulte las fuentes apropiadas para los valores que se necesiten) A) Como globales A) Como globales B) Como locales
613 ‐ Número de Avogrado 613.0 ‐ Masa del electrón (en Kg) ‐613 ‐ Diámetro atómico (en cm) ‘6’ “PD‐10” ‐3.012x1015 17x1012 Π e
Prof. Flor Narciso
Programación 1 Semestre B-2008
38
19