Anda di halaman 1dari 12

Condiciones Compuestas

En numerosas ocasiones las expresiones de control de un ciclo pueden ser condiciones lgicas compuestas, como las siguientes: While (Datos >= 100) and (Datos >= 1000) do While not (A <= 5) do While (A <> B) and not Eof (input) do Ejemplo: Disear un programa que verifique si un nmero es primo. Program Primos; Var Primo : bolean; Nmero : Integer; Begin Primo: = True; Divisor := 2; WriteLn (`Introduzca un entero positivo: `); ReadLn (Numero); While (Divisor < Numero) and Primo do Begin If Numero mod Divisor = 0 then Primo := False; Divisor := Divisor + 1 End; If primo = True then Writeln (Numero,` ` , ` es primo) Else Writeln (Numero,` ` , ` no es primo) End.

CONDICIONES COMPUESTAS C++ En muchas ocasiones es necesario presentar mas de una condicin para su evaluacin al computador. Por ejemplo que el computador muestre la boleta de un alumno, si este estudia la carrera de medicina y su promedio de calificaciones es mayor de 70. Una condicin compuesta se define como dos o mas condiciones simples unidas por los llamados operadores lgicos. Los operadores lgicos que CPP reconoce son: OPERADOR SIGNIFICADO && Y LOGICO

