Capítulo 4 - Estructura de un Programa en C.pdf

15

Click here to load reader

Transcript of Capítulo 4 - Estructura de un Programa en C.pdf

Page 1: Capítulo 4 - Estructura de un Programa en C.pdf

ITSON Mnuel Domitsu Kono

Capítulo 4

Estructura de un Programa en C El lenguaje de programación C es un lenguaje y como tal tiene un alfabeto, reglas para formar palabras y reglas de puntuación para hacer programas correctos o legales. Esas reglas son la sintaxis del lenguaje. El programa que verifica la legalidad del código C es el compilador. Un programa en C consiste en una secuencia de caracteres almacenados en uno o más archivos que serán traducidos por el compilador de C al lenguaje máquina de una determinada computadora.

Caracteres y Tokens Los caracteres que pueden formar parte de un programa en C se muestran en la tabla 4.1:

Tabla 4.1 Caracteres válidos en C Letras mayúsculas: A B C ... Z Letras minúsculas: a b c ... z

Dígitos: 0 1 2 3 4 5 6 7 8 9

Otros caracteres: + - * / = ( ) { } [ ] < > ' " ! @ # % & _ | ^ ~ \ . , ; : ?

Caracteres blancos:

SP (espacio), LF (carácter de salto de línea) HT (carácter de tabulación horizontal), VT (carácter de tabulación vertical), FF (carácter de avance de página), y comentarios.

Estos caracteres son agrupados por el compilador en una serie de componentes léxicos, (tokens) que son los elementos que conforman el vocabulario básico del lenguaje. Hay seis clases de tokens: Palabras reservadas, identificadores, constantes, constantes de cadena, operadores y delimitadores. Las palabras reservadas, identificadores y constantes deben estar separadas entre si por un carácter blanco. Cualquier otro carácter blanco es ignorado. El compilador de C verifica que los tokens forman cadenas legales de acuerdo a la sintaxis del lenguaje C. Los compiladores son muy precisos en sus requerimientos. A diferencia de

Page 2: Capítulo 4 - Estructura de un Programa en C.pdf

50 Estructura de un Programa en C

ITSON Mnuel Domitsu Kono

las personas, que son capaces de entender el significado de una oración con un signo de puntuación de más o con una palabra mal escrita, el compilador no podrá hacer una traducción si encuentra un error, no importa que tan pequeño sea.

Palabras Reservadas de C Una palabra reservada es una palabra que tiene un significado estricto en C. Estas palabras no pueden ser usadas como identificadores. La lista de palabras reservadas del C estándar se muestran en la tabla 4.2:

Tabla 4.2. Palabras reservadas de C auto default float long sizeof unsigned _Imaginary

break do for register static void

case double goto restrict struct volatile

char else if return switch while

const enum inline short typedef _Bool

continue extern int signed union _Complex

Identificadores Un identificador es el nombre que se le asigna a un objeto (constante, variable, función, etc.). En C las reglas para construir un identificador son las siguientes:

1. Un identificador consta de letras (A .. Z, a .. z), dígitos (0 .. 9) o el carácter de subraya (_).

2. Un identificador debe empezar con una letra o con una subraya.

3. No se establece una longitud máxima en un identificador.

4. C hace distinción entre letras mayúsculas y minúsculas.

Es una buena práctica de programación escoger identificadores que nos permitan recordar el uso del objeto nombrado. Aunque es válido no es recomendable utilizar identificadores que empiecen con el carácter de subraya (_).

Constantes, constantes de cadena y operadores En el Capítulo 3: Tipos de Datos y Expresiones en C, se estudiaron los tipos de constantes y operadores existentes así como su uso y sintaxis.

Page 3: Capítulo 4 - Estructura de un Programa en C.pdf

Capítulo 4 Estructura de un Programa en C 51

ITSON Mnuel Domitsu Kono

