jueves, 7 de mayo de 2009

Resumen Capitulo 6 Estructuras de control: Bucles

Introduccion
Uno de las caracteristicas de las computadoras que aumentan considerablemente su potencia es su capacidad para ejecutar una tarea muclas (repetidas veces con gran velocidad, precision y fiabilidad cosa que nosotros los humanos encontramos dificiles y tediosas de realizar.
En este capitulo se estudian las estructuras de control iteractivas o repetitivas que realizan la repeticion o iteracion de acciones. C soporta tres tipos de estructuras de control: Los bucles while, for y do-while.
6.1 Sentencia While
Un bucle (ciclo) es cualquier construccion de programa que repite una sentencia o secuencia de sentencias un numero de veces. La sentencia que se repiten en un bloque se denomina cuerpo de un bucle y cada repeticion del cuerpo del bucle se llama iteracion del bucle.
Un bucle while tiene una condicion del bucle(una expresion logica) que controla la secuencia de repeticion. La posicion de esta condicion del bucle es delante del cuerpo del bucle y significa que un bloque while en un bucle pretest de modo que cuando se ejecuta el mismo se evalua la concicion antes de que se ejecute el cuerpo del bucle.
El comportamiento o funcionamiento de una sentencia (bucle) while es:
  1. Se evalua la condicion bucle
  2. Si condicion bucle es verdadera (distinto de cero) :
  • La sentencia especificada denominada cuerpo del bucle; se ejecuta
  • Devuelve el control al paso

3. En caso contrario:

  • El control se transferira a la sentencia siguiente al bucle o sentencia while

6.2 Repeticion: El bucle for

El bucle for de C es mas potente que los bucles for de otros lenguajes de programacion clasicos ya que ofrece mas control sobre la inicializacion y el incremento de las variables de control del bucle. Ademas el bucle while C proporciona otros dos tipos el for y el do.

El for que se estudia en esta parte es el mas adecuado para implementar bucles controlados por contador y se utiliza el algoritmo " Por cada valor de una variable-contador de un rango especifico; ejecutar sentencias

La sentencia for en un modo para ejecutar un bloque de sentencias de un numero fijo de veces. El bucle for se diferencia del while por que este se situa en la cabecera de la sentencia.

6.3 Precaucciones en el uso de for

El bucle for se debe construir con gran precaucion asegurandose que la expresion de inicializacion la condicion del bucle y la expresion de incremento haran que la condicion del mismo se convietrtan en false en algun momento.

6.3.1 Bucles infinitos

El uso principal de un bucle for es simplemente bucles de conteo en el que el numero de conteo en el que el numero de repeticiones se conoce por anticipado.

6.4 Repeticion del bucle do...while

La secuencia do-while se utiliza para especificar un bucle condicional que se ejecuta al menos 1. Esta situacion se suele dar en algunas circunstancias en las que se ha de tener la seguridad de que una accion se ejecutara una o varias veces, pero almenos una vez.

6.4.1 Diferencias entre while y do-while

Una sentencia do-while es similar a la while excepto que el cuerpo del bucle se ejecutara siempre al menos una vez.

6.5 Comparacion de bucles while, for y do-while

C proporciona las tres sentenicas anterioes para el control de bucles. El while se repite mientras su condicion de repeticion del bucle sea verdadero; el bucle for significa que se utiliza normalmente cuando el conteo este implicado o bien en el numero de iteraciones requeridas se puedan determinar al principio de la ejecucion del bucle o simplemente cuando exista una necesidad de seguir el numero de veces que un suceso particular tiene lugar. El bucle do-while se ejecuta de un modo similar a while excepto que las sentencias del cuerpo del bucle se ejecutan siempre al menos una vez.

6.6 Diseño de bucles

El diseño de un bucle necesita tres puntos a considerar

  1. El cuerpo del bucle
  2. Las sentencias de inicializacion
  3. Las condiciones para la terminacion del bucle

Final de un bucle

Existen cuatro metodos para terminar un bucle de entrada:

  1. Alcanzar el tamaño de la secuencia de entrada
  2. Preguntar antes de la iteracion
  3. Secuencia de entrada terminada con un valor centinela
  4. Agotamiento de la entrada

Bucles for vacios

La entrada nula (;) es una sentencia que esta en el cuerpo del bucle y no hace nada. Un bucle for se considera vacio si consta de la cabecera y de la sentencia nula(;)

6.7 Bucles anidados

Es posible anidar bucles. Los bucles anidados constan de un bucle externo con uno o mas bucles internos. Cada vez que se repite el bucle externo, los bucles internos se repiten, se vuelven a evaluar los componentes de control y se ejecutan todas las iteraciones requeridas.

6.8 Enumeraciones

Un enum es un tipo definido por el programador con constantes simbolicas de tipo entero. En la declaracion de un tipo enum se escribe una lista de identificadores que internamente se asocian con las constantes enteras 0, 1 ,2 , 3 .......

Los miembros datos de un enum se llaman enumeradores y la constante entera por defecto del primer enumerados de una lista de los miembros datos es igual a 0. Observese que los miembros de un tipo enum reparan por eloperador coma. El ejemlo anterior es equivalente a la definicion de las tres constantes rojo, verde y azul

const int rojo = 0;

const int verde = 1;

const int azul = 2;

viernes, 24 de abril de 2009

jueves, 23 de abril de 2009

Ejercicio que vale por 2 y tarea

Un fabricante de montañas rusas desea un sistema que escanee la altura de los prospectos y determine si son aptos para utilizar el juego el sistema debe de mostrar el mensaje aceptado para utilixar el juego y/o para utilizar el juego el limite de altura es 1.30 mts. Realizar la lectura en centimetros.






Realizar un programa que determine si una persoan puede o no votar.






martes, 21 de abril de 2009

exx

Realizar un programa que traduzca de numero o palabra basada en la entrada que le da el usuario; por ejemplo si el usuario le da un cero 0 el sitema debe decir cero en palabra el rango sera de 0 a 5















Realizar un programa que lea un caracter y determine si es vocal o no vocal

martes, 14 de abril de 2009

Resumen Capitulo 5 - Estructuras de seleccion de sentencias

Introduccion
La ejecucion comienza con la primera sentencia de la funcion y prosigue asta la ultima sentencia cada una de las cuales se ejecuta una sola vez. Esta forma de programacion es adecuada para resolver problemas sencillos.
Las estructuras de control se dividen en tres categorias de flujo de ejecucion: Secuencia, seleccion y repeticion.

5.1 Estructura de control.
Las estructuras de control controlan el flujo de ejecucion de un programa o funcion. Las estructuras de control permiten combinar estructuras o sentencias individuales en una simple unidada logica con un punto de entrada y un punto de salida.
Las estructuras o sentencias se organizan en tres tipos de estructuras de control que sirven para controlar el flujo de la ejecucion: secuencia, seleccion(desicion) y repeticion.

5.2 La sentencia "if"
En C la estructura de control de seleccion principal es una sentencia if. La sentencia if tiene dos alternativas para formar posibles.
La sentencia if funciona de la siguiente manera. Cuando se alcanza la sentencia if dentro de un programa, se evalúa la expresión entre paréntesis que viene a continuación de if. Si expresión es verdadera, se ejecuta Acción; en caso contrario no se ejecuta Acción (en su formato más simple, Acción es una sentencia simple y en los restantes formatos es una sentencia compuesta).
5.3 Sentencia if de dos alternativas: if-else
Un segundo formato de la sentencia if es la sentencia if-else. Este formato de la sentencia if tiene la siguiente sintaxis:
En este formato Acción1 y Accion2 son individualmente, o bien una única sentencia que termina en un punto y coma (;) o un grupo de sentencias encerrado entre llaves. Cuando se ejecuta la sentencia if - else, se evalúa Expresión. Si Expresión es verdadera, se ejecuta Acción1 y en caso contrario se ejecuta Acción.
5.4 Sentencias if-else anidadas
Hasta este punto, las sentencias if implementan decisiones que implican una o dos alternativas. Una sentencia if es anidada cuando la sentencia de la rama verdadera o la rama falsa, es a su vez una sentencia if. Una sentencia if anidada se puede utilizar para implementar decisiones con varias alternativas o multi-alternativas.La sentencia if anidada tiene tres alternativas. Se incrementa una de las tres variables (num_pos, num_neg y num_ceros) en 1, dependiendo de que x sea mayor que cero, menor que cero o igual a cero respectivamente. Las cajas muestran la estructura lógica de la sentencia if anidada; la segunda sentencia if es la acción o tarea Falsa (a continuación de else) de la primera sentencia if. La ejecución de la sentencia if anidada se realiza como sigue: se comprueba la primera condición (x > O); si es verdadera, num_pos se incrementa en 1 y se salta el resto de la sentencia if. Si la primera condición es falsa, se comprueba la segunda condición (x <>)
5.4.1. Sangría en las sentencias if anidadas
El formato multibiturcación se compone de una serie de sentencias if anidadas, en cada línea se puede escribir una sentencia if.
5.4.2. Comparación de sentencias if anidadas y secuencias de sentencias if
Los programadores tienen dos alternativas: 1) Usar una secuencia de sentencias if;
2) Una única sentencia if anidada. Por ejemplo, la sentencia if del Ejemplo 5.7. se puede reescribir como la siguiente secuencia de sentencias if:
5.5 Sentencia de control switch
La sentencia switch es una sentencia C que se utiliza para seleccionar una de entre múltiples alternativas. La sentencia switch es especialmente útil cuando la selección se basa en el valor de una variable simple o de una expresión simple denominada expresión de control o selector. El valor de esta expresión puede ser de tipo int o char, pero no de tipo float ni double.La expresión de control o selector se evalúa y se compara con cada una de las etiquetas de case. La expresión selector debe ser un tipo ordinal (por ejemplo, it, char, pero no float o string). Cada etiqueta es un valor único, constante y cada etiqueta debe tener un valor diferente de los otros. Si el valor de la expresión selector es igual a una de las etiquetas case —por ejemplo, etiquetar— entonces la ejecución comenzará con la primera sentencia de la secuencia sentencia1 y continuará hasta que se encuentra el final de la sentencia de control switch, o hasta encontrar la sentencia break. Es habitual que después de cada bloque de sentencias correspondiente a una secuencia se desee terminar la ejecución del switch; para ello se sitúa la sentencia break como última sentencia del bloque. La sentencia break; hace que siga la ejecución en la siguiente sentencia al switch.
5.5.1. Caso particular de case
Está permitido tener varias expresiones case en una alternativa dada dentro de la sentencia switch.
5.5.2. Uso de sentencias switch en menús
La sentencia if - else es más versátil que la sentencia switch y se pueden utilizar unas sentencias if else anidadas o multidecisión, en cualquier parte que se utilice una sentencia case. Sin embargo, normalmente, la sentencia switch es más clara. Por ejemplo, la sentencia switch es idónea para implementar menús. Un menú en un programa de computadora hace la misma función: presentar una lista de alternativas en la pantalla para que el usuario elija una de ellas.

