Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porJuan Monsalve Modificado hace 6 años
1
SENTENCIAS CONTROL DE FLUJO EN C I.E. Mario Jiménez
2
DEFINICION DE VARIABLES I.E. Mario Jiménez unsigned : define un número de 8 bits sin signo unsigned int: define un número de 8 bits sin signo int: define un número de 8 bits sin signo char: define un número de 8 bits sin signo long: define un número de 16 bits sin signo long int: define un número de 16 bits sin signo signed: define un número de 8 bits con signo signed int: define un número de 8 bits con signo signed long: define un número de 16 bits con signo float: define un número de 32 bits en punto flotante short: define un bit short int: define un bit
3
I.E. Mario Jiménez Sentencia if La sentencia de control básica es if ( ) then else. En ella se evalúa una expresión condicional y si se cumple, se ejecuta la sentencia s; si no, se ejecuta la sentencia t. La segunda parte de la condición, else, es opcional. int cero ( double a ) if ( a == 0.0 ) { return (TRUE); else return (FALSE); }
4
I.E. Mario Jiménez Construcciones if anidadas Cuando la expresión evaluada por una sentencia if arroja VERDADERO, se ejecuta la sentencia que sigue a if, que puede ser otra sentencia if. En las sentencias if anidadas, cada claúsula else se asocia con la última sentencia if. Sentencia else if Cuando comparamos una variable con tres valores diferentes, podemos utilizar la sentencia else if, más simple, en lugar de tres sentencias if distintas. El formato general de esta sentencia es el siguiente:
5
SENTENCIAS I.E. Mario Jiménez int A,s,b; if(A >= 9); //A es mayor o igual que 9? { s=255; //bloque 1 TRUE b=0; } else //sino, entonces... { b=255;//bloque 2 FALSE s=0; } //fin de condicion int r,s,k; if(r == 0X0F) //condicion 1 { s = 0X0F; k = 0X0F; } else if (r == 0X0E) // condicion 2 { s = 13; k = 13; } else //sino, entonces { s++; k--; }
6
I.E. Mario Jiménez Break y Continue Otras sentencias interesantes, aunque menos utilizadas son break y continue. break provoca que se termine la ejecución de una iteración o para salir de la sentencia switch. En cambio, continue provoca que se comience una nueva iteración, evaluándose la expresión de control. switch(c){ case 'a': printf("Op A\n"); break; case 'b': printf("Op B\n"); break; case 'c': case 'd': printf("Op C o D\n"); break; default: printf("Op ?\n"); }
7
I.E. Mario Jiménez Setencia switch Se puede programar con un grupo de sentencias if then else anidadas, aunque ello puede ser complicada lectura. Para evitarlo se utiliza la sentencia switch. Su utilización es: switch (expresión1) { case val1 : sentencias del programa; break; case val2 : sentencias del programa; break; default : sentencias del programa; break; }
8
I.E. Mario Jiménez Ejemplo switch printf("Introduzca el código del cliente:\n); scanf("%d", &cod_cliente); switch (codigo_cliente) { case 1 : /* Clientes registrados */ descuento = 0.1; precio_neto = precio_libro - (precio_libro * descuento); break; case 2 : /* Mayoristas */ descuento = 0.15; precio_neto = precio_libro - (precio_libro * descuento); break; case 3: /* Empleados de la empresa */ descuento = 0.17; precio_neto = precio_libro - (precio_libro * descuento); break; default: /* Nuevos clientes */ descuento = 0.05; precio_neto = precio_libro - (precio_libro * descuento); break; }
9
I.E. Mario Jiménez Sentencia for El formato general de una sentencia for es: for ( inicializacion;condicional;incremento) { sentencias del programa; } Ejemplo: int a,buscador,hendrix; for(a=0;a<=30;a++) { buscador++; hendrix--; output_b(1); output_b(0); }
10
I.E. Mario Jiménez Sentencia while La sintaxis de la sentencia while es while (expresión) { sentencias del programa } Ejemplos: * int a,b; while( input(PIN_A0) ) { a++; b--; } * Void main () { int contador = 2; printf("Múltiplos de 2\n"); while (contador <= 50) { printf("%d\n", contador); contador += 2; } }
11
I.E. Mario Jiménez Sentencia do – while La sintaxis de la sentencia do - while es do { sentencia1; sentencia2; sentencia3;... } while (expresion);
12
I.E. Mario Jiménez Ejemplo do – while int i,j; do { i ++; output_high(PIN_A0) delay_ms(250); output_low(PIN_A0) delay_ms(250); } while( input(PIN_B7) ); // mientras RB7 este en 1 ------------------------------------------------------------------------------ bucle infinito con while: bucle infinito con for: while(1); for(;;);
13
FUNCIONES DE BITS Y BYTES PARA ENTRADAS Y SALIDAS DEL PIC I.E. Mario Jiménez INPUT(pin) while ( !input(PIN_B1) ); //espera en este bucle mientras el pin B1 sea 0 OUTPUT_BIT(pin, value) output_bit( PIN_B0, 0); //es lo mismo que output_low(pin_B0); output_bit( PIN_B0,input( PIN_B1 ) ); // pone B0 igual que B1 OUTPUT_HIGH(pin) output_high(PIN_A0); OUTPUT_LOW(pin) output_low(PIN_A0);
14
FUNCIONES DE BITS Y BYTES PARA ENTRADAS Y SALIDAS DEL PIC I.E. Mario Jiménez PORT_B_PULLUPS(flag) port_b_pullups(FALSE);// la flag puede ser falsa o verdadera SET_TRIS_A(value) SET_TRIS_B(value) SET_TRIS_C(value) SET_TRIS_D(value) SET_TRIS_E(value) SET_TRIS_B( 0x0F ); // pone B0, B1, B2 y B3 como entradas; B4, B5, B6 y B7 // como salidas
15
Encender un LED con Pulsador I.E. Mario Jiménez #Include /* tipo de PIC */ #Fuses XT, NOWDT, NOPROTECT, NOLVP, BROWNOUT #use Delay( Clock = 20000000 ) #byte port_A = 0xF80// Dirección del puerto A para la familia 18Fxx5x. #Byte port_b = 0xF81// Dirección del puerto B para la familia 18Fxx5x. void main( void ) { set_tris_b(0x00);/* puerto B como salida */ port_b = 0; // apaga todos los led setup_adc_ports(NO_ANALOGS); set_tris_a(0xff); do { if (Bit_Test(port_A,1)) { do { delay_us( 1000 ); // retardo de 1000 (seg. bit_set( port_b, 7 ); //enciende el led RB7 delay_us( 1000 ); // espera 1 ms bit_clear( port_b, 7); // apaga el led } while( TRUE ); // Repetir siempre } while(1); }
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.