Delimitadores Los delimitadores son caracteres que nos permiten separar otros tokens, agrupar o terminar instrucciones, formar declaraciones, etc. Los delimitadores de C son: [ ] ( ) { } * , : = ; ... #

Estructura de un Programa en C Un programa en C consta de varias partes, las cuales no necesariamente aparecen en ese orden: [Comentarios] [Directivas al preprocesador] [Declaraciones de funciones] [Declaración de variables externas] Funciones Por ejemplo considere el programa del siguiente recuadro. Los números a la izquierda del recuadro no forman parte del programa y sólo sirven para numerar las líneas para la discusión:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

/* * File: kmh_ms.c * Author: mdomitsu * * Created on 9 de agosto de 2009, 06:15 PM */ #include <stdio.h> #include <stdlib.h> /* * Este programa convierte una velocidad de km/hr a m/s. * * Este programa ilustra el uso de la sentencia compuesta. */ int main(void) { const float KM_M = 1000.0; const float H_S = 3600.0; float velocidad; printf("\nEste programa convierte una velocidad de km/hr a m/s\n"); // Lee la velocidad en km/hr printf("\nDame la velocidad en kilometros/hora:"); scanf("%f", &velocidad);

Page 4: Capítulo 4 - Estructura de un Programa en C.pdf

52 Estructura de un Programa en C

ITSON Mnuel Domitsu Kono

26 27 28 29 30

// Calcula la velocidad en m/s velocidad *= KM_M / H_S; // Calcula la velocidad en m/s printf("\nLa velocidad en m/s es %.4f\n\n", velocidad); return (EXIT_SUCCESS); }

Las líneas 1 a 8, 17, 21 y 24 son comentarios. Las líneas 8, 10, 16, 20, 23 y 26 son líneas en blanco y son equivalentes a líneas con comentarios. La línea 9 contiene una directiva #include El resto del programa es la función main().

Comentarios Los comentarios son texto que incluimos en el código de un programa para documentar el programa, una función o porción de código. Un comentario es para el uso de los programadores, son ignorados por el compilador. Los comentarios pueden ir en cualquier parte del programa. En C existen dos tipos de comentarios:

• Todo el texto delimitado por los caracteres /* y */ es un comentario. Este tipo de comentario se puede extender por varias líneas. Por ejemplo:

/* Este es un comentario */ /* * Este es un comentario * de varias líneas */

/* // Este comentario está anidado */

• Todo el texto después de los caracteres // hasta el final de la línea es un

comentario. Por ejemplo:

// Este es un comentario int velocidad; // Este comentario permite explicar el // /* Este comentario está anidado */

Page 5: Capítulo 4 - Estructura de un Programa en C.pdf

Capítulo 4 Estructura de un Programa en C 53

ITSON Mnuel Domitsu Kono

Directiva #include El proceso de compilación de un programa está formado de varias etapas, y se verá en el siguiente capítulo. En la primera etapa, nuestro programa, escrito en lenguaje C y llamado programa fuente, es procesado por un programa llamado Preprocesador, el cual lo modifica de acuerdo a las directivas que nosotros hallamos incluido en nuestro programa. Una de esas directivas es la directiva #include. La directiva #include le indica al preprocesador que inserte en lugar de la directiva el archivo texto especificado por la directiva. La sintaxis de esta directiva es:

#include <nomArch> donde nomArch es el nombre del archivo que deseamos insertar. Por ejemplo, en el programa mostrado anteriormente, la directiva: #include <stdio.h> le indica al preprocesador que inserte en su lugar, un archivo llamado stdio.h. Note que el nombre del archivo va encerrado entre paréntesis angulares (los símbolos de menor y mayor que). Normalmente, esta directiva se utiliza para incluir en el programa archivos llamados de encabezados (headers) y se acostumbra darles la extensión ".h". En archivo de encabezado se encuentran: Directivas al preprocesador, declaraciones de funciones y declaración de variables externas.

