PDF de programación - Tipos de instrucciones II - Fundamentos de programación

Imágen de pdf Tipos de instrucciones II - Fundamentos de programación

Tipos de instrucciones II - Fundamentos de programacióngráfica de visualizaciones

Publicado el 18 de Agosto del 2019
160 visualizaciones desde el 18 de Agosto del 2019
11,1 MB
92 paginas
Creado hace 1a (23/10/2017)
Fundamentos de programación

3

Tipos e instrucciones II
Grado en Ingeniería Informática
Grado en Ingeniería del Software
Grado en Ingeniería de Computadores
Material de la Prof.ª Mercedes Gómez Albarrán
Facultad de Informática
Versión revisada y ampliada del material del Prof. Luis Hernández Yáñez
Universidad Complutense

Flujo de ejecución

Selección

2 caminos: Selección simple



true

Condición

false

AlternativaT

AlternativaF

Diagramas de flujo

(no confundir con diagramas sintácticos)

> 2 caminos: Selección múltiple

true

false

false

false

false

true

true

true

Página 2

Selección múltiple:
la instrucción switch

sentencia switch

switch

false

false

true

true

true

(

expresion
variable

)

{

false

case

expresion
constante

:

;

instrucción

break

;

default

:

;

instrucción

}

Página 3

Selección múltiple: la instrucción switch

Ejemplo.- Nivel de un valor



switch (num) {
case 5: cout << "Muy alto"; break;
case 4: cout << "Alto"; break;
case 3: cout << "Medio"; break;
case 2: cout << "Bajo"; break;
case 1: cout << "Muy bajo"; break;
default: cout << "Valor no válido";

}

nivel2.cpp

Si num = 5 entonces Muy alto
Si num = 4 entonces Alto
Si num = 3 entonces Medio
Si num = 2 entonces Bajo
Si num = 1 entonces Muy bajo

Página 4

Selección múltiple: la instrucción switch
La instrucción break

Interrumpe el switch, llevando la ejecución al final del mismo.


switch (num) {
case 5: cout << "Muy alto" << endl; break;
case 4: cout << "Alto" << endl; break;
case 3: cout << "Medio" << endl; break;
case 2: cout << "Bajo" << endl; break;
case 1: cout << "Muy bajo" << endl; break;
default: cout << "Valor no válido";
}

Num: 3
Medio

Num: 3
Medio
Bajo
Muy bajo
Valor no válido

switch (num) {
case 5: cout << "Muy alto" << endl;
case 4: cout << "Alto" << endl;
case 3: cout << "Medio" << endl;
case 2: cout << "Bajo" << endl;
case 1: cout << "Muy bajo" << endl;
default: cout << "Valor no válido";
}

Página 5

Selección múltiple: la instrucción switch


switch (num * otra) { // se admiten expresiones

case (5 * 1) + 0: cout << "Muy alto"; break;
// se admiten expresiones "constantes"

/* case 4 * otra: cout << "Alto"; break; */
// no se permiten expresiones que tengan variables

case 4: cout << "Alto"; break;
case 3: cout << "Medio"; break;
case 2: cout << "Bajo"; break;
case 1: cout << "Muy bajo"; break;
default: cout << "Valor no válido";
}

Página 6

Selección múltiple: la instrucción switch

Ejemplo.- Un uso común de switch: el tratamiento de menús
Algoritmo:
― Mostrar el menú
― Solicitar y leer la opción
― Si opcion = suma ...
sino si opcion = resta ...
sino ....


cout << "1 – Suma" << endl;
cout << "2 – Resta" << endl;
cout << "3 – Producto" << endl;
cout << "4 – Division" << endl;
cout << "0 – Salir" << endl;
cout << "Opcion: " << endl;
cin >> num;
switch (num) {
case 0: break;
case 1: /* instrucciones suma */ break;
case 2: /* instrucciones resta */ break;
case 3: /* instrucciones producto */ break;
case 4: /* instrucciones division */ break;
default: cout << "¡Valor no válido!";
}

Página 7

Selección múltiple: la instrucción switch

Ejemplo.- Nota simbólica equivalente a numérica

nota2.cpp


int num;
cout << "Nota: " << endl;
cin >> num;
switch (num) {
case 0:
case 1:
case 2:
case 3:
case 4: cout << "Suspenso"; break; // De 0 a 4: Suspenso
case 5:
case 6: cout << "Aprobado"; break; // 5 o 6: Aprobado
case 7:
case 8: cout << "Notable"; break; // 7 u 8: Notable
case 9:
case 10: cout << "Sobresaliente"; break; // 9 o 10: Sobresaliente
default: cout << "¡Valor no válido!";
}

Página 8

Flujo de ejecución

Repetición o iteración



Inicialización

Inicialización



¿Iterar?

No

Cuerpo iteración

Cuerpo iteración



¿Iterar?

No

Diagramas de flujo

(no confundir con diagramas sintácticos)

Página 9

Repetición
Tipos de bucles



Comprobación
pre-iteración
Recorrido fijo
Recorrido variable while

for
while


Comprobación
post-iteración

do-while

do-while


Página 10

Repetición: bucle do-while
Recorrido fijo + comprobación post-iteración
Recorrido variable + comprobación post-iteración



do

cuerpo

while

(

condición

)

;

Ejecuta el cuerpo mientras la condición sea true.
El cuerpo siempre se ejecuta al menos una vez. La condición se comprueba tras cada pasada.
El cuerpo del bucle es una instrucción (simple o compuesta –bloque –).

Página 11

Repetición: bucle do-while

