UNIDAD III ESTRUCTURA DE CONTROL
Enviado por Jackie8o • 7 de Noviembre de 2019 • Práctica o problema • 3.991 Palabras (16 Páginas) • 125 Visitas
UNIDAD III
ESTRUCTURA DE CONTROL
3.1 PROPOSICIONES Y BLOQUES
PROPOSICIÓN: Sentencias en C que terminan con un punto y coma.
x = 0 ;
Ya que C es un lenguaje estructurado, soporta bloques de código
BLOQUES: Serie de sentencias o proposiciones agrupadas entre llaves { }, conectadas lógicamente, que la computadora trata como una unidad.
Son una unidad lógica: una sentencia no se puede ejecutar sin la otra.
Pueden ser también llaves que encierran a una función o proposiciones múltiples después de un if, else, while o for.
ESTRUCTURAS DE CONTROL:
Se pueden dividir en tres categorías:
1.- Instrucciones condicionales: IF y SWITCH
2.- Sentencias de control de bucle: WHILE, FOR, y DO-WHILE.
3.- Instrucción de bifurcación incondicional: GOTO.
3.2 IF-ELSE
La proposición IF-ELSE se utiliza para expresar decisiones, la sintaxis es:
if (condición)
sentencia1;
else
sentencia2;
condición: expresión que se evalúa para ver si es Verdad o Falsa
else: Es opcional.
Funcionamiento de if:
- Si condicion = V o 1, se ejecutará la sentencia o bloque que forma el objetivo de if.
- De lo contrario si existe else, la computadora ejecutará la sentencia o bloque que es el objetivo de else.
- Solo el código asociado con if o el else se ejecutará –Nunca ambos.
- El objetivo de if como de else, pueden ser sentencias simples o bloques de sentencias.
* Recordar que un if o else, con varias sentencias, estas deberán colocarse entre llaves.
PROGRAMA DE EJEMPLO 10
/*PROGRAMA CONVERSOR DE NUMEROS
VERSION 1
CONDICIONAL IF*/
#include
#include
void main ()
{
int opcion, valor;
clrscr ();
printf(" PROGRAMA VERSION 1\n");
printf("CONVERSION:\n");
printf(" 1: DECIMAL A HEXADECIMAL\n");
printf(" 2: DECIMAL A OCTAL\n");
printf(" 3: DECIMAL A OCTAL\n");
printf(" 4: OCTAL A DECIMAL\n");
printf("\nINTRODUZCA UNA OPCION: ");
scanf ("%d", &opcion);
if (opcion==1)
{
printf("INTRODUZCA UN VALOR DECIMAL: \n");
scanf ("%d", &valor);
printf("%d EN HEXADECIMAL ES: %x", valor, valor);
}
if (opcion==2)
{
printf("INTRODUZCA UN VALOR HEXADECIMAL: \n");
scanf ("%x", &valor);
printf("%x EN DECIMAL ES: %d", valor, valor);
}
if (opcion==3)
{
printf("INTRODUZCA UN VALOR DECIMAL: \n");
scanf ("%d", &valor);
printf("%d EN OCTAL ES: %o", valor, valor);
}
if (opcion==4)
{
printf("INTRODUZCA UN VALOR OCTAL: \n");
scanf ("%o", &valor);
printf("%o EN DECIMAL ES: %d", valor, valor);
}
getch ();
}
PROGRAMA DE EJEMPLO 11
/*PROGRAMA QUE MUESTRA SENTENCIA IF-ELSE*/
#include
#include
void main ()
{
int i;
clrscr();
printf("INTRODUZCA UN NUMERO: \n");
scanf ("%d", &i);
if (i<0)
printf("EL NUMERO ES NEGATIVO\n");
else
printf("EL NUMERO ES POSITIVO O CERO");
getch();
}
ESCALONADOR IF-ELSE-IF
if (condición)
sentencia;
else if (condición)
sentencia;
else if (condición)
sentencia;
.
.
.
else
sentencia;
Funcionamiento de if-else-if:
- La computadora evalúa las expresiones condicionales desde arriba y va descendiendo.
- Cuando la computadora encuentra una condición verdadera, ejecuta la sentencia asociada y salta el resto de la escalera.
- Si no son verdad ninguna condición se ejecutará el else final, este actúa como condición por defecto, es decir por si fallan todas las anteriores.
- Si no hay else final y son falsas las otras condiciones, no se hace nada.
En la primera versión del programa cada sentencia de if se evaluaba en secuencia, aunque alguna de las primeras sentencias hubiera sido verdadera, sin embargo la evaluación de todos los ifs, no es ni muy eficiente ni muy elegante, por lo que el siguiente programa resuelve este problema. En esta versión del escalonador if-else-if, tan pronto como aparece una sentencia if, se sobrepasan el resto de las sentencias, se puntean.
PROGRAMA DE EJEMPLO 12
/*PROGRAMA CONVERSOR DE NUMEROS
...