Declaración de variables externas Las variables en C pueden declararse dentro o fuera de una función. Una variable declarada fuera de una función, llamada variable externa, es conocida en todo el programa, mientras que una variable declarada dentro de una función, llamada automática, sólo es conocida dentro de la función en que fue declarada. En el programa de ejemplo no hay variables externas.

Funciones En C las instrucciones que un programa ejecutará, se agrupan en funciones. Una función es un subprograma que realiza una tarea específica. Un programa en C está formado de una o más funciones. Aparte de las funciones que nosotros creamos, el sistema C nos proporciona un número considerable de funciones a fin de facilitarnos la tarea de programación. Estas funciones

Page 6: Capítulo 4 - Estructura de un Programa en C.pdf

54 Estructura de un Programa en C

ITSON Mnuel Domitsu Kono

se encuentran en uno o más archivos que conforman lo que se llama la biblioteca de funciones estándar. Estos archivos tienen la extensión ".lib". Una de las funciones que nosotros creemos deberá llamarse main() y el programa empezará a ejecutarse por la primera instrucción en esta función. Para crear una función, ésta debe ser declarada y definida. Para usar una función debemos llamarla.

Declaración de funciones Al declarar una función le informamos al compilador el tipo de la función (es decir el tipo del dato que regresa la función) y el número y tipo de los parámetros que tiene la función. Esta información es necesaria para que el compilador genere el código correcto y para que el compilador verifique que al llamar a la función le pasemos los datos adecuados. La sintaxis de la declaración de una función es la siguiente:

tipo nomFunc(lista de parámetros); tipo es el tipo del valor regresado por la función, y puede ser de cualquiera de los tipos ya vistos. Algunas funciones no regresan valores. En este caso se utiliza la palabra reservada void como el identificador de tipo, para indicar que la función no regresa un valor. nomFun es el nombre de la función y debe ser un identificador válido de C. lista de parámetros contiene el tipo y el nombre de los parámetros que recibe la función. Un parámetro es un mecanismo mediante el cual le pasamos valores a la función al llamarla. Si una función no recibe parámetros, la lista de parámetros estará formada por la palabra void solamente. La función main() no necesita declaración. Las declaraciones de las funciones de la biblioteca estándar del sistema C se encuentran en los archivos de encabezados, los cuales deberán ser incluidos con la directiva #include. En el Capítulo 6: Funciones, se estudiará cómo escribir nuestras propias funciones.

Definición de funciones Al definir una función le estamos informando al compilador que es lo que hace la función, esto es, las instrucciones que realizará la función al ser llamada. La sintaxis de la definición de una función es la siguiente:

Page 7: Capítulo 4 - Estructura de un Programa en C.pdf

Capítulo 4 Estructura de un Programa en C 55

ITSON Mnuel Domitsu Kono

tipo nomFunc(lista de parámetros) { [declaraciones locales] sentencias }

tipo, nomFunc y lista de parámetros son los mismos que en la declaración. { y } son los delimitadores del bloque (cuerpo) de la función. Marcan el principio y fin de la función. declaraciones locales son las declaraciones de variables automáticas. sentencias son las instrucciones que ejecutará la función. En el programa de ejemplo, podemos ver en la función main() lo siguiente:

• La función main() regresa un valor entero.

• La función main() no recibe parámetros.

• Se declaran dos variables automáticas cuyos valores permanecerán constantes: KM_M y H_S y son inicializadas a los valores de 1000.0 y 3600.0, respectivamente.

• Se declara una variable automática llamada velocidad de tipo flotante.

• En la función hay cinco instrucciones o sentencias:

printf("\nDame la velocidad en kilómetros/hora: ");

Aquí se llama a la función printf() de la biblioteca estándar de C para que despliegue el mensaje: "Dame la velocidad en kilómetros/hora: "

scanf("%f", &velocidad);

