miércoles, 15 de abril de 2009

Unidad 5 (Resumen)



Con la primera sentencia comienza la ejecucion 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.

lunes, 30 de marzo de 2009

Examen..!! de la unidad 4

1.-Defina los siguientes conceptos y proporciones y al menos tres ejemplos de cada un de ellos:
*Operadores aritmeticos:
*Operadores logicos:
*Operadores relacionales:
2.-¿Que son las reglas de prioridad y asociatividad?
3.-Proporcione un ejemplo de cada tipo de operador de asignacion que existe y describa su funcion:
4.-Explique que son los operadores de incremento y decremento, proporcione dos ejemplos de cada uno y su funcion.
5.-Liste los operadores relacionales, proporcione un ejemplo y su funcion.
6.-Construya las tablas de verdad de las operaciones AND, y OR
7.-¿que es un operador de direccion, cuales existen y explique su funcionamiento.
8.-Proporcione tres ejemplos de operadores condicionales y su funcion.
9.-Proporcione dos ejemplos que utilicen el operador coma y explique su funcion.
10.-Explique la funcion del operador { } y proporcione dos ejemplos.
11.-A que se refiere la conversion de tipos.
12.-Enliste los operadores con mayor grado de prioridad (al menos cuatro niveles).

jueves, 19 de marzo de 2009

en este prog aprendemos a ver como interpretar variables de dif. maneras..!!

# include
int main ()
{
int i;
i=5;
printf("el valor de i es igual a %d",i);
i*=10;
printf("\nahora el valor de i es %d",i);
}

jueves, 12 de marzo de 2009

declaracion de variable al inicio

#include
/* diferentes declaraciones */
int main ()
{
int x, y1; /* declarar a las variables x e y1 en la funcion main() */
x=75;
y1=89;
if (x > 10)
{
int y2 = 50; /*declara e inicialzla variable y2 en el bloque if */
y1 = y1 + y2;
}
printf ("x = %d, y1 = %d\n",x,y1);
return 0;
}

miércoles, 11 de marzo de 2009

/*nombre del archivo demoinc2.c utiliza dos archivos de cabezera
*/

#include
#include

int main ()
{
char mensaje[20];
strcpy (mensaje, "Atapuerca\n");
/* Las dos lineas anteriores tambien se pueden sustituir por char mensaje[20] = "Atapuerca\n";
*/ printf (mensaje);
return 0;
}
/*
nombre del archivo demoinc2.c utiliza dos archivos de cabezera
*/
#include
#include
int main ()
{
char mensaje[20];
strcpy (mensaje, "Atapuerca\n");
/* Las dos lineas anteriores tambien se pueden sustituir por char mensaje[20] = "Atapuerca\n";
*/ printf (mensaje);
return 0;
}

lunes, 9 de marzo de 2009

"midirec.c"

# include
int main ()
{
#include "midirec.c"
return 0;
}