ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Estructuras De Control C++


Enviado por   •  17 de Septiembre de 2013  •  2.814 Palabras (12 Páginas)  •  390 Visitas

Página 1 de 12

Tema 3

Estructuras de control en C++

1

E.T.S.I. Telecomunicaci´on Laboratorio de Programaci´on 2

2

´Indice general

3.1. Bloques de sentencias

En C++ el concepto de bloque de sentencias se utilizar para agrupar un conjunto de

sentencias dentro de un ´ambito concreto del programa. Un bloque de sentencias es un

conjunto de instrucciones englobadas bajo llaves: ’{’ y ’}’.

Hay diferentes lugares, en un programa escrito en C++, donde podemos usar bloques

de c´odigo. Por ejemplo, en la sintaxis habitual de la funci´on main(), todas las instrucciones

que pertenecen a esta funci´on principal se escriben dentro de una llave de apertura

y una llave de cierre. Todo lo que hay entre esas dos llaves es el c´odigo de la funci´on

principal. De la misma manera, como se ver´a en el siguiente tema, cualquier otra funci´on

tiene sus llaves para agrupar las instrucciones que forman parte de ella.

Por otro lado, en C++ son posibles otros bloques de c´odigo que, como veremos en

este tema, est´an asociados a estructuras de control y que engloban un conjunto de instrucciones

que se ejecutan bajo las condiciones que controlan estas estructuras.

3.2. Operadores relacionales y l´ogicos

ANSI C++ define el tipo bool que tiene dos literales, false y true. Una expresi´on

booleana o l´ogica es, por consiguiente, una secuencia de operandos y operadores que se

combinan para producir uno de los valores false o true.

ANSI C no tiene tipos de datos l´ogicos o booleanos para representar los valores verdadero

o falso. En su lugar utiliza el tipo int para ese prop´osito, con el valor 0 representando

false y cualquier otro valor representando verdadero.

Operadores como == o <= que comprueban una relaci´on entre dos operandos se llaman

operadores relacionales y se utilizan en expresiones de la forma:

expresion1 operador_relacional expresion2

3

E.T.S.I. Telecomunicaci´on Laboratorio de Programaci´on 2

Los operadores relacionales se usan normalmente en sentencias de selecci´on y de

iteraci´on para comprobar una condici´on. Operadores relacionales en C++:

Operador Significado Ejemplo

== (¡Ojo!, no =) Igual a a == b

!= No igual a a != b

> Mayor que a > b

< Menor que a < b

>= Mayor o igual a >= b

<= Menor o igual a <= b

Ejemplos:

x < 5.75 b * b >= 5.0 * a * c

Los operadores l´ogicos se utilizan con expresiones para devolver un valor verdadero o

falso (true o false). Se denominan tambi´en operadores booleanos. Los operadores l´ogicos

de C++ son: not (!), and (&&) y or (||). El operador not produce falso si su operando es

verdadero, y viceversa. El operador and produce verdadero s´olo si ambos operandos son

verdaderos; si cualquiera de los operando es falso, produce falso. El operador or produce

verdadero si cualquiera de los operandos es verdadero, y falso en caso de que los dos

operandos sean falsos. Ejemplos:

!(7 == 5) (aNum > 5) && (letra == ’a’) a >= 5 || b == 3 && c <= 8

3.3. Precedencia de operadores

La precedencia de operadores determina el orden en que se eval´uan los operadores

en una expresi´on. Seguiremos como referencia la siguiente lista, donde los operadores de

cada grupo tiene prioridad sobre los del grupo siguiente:

1. ! (not) - (menos unario) + (m´as unario)

2. operadores multiplicativos: * / %

3. operadores aditivos: + - (binarios)

4. operadores relacionales de diferencia: < <= > >=

5. operadores relacionales de igualdad y desigualdad: == !=

6. operador l´ogico de conjunci´on: &&

4

Estructuras de control en C++

7. operador l´ogico de disyunci´on: ||

Adem´as de esta lista, tenemos que tener en cuenta los siguientes puntos:

Si dos operadores se aplican al mismo operando, el operador con m´as prioridad se

aplica primero.

Todos los operadores del mismo grupo tienen igual prioridad y asociatividad (se

expresan de izquierda a derecha).

Los par´entesis tienen la m´axima prioridad.

3.4. Estructuras de selecci´on

C++ tiene dos estructuras de control para la selecci´on, if (selecci´on simple y binaria)

y switch (selecci´on m´ultiple).

3.4.1. Estructura if

La sentencia if elige entre varias alternativas en base al valor de una o m´as expresiones

booleanas.

La notaci´on BNF de esta sentencia es la siguiente:

<sent_if> ::= if (<expres_bool>) <bloque_sent>

{else if (<expres_bool>) <bloque_sent>}

[else <sec_sent>]

donde <expres bool> es una expresi´on booleana y <sec sent> puede ser una sola sentencia

o un bloque de sentencias.

<sec_sent> ::= [’{’{<sentencia>}’}’|<sentencia>]

Las formas m´as sencillas de esta sentencia, son :

if (<expres_bool>) if (<expres_bool>)

<sentencia> <sentencia>

else

<sentencia>

if (<expres_bool>) if (<expres_bool>)

5

E.T.S.I. Telecomunicaci´on Laboratorio de Programaci´on 2

{ {

<sent 1> <sent 1>

... ...

<sent n> <sent n>

} }

else

{

<sent 1>

...

<sent n>

}

N´otese que en el caso en el que s´olo siga una sentencia al if no es necesario incluir

las llaves, pero s´ı lo es cuando lo siguen m´as de una sentencia.

Los programas a menudo realizan una serie de tests de los que s´olo uno ser´a verdadero.

Como ejemplo, consid´erese un programa para escribir en pantalla un mensaje diferente

correspondiente a un n´umero que representa una calificaci´on num´erica. En C++, utilizando

sentencias if anidadas, quedar´ıa:

if (Nota == 10)

cout << "Matricula de Honor";

else

if (Nota >= 9)

cout << "Sobresaliente";

else

if (Nota >= 7)

cout << "Notable";

else

if (Nota >= 5)

cout << "Aprobado";

else

cout << "Suspenso";

Sin embargo, C++ nos proporciona una forma m´as concisa de expresar lo anterior, completamente

equivalente:

if (Nota ==

...

Descargar como (para miembros actualizados) txt (20 Kb)
Leer 11 páginas más »
Disponible sólo en Clubensayos.com