Ejemplo.- Bucle do-while usado para recorrido fijo (equivalente a
for (int i = 1; i <= 100; i++) cout << i << endl; )


int i = 1;

do {
cout << i << endl;
i++;
} while (i <= 100);

do.cpp

Página 12

Repetición: bucle do-while
int i = 1;

do {
cout << i << endl;
i++;
} while (i <= 100);

Inicialización

i = 1;



Cuerpo

¿Iterar?

No

cout << i << endl;

i++;

true

i <= 100

false

Página 13

Repetición: bucle do-while

Ejemplo.- Mejorando el programa del área del triángulo mediante el uso
del bucle do-while.
Algoritmo4:
― Repetir solicitar y leer los datos (base y altura)
mientras que los datos leidos no sean válidos
― Calcular el área
― Visualizar el área


...
do {
cout << "Introduzca la base del triangulo: "; cin >> base;
cout << "Introduzca la altura del triangulo: "; cin >> altura;
} while ( altura <= 0 || base <= 0 )
area = base * altura / 2;



cout << "El area de un triangulo es: " << area << endl;

Página 14

Repetición: bucle do-while

Ejemplo.- Número de dígitos que tiene un número entero.
¿Algoritmo?
¿Programa?

Página 15

Repetición: bucle do-while

Ejemplo.- Control en menús

do {
cout << "1 – Nuevo registro" << endl;
cout << "2 – Editar registro" << endl;
cout << "3 – Eliminar registro" << endl;
cout << "4 – Ver registro" << endl;
cout << "0 – Salir" << endl;
cout << "Opción: ";
cin >> num;
} while (num < 0 || num > 4);
switch (num) {
case 0: break;
case 1: /* codigo de la opcion 1 */ break;
case 2: /* codigo de la opcion 2 */ break;
case 3: /* codigo de la opcion 3 */ break;
case 4: /* codigo de la opcion 4 */ break;
default: cout << "¡Valor no válido!";
}

Implementa una función que
haga una recogida controlada de
la opción del menú

Página 16

Ámbito y visibilidad

Cada bloque crea un nuevo ámbito dentro del ámbito en que se encuentra.


int main()
{
double d, suma = 0;
int cont = 0;
do {
cin >> d;
if (d != 0) {
suma = suma + d;
cont++;
}
} while (d != 0);
cout << "Suma = " << suma << endl;
cout << "Media = " << suma / cont << endl;

return 0;
}

3 ámbitos anidados

Página 18

Ámbito y visibilidad

Ámbito de los identificadores: Un identificador se conoce (se puede
usar) en el ámbito en el que está declarado, a partir de su instrucción de
declaración, y en los subámbitos posteriores a su declaración.
int main()

{
double d;
if (...) {
int cont = 0;
for (int i = 0; i <= 10; i++) {
...
}
}
char c;
if (...) {
double x;
...
}
return 0;
}

Página 19

Ámbito y visibilidad

Visibilidad de los identificadores: Si en un subámbito se declara un
identificador con idéntico nombre que uno ya declarado en el ámbito, el
del subámbito oculta al del ámbito (no es visible).


int main()
{
int i, x;
if (...) {
int i = 0;
for(int i = 0; i <= 10; i++) {
...
}
...
}
char c;
if (...) {
double x ;
...
}
return 0;
}

Página 20

Entrada / salida con archivos de texto

Archivos

La memoria de la computadora es volátil.
Medios (dispositivos) de almacenamiento permanente:
— Discos magnéticos fijos (internos) o portátiles (externos).
— Discos ópticos (CD, DVD, BlueRay).
— Memorias USB.
… La información se guarda en esos dispositivos en forma de archivos.
Un archivo es una secuencia de datos que constituyen la información
de un determinado documento.

Página 22

Entrada / salida con archivos de texto
Archivos de texto y binarios

T

o

:

.

A



t

a

l

1

2

3

4 ↵

A0 25 2F 04 D6 FF 00 27 6C CA 49 07 5F A4 …

 Archivo de texto: contiene una secuencia de caracteres.
 Archivo binario: contiene una secuencia de códigos binarios.
(Códigos representados en notación hexadecimal.)

Lo que signifiquen los códigos dependerá del programa
que haga uso del archivo.
Los archivos se manejan en los programas por medio de flujos.
Los archivos de texto se leen y escriben desde un programa en C++ por
medio de flujos de texto.



Página 23

Entrada / salida con archivos de texto

Flujos de texto

Los flujos de texto cin y cout que se usan para la E/S por consola
se crean automáticamente al comenzar la ejecución del programa,
asociándose a los dispositivos teclado y pantalla, respectivamente.
Los flujos de texto asociados a archivos de texto se han de crear
explícitamente durante la ejecución del programa, asociando
cada uno al archivo de texto correspondiente.
Un flujo de texto se puede utilizar para lectura o para escritura:
— Flujos de entrada (lectura): objetos de tipo ifstream.
— Flujos de salida (escritura) : objetos de tipo ofstream.
Los tipos ifstream y ofstream están declarados en la biblioteca fstream.


Página 24

Entrada con archivos de texto
Flujos de texto de entrada

ifstream

1
2

3

4

Para leer de un archivo de texto:
Se declara una variable flujo de tipo ifstream
Se asocia la variable con el archivo de texto (se abre el archivo)
flujo.open(nombre_del_archivo_con_extension);
Se realizan las lecturas por medio del operador >> (extractor)
  • Links de descarga
http://lwp-l.com/pdf16476

Comentarios de: Tipos de instrucciones II - Fundamentos de programación (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