Mostrando entradas con la etiqueta algoritmo. Mostrar todas las entradas
Mostrando entradas con la etiqueta algoritmo. Mostrar todas las entradas

Operadores de asignación

C dispone de varios operadores de asignación para la abreviatura de las expresiones de asignación. Por ejemplo, el enunciado

c = c + 3;

puede ser abreviado utilizando el operador de asignación += como 

c += 3;

El operador += añade el valor de la expresión, a la derecha del operador, al valor de la variable a la izquierda del operador, y almacena el resultado en la variable a la izquierda del operador. Cualquier enunciado de la forma

variable = variable operador expresión;

donde operador es uno de los operadores binarios +, -, *, / o %, pueden ser escritos de la forma

variable operador = expresión;

Por lo tanto la asignación c += 3 añade 3 a c. En la tabla siguiente aparecen los operadores de asignación aritméticos, con expresiones de muestra utilizando estos operadores y con explicaciones.

Cómo formular algoritmos con refinamiento descendente paso a paso: Estudio del caso 2 (repetición controlada por centinela)

Generalicemos el problema de promedios de clase: considere el problema siguiente:

Desarrolle un programa de promedios de clase que pueda procesar un número arbitrario de notas, cada vez que se ejecute el programa.

En el primer ejemplo de promedio de clase (Estudio de caso 1), se sabía por anticipado el número de notas (5). En este ejemplo, no se da ninguna indicación de cuantas notas se tomarán. El programa debe ser capaz de procesar un número arbitrario de notas. ¿Cómo podrá el programa determinar cuándo parar la captura de notas? ¿Cuándo sabrá que debe calcular e imprimir el promedio de clase?

Una forma de resolver este problema es utilizar un valor especial llamado un valor centinela (también conocido como valor señal, un valor substituto, o un valor bandera) que indicará "fin de la captura de datos". El usuario escribirá notas hasta que haya capturado todas las notas. Entonces escribirá un valor centinela, a fin de indicar que ha sido introducida la última nota. La repetición controlada por centinela a menudo se llama repetición indefinida, porque antes de que se empiece a ejecutar el ciclo el número de repetición no es conocido.

Claramente, el valor centinela deberá ser seleccionado de tal forma que no se confunda con algún valor de entrada aceptable. Dado que normalmente las notas de un examen son enteros no negativos, para este problema, -1 resulta un valor centinela aceptable. Entonces, una ejecución del programa de promedios de clase pudiera procesar un flujo de entradas como 95, 96, 75, 74, y -1. El programa a continuación calcularía e imprimiría el promedio de clase para las notas 95, 96, 75, y 74 (-1 es el valor centinela y, por lo tanto, no debe entrar en el cálculo de promedio).

Cómo formular algoritmos: Estudio de caso 1 (repetición controlada por contador)

A fin de ilustrar cómo se desarrollan los algoritmos, resolveremos algunas variantes de un programa de promedios de clase. Considere el siguiente enunciado de programa:

Una clase de cinco alumnos hizo un examen. Las notas (enteros en el rango 0 a 100) correspondientes a este examen están a su disposición. Determine el promedio de la clase en este examen.

El promedio de la clase es igual a la suma de las notas dividida por el número de alumnos. El algoritmo para resolver este problema en una calculadora:

Debe introducir cada una de las calificaciones
Ejecutar el cálculo de promedio
Imprimir el resultado.

Utilicemos el seudocódigo, enlistemos las acciones a ejecutarse, y especifiquemos el orden en el cual estas acciones deberán ser ejecutadas. Utilizaremos repetición controlada por contador, para introducir las calificaciones una a la vez. Esta técnica utiliza una variable llamada contador para definir el número de veces que deberá ejecutarse un conjunto de enunciados. En este ejemplo, la repetición terminará cuando el contador exceda de 5.

El algoritmo en seudocódigo será