5.6 Expresiones condicionales: el opreador ?:
Las sentencias de selección (if y switch) consideradas hasta ahora, son similares a las sentencias previstas en otros lenguajes, tales como Pascal y Fortran 90. C tiene un tercer mecanismo de selección, una expresión que produce uno de dos valores, resultado de una expresión lógica o booleana (también denominada condición). Este mecanismo se denomina expresión condicional. Una expresión condicional tiene el formato C ? A : B y es realmente una operación ternaria (tres operandos) en el que C, A y B son los tres operandos y ? : es el operador.
Se evalúa condición, si el valor de condición es verdadera (distinto de cero) entonces se devuelve como resultado el valor de expresión1 si el valor de condición es falsa (cero) se devuelve como resultado el valor de expresion2. Una aplicación del operador condicional (?:) es llamar a una de dos funciones según el valor de la variable.

5.7 Evaluacion al cortocircuito de expresiones logicas
Cuando se evalúan expresiones lógicas en C se emplea una técnica denominada evaluación en cortocircuito. Este tipo de evaluación significa que se puede detener la evaluación de una expresión lógica tan pronto como su valor pueda ser determinado con absoluta certeza. Por ejemplo, si el valor de (soltero == ‘s‘) es falso, la expresión lógica (soltero == ‘s’) && (sexo ‘h’) && (edad > 18) && (edad <= 45) será falsa con independencia de cual sea el valor de las otras condiciones. La razón es que una expresión lógica del tipo falso && (...) debe ser siempre falsa, cuando uno de los operandos de la operación AND es falso. En consecuencia no hay necesidad de continuar la evaluación de las otras condiciones cuando (soltero == ‘s’) se evalúa a falso. El compilador C utiliza este tipo de evaluación. Es decir, la evaluación de una expresión lógica de la forma, a && a. se detiene si la subexpresión a de la izquierda se evalúa a falsa. C realiza evaluación en cortocircuito con los operadores && y , de modo que evalúa primero la expresión más a la izquierda de las dos expresiones unidas por && o bien por . Si de esta evaluación se deduce la información suficiente para determinar el valor final de la expresión (independiente del valor de la segunda expresión), el compilador C no evalúa la segunda expresión.