Aquí se llama a la función scanf() de la biblioteca estándar de C para que lea el valor de la velocidad.

velocidad *= KM_M / M_S;

Esta instrucción convierte la velocidad de kilómetros/hora a m/s.

printf("\nLa velocidad en m/s es %.4f", velocidad);

Se vuelve a llamar a la función printf() para que despliegue el valor de la velocidad en m/s.

Page 8: Capítulo 4 - Estructura de un Programa en C.pdf

56 Estructura de un Programa en C

ITSON Mnuel Domitsu Kono

return (EXIT_SUCCESS);

Esta sentencia hace que la función main() termine su ejecución y regrese el valor de 0, el valor dado por la macro EXIT_SUCCESS. Las funciones que regresan un valor lo hacen a la función quien las llama. En el caso de la función main(), el valor lo regresa al sistema operativo. Este valor se utiliza como indicador de la causa por la que el programa terminó la ejecución. Por convención un cero significa que el programa terminó su ejecución normalmente. Un valor diferente de cero significa que la causa de terminación del programa fue un error.

Llamada a una función Al llamar a una función estamos dando la orden para que el programa empiece a ejecutar las instrucciones que forman la función. La sintaxis de la llamada a una función es:

nomFunc(lista de argumentos) nomFunc es el nombre con que se declaró y definió la función. lista de argumentos son los valores que se le pasan a la función al llamarla. La lista de argumentos debe de coincidir con la lista de parámetros, en número, tipo y orden.

Sentencias Las sentencias de C son las instrucciones de las que está formado un programa. Las sentencias en un programa en C se encuentran en el cuerpo de las funciones. Las sentencias en C se clasifican de la siguiente manera:

• Sentencia de expresión o simple • Sentencia compuesta o bloque • Sentencias de selección o condicionales • Sentencias de iteración o repetitivas • Sentencias de salto

En este tema se estudiarán las sentencias de expresión y las sentencias compuestas. Las demás se verán en el Capítulo 5: Sentencias de Control.

Sentencia de expresión o simple La mayoría de las sentencias de un programa en C son sentencias de expresión. Una sentencia de expresión tiene la siguiente sintaxis:

Page 9: Capítulo 4 - Estructura de un Programa en C.pdf

Capítulo 4 Estructura de un Programa en C 57

ITSON Mnuel Domitsu Kono

[expresión]; Esto es, una expresión seguida de un punto y coma (;). La mayoría de las sentencias de expresión son asignaciones o llamadas a funciones. Si expresión se omite, la construcción se llama sentencia nula. El punto y coma (;) es un terminador de sentencia. Algunos ejemplos de sentencias expresión son:

y = x + 3; n++; printf("\nHola"); scanf("%f", &velocidad); ; /* Sentencia nula */

Sentencia compuesta o bloque Una sentencia compuesta o bloque son construcciones que contienen otras sentencias las cuales se deberán ejecutar en secuencia. La sintaxis de una sentencia compuesta es: { [Declaración local] ... Sentencia ... } Una sentencia compuesta está formada de declaraciones locales y sentencias. Los objetos declarados localmente son sólo conocidos dentro de la sentencia compuesta en que fueron declarados. Esto se tratará más ampliamente en el Capítulo 6: Funciones. Las sentencias dentro de una sentencia compuesta pueden ser de cualquier tipo: Sentencia de expresión, sentencia compuesta, sentencias de selección, sentencias repetitivas, sentencias de salto. Note que dentro de una sentencia compuesta podemos tener anidadas sentencias compuestas. Una sentencia compuesta va encerrada entre llaves { y }. Una sentencia compuesta es sintácticamente equivalente a una sentencia simple, esto es, donde puede ir una sentencia simple podemos poner una sentencia compuesta y viceversa. Un ejemplo de una sentencia compuesta es el cuerpo de una función.

Ejercicio sobre la Sentencia Compuesta Escribir el código para un programa que lea los tres lados de un triángulo y escriba su área.

