PDF de programación - 3. Tipos e instrucciones II

Imágen de pdf 3. Tipos e instrucciones II

3. Tipos e instrucciones IIgráfica de visualizaciones

Publicado el 06 de Diciembre del 2018
107 visualizaciones desde el 06 de Diciembre del 2018
5,4 MB
87 paginas
Creado hace 5a (02/09/2013)
Fundamentos de la programación

3

Grado en Ingeniería Informática
Grado en Ingeniería del Software
Grado en Ingeniería de Computadores
Facultad de Informática
Luis Hernández Yáñez
Universidad Complutense

Tipos, valores y variables
Conversión de tipos
Tipos declarados por el usuario
Tipos enumerados
Entrada/Salida

con archivos de texto
Lectura de archivos de texto
Escritura en archivos de texto

Flujo de ejecución
Selección simple
Operadores lógicos
Anidamiento de if
Condiciones
Selección múltiple

La escala if‐else‐if
La instrucción switch

Repetición

El bucle while

El bucle for
Bucles anidados
Ámbito y visibilidad
Secuencias

Recorrido de secuencias
Secuencias calculadas
Búsqueda en secuencias

Arrays de datos simples

Uso de variables arrays
Recorrido de arrays
Búsqueda en arrays
Arrays no completos

321
331
339
349
355
363
370
374
379
382
387
393

227
232
236
238

248
253
266
272
276
282
286
290
293
295
302
313
316

Fundamentos de la programación: Tipos e instrucciones II

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

Fundamentos de la programación: Tipos e instrucciones II

Página 227

Valor

TipoConjunto de valores con sus posibles operaciones
Conjunto de bits interpretados como de un tipo concreto
Cierta memoria con nombre para valores de un tipo
Instrucción que identifica un nombre
Declaración que asigna memoria a una variable o constante

Variable (o constante)

Declaración

Definición

Fundamentos de la programación: Tipos e instrucciones II

Página 228

Memoria suficiente para su tipo de valores

ii

jj

3

9

cc a

xx

short int i = 3;
int j = 9;
char c = 'a';
double x = 1.5;

El significado de los bits depende del tipo de la variable:
Interpretado como intes el entero 120
Interpretado como char(sólo 01111000) es el carácter 'x'

00000000 00000000 00000000 01111000

1.5

Fundamentos de la programación: Tipos e instrucciones II

Página 229

Simples
 Estándar: int, float, double, char, bool
Conjunto de valores predeterminado
 Definidos por el usuario: enumerados
Conjunto de valores definido por el programador
Estructurados (Tema 5)
 Colecciones homogéneas: arrays
Todos los elementos de la colección de un mismo tipo
 Colecciones heterogéneas: estructuras
Elementos de la colección de tipos distintos

Fundamentos de programación: Tipos e instrucciones II

Página 230

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

Con sus posibles modificadores:

[unsigned] [short] int
long long int
float
[long] double
char
bool

long int  int

Definición de variables:
Definición de constantes con nombre:

tipo nombre [ = expresión] [, ...];

const tipo nombre = expresión;

Fundamentos de la programación: Tipos e instrucciones II

Página 231

Fundamentos de la programación: Tipos e instrucciones II

Página 232

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

Promoción de tipos

Dos operandos de tipos distintos:
El valor del tipo menorse promociona al tipo mayor

short int i = 3;
int j = 2;
double a = 1.5, b;
b = a + i * j;

b = a + 3 * 2;

b = 1.5 + 6;

long double
double
float
long int
int
short int

n
n
ó
ó
i
i
c
c
o
o
m
m
o
o
r
r
P
P

Valor 3 short int(2 bytes)  int(4 bytes)
Valor 3 short int(2 bytes)  int(4 bytes)
Valor 6 int(4 bytes)  double(8 bytes)
Valor 6 int(4 bytes)  double(8 bytes)

Fundamentos de la programación: Tipos e instrucciones II

Página 233

Conversión segura:
De un tipo menor a un tipo mayor
short int  int  long int ...
Conversión no segura:
De un tipo mayor a un tipo menor
Menor memoria: Pérdida de información en la conversión

int entero = 1234;
char caracter;
caracter = entero; // Conversión no segura

long double
double
float
long int
int
short int

Fundamentos de la programación: Tipos e instrucciones II

Página 234

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

tipo(expresión)

Fuerzan una conversión de tipo:
El valor resultante de la expresiónse trata como un valor del tipo
Tienen la mayor prioridad

int a = 3, b = 2;
cout << a / b;         // Muestra 1 (división entera)
cout << double(a) / b; // Muestra 1.5 (división real)

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

Fundamentos de la programación: Tipos e instrucciones II

Página 235

Fundamentos de la programación: Tipos e instrucciones II

Página 236

typedef descripción nombre_de_tipo;

Describimos los valores de las variables del tipo
Nombres de tipos propios:
tminúscula seguida de una o varias palabras capitalizadas
Los colorearemos en naranja, para remarcar que son tipos

Identificador válido

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

typedef descripción tMiTipo;
typedef descripción tMiTipo;
typedef descripción tMoneda;
typedef descripción tMoneda;
typedef descripción tTiposDeCalificacion;
typedef descripción tTiposDeCalificacion;

Declaración de tipo frente a definición de variable

Fundamentos de la programación: Tipos e instrucciones II

Página 237

Fundamentos de la programación: Tipos e instrucciones II

Página 238

Enumeración del conjunto de valores posibles para las variables:

enum { símbolo1, símbolo2, ..., símboloN }

enumenum

{

Identificador

}

,

enum { centimo, dos_centimos, cinco_centimos,

Valores literales que pueden tomar las variables (en amarillo)

diez_centimos, veinte_centimos,
medio_euro, euro }