5.9 Errores frecuentes de programacion
Uno de los errores mas comunes es una sentencias if es utilizar un operador de asignacion (=) en lugar de un operador de igualdad (==).en una sentencia if anidada cada clausula else corresponde con la if precedente mas cercana. Las comparaciones con operadores == de cantidades algebraicamente iguales pueden producir una expresion logica falsa. Cuando en una sentencia switch o en un bloqueo de sentencias falta una de las llaves, aparece un mensaje de error.el selector de una sentencia switch debe ser de tipo entero o compatible entero. asi las contantes reales. Cuando se utiliza una sentencia switch asegurese que el selecto de switch y las etiquetas case son del mismo tipo. Normalmente debera escribir la sentencia break despues de la accion que se desea que ejecute cada uno de los case de la sentencia switch.

martes, 31 de marzo de 2009

Cuestionario Cap 4 - Tercer parcial

1. Defina los siguientes conceptos y proporciones al menos 3 ejemplos:Operadores aritmeticosOperadores logicosOperasores relacionales
2. Que son la reglas de prioridad y asociatividad?
3. Proporcione un ejemplo de cada tipo de opèrador de asignacion que existe y describa su funcion.
4. Explique que son los operadores de incremento y decremento, proporcione 2 ejemplos de cada uno y su funcion.
5. Enliste los operadores relacionales, proporcione un ejemplo y su funcion.
6. Construya la tablas de verdad de la operaciones and y or.
7. Que es un operador de direccion. Cuales existen y explique su funcionamiento.
8. Proporcione 3 ejemlpos de operadores condicionales y su funcion.
9. Proporciones 2 ejemplos que utlicen el operador coma y explique su funcion.
10. Explique la funcion del operador corchete [] y proporcione 2 ejemplos.
11. A que se refiera ala conversion de tipos.
12. Enliste los operadores con mayor grado de prioridad(al menos 4 niveles).

viernes, 27 de marzo de 2009