Page 10: Capítulo 4 - Estructura de un Programa en C.pdf

58 Estructura de un Programa en C

ITSON Mnuel Domitsu Kono

Funciones de Entrada / Salida de C La biblioteca estándar de C proporciona una serie de funciones que nos permiten escribir en el dispositivo estándar de salida, normalmente la pantalla y para leer del dispositivo estándar de entrada, normalmente el teclado.

Funciones para escribir en la pantalla

printf() La función printf() nos permite escribir información formateada a la pantalla. La sintaxis para esta función es la siguiente: int printf(formato [,expresión] ...); El prototipo de esta función se encuentra en stdio.h La función regresa el número de caracteres desplegados. Si hay error la función regresa el valor de EOF. EOF es una constante simbólica definida en stdio.h. formato, la cadena de formateo es una cadena, la cual será escrita por la función printf(). Dentro de formato pueden incluirse comandos de formateo. La función primero evalúa las expresiones de la lista de argumentos de la función printf() y substituye sus valores en lugar de sus correspondientes comandos de formateo, formateados de acuerdo a éstos y luego despliega la cadena resultante. Debe haber un comando de formateo para cada expresión. Si hay más comandos que expresiones, el resultado es impredecible y a menudo desastroso. Si hay más expresiones que comandos, las expresiones sobrantes son ignoradas. Un comando de formateo tiene la siguiente sintaxis:

%[banderas][ancho][.precisión][modificador de tipo]tipo %.- Todo comando de formateo empieza con el signo %. tipo.- Es el carácter de conversión de tipo. La tabla 4.3 muestra los algunos de los caracteres de conversión de tipo de la función printf(), el tipo de argumento que acepta y el tipo de formato en que aparece la salida. modificador de tipo.- Carácter que modifica el tamaño del tipo de dato. Algunos modificadores de tipo se muestran en la tabla 4.4.

Page 11: Capítulo 4 - Estructura de un Programa en C.pdf

Capítulo 4 Estructura de un Programa en C 59

ITSON Mnuel Domitsu Kono

Tabla 4.3. Especificadores de tipo

Tipo Argumento de entrada

Formato de salida

d Entero Entero decimal con signo u Entero Entero decimal sin signo

f Flotante Flotante en la forma [-]ddd.ddd..., donde el número de dígitos después del punto decimal es igual a la precisión.

e Flotante Flotante en la forma [-]d.ddd...e[+|-]ddd donde un dígito precede al punto decimal, el número de dígitos después del punto decimal es igual a la precisión y el exponente contiene al menos dos dígitos.

E Flotante Flotante igual que e, pero con E como signo de exponente c Carácter Un solo carácter % Se imprime el carácter %

Tabla 4.4. Modificadores de tipo

Modificador de tipo Tipo modificado Efecto

h d, u Interpreta el entero como short l d, u Interpreta el entero como long ll d, u Interpreta el entero como long long l e, E, f Interpreta el flotante como doble

L e, E, f Interpreta el flotante como doble largo

ancho.- Mínimo número de caracteres a imprimir rellenados con blancos o ceros. En ningún caso, la falta del especificador de ancho o un valor pequeño de éste, trunca la salida. Si la expresión a desplegarse es más ancha que el especificador de ancho, la función utiliza el número de caracteres necesarios para desplegar el valor de la expresión. Los tipos de especificadores de ancho se muestran en la tabla 4.5. Tabla 4.5. Especificadores de ancho

Especificador de ancho Tamaño del ancho de campo

n Se imprimen un mínimo de n caracteres. Si el valor a imprimirse tiene menos de n caracteres, se rellena con blancos.

0n Se imprimen un mínimo de n caracteres. Si el valor a imprimirse tiene menos de n caracteres, se rellena con ceros a la izquierda.

* El valor del especificador de ancho viene en la lista de argumentos, el cuál debe preceder al argumento a formatearse.

