Professional Documents
Culture Documents
Motor Fino
Motor Fino
1
objetivos
2
índice
operadores de asignación
operadores incrementales y decrementales
instrucciones de repetición
Instrucción de repetición while
Sintaxis while
3
operadores de
asignación
algo = algo;
La variable algo toma el valor de algo; todo queda como antes. Ahora aumentemos el
valor de la variable en 10 unidades.
4
algo = algo + 10;
Aquí la variable toma el valor que tenía mas 10 unidades. Existe una forma de
simplificar la notación anterior. Es la siguiente:
Hay un tipo de error que los programadores de C++, sin importar su experiencia,
tienden a cometer con tanta frecuencia que creemos requiere una mención
separada. Ese error es el de intercambiar accidentalmente los operadores ==
(igualdad) y = (asignación). Lo que hace a estos intercambios tan peligrosos es el
hecho de que por lo general no producen errores sintácticos. En lugar de ello, las
instrucciones con estos errores tienden a compilarse correctamente y el programa se
ejecuta hasta completarse, generando a menudo resultados incorrectos a través de
errores lógicos en tiempo de ejecución.
Hay dos aspectos de C++ que contribuyen a estos problemas. Uno de ellos establece
que cualquier expresión que produce un valor se puede utilizar en la porción
correspondiente a la decisión de cualquier instrucción de control. Si el valor de la
expresión es cero, se trata como false, y si el valor es distinto de cero, se trata como
true. El segundo establece que las asignaciones producen un valor, a saber, el valor
asignado a la variable del lado izquierdo del operador de asignación. Por ejemplo,
suponga que tratamos de escribir:
if ( codigoPago == 4 )
cout << "Obtuvo un bono!" << endl;
if ( codigoPago = 4 )
cout << "Obtuvo un bono!" << endl;
4
la persona siempre recibe un bono sin importar cual sea el código de pago! Aun peor,
!el código de pago se ha modificado, cuando se supone que sólo debía examinarse!
4
operadores
incrementales y
decrementales
■ Además de los operadores de asignación
aritméticos, C++ proporciona dos
operadores unarios para sumar 1, o restar
1, al valor de una variable numérica.
A diferencia de los operadores binarios (lógicos), los operadores unarios de incremento y decremento
deben colocarse enseguida de sus operandos, sin espacios entre ellos
5
incremento/decremento no es una expresión (Ej.: Go), sólo se necesita una versión
(en el caso de Go, solo post operadores).
Dado que el operador de incremento/decremento modifica su operando, el uso de
más de una vez dentro de la misma expresión puede producir resultados no
definidos. Por ejemplo, en expresiones tales como x − ++x, no está claro en qué orden
se deben realizar la resta y el operador de incremento. Situaciones como esta son
aun peores cuando se aplican optimizaciones por el compilador, lo que podría dar
lugar a un orden de ejecución de operaciones diferente de lo que pretende el
programador.
Se define como operación unaria aquella operación matemática, que sólo necesita el
operador y un único operando (argumento) para que se pueda calcular un valor.
5
instrucciones de
repetición
■ C++ cuenta con tres instrucciones de repetición (también
llamadas instrucciones de ciclo o ciclos) que permiten a los
programas ejecutar instrucciones en forma repetida, siempre
y cuando una condición (llamada la condición de
continuación del ciclo) siga siendo verdadera.
■ Se le conoce como bucle o ciclo, estructuras de control
iterativas o de repetición. Se debe colocar especial énfasis
en evitar ciclos infinitos ya que provocarán un error lógico
que puede llevar a “quedar colgado” o “congelado” el
programa.
■ Las instrucciones de repetition se implementan con las
instrucciones while, do...while y for.
■ En el momento en que la declaración se vuelve falsa, el
control sobre el programa es cambiado a la línea que sigue
inmediantemante después del ciclo.
■ Estas se pueden anidar, entre ellas mismas, o bien con
estructuras de selección o viceversa
6
Existen muchos tipos de estructuras de repetición y cambian significativamente entre
ellas dependiendo del lenguaje de programación pero se pueden clasificar en dos
tipos de estructuras principales: estructuras controladas por una condición y
estructuras controladas por un contador.
6
instrucción de repetición while
■ Una instrucción de repetición repite una
acción mientras cierta condición sea
verdadera.
■ es un ciclo repetitivo basado en los
resultados de una expresión lógica
■ la instrucción de repetición Mientras
(while) constituye el cuerpo de esta
estructura, el cual puede ser una sola
instrucción o un bloque. En algún
momento, la condición se hará falsa. En
este punto la repetición terminará y se
ejecutará la primera instrucción que esté
después de la instrucción de repetición.
■ Si no tenemos una declaración que
eventualmente evalúe a falso, el bucle
continuaría su ejecución indefinidamente.
Condición
La condición ha de ser una sentencia que devuelva un valor booleano, y esta puede
ser el valor booleano sí, verdadero (true) si la condición se cumple, o falso si esta no
se cumple (false). También puede contener el nombre de una variable booleana, y el
valor de la expresión dependerá de su contenido. Se debe tener en cuenta que
además de las variables también puede haber llamadas a funciones que devuelvan un
valor.
Secuencias de Comparación
La forma más obvia tal vez, y la más usada sin duda, son las sentencias comparativas,
que usan los operandos igual, diferente, menor o igual, mayor o igual, menor y
mayor. En el caso del lenguaje C++, se utilizan los siguientes símbolos para
representar las comparaciones anteriores: ==, !=, <=, >=, <, >,
7
sintaxis while
■ La condición puede ser controlada por un contador o
por un centinela.
■ A la repetición controlada por contador se le llama
comúnmente repetición definida, ya que el número de
repeticiones se conoce antes de que el ciclo empiece
a ejecutarse. Un contador es una variable que se
utiliza para contar.
■ A la repetición controlada por centinela a menudo se le
llama repetición indefinida, ya que el número de
repeticiones no se conoce antes de que comience la
ejecución del ciclo. El centinela es un valor especial
denominado valor de señal, valor de prueba o valor de
bandera para indicar el fin del bucle.
En la repetición controlada por contador se utiliza una variable de control para contar
el numero de repeticiones. La variable de control es incrementada
(normalmente en 1) cada vez que se ejecuta el grupo de instrucciones dentro de la
repetición. Cuando el valor de la variable de control indica que se ha
ejecutado el numero correcto de repeticiones se termina el ciclo y la computadora
continua ejecutando el enunciado siguiente al de la estructura de repetición.
8
Los valores centinela se utilizan para controlar la repetición cuando:
El valor centinela indica ”fin de datos”. El centinela es introducido una vez que al
programa se le han proporcionado todos los datos. Los centinelas deben ser un valor
diferente a los valores que toman los datos.
8
9