Prof. Andrea Delogu
Laboratorio de Programación – 6to año
Salida La salida de datos de un programa se puede dirigir a diversos dispositivos, pantalla, impresora, archivos. La función printf( ) visualiza en la pantalla datos del programa, transforma los datos, que están en representación binaria, a ASCII según los códigos transmitidos. La forma general que tiene la función es: printf (cadena-de-control, dato1, dato2, ... ) cadena - de – control contiene los tipos de los datos y forma de mostrarlos. dato1 , dato2 . . . variables, constantes, datos de salida. La cadena de control contiene códigos de formato que se asocian uno a uno con los datos. Cada código comienza con el carácter %, a continuación puede especificarse el ancho mínimo del dato y termina con el carácter de conversión. En la función printf, los especificadores de formato establecen el formato de salida por pantalla de los argumentos.
EJEMPLO: #include int main() { char nombre[8]="Timoteo"; int hermanos = 2, sobrinos = 4; printf( "%s tiene %d hermanos y %d sobrinos.", nombre, hermanos, sobrinos ); return 0; } C utiliza secuencias de escape para visualizar caracteres que no están representados por símbolos tradicionales, tales como \a, \b, etc. Las secuencias de escape proporcionan flexibilidad en las aplicaciones mediante efectos especiales. Una secuencia de escape siempre representa a un carácter del ASCII. Ejemplos: printf("\n Error ~ Pulsar una tecla para continuar \n"); printf ("\n") ; /* salta a una nueva línea */ printf('Yo estoy preocupado\n no por el \n sino por ti.\n"); la última sentencia visualiza Yo estoy preocupado no por el sino por ti.
. Entrada La forma general que tiene la función es: scanf(cadena-de-control, varl, var2, var3, ... ) cadena-de-control contiene los tipos de los datos y forma de mostrarlos varl, var2 . . . variables del tipo de los códigos de control. Los códigos de formato más comunes son los ya indicados en la salida. Ejemplo: int n; float x; scanf ("%d %f",&n,&x); La entrada tiene que ser de la forma: 134 -1.4 En este caso la función scanf( ) devuelve n = 134 (tipo entero), x = - 1.4 (tipo real ). Los argumentos varl , var2 . . . de la función scanf( ) necesitan el prefijo & para poder ser modificados y transmitir los datos de entrada. Un error frecuente se produce al escribir, por ejemplo, float x; scanf ("%f",x) ; en vez de scanf ("%f",&x) ; EJEMPLO: #include #include #define PI 3.141592 /*PI es un valor constante*/ int main() { float area, radio; printf("\n Introduzca radio: " ); scanf( "%f", &radio ); area = PI * pow( radio, 2 ); /*pow: función que permite elevar un número a una potencia*/ printf( "\n El área de la circunferencia es: %f", area ); return 0; } La función scanf( ) termina cuando ha captado tantos datos como códigos de control se han especificado, o cuando un dato no coincide con el código de control especificado.
Prof. Andrea Delogu
Laboratorio de Programación – 6to año
El operador división (/): ”Si ambos operandos son enteros, el resultado de evaluar la expresión será entero, en caso contrario, es decir, si al menos un operando es real, el resultado será real.” EJEMPLO: Declaradas las variables: int h = 3, v = 6; De las expresiones: v/h 5/h 5.0 / 2 5 / 2.0 5.4 / 2.0
se obtienen los valores: 2 (valor entero, ambos operandos son enteros) 1 (valor entero, ambos operandos son enteros) 2.5 (valor real, el primer operando es real) 2.5 (valor real, el segundo operando es real) 2.7 (valor real, ambos operandos son reales)
Instrucciones de control • Las instrucciones que se utilizan para diseñar algoritmos se pueden clasificar en: – Primitivas – De control – Llamadas a subalgoritmos (llamadas a subprogramas) • Las instrucciones de control se clasifican en: – Alternativas (selectivas) – Repetitivas (iterativas) – De salto (de transferencia) INSTRUCCIONES DE CONTROL ALTERNATIVAS • Una instrucción de control alternativa permite seleccionar, en el flujo de control de un programa, la o las siguientes instrucciones a ejecutar, de entre varias posibilidades. Existen tres tipos: – Doble – Simple – Múltiple Alternativa doble • Una instrucción alternativa doble (o simplemente alternativa doble) permite seleccionar, por medio de una condición, el siguiente bloque de instrucciones a ejecutar, de entre dos posibles. EJEMPLO. Se quiere diseñar el algoritmo de un programa que: 1º) Pida por teclado la nota (dato real) de una materia. 2º) Muestre por pantalla: – "APROBADO", en el caso de que la nota sea mayor o igual que 7. – "DESAPROBADO", en el caso de que la nota sea menor que 7. • Solución en pseudocódigo: algoritmo Calificacion_segun_nota variables real nota INICIO escribir("Introduzca nota (real): " ) leer( nota ) si ( nota >= 7 ) entonces escribir("APROBADO" ) sino escribir("DESAPROBADO" ) fin_si FIN • Solución en C: #include int main() { float nota; printf( "\n Introduzca nota (real): " ); scanf( "%f", ¬a );
Prof. Andrea Delogu
Laboratorio de Programación – 6to año
if ( nota >= 5 ) printf( "\n APROBADO" ); else printf( "\n DESAPROBADO" ); return 0; }
Alternativa simple • Una instrucción alternativa simple (o simplemente alternativa simple) es una variante (más sencilla) de una instrucción alternativa doble. EJEMPLO. Se quiere diseñar el algoritmo de un programa que: 1º) Pida por teclado la nota (dato real) de una materia. 2º) Muestre por pantalla: – "APROBADO", en el caso de que la nota sea mayor o igual que 7. En este problema, no se va a mostrar por pantalla "DESAPROBADO" en el caso de que la nota sea menor que 7. • Solución en pseudocódigo: algoritmo Calificacion_segun_nota variables real nota INICIO escribir("Introduzca nota (real): " ) leer( nota ) si ( nota >= 5 ) escribir("APROBADO" ) fin_si FIN • Solución en C: #include int main() { float nota; printf( "\n Introduzca nota (real): " ); scanf( "%f", ¬a ); if ( nota >= 5 ) printf( "\n APROBADO" ); return 0; }
Alternativa múltiple • Una instrucción alternativa múltiple (o simplemente alternativa múltiple) permite seleccionar, por medio de una expresión, el siguiente bloque de instrucciones a ejecutar de entre varios posibles. • EJEMPLO. Se quiere diseñar el algoritmo de un programa que: 1º) Pida por teclado el número (dato entero) de un día de la semana. 2º) Muestre por pantalla el nombre (dato cadena) correspondiente a dicho día. Nota: Si el número de día introducido es menor que 1 ó mayor que 7, se mostrará el mensaje: "ERROR: Día incorrecto.".
• Solución en pseudocódigo: algoritmo Dia_de_la_semana variables entero dia INICIO escribir("Introduzca día de la semana: " ) leer( dia ) segun_sea ( dia ) hacer 1 :escribir("Lunes") 2 :escribir("Martes") 3 :escribir("Miércoles") 4 :escribir("Jueves") 5 :escribir("Viernes") 6 :escribir("Sábado") 7 :escribir("Domingo") sino escribir("ERROR: Día incorrecto." ) fin_segun_sea FIN • Solución en C: #include int main() { int dia; printf( "\n Introduzca dia de la semana: " );
Prof. Andrea Delogu
scanf( "%d", &dia ); switch ( dia ) { case 1 : printf( "\n break; case 2 : printf( "\n break; case 3 : printf( "\n break; case 4 : printf( "\n break; case 5 : printf( "\n break; case 6 : printf( "\n break; case 7 : printf( "\n break; default: printf( "\n } return 0; }
Laboratorio de Programación – 6to año
Lunes" ); Martes" ); Miercoles" ); Jueves" ); Viernes" ); Sabado" ); Domingo" ); ERROR: Dia incorrecto." );
Sintaxis en C: switch ( ) { case : [ ] [ break; ] case : [ ] [ break; ] ... case : [ ] [ break; ] [ default : ] }