Fundamentos de la programación: Tipos e instrucciones II

Página 239

Mejoran la legibilidad
Mejoran la legibilidad

typedef descripción nombre_de_tipo;

diez_centimos, veinte_centimos,
medio_euro, euro } tMoneda;

descripción
descripción
typedef enum { centimo, dos_centimos, cinco_centimos,

Elegimos un nombre para el tipo: tMoneda
En el ámbito de la declaración, se reconoce un nuevo tipo tMoneda
Cada variable de ese tipo contendrá alguno de los símbolos
(Internamente se usan enteros)
(Internamente se usan enteros)

moneda1 = dos_centimos;
moneda2 = euro;

tMoneda moneda1, moneda2;

moneda1
moneda1

dos_centimos

moneda2
moneda2

euro

Fundamentos de la programación: Tipos e instrucciones II

Página 240

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

typedef enum { enero, febrero, marzo, abril, mayo,

tMes mes;

cin >> mes;

junio, julio, agosto, septiembre, octubre,
noviembre, diciembre } tMes;

Lectura de la variable mes:
Se espera un valor entero
No se puede escribir directamente eneroo junio
Y si se escribe la variable en la pantalla:
Se verá un número entero
Código de entrada/salida específico

cout << mes;

Fundamentos de la programación: Tipos e instrucciones II

Página 241

typedef enum { enero, febrero, marzo, abril, mayo, junio, julio,

agosto, septiembre, octubre, noviembre, diciembre } tMes;

int op;
int op;
<< endl;
<< endl;
cout << " 1 ‐ Enero"
cout << " 1 ‐ Enero"
<< endl;
<< endl;
cout << " 2 ‐ Febrero"
cout << " 2 ‐ Febrero"
<< endl;
cout << " 3 ‐ Marzo"
<< endl;
cout << " 3 ‐ Marzo"
<< endl;
cout << " 4 ‐ Abril"
<< endl;
cout << " 4 ‐ Abril"
<< endl;
<< endl;
cout << " 5 ‐ Mayo"
cout << " 5 ‐ Mayo"
<< endl;
cout << " 6 ‐ Junio"
<< endl;
cout << " 6 ‐ Junio"
<< endl;
cout << " 7 ‐ Julio"
<< endl;
cout << " 7 ‐ Julio"
<< endl;
<< endl;
cout << " 8 ‐ Agosto"
cout << " 8 ‐ Agosto"
cout << " 9 ‐ Septiembre" << endl;
cout << " 9 ‐ Septiembre" << endl;
cout << "10 ‐ Octubre"
cout << "10 ‐ Octubre"
<< endl;
<< endl;
cout << "11 ‐ Noviembre" << endl;
cout << "11 ‐ Noviembre" << endl;
cout << "12 ‐ Diciembre" << endl;
cout << "12 ‐ Diciembre" << endl;
cout << "Numero de mes: ";
cout << "Numero de mes: ";
cin >> op;
cin >> op;
tMes mes = tMes(op ‐ 1);
tMes mes = tMes(op ‐ 1);

Fundamentos de la programación: Tipos e instrucciones II

Página 242

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

typedef enum { enero, febrero, marzo, abril, mayo, junio, julio,

agosto, septiembre, octubre, noviembre, diciembre } tMes;

if (mes == enero) {
if (mes == enero) {
cout << "enero";
cout << "enero";

}
}
if (mes == febrero) {
if (mes == febrero) {
cout << "febrero";
cout << "febrero";

}
}
if (mes == marzo) {
if (mes == marzo) {
cout << "marzo";
cout << "marzo";

}
}
...
...
if (mes == diciembre) {
if (mes == diciembre) {
cout << "diciembre";
cout << "diciembre";

También podemos utilizar una instrucción switch
También podemos utilizar una instrucción switch

}
}

Fundamentos de la programación: Tipos e instrucciones II

Página 243

Conjunto de valores ordenado (posición en la enumeración)

typedef enum { lunes, martes, miercoles, jueves,

viernes, sabado, domingo } tDiaSemana;

lunes < martes < miercoles < jueves
< viernes < sabado < domingo

tDiaSemana dia;
...
if (dia == jueves)...
bool noLaborable = (dia >= sabado);

No admiten operadores de incremento y decremento
Emulación con moldes:

int i = int(dia); // ¡dia no ha de valer domingo!
i++;
dia = tDiaSemana(i);

Fundamentos de la programación: Tipos e instrucciones II

Página 244

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

#include <iostream>
using namespace std;

Si los tipos se usan en varias funciones,
los declaramos antes de los prototipos

typedef enum { enero, febrero, marzo, abril, mayo,

junio, julio, agosto, septiembre, octubre,
noviembre, diciembre } tMes;

typedef enum { lunes, martes, miercoles, jueves,

viernes, sabado, domingo } tDiaSemana;

string cadMes(tMes mes);
string cadDia(tDiaSemana dia);

int main() {

tDiaSemana hoy = lunes;
int dia = 21;
tMes mes = octubre;
int anio = 2013;
...

z
e
ñ
á
Y
 
z
e
d
n
á
n
r
e
H
 
s
i
u
L

Fundamentos de la programación: Tipos e instrucciones II

Página 245

// Mostramos la fecha
cout << "Hoy es: " << cadDia(hoy) << " " << dia
<< " de " << cadMes(mes) << " de " << anio
<< endl;

cout << "Pasada la medianoche..." << endl;
dia++;
int i = int(hoy);
i++;
hoy = tDiaSemana(i);

// Mostramos la fecha
cout << "Hoy es: " << cadDi
  • Links de descarga
http://lwp-l.com/pdf14455  

Comentarios de: 3. Tipos e instrucciones II (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

Revisar política de publicidad