! NO NEGACION Ejemplo: if ( (sueldo> 700) && ( sexo=='m') ) etc, etc, etc. Notas: Observar que cada condicin simple lleva sus propios parentesis. Si la variable es de tipo string el dato va entre comillas(), pero si la variable es de tipo char el dato va entre apostrofes('). Recordar ademas que para comparar arreglos de chars se debera usar strcmp(). Para que el computador evale como CIERTA una condicin compuesta que contiene el operador lgico y, las dos condiciones simples deben ser ciertas. Para que el computador evale como CIERTA una condicin compuesta que contiene el operador lgico o, basta con que una de las condiciones simples sea cierta.

La cantidad total de casos posibles cuando se unen dos o mas condiciones simples esta dada por la relacin donde n = cantidad de condiciones, la primera mitad de ellos ciertos y la segunda mitad falsos. Ejemplo, si formamos una condiciona compuesta con dos condiciones simples y el operador lgico y, la cantidad total de casos posibles serian y se puede construir la siguiente tabla de verdad. Tabla de verdad con y IRA COND SIMPLE 2DA COND SIMPLE EVALUACION C C C C F F F C F F F F La evaluacin final se obtiene usando la regla anteriormente descrita para una condicin compuesta que contiene el operador y. Esta tabla significa lo siguiente; 1.- Cualquiera que san la cantidad de datos procesados, siempre caer en uno de estos cuatro posibles casos. La tabla de verdad para una condicin compuesta con O es la siguiente; IRA COND SIMPLE 2DA COND SIMPLE EVALUACION C C C C F C F C C F F F Como se observa, una condicin compuesta con O, es menos restrictiva, o el 75% de los casos terminaran ejecutando el grupo CIERTO de instrucciones de la instruccin condicional. Construir una tabla de verdad para una condicin compuesta de tres o mas condiciones simples, es tambin tarea sencilla, solo recordar que; 1.- La cantidad posible de casos posibles es la mitad empiezan con cierto y la otra mitad empiezan con falso. 2.- Para evaluar esta condicin triple, primero se evalan las dos primeras incluyendo su operador bajo las reglas ya descritas y luego se evala el resultado parcial contra la ultima condicin y el ultimo operador para obtener la evaluacin final. Ejemplo una condicin compuesta de tres condiciones simples, donde el primer operador lgico es el y y el segundo operador lgico es el O, dara la siguiente tabla de verdad. Ira cond 2da cond Eval 1a Y 2a 3ra cond

Eval eval O 3ra C C C C C C C C F C C F F C C C F F F F F C F C C F C F F F F F F C C F F F F F En la practica, cada condicin simple debe ir encerrada en su propio parntesis y las dos condiciones simples tambin deben encerrarse entre sus propios parntesis, como en el siguiente ejemplo; if((sueldo> 500)%%(strcmp(departamento,VENTAS)==0 ) { aqu se construye la pagina que despliegua su cheque semanal } else { aqu se construye y despliega la pagina del bono de despensa o un oficio de motivacin } ;

CONDICIONES COMPUESTAS VISUAL C++ CGI En muchas ocasiones es necesario presentar mas de una condicion para su evaluacion al computador. Por ejemplo que el computador muestre la boleta de un alumno si este estudia la carrera de medicina y su promedio de calificaciones es mayor de 70. Una condicion compuesta se define como dos o mas condiciones simples unidas por los llamados operadores logicos. Los operadores logicos que vcpp reconoce son; OPERADOR SIGNIFICADO && Y LOGICO

O LOGICO ! NO NEGACION

Ejemplo: if ( (carrera==informatica) && ( sexo==m) ) etc, etc, etc. Notas: Observar que cada condicion simple lleva sus propios parentesis. Si la variable es de tipo string el dato va entre comillas(), pero si la variable es de tipo char el dato va entre apostrofes('). Para que el computador evalue como CIERTA una condicion compuesta que contiene el operador logico &&, las dos condiciones simples deben ser ciertas. Para que el computador evalue como CIERTA una condicion compuesta que contiene el operador logico ||, basta con que una de las condiciones simples sea cierta. La cantidad total de casos posibles cuando se unen dos o mas condiciones simples esta dada por la relacion donde n = cantidad de condiciones, la primera mitad de ellos empieza en cierto y la segunda mitad en falso. Ejemplo, si formamos una condicion compuesta con dos condiciones simples y el operador logico y, la cantidad total de casos posibles serian , y se puede construir la siguiente tabla de verdad. Tabla de verdad con y IRA COND SIMPLE 2DA COND SIMPLE EVALUACION C C F F C F C F C F F F

La evaluacion final, se obtiene usando la regla anteriormente descrita para una condicion compuesta, que contiene el operador Y. Esta tabla significa lo siguiente; 1.- Cualquiera que sean la cantidad de datos procesados, siempre caera en uno de estos cuatro casos generales. La tabla de verdad para una condicion compuesta con Or es la siguiente; IRA COND SIMPLE 2DA COND SIMPLE EVALUACION C C F F C F C F C C C F

Construir una tabla de verdad para una condicion compuesta de tres o mas condiciones simples, es tambien tarea sencilla, solo recordar que; 1.- La cantidad posible de casos es casos posibles, la mitad empiezan con Cierto y la otra mitad empiezan con Falso. 2.- Para evaluar esta condicion triple primero se evaluan las dos primeras incluyendo su operador bajo las reglas ya descritas y luego se evalua el resultado parcial contra la ultima condicion y ultimo operador para obtener la evaluacion final.

Ejemplo una condicion compuesta de tres condiciones simples, donde el primer operador logico es el y y el segundo operador logico es el O, daria la siguiente tabla de verdad. Ira cond 2da cond Eval 1a Y 2a 3ra cond Eval eval O 3ra C C C C F F F F C C F F C C F F C C F F F F F F C F C F C F C F C C C F C F C F

CONDICIONES COMPUESTAS PROGRAMACION PASCAL


y Articulos FreePascal En muchas ocasiones es necesario presentar mas de una condicion para su evaluacion al computador. Por ejemplo que el computador muestre la boleta de un alumno, si este estudia la carrera de medicina y su promedio de calificaciones es mayor de 70. Una condicion compuesta se define como dos o mas condiciones simples unidas por los llamados operadores logicos. Los operadores logicos que PASCAL reconoce son:

OPERADOR SIGNIFICADO AND OR NOT Y LOGICO O LOGICO NO NEGACION

Ejemplo: if (sueldo > 700 and sexo='m' then etc, etc, etc. Notas: Observar que cada condicion simple lleva sus propios parentesis. Para que el computador evalue como CIERTA una condicion compuesta que contiene el operador logico and, las dos condiciones simples deben ser ciertas. Para que el computador evalue como CIERTA una condicion compuesta que contiene el operador logico or, basta con que una de las condiciones simples sea cierta. La cantidad total de casos posibles cuando se unen dos o mas condiciones simples esta dada por la relacion donde n = cantidad de condiciones, la primera mitad de ellos ciertos y la segunda mitad falsos. Ejemplo, si formamos una condiciona compuesta con dos condiciones simples y el operador logico y, la cantidad total de casos posibles serian Tabla de verdad con y y se puede construir la siguiente tabla de verdad.

IRA COND SIMPLE 2DA COND SIMPLE EVALUACION C C F F C F C F C F F F

La evaluacion final se obtiene usando la regla anteriormente descrita para una condicion compuesta que contiene el operador and. Esta tabla significa lo siguiente; 1.- Cualquiera que san la cantidad de datos procesados, siempre caera en uno de estos cuatro posibles casos. La tabla de verdad para una condicion compuesta con or es la siguiente;

IRA COND SIMPLE 2DA COND SIMPLE EVALUACION C C F F C F C F C C C F

Como se observa, una condicion compuesta con O, es menos restrictiva, o el 75% de los casos terminarian ejecutando el grupo CIERTO de instrucciones de la instruccion condicional. Construir una tabla de verdad para una condicion compuesta de tres o mas condiciones simples, es tambien tarea sencilla, solo recordar que; 1.- La cantidad posible de casos posibles es la mitad empiezan con cierto y la otra mitad empiezan con falso. 2.- Para evaluar esta condicion triple, primero se evaluan las dos primeras incluyendo su operador bajo las reglas ya descritas y luego se evalua el resultado parcial contra la ultima condicion y el ultimo operador para obtener la evaluacion final. Ejemplo una condicion compuesta de tres condiciones simples, donde el primer operador logico es el y y el segundo operador logico es el O, daria la siguiente tabla de verdad.

Ira cond 2da cond Eval 1a Y 2a 3ra cond Eval eval O 3ra C C C C F F F C C F F C C F C C F F F F F C F C F C F C C C C F C F C

Condiciones compuestas en C# (C Sharp).


En muchas ocasiones es necesario presentar mas de una condicin para su evaluacin al computador. Por ejemplo que el computador muestre la boleta de un alumno si este estudia la carrera de medicina y su promedio de calificaciones es mayor de 70. En C# NET una condicin compuesta se define como dos o mas condiciones simples unidas por los llamados operadores lgicos. Los operadores lgicos que csharp reconoce son:

OPERADOR &&

SIGNIFICAD O Y LOGICO O LOGICO

NEGACION

Para que el computador evale como CIERTA una condicin compuesta que contiene el operador lgico &&, las dos condiciones simples deben ser ciertas. Para que el computador evale como CIERTA una condicin compuesta que contiene el operador lgico ||, basta con que una de las condiciones simples sea cierta. La cantidad total de casos posibles cuando se unen dos o mas condiciones simples esta dada por la relacin donde n = cantidad de condiciones, la primera mitad de ellos empieza en cierto y la segunda mitad en falso. Ejemplo, si formamos una condicin compuesta con dos condiciones simples y el operador lgico y, la cantidad total de casos posibles serian Tabla de verdad con y , y se puede construir la siguiente tabla de verdad.

IRA COND SIMPLE 2DA COND SIMPLE EVALUACION C C F F C F C F C F F F

La evaluacin final, se obtiene usando la regla anteriormente descrita para una condicin compuesta, que contiene el operador Y. Esta tabla significa lo siguiente; 1.- Cualquiera que sean la cantidad de datos procesados, siempre caer en uno de estos cuatro casos generales. La tabla de verdad para una condicin compuesta con Or es la siguiente:

IRA COND SIMPLE 2DA COND SIMPLE EVALUACION C C C

C F F

F C F

C C F

Construir una tabla de verdad para una condicin compuesta de tres o mas condiciones simples es tambin tarea sencilla, solo recordar que; 1.- La cantidad posible de casos es casos posibles, la mitad empiezan con Cierto y la otra mitad empiezan con Falso. 2.- Para evaluar esta condicin triple primero se evalan las dos primeras incluyendo su operador bajo las reglas ya descritas y luego se evala el resultado parcial contra la ultima condicin y ultimo operador para obtener la evaluacin final. Ejemplo una condicin compuesta de tres condiciones simples, donde el primer operador lgico es el y y el segundo operador lgico es el O, dara la siguiente tabla de verdad.

Ira cond 2da cond Eval 1a Y 2a 3ra cond Eval eval O 3ra C C C C F F F F C C F F C C F F C C F F F F F F C F C F C F C F C C C F C F C F

En programacin, una condicin compuesta se refiere a aquella que est compuesta de dos o ms condiciones simples. Por ejemplo, una condicin simple es: ($numero>2) AND (es_par($numero)) En este caso la variable $numero debe ser mayor que dos, y adems ser un nmero par para que la condicin compuesta sea verdadera. Operadores Logicos

4.9.8 Operadores lgicos


1 Sinopsis Los operadores lgicos producen un resultado booleano, ( 3.2.1b), y sus operandos son tambin valores lgicos o asimilables a ellos (los valores numricos son asimilados a cierto o falso segn su valor sea cero o distinto de cero). Por contra, recuerde que las operaciones entre bits ( valores arbitrarios. 4.9.3) producen

Los operadores lgicos son tres; dos de ellos son binarios, el ltimo (negacin) es unar io. Tienen una doble posibilidad de representacin en el Estndar C++ actual: la representacin tradicional que se indica a continuacin, y la natural introducida recientemente que se detalla ms adelante y y Y lgico && O lgico || AND OR .

y Negacin lgica ! NOT Las expresiones conectadas con los operadores && y || se evalan de izquierda a derecha, y la evaluacin se detiene tan pronto como el resultado verdadero o falso es conocido (muchos programas tienen una lgica que se basa en este propiedad). 2 && Operador Y lgico Tambin denominado por su nombre en ingls (generalmente en maysculas) AND lgico. Devuelve un valor lgico true si ambos operandos son ciertos. En caso contrario el resultado es false.
Sintaxis

expr-AND-logica && expresion-OR-inclusive Comentario: La operatoria es como sigue: El primer operando (de la izquierda) es convertido a bool. Para ello, si es una expresin, se evala para obtener el resultado (esta computacin puede tener ciertos efectos laterales). A continuacin, el valor obtenido es convertido a bool cierto/falso siguiendo las reglas de conversin estndar ( 3.2.1b). Si el resultado es false, el proceso se detiene y este es el resultado, sin que en este caso sea necesario evaluar la expresin de la derecha (recurdese que en el diseo de C++ prima la velocidad). Si el resultado del operando izquierdo es cierto, se contina con la evaluacin de la expresin de la derecha, que tambin es convertida a bool. Si el nuevo resultado es true, entonces el resultado del operador es true. En caso contrario el resultado es false. Nota: la Norma informa que antes de ser evaluada la expresin derecha, han sucedido todos los posibles efectos laterales de la expresin izquierda, a excepcin de la destruccin de los posibles objetos temporales que se hubiesen creado. Ejemplo: int m[3] = {0,1,2}; int x = 0; if (m && x) cout << "Cierto."; else cout << "Falso."; Salida: Falso. El valor m, que es interpretado como un puntero al primer elemento de la matriz, es transformado a un bool. Como es distinto de cero (no es un puntero nulo) el resultado es cierto. A continuacin, el valor x es convertido tambin a bool. En este caso la conversin produce falso, con lo que este es el resultado del parntesis de la sentencia if. Ejemplo #include <iostream.h> bool alto = true, bajo = false, blanco = true, negro = false; int main (void) { if (alto && bajo) { cout << "Uno cierto" << endl; } else cout << "Uno falso" << endl; if (alto && blanco) { cout << "Dos cierto" << endl; } else cout << "Dos falso" << endl; if (bajo && negro) { cout << "Tres cierto" << endl; } else cout << "Tres falso" << endl; } Salida: Uno falso Dos cierto Tres falso 3 || Operador O lgico Este operador binario devuelve true si alguno de los operandos es cierto. En caso contrario devuelve false.

Sintaxis

expr-OR-logica || expresion-AND-logica Comentario Este operador sigue un funcionamiento anlogo al anterior. El primer operando (izquierdo) es convertido a bool. Para ello, si es una expresin, se evala para obtener el resultado (esta computacin puede tener ciertos efectos laterales). A continuacin el valor obtenido es convertido a bool cierto/falso siguiendo las reglas de conversin estndar ( 3.2.1b). Si el resultado es true, el proceso se detiene y este es el resultado, sin que en este caso sea necesario evaluar la expresin de la derecha (recurdese que en el diseo de C++ prima la velocidad). Si el resultado del operando izquierdo es false, se contina con la evaluacin de la expresin de la derecha, que tambin es convertida a bool. Si el nuevo resultado es true, entonces el resultado del operador es true. En caso contrario el resultado es false. Nota: el Estndar establece que antes de ser evaluada la expresin derecha, han sucedido todos los posibles efectos laterales de la expresin izquierda, a excepcin de la destruccin de los posibles objetos temporales que se hubieran creado. Ejemplo #include <iostream.h> bool alto = true, bajo = false, blanco = true, negro = false; int main (void) { if (alto || bajo) { cout << "Uno cierto" << endl; } else cout << "Uno falso" << endl; if (alto || blanco) { cout << "Dos cierto" << endl; } else cout << "Dos falso" << endl; if (bajo || negro) { cout << "Tres cierto" << endl; } else cout << "Tres falso" << endl; } Salida Uno cierto Dos cierto Tres falso 4 ! Operador NO lgico: Este operador es denominado tambin negacin lgica y se representa en el texto escrito por la palabra inglesa NOT (otros lenguajes utilizan directamente esta palabra para representar el operador en el cdigo).
Sintaxis

! expresion-cast Comentario 1.2.1) es El operando expresion-cast (que puede ser una expresin que se evala a un resultado convertido a tipo bool, con lo que solo puede ser uno de los valores cierto/falso. A continuacin el operador cambia su valor: Si es cierto es convertido a falso y viceversa. Resulta por tanto, que el resultado de este operador es siempre un tipo bool, aunque al existir una conversin estndar por la que un cero es convertido a false, y cualquier valor distinto de cero a true ( 3.2.1b), coloquialmente se dice que este operador convierte un operando 0 en 1 y uno no-cero en 0. En otras palabras: este operador devuelve cierto (true) si la expresin se evala a distinto de cero, en caso contrario devuelve falso (false). Ejemplo #include <iostream.h> bool alto = true, bajo = false; int main (void) { if (alto) { cout << "Uno cierto" << endl; } else cout << "Uno falso" << endl; if (!alto) { cout << "Dos cierto" << endl; } else cout << "Dos falso" << endl; if (!bajo) { cout << "Tres cierto" << endl; } else cout << "Tres falso" << endl; } Salida:

Uno cierto Dos falso Tres cierto Si E es una expresin, !E es equivalente a (0 == E). Como consecuencia, las expresiones que siguen son equivalentes dos a dos: if (! valid); if (valid == 0); ... if (valid); if (valid != 0); 7 Representacin explcita Los operadores lgicos entre valores lgicos &&, ||, !; la relacin de desigualdad !=; algunos de los operadores lgicos entre bits (&, |, ^, ~) y sus expresiones compuestas (&=, |=, ^=), tienen una representacin realmente difcil de leer, con la desventaja adicional que sus smbolos no siempre estn fcilmente accesibles en ordenadores con teclados distintos del estndar USA. Para resolver este problema, el Estndar C++ ha introducido nuevas formas para su representacin; las denominamos formas explcitas o naturales, en razn de que se parecen ms a las palabras correspondientes del lenguaje natural. Las nuevas formas constituyen palabras-clave, y la tabla de equivalencias es la siguiente: Palabra Smbolo Referencia Descripcin clave and or not bitand xor bitor compl and_eq xor_eq or_eq not_eq && || ! & ^ | ~ &= ^= |= != 4.9.3 4.9.3 4.9.3 4.9.3 Operador Y lgico Operador O lgico Operador negacin lgica Operador AND entre bits Operador OR exclusivo entre bits Operador OR inclusivo entre bits Operador complemento a uno de bits

Asignacin compuesta (AND entre 4.9.3 bits) Asignacin compuesta (XOR entre 4.9.3 bits) 4.9.3 Asignacin compuesta (OR entre bits)

4.9.12 Operador relacional de desigualdad

Nota: ni el compilador Borland C++ 5.5 ni MS VC++ 6.0 soportan esta caracterstica del estndar, aunque el de Microsoft anuncia en su documentacin que pueden utilizarse "defines" ( 4.9.10b). Por ejemplo: #define bitand & #define bitor | #define and_eq &= #define or_eq |= #define not_eq != Por su parte, el compilador GNU gcc dispone de la opcin de compilacin -fno-operator-names, que permite que las palabras-clave and, bitand, bitor, compl, not, y or, no sean tratadas como sinnimos de los operadores correspondientes.

Operadores logico en C ++ algunos operadores que resultaban en un verdadero ( true) o un falso (false) al usarse con nmeros o variables, estos eran: == operador de igualdad en C != operador de desigualdad > mayor < menor >= mayor o igual <= menor o igual Con estos se pueden construir expresiones sencillas como: numero <= 7, dependiendo del valor de la variable numero esa expresin puede ser verdadera o falsa. Este tipo de expresiones se utiliza n para las condiciones en las estructuras de repeticin y de seleccin. Pero es posible construir expres iones ms complejas utilizando otros operadores lgicos: && ( Y lgico) // (O lgico) ! (NO lgico o negacin lgica) Veamos qu significan cada uno de ellos: valor = (expresion1 && expresion2) En este caso si expresion1 y expresion2 son verdaderas, valor resulta verdadero (true). Si alguna o ambas de las expresiones son falsas, valor resulta en falso ( false). valor = (expresion1 // expresion2) En este caso si ambas expresiones son verdaderas, valor resulta verdadero. Si una de las expresiones es verdade ra y la otra falsa, valor resulta verdadero. Si las dos expresiones son falsas, valor resulta falso. valor = (!expresion1) En este caso si la expresin es verdadera, valor resulta falso. Si la expresin es falsa, valor resulta falso. Se puede usar && de la siguiente manera: if (edad >= 12 && edad <= 20) { printf( Usted es adolescente ); }

Anda mungkin juga menyukai