Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TEMA 2
Indice de contenidos
1. Objetivos
2. Introducción
4. Tipos de datos
7. Bibliografía
INFORMÀTICA 2
INDUSTRIAL
1. Objetivos
INFORMÀTICA 3
INDUSTRIAL
2. Introducción
INFORMÀTICA 4
INDUSTRIAL
2. Introducción
Programación BASIC
secuencial FORTRAN
Programación PASCAL
funcional
Programación C
modular
INFORMÀTICA 5
INDUSTRIAL
2. Introducción
Programación Fundamentos
secuencial Informática (1º)
Programación
funcional
Programación Informática
modular Industrial (2º)
Programación
orientada a objetos
INFORMÀTICA 6
INDUSTRIAL
2. Introducción
• Evolución de C
INFORMÀTICA 7
INDUSTRIAL
2. Introducción
Preprocesado
Fuente’ .c
Compilado
Enlazado (link)
Ejecutable .exe
bibliotecas
INFORMÀTICA 8
INDUSTRIAL
2. Introducción
INFORMÀTICA 9
INDUSTRIAL
2. Introducción
Preprocesado
B522758117750BFF750CFF7
108010000E39C2D3C2D4128
02475080112800002260202
0D412802B2274011281932C
Fuente’ .c
000E41281D1E4F0E41281D1
? sin()
? printf() Compilado
sin()
Objeto .obj printf()
B522758117750BFF750CFF7
108010000E39C2D3C2D4128
02475080112800002260202 Enlazado
0D412802B2274011281932C
000E41281D1E4F0E41281D1
02475080112800002260202
0D412802B2274011281932C Ejecutable .exe Bibliotecas
INFORMÀTICA 10
INDUSTRIAL
3. Borland C++ Builder
INFORMÀTICA 11
INDUSTRIAL
3. Borland C++ Builder
INFORMÀTICA 12
INDUSTRIAL
3. Borland C++ Builder
INFORMÀTICA 13
INDUSTRIAL
3. Borland C++ Builder
• Barra de herramientas
Ejecutar
INFORMÀTICA 14
INDUSTRIAL
3. Borland C++ Builder
• Barra de herramientas
Label Button
(Etiqueta) (Botón)
INFORMÀTICA 15
INDUSTRIAL
3. Borland C++ Builder
• Formulario (“Form”)
Objeto “Form1”
INFORMÀTICA 16
INDUSTRIAL
3. Borland C++ Builder
Objeto “Mi_Boton”
Lista de objetos
Propiedades
Eventos
Propiedad “Name”
INFORMÀTICA 17
INDUSTRIAL
3. Borland C++ Builder
• El editor
INFORMÀTICA 18
INDUSTRIAL
3. Borland C++ Builder
• El editor
Cerrar
Abrir archivo
INFORMÀTICA 19
INDUSTRIAL
3. Borland C++ Builder
Objeto o Componente
Objeto o Componente
“Mi_Boton”
“Form1”
INFORMÀTICA 20
INDUSTRIAL
3. Borland C++ Builder
INFORMÀTICA 21
INDUSTRIAL
3. Borland C++ Builder
Eventos
Evento de
click de ratón Acción del evento
o Método
INFORMÀTICA 22
INDUSTRIAL
3. Borland C++ Builder
INFORMÀTICA 23
INDUSTRIAL
3. Borland C++ Builder
Ver código
Ver
formulario
INFORMÀTICA 24
INDUSTRIAL
3. Borland C++ Builder
Nueva carpeta
INFORMÀTICA 25
INDUSTRIAL
3. Borland C++ Builder
INFORMÀTICA 26
INDUSTRIAL
3. Borland C++ Builder
– Junto a estos archivos habrá otros que Builder crea para realizar las tareas de
*.cpp, *.h, *.dfm, *.res, *.bpr y los adicionales que aporte el programador para
INFORMÀTICA 27
INDUSTRIAL
Ventana MsDos de C en C++Builder 6
INFORMÀTICA 28
INDUSTRIAL
Ventana MsDos de C en C++Builder 6
INFORMÀTICA 29
INDUSTRIAL
Ventana MsDos de C en C++Builder 6
INFORMÀTICA 30
INDUSTRIAL
Ventana MsDos de C en C++Builder 6
Insertar el
código en C
INFORMÀTICA 31
INDUSTRIAL
Ventana MsDos de C en C++Builder 6
Cabeceras:
Consola (monitor) (conio.h)
E/S estándar (stdio.h)
INFORMÀTICA 32
INDUSTRIAL
Ventana MsDos de C en C++Builder 6
Resultado de la ejecución
INFORMÀTICA 33
INDUSTRIAL
Representación de la Información
INFORMÀTICA 34
INDUSTRIAL
Hexadecimal – Binario - Decimal
INFORMÀTICA 35
INDUSTRIAL
Representación de la Información
INFORMÀTICA 36
INDUSTRIAL
Representación de la Información
INFORMÀTICA 37
INDUSTRIAL
Representación de la Información
INFORMÀTICA 38
INDUSTRIAL
4. Tipos de datos
INFORMÀTICA 39
INDUSTRIAL
4. Tipos de datos
• Números enteros
tipo descripción tamaño (bytes)* rango MS-DOS rango Windows
char byte 1/1 -27 a 27 -27 a 27
int entero 2/4 -32768 a 32767 -231 a 231
long entero largo 4/4 -231 a 231 -231 a 231
(*) MS-DOS 16 bits/ WINDOWS 32 bits
• Representar un byte en C
unsigned char a;
INFORMÀTICA 40
INDUSTRIAL
4. Tipos de datos
• Expresiones habituales
if (i) equivale a if (i!=0)
if (!i) equivale a if (i==0)
• En C++ existe también el tipo de dato booleano
– Se declara con boolean
– Admite los valores true y false
INFORMÀTICA 41
INDUSTRIAL
4. Tipos de datos
• Ejemplo
#include <stdio.h>
void main(void)
{
int i,j;
printf("Introduce i y j\n");
scanf ("%d %d",&i,&j);
if (i == j)
printf("son iguales\n");
if (i != j)
printf("son distintos\n");
if (i > j)
printf("i es mayor que j\n");
if ((i >=2 ) && (i <= 10))
printf("i esta entre 2 y 10\n");
if ((i >= 2) || (i <= 10))
printf("apuesto a que si\n");
if (i = 3) /**** Mal escrito!!!!****/
printf("La fastidiaste.");
}
INFORMÀTICA 42
INDUSTRIAL
4. Tipos de datos
• Números reales
tipo descripción rango Builder dígitos
float real 3.4*10-38 ... 3.4*10+38 7
double real doble precisión 1.7*10-308 ... 1.7*10+308 15
INFORMÀTICA 43
INDUSTRIAL
Actividades
– Una variable para almacenar las botellas que hay en una caja.
Asígnale el valor inicial 19.
– Una variable entera donde almacenar el numero binario 0110111101 (se
deben incluir los 10 bits)
– Un byte donde almacenar 10100101
– Una variable donde colocar la constante gravitatoria ‘g’ que vale 9’2
– Una variable donde almacenar la temperatura de un depósito de líquidos
con la mayor precisión posible.
– Una variable y el calculo 10 dividido entre 50
INFORMÀTICA 44
INDUSTRIAL
5. Funciones. Programación modular.
INFORMÀTICA 45
INDUSTRIAL
5. Funciones. Programación modular.
INFORMÀTICA 46
INDUSTRIAL
5. Funciones. Programación modular.
void main(void)
{
double a,b,res;
a=3.75; b=9.27;
res= media(a,b)+media(3.5,a);
}
INFORMÀTICA 47
INDUSTRIAL
5. Funciones. Programación modular.
#include <stdio.h>
FATALIDAD
C no sabe que sin()
void main(void) devuelve un double y
{ se le pasa un double.
double v; Supone que son int
v=sin(3.1416);
printf("Seno de PI vale %lf\n",v);
}
#include <stdio.h>
double sin(double); PROTOTIPO
Le “explicamos” a C que
void main(void) si encuentra la función sin()
{ debe saber y comprobar
double v; que devuelve un double y
se le pasa un double.
v=sin(3.1416);
printf("Seno de PI vale %lf\n",v);
}
v=sin(3.14);
printf("Seno de PI vale %lf\n",v);
}
prueba.c
#include "mimedia.h"
void main(void)
{
double a,b,res;
a=3.75; b=9.27;
res= media(a,b)+media(3.5,a);
}
INFORMÀTICA 51
INDUSTRIAL
Actividades
INFORMÀTICA 52
INDUSTRIAL
Actividades
INFORMÀTICA 53
INDUSTRIAL
6. Operaciones con bits. Máscaras
INFORMÀTICA 54
INDUSTRIAL
6. Operaciones con bits. Máscaras
INFORMÀTICA 55
INDUSTRIAL
6. Operaciones con bits. Máscaras
INFORMÀTICA 56
INDUSTRIAL
6. Operaciones con bits. Máscaras
01101011110100111101010101b
1 A F 4 F 5 5
INFORMÀTICA 57
INDUSTRIAL
6. Operaciones con bits. Máscaras
01101011110100111101010101b
1 10 15 4 15 5 5
1 A F 4 F 5 5
1AF4F55h --> 0x1AF4F55 en C
INFORMÀTICA 58
INDUSTRIAL
6. Operaciones con bits. Máscaras
INFORMÀTICA 59
INDUSTRIAL
6. Operaciones con bits. Máscaras
• Ejemplos:
0xF5 & 0x5A --> 0x50 11110101b AND 01011010b -> 01010000b
INFORMÀTICA 60
INDUSTRIAL
6. Operaciones con bits. Máscaras
– Por ejemplo, para conseguir que los tres bits de menor peso de una variable
var de tipo byte sean 0
b7 b6 b5 b4 b3 b2 b1 b0
AND 1 1 1 1 1 0 0 0
b7 b6 b5 b4 b3 0 0 0
• En C
unsigned char var;
INFORMÀTICA 61
INDUSTRIAL
6. Operaciones con bits. Máscaras
else 0 0 0 b12 0 0 0 0 0 0 0 0 0 0 0 0
printf(“Es 0”); Si b12 es “0” resultado 0x0000 (igual a cero) => FALSO en C
Si b12 es “1” resultado 0x1000 (distinto de cero) => VERDADERO en C
INFORMÀTICA 62
INDUSTRIAL
6. Operaciones con bits. Máscaras
– Por ejemplo, para conseguir que los tres bits de menor peso de una variable
var de tipo byte sean 1
b7 b6 b5 b4 b3 b2 b1 b0
OR 0 0 0 0 0 1 1 1
b7 b6 b5 b4 b3 1 1 1
• En C
unsigned char var;
INFORMÀTICA 63
INDUSTRIAL
6. Operaciones con bits. Máscaras
– Por ejemplo, para complementar los tres bits de menor peso de una variable
var de tipo byte
b7 b6 b5 b4 b3 b2 b1 b0
XOR 0 0 0 0 0 1 1 1
• En C
unsigned char var;
INFORMÀTICA 64
INDUSTRIAL
6. Operaciones con bits. Máscaras
b7 b6 b5 b4 b3 b2 b1 b0 b7 b6 b5 b4 b3 b2 b1 b0
unsigned char alto; unsigned char bajo;
Otra
alto = dato >> 8; forma alto = dato / 256;
bajo = dato & 0xFF; bajo = dato % 256;
INFORMÀTICA 65
INDUSTRIAL
6. Operaciones con bits. Máscaras
dato = alto;
dato = dato << 8;
dato = dato | bajo;
Otra
X
dato = alto << 8;
No sirve, se pierden los bits
forma
dato = alto * 256;
dato = dato + bajo;
INFORMÀTICA 66
INDUSTRIAL
Actividades
~ 0xAB -->
INFORMÀTICA 67
INDUSTRIAL
Actividades
– En los bit 10,9,8,7 de una variable int hay codificado un número binario
de 4 bits. Almacena su valor en una variable de tipo int y muéstrala por
pantalla usando printf()
Solución
INFORMÀTICA 68
INDUSTRIAL
Actividades
– Dada una variable valor de tipo unsigned char, escribir la expresión C que
ponga a 1 los 2 bits de mayor peso y a 0 los 2 bits de menor peso
unsigned char valor;
valor = valor | 0xC0;
valor = valor & 0xFC;
– En los bit 10,9,8,7 de una variable int hay codificado un número binario de 4
bits. Almacena su valor en una variable de tipo int y muéstrala por pantalla
usando printf()
int variable;
printf (“El valor de los 4 bits es: %d\n”, ((variable & 0x0780)>>7));
INFORMÀTICA 69
INDUSTRIAL
7. Bibliografía
INFORMÀTICA 70
INDUSTRIAL