precisión.- Para enteros, mínimo número de dígitos a imprimir. Si el número entero tiene menos caracteres que la precisión se rellena con ceros a la izquierda. Para flotantes el número de decimales. Si la expresión tiene más de n decimales, se redondea. No tiene efecto en los tipos c. El especificador de precisión debe siempre empezar con un punto (.)

Page 12: Capítulo 4 - Estructura de un Programa en C.pdf

60 Estructura de un Programa en C

ITSON Mnuel Domitsu Kono

para separarlo de cualquier especificador de ancho precedente. Los tipos de especificadores de precisión se muestran en la tabla 4.6. Tabla 4.6. Especificadores de Precisión

Especificador de precisión Descripción

Ninguno Se usa la precisión por defecto: 1 para los tipos d, u. 6 para los tipos e, E y f.

.0 Para los enteros, 1 si el valor de la expresión es diferente de cero; si es cero no despliega nada. Para los flotantes se trunca la parte fraccionaria y no se despliega el punto decimal.

.n n dígitos para los enteros o n decimales para los flotantes.

.* El valor del especificador de precisión viene en la lista de argumentos, el cuál debe preceder al argumento a formatearse.

banderas.- Especifica la justificación de la salida, signos numéricos, punto decimal y ceros a la derecha. Las banderas pueden aparecer en cualquier orden y en cualquier combinación. Las banderas se muestran en la tabla 4.7. Tabla 4-7. Banderas

Bandera Significado

Ninguna El resultado se justifica a la derecha rellenándose con blancos a la izquierda. - El resultado se justifica a la izquierda rellenándose con blancos a la derecha. + Un resultado numérico empieza con (+) ó (-) dependiendo del signo.

Blanco Si el resultado es no negativo empieza con un blanco; si es negativo empieza con el signo (-)

putchar() Esta función escribe un sólo carácter en la pantalla y no le agrega el salto de línea. La sintaxis de esta función es la siguiente:

int putchar(int c); El prototipo de esta función se encuentra en stdio.h Si no hay error la función regresa el carácter desplegado, c. En caso contrario regresa el valor de EOF.

Page 13: Capítulo 4 - Estructura de un Programa en C.pdf

Capítulo 4 Estructura de un Programa en C 61

ITSON Mnuel Domitsu Kono

Funciones para leer del teclado

scanf() Esta función nos permite leer el teclado un carácter a la vez y los convierte de acuerdo a un formato dado. Esta función hace lo siguiente:

• Acepta una cadena de formateo que determina como deberán de ser interpretados los campos de entrada.

• Aplica la cadena de formateo a un número variable de campos de entrada a fin de

formatear la entrada. • Almacena la entrada formateada en las direcciones dadas como argumentos

después de la cadena de formateo. La sintaxis para esta función es la siguiente:

int scanf(formato, dirección, [dirección] ...); El prototipo de esta función se encuentra en stdio.h La función regresa el número de valores leídos, formateados y almacenados. formato, la cadena de formateo es una cadena y contiene tres tipos de objetos: caracteres blancos, caracteres no-blancos y especificadores de formateo. Los caracteres blancos son: blanco o espacio (' '), carácter de tabulación ('\t') o carácter de salto de línea ('\n'). Si la función scanf() se encuentra un carácter blanco en la cadena de formateo, leerá pero no almacenará, todos los caracteres blancos consecutivos, hasta el siguiente carácter no-blanco de la entrada. Los caracteres no-blancos son todos los otros caracteres ASCII excepto '%'. Si la función scanf() encuentra un carácter no-blanco en la cadena de formateo, leerá pero no almacenará, un carácter de no-blanco igual. El especificador de formateo, le indica a la función scanf() que lea y convierta los caracteres leídos de los campos de entrada a valores de tipos específicos y los almacenes en las direcciones dadas en los argumentos. Debe haber un especificador de formateo para cada dirección. Si hay más especificadores que direcciones, el resultado es impredecible y a menudo desastroso. Si hay más direcciones que especificadores, las expresiones sobrantes son ignoradas. Un especificador de formateo tiene la siguiente sintaxis:

%[ancho][modificador de tipo]tipo

Page 14: Capítulo 4 - Estructura de un Programa en C.pdf

62 Estructura de un Programa en C

ITSON Mnuel Domitsu Kono

%.- Todo especificador de formateo empieza con el signo %. tipo.- Carácter de conversión de tipo. La tabla 4-8 muestra algunos de los caracteres de conversión de tipo de la función scanf(), el tipo de entrada esperada y el formato en que la entrada será almacenada. Tabla 4.8 Especificadores de tipo

Tipo Entrada esperada Tipo de argumento (Dirección de un)

d Entero decimal Entero Decimal D Entero decimal Entero largo decimal u Entero sin signo decimal Entero sin signo decimal

U Entero sin signo decimal Entero largo sin signo decimal e, E, f Punto flotante Punto flotante

c Carácter Carácter ancho.- El especificador de ancho, un número decimal, controla el número máximo de caracteres que serán leídos del campo de entrada. modificador de tipo.- Modifica el tipo de dato al que se hará la conversión. Algunos de los modificadores de tipo se muestran en la tabla 4.9. Tabla 4.9. Modificador de tipo

Modificador de tipo Tipo modificado Efecto

h d, u Interpreta el entero como short. h d, u Interpreta el entero como long. ll d, u Interpreta el entero como long long. l e, f, g Interpreta el flotante como double L e, f, g Interpreta el flotante como long double.

getchar() Esta función leen un sólo carácter del teclado. La sintaxis de esta función es la siguiente:

int getchar(void) El prototipo de esta función se encuentra en stdio.h Si no hay error la función regresa el carácter leído, en caso contrario regresa el valor de EOF.

Page 15: Capítulo 4 - Estructura de un Programa en C.pdf

Capítulo 4 Estructura de un Programa en C 63

ITSON Mnuel Domitsu Kono

Una característica de esta función es que después de presionar la tecla del carácter, debemos de presionar la tecla [ENTER] para indicarle a getchar() que se le ha dado el carácter. De otra manera la función no termina de leer.

Problemas

1. ¿Cuál es la salida que nos da la función printf() en los siguientes ejemplos?:

sean x = 1276, y = 123.97547, a = 10, b = 4, c = 12.

a) printf("x = %d, y = %f", x, y); b) printf("x = %6d, y = %10.4f", x, y); c) printf("y = %*.*E", a, b, y); d) printf("x = %+d, -x = %+d, c = %u", x, -x, c); e) printf("%c %c", 'A', 70);

2. Suponga que se desea construir una tabla en la que aparezca el capital acumulado

de una inversión para cada mes. La tabla deseada tiene la siguiente forma:

Mes Capital --------------- 1 dddd.dd 2 dddd.dd 3 dddd.dd ... 10 dddd.dd ... 100 dddd.dd

Escriba una llamada a la función printf() que escriba el número del mes y el

monto del capital acumulado con el formato mostrado.

3. Escribir un programa que lea un número que represente una distancia en metros y escriba su equivalente en pies y en pulgadas. El resultado deberá desplegarse en notación fija con 4 cifras decimales.

4. Escribir un programa que lea un número que represente el radio de una esfera y

escriba su área y volumen. El resultado deberá desplegarse en notación flotante con 6 cifras decimales.

5. Escriba un programa que indique a una cajera de banco el número y denominación

de los billetes que necesita darle a un cliente al hacer un retiro. La cajera deberá darle al cliente billetes de la más alta denominación posible, esto es, el menor número de billetes. Suponga que los retiros deben de ser en cantidades múltiples de 10 pesos y que hay billetes de $10, $20, $50 y $100 pesos.