18/11/2008
1
Programación 1 (03)d d d ó lUnidad IV: Introducción al
lenguaje de programación C
Prof. Flor NarcisoDepartamento de ComputaciónEscuela de Ingeniería de Sistemas
Facultad de IngenieríaUniversidad de Los Andes
Conceptos Básicos: Dato
DatoDato: Representación simbólica (numérica, alfabética, etc.), atributo o característica de una entidadcaracterí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ácter3) Dirección de memoria (apuntador)4) Lógico4) Lógico
Prof. Flor Narciso 2Programación 1Semestre B-2008
18/11/2008
2
Conceptos Básicos: Valor
Valor
valor ≅ elemento perteneciente a un conjuntoconjunto ≅ 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, ...}
Prof. Flor Narciso 3Programación 1Semestre B-2008
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
Prof. Flor Narciso 4Programación 1Semestre B-2008
Valor
Espacio en memoria
NombreTipo de dato
18/11/2008
3
Conceptos Básicos: Memoria
Memoria principalMemoria principal
• Lugar donde se almacenan los valores
Prof. Flor Narciso 5Programación 1Semestre B-2008
Conceptos Básicos: Memoria
a = 2variable
…….
0000000000000100
00000000000001012
Localidad de la variable a (direcciónde memoria)
Valor de la variable
Memoria principala = 2
Prof. Flor Narciso
0000000000000110
0000000000000111
……
de memoria) a
6Programación 1Semestre B-2008
18/11/2008
4
Conceptos Básicos: Memoria
b = 7variable
…….
0000000000000100
00000000000001012
7Localidad de la variable
Valor d l
Memoria principalb = 7
Prof. Flor Narciso
00000000000001107
0000000000000111
……
de la variable b (direcciónde memoria)
de la variableb
7Programación 1Semestre B-2008
Conceptos Básicos: Memoria
numero = 10variable
…….
0000000000000100
00000000000001012
7
Memoria principalnumero = 10
Prof. Flor Narciso
00000000000001107
000000000000011110
……
Localidad de la variable numero (direcciónde memoria)
Valor de la variablenumero
8Programación 1Semestre B-2008
18/11/2008
5
Conceptos Básicos: Memoria
numero = 2variable
…….
0000000000000100-8
00000000000001012
7
Memoria principalnumero = -2
Prof. Flor Narciso
00000000000001107
000000000000011110 -2
……
9Programación 1Semestre B-2008
Localidad de la variable numero (direcciónde memoria)
Valor de la variablenumero
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 10Programación 1Semestre B-2008
18/11/2008
6
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:
U dí d t i l di 11– Un día es un dato simple: dia = 11
– Una letra es un dato simple: letra =‘Z’
Prof. Flor Narciso 11Programación 1Semestre B-2008
Conceptos Básicos: Tipo de datoTipo de dato
Estructurado o compuesto: Aquel que se define medianteEstructurado 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 horaIncrementar horaIncrementar minutosIncrementar segundos
Prof. Flor Narciso 12Programación 1Semestre B-2008
18/11/2008
7
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 13Programación 1Semestre B-2008
Tipos de datos en C
Prof. Flor Narciso
© 2003 Brooks/Cole - Thomson Learning™© 2003 Brooks/Cole - Thomson Learning™© 2003 Brooks/Cole - Thomson Learning™
14Programación 1Semestre B-2008
18/11/2008
8
Tipos de datos simples en C
Tipo enteroZ = { …, ‐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 negativosSi n = 16–2 (16 – 1), ..., 0, ..., 2 (16 – 1) – 1= –2 (15), ..., 0, ..., 2 (15) – 1= 32768 0 32767= ‐32768, …, 0, …, 32767
b) 0, ..., 2n – 1 enteros positivosSi n = 160, ..., 216 – 1 = 0, ..., 65535
Prof. Flor Narciso 15Programación 1Semestre B-2008
edad = 29anio = 1988
Tipos de datos simples en C
Tipo enteroTipo Nro. Bits Dominio
int 16 -32768 a 32767
unsigned int 16 0 a 65535
signed int 16 -32768 a 32767short int 16 -32768 a 32767unsigned short int 16 0 a 65535
Tipo entero
Prof. Flor Narciso
unsigned short int 16 0 a 65535signed short int 16 -32768 a 32767long int 32 -2147483648 a 2147483647signed long int 32 -2147483648 a 2147483647unsigned long int 32 0 a 4294967295
:
16Programación 1Semestre B-2008
18/11/2008
9
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 launa base y de un exponente (potencia a la cual se eleva la base)
Prof. Flor Narciso 17Programación 1Semestre B-2008
Tipos de datos simples en C
Tipo realpPara el número 0.437875x103 se tiene:
mantisa = 0.437875 base = 10exponente = 3
Ejemplos
0.08 3739.41 ‐3.7452 52.3244 ‐8.12 3.0
Prof. Flor Narciso 18Programación 1Semestre B-2008
18/11/2008
10
Tipos de datos simples en C
Ti lTipo Nro.
BitsDominio Presición
float 32 1.17x10-38 a 3.4x10-8 6 dígitos decimales
double 64 2.22x10-308 a 1.79x10308 10 dígitos decimales
Tipo real
Prof. Flor Narciso 19Programación 1Semestre B-2008
Tipos de datos simples en C
Tipo carácterp
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 828 = 256 caracteres diferentes
• Se escriben entre comillas simples: ‘a’, ‘1’, ‘%’, ‘;’
Prof. Flor Narciso 20Programación 1Semestre B-2008
18/11/2008
11
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
Prof. Flor Narciso 22Programación 1Semestre B-2008
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’
18/11/2008
12
Tipos de datos simples en C
Tipo lógico
E l d l l d l d i iEs aquel que puede tomar por valor solo uno de los dos siguientes{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 é ll i d f l é ll i d )que esté lloviendo y falso a que no esté lloviendo)
Estado = falso (indica que no está lloviendo)
Prof. Flor Narciso 23Programación 1Semestre B-2008
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 24Programación 1Semestre B-2008
18/11/2008
13
En C todas las variables que van a ser usadas en un programa deben ser declaradas antes de ser
d
Declaración de variables
usadas
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
P iti l il d á t i dPermitir que el compilador sepa cuánto espacio 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
Prof. Flor Narciso 25Programación 1Semestre B-2008
tipo_de_dato lista_de_variables;
Declaración de variables
Ejemplosint dia, mes, anio;double a, b, c;int edad;long int C, distancia;
unsigned int A = 347; /* Inicializacion de variable alunsigned 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 26Programación 1Semestre B-2008
18/11/2008
14
Ámbito y vida de las variables
• Lugar, dentro de un programa, en el que una variable tiene significadosignificado
• 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
Prof. Flor Narciso 27Programación 1Semestre B-2008
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
• 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
Prof. Flor Narciso 28Programación 1Semestre B-2008
18/11/2008
15
Declaración de variables locales: Ejemplo
l d d h /* l d */#include <stdio.h> /* Declaracion de importacion */
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 29Programación 1Semestre B-2008
#include <stdio h>
Declaración de variables globales: Ejemplo
#include <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;
t 0return 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 30Programación 1Semestre B-2008
18/11/2008
16
#include <stdio.h>
Declaración de variables: Ejemplo
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 tresresultado x y z; / Calcular el producto de los tres
numeros */printf(“El producto de los tres numeros es %d”, resultado);return 0;
}
Prof. Flor Narciso 31Programación 1Semestre B-2008
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 32Programación 1Semestre B-2008
18/11/2008
17
Constantes globales
Se utiliza la directiva de preprocesador o deSe 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 delidentificador por el valor en cualquier parte del programa donde aparezca el identificador
Prof. Flor Narciso 33Programación 1Semestre B-2008
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 l l t \ ”#define ERROR_MSG "Error en la lectura\n”
#define MENSAJE "Introduzca su nombre:"
Prof. Flor Narciso 34Programación 1Semestre B-2008
18/11/2008
18
Constantes globales: Ejemplo
#include <stdio.h> /* Declaracion de importacion */
#d fi LONGITUD 32 /* D fi i i d t t l b l*/#define LONGITUD 32 /* Definicion de constante global*/
int main ( ){
int lon1 = LONGITUD, x; /* Declaracion de variables locales */
x = LONGITUD + lon1;printf(“x = %d”, x);return 0;return 0;
}
Prof. Flor Narciso
LONGITUD 32lon1 32
x 64
35Programación 1Semestre B-2008
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 /* Cuerpo de la funcion */return 0;
}
Una constante declarada de esta manera tan sólo puede usarse dentro del bloque en el cual ha sido declarada
Prof. Flor Narciso 36Programación 1Semestre B-2008
18/11/2008
19
Constantes locales: Ejemplos
int main(){
const float pi;/* Error: pi debe ser inicializada *//* en la declaracion */
pi = 3.14159;/* Error: no se puede modificar *//* el valor de una constante */
#include <stdio.h>
int main(){
const float X = 7.0;
printf(“%f” X);/* el valor de una constante */
return 0;}
printf( %f , X);}
Prof. Flor Narciso 37Programación 1Semestre B-2008
Constantes: EjerciciosDefinir cada una de las siguientes constantes (consulte las fuentes apropiadas para los valores que se necesiten)A) Como globalesA) Como globalesB) Como locales
613 ‐ Número de Avogrado613.0 ‐Masa del electrón (en Kg)‐613 ‐ Diámetro atómico (en cm)‘6’“PD‐10”‐3.012x1015
17x1012
Πe
Prof. Flor Narciso 38Programación 1Semestre B-2008