Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de...
Transcript of Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de...
![Page 1: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/1.jpg)
Tema 3Introducción al C
Fundamentos de Informática
![Page 2: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/2.jpg)
2Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Índice
• Conceptos básicos• Tipos de datos• Constantes• Variables• Expresiones• Funciones básicas de entrada/salida
![Page 3: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/3.jpg)
3Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Conceptos básicos
1
![Page 4: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/4.jpg)
4Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
El primer programa en C/* Programa: prog1.c** Descripción: Pedir un valor y* mostrarlo por pantalla** Revisión: 0.0; 5/10/02** Autor: Luis Pérez**/#include <stdio.h> /* Incluye las funciones de E/S estándar */
int main (void) { /* Función principal */
int contador; /* Declaración de variables */
/* Instrucciones del programa principal */
printf(“\n Este es mi primer programa “);
printf(“\n Indique el numero de alumnos del curso: “);
scanf(“%d”, &contador);
printf(“\n Somos %d alumnos”, contador);
return 0;
}
El resultado del programa sería:Este es mi primer programaIndique el numero de alumnos del curso: 36
Somos 36 alumnos
![Page 5: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/5.jpg)
5Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
El primer programa en C• Las partes de que consta un programa en C:
– Comentarios: están delimitados por /* y */• En este ejemplo, se utilizan comentarios para realizar la ficha del programa y para poner comentarios explicativos
• Son ignorados por el compilador– Directivas del preprocesador: comienzan por el carácter ‘#’
• El preprocesador es una parte del compilador que se encarga de realizar el proceso de traducción.
• Las directivas se encargan de dar instrucciones al preprocesador para realizar algún tipo de proceso.
• En particular: # include <stdio.h>, indica que se incluyan en este fichero los prototipos de las funciones de entrada / salida estándar.
• La directiva # define PI 3.1416 indica que en todos los sitios del fichero donde se encuentre PI se sustituya por el valor indicado.
– Función principal: int main(void)• Marca el punto donde el programa comienza la ejecución.• Es obligatorio en todos los programas. (Una y sólo una)
– Llaves: {....}• Las llaves son necesarias en todos los programas en C.• Indican el principio y el final de las instrucciones de una función. En este ejemplo, principio y final del programa.
![Page 6: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/6.jpg)
6Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
El primer programa en C• Las partes de que consta un programa en C:
– Parte de declaraciones• En esta primera parte de una función se van a declarar las variables (los almacenes que se van a usar en el programa).
• En C se declaran todas las variables al comienzo de la función• La manera de declarar variables:
tipo_dato nombre_variable;• En el ejemplo, se crea una variable de tipo entero (int) que se llama “contador”.
– Instrucciones: siempre finalizan con el carácter ‘;’• Son órdenes de realización de alguna acción• Función de salida: printf()
– Se utiliza para escribir información por la salida estándar (habitualmente, la pantalla)
– En el ejemplo: printf(“\n Este es mi primer programa “);Consigue que aparezca en pantalla el mensaje
Este es mi primer programa
![Page 7: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/7.jpg)
7Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
El primer programa en C
• Función de salida: printf()– En el ejemplo: printf(“\n Somos %d alumnos”, contador);Consigue que aparezca en pantalla ese mensaje sustituyendo en la cadena de caracteres el %d por el valor que esté almacenado en contador.Por ejemplo, si somos 36 alumnos y es el valor que ha introducido el usuario, aparecerá el mensaje:
Somos 36 alumnos• Función de entrada: scanf()
– Es una función que permite a los programas leer la entrada del usuario desde el teclado.
– Se puede pensar en ella como la opuesta al printf().– En el ejemplo: scanf(“%d”, &contador);El especificador de formato “%d” indica que se va a leer un número entero del teclado.El nombre de la variable junto con el carácter ‘&’, es decir, &contador, indica que la información que se lea de teclado se va a almacenar en la variable contador.Si el usuario introduce el valor 36 cuando se le solicita el número de alumnos de la clase, dicho valor se almacenará en la variable contador.
![Page 8: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/8.jpg)
8Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
El primer programa en C¿Cómo conseguimos desde este programa crear un código ejecutable?
Utilizando el compilador.
Archivos de Biblioteca
Programa Fuente(texto)
Compilador EnlazadorPrograma Objeto
Archivos incluídos
Errores de Compilación(léxicos, sintácticos y semánticos)
ProgramaEjecutable
Otros programas objetos
![Page 9: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/9.jpg)
9Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
El primer programa en C
![Page 10: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/10.jpg)
10Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
El primer programa en CLa importancia de la estructura– A nivel de compilador, el programa anterior podría escribirse:
#include <stdio.h> /* Incluye las funciones de E/S estándar */int main(void) /* Función principal */{ int i;/* Declaración de variables */ /* Instrucciones del programa principal */ printf(“\nEste es mi primer programa “); printf(“\n¿Cuántos alumnos hay en este curso: “);scanf(“%d”, &i); printf(“\nSomos %d alumnos”, i);}
– Normas de estilo• Escribir al principio de cada programa un comentario con la ficha del programa
• Cada instrucción (incluidas las declaraciones de variables) debe estar en una línea separada
• Las instrucciones pertenecientes a un bloque han de estar sangradas con respecto a las llaves que lo delimitan
• Hay que comentar todos lo aspectos importantes del código escrito• Siempre debe ser prioritario el escribir un programa fácil de entender
![Page 11: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/11.jpg)
11Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
El conjunto de caracteres en C
• Programas construidos con bloques básicos:
– Letras A‐Z, a‐z, 0‐9 y caracteres especiales– + ‐ * / = % & # ! ¿ ^ “ ‘ ~ \ | \ < > ( ) [ ] { } : ; . , _ Spc– Representación de elementos especiales con caracteres especiales \n, \t, \b• Secuencias de escape
– Cada secuencia de escape representa un único carácter
![Page 12: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/12.jpg)
12Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Identificadores y palabras reservadas en C
• Identificador:
– Nombre que se le da a un elemento de un programa• variables, funciones, vectores.
– Formados por letras y dígitos en cualquier orden– Primer carácter debe ser siempre una letra– C distingue entre identificadores en mayúsculas y minúsculas
• No es igual el identificador variable1 que el identificador VARIABLE1
– Como regla estándar definiremos los identificadores siempre en minúsculas
– Es posible utilizar el carácter “_” en los identificadores– No son válidos los caracteres acentuados– Definir los identificadores con caracteres suficientes como paraque den una idea clara de la información que contienen
![Page 13: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/13.jpg)
13Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Identificadores y palabras reservadas en C
Ejemplo: Identificadores validos
x Y45 Producto_1 _temp
area CONJUNTO Imp_IVAApellidos
Ejemplo: Identificadores no validos
5suma El primer carácter es un número
“juan” “ carácter no válido,(solo letras y �).
Resultado-1 - carácter no válido.
Solucion prob El espacio en blanco no está permitido
área Los identificadores no se acentúan.
![Page 14: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/14.jpg)
14Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Identificadores y palabras reservadas en C
• Exiten en C un conjunto de palabras reservadas que tienen un significado estándar predefinido.
– Estas palabras se corresponden con instrucciones de C.
– Las palabras reservadas se escriben en minúsculas no siendo equivalentes a sus correspondientes mayúsculas.
auto extern sizeof breakfloat static
case for structchar goto switchconst if typedefcontinue int union default
long unsigned doregister void
double return volatileenum signed
![Page 15: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/15.jpg)
15Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Tipo de datos
2
![Page 16: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/16.jpg)
16Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Tipos de datos ‐ Codificación de la información
• Dígito binario, Bit: unidad elemental de almacenamiento (Valor 0 o 1)
• Byte: unidad básica de almacenamiento (8 bits)
• Codificación: correspondencia entre las magnitudes binarios con las que trabaja el ordenador y las magnitudes que existen en el mundo real
0 1 0 1 0 0 1 0
MEMORIA PRINCIPAL
E L P E R R O F E R O Z
-127.2
+457
(Texto)
(Real)
(Entero)
Instrucciones101100010100101010011010100011110100101000101001
![Page 17: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/17.jpg)
17Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Tipos de datos ‐ Codificación de la información
• Sistema de numeración posicional: Cada número está formado por una serie de dígitos de forma que cada dígito tiene un peso en función de su posición.
Sistema decimal: 348 = 3 * 102 + 4 * 101 + 8 * 100
Sistema binario: 1110 = 1 * 23 + 1 * 22 + 1 * 21 + 0 * 20
• Dígito más significativo: Dígito más a la izquierda• Dígito menos significativo: Dígito más a la derecha
![Page 18: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/18.jpg)
18Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Tipos de datos ‐ Codificación de la información• Codificación de números enteros: Se utilizan todos los dígitos para
representar el número. Con n dígitos:Número entero: Rango de valores de ‐2n‐1 a 2n‐1‐1Número natural: Rango de valores de 0 a 2n‐1Por ejemplo, con 8 bits se puede representar
Naturales: 0 a 28‐1, un número entre 0 a 255Enteros: ‐28‐1 a 28‐1‐1, un número entre ‐128 y 127
• Codificación de números reales: se representa con una mantisa y un exponente
Por ejemplo, el número 3.701 será 0.3701 x 101
• Codificación de caracteres alfanuméricos: se le asigna a cada carácter una valor numérico, correspondiente al código ASCII
• Codificación del programa: el juego de instrucciones del procesador está codificado en binarioPor facilidad, a cada instrucción se le asigna un mnemónico fácil de recordar (instrucciones del lenguaje ensamblador)
![Page 19: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/19.jpg)
19Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Tipos de datos• C permite la posibilidad de trabajar con distintos tipos de datos• Existen cuatro tipos de datos básicos:
– Carácter: char– Número entero: int– Números reales: representación en coma flotante: float ó double
• Representados de diferente manera en la memoria del computador
• Según la cantidad de memoria que utilicen dan una idea del RANGO de valores permitido – La cantidad de memoria varía según el tipo de ordenador y el compilador– El operador sizeof() indica el número de bytes de memoria que se utiliza para almacenar un
tipo de dato o una variable
TIPOS BÁSICOS:Tipo de dato Descripción Requisito de memoria
int Cantidad entera 2-4 bytes o una palabrachar Carácter 1 bytefloat Nª en coma flotante 1 palabra (4 bytes)
(punto decimal y/o exponente)double Nº en coma flotante 2 palabras (8 bytes)
de doble precisión.
![Page 20: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/20.jpg)
20Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Tipos de datos• Por ejemplo, con el compilador MinGW:
• Entero(int): 4 bytes• Carácter (char): 1 byte• Real (float): 4 bytes• Real (double): 8 bytes
![Page 21: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/21.jpg)
21Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Tipos de datos• Posibilidad de ampliar el tipo de datos
– Cualificadores de tipos de datos: indican la cantidad de memoriaque se quiere utilizar para representarlos• Aplicables a int
– short, long, signed (con signo), unsigned (sin signo)• Aplicables a double
– long
– Ejemplos:int: si ocupara 2 bytes, rango: ‐215..215‐1, ‐32768 a 32767 (el bit más significativo codifica el signo, 0 es positivo y 1 es negativo)
int: si ocupara 4 bytes, rango: ‐231..231‐1, ‐ 2147483648 a 2147483647
unsigned int (con 2 bytes): 0 a 216‐1, por tanto, 0 a 65535unsigned int (con 4 bytes): 0 a 232‐1, por tanto, 0 a 4294967296
![Page 22: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/22.jpg)
22Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Tipos de datos
![Page 23: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/23.jpg)
23Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Tipos de datosCOMBINACIONES DE TIPOS BÁSICOS Y MODIFICADORES PARA
TAMAÑOS DE PALABRA DE 16 BITS
Tipo Tamaño en bits Rango
char 8 -128 a 127unsigned char 8 0 a 255signed char 8 -128 a 127
int 16 -32768 a 32767unsigned int 16 0 a 65535signed int 16 -32768 a 32767short int 16 -32768 a 32767unsigned short int 16 0 a 65635signed short int 16 -32768 a 32767long int 32 -2147483648 a 2147483647unsigned long int 32 0 a 4294967295signed long int 32 -2147483648 a 2147483647float 32 3.4E-38 a 3.4E+38double 64 1.7e-3.08 a 1.7E+308long double 80 3.4E-4932 a 1.1E+4932
![Page 24: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/24.jpg)
24Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Tipos de datos
24
COMBINACIONES DE TIPOS BÁSICOS Y MODIFICADORES PARATAMAÑOS DE PALABRA DE 16 BITS
Ejemplos:int: si ocupara 2 bytes, rango: -2^15..2^15-1, -32768 a 32767 int: si ocupara 4 bytes, rango: -2^31..2^31-1, - 2147483648 a 2147483647
unsigned int (con 2 bytes): 0 a 2^16-1, por tanto, 0 a 65535unsigned int (con 4 bytes): 0 a 2^32-1, por tanto, 0 a 4294967296
• La diferencia entre enteros con signo y sin signo está en la interpretacióndel bit más significativo. Si es 0 es positivo y si es 1 es negativo.
Ejemplo
127 en binario es 0000000001111111-127 en binario es 1000000001111111
Bit de signo
![Page 25: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/25.jpg)
25Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Constantes
3
![Page 26: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/26.jpg)
26Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Constantes
• Existen cuatro tipos de constantes en C:– Constantes enteras– Constantes en coma flotante– Constantes de carácter– Constantes de cadena de caracteres
• Constantes enteras y de coma flotante– Representan números (constantes numéricas)– No se pueden incluir comas ni espacios en blanco en la constante.– Si se desea la constante puede ir precedida de un signo menos.– El valor de la constante no puede exceder de un límite máximo y mínimo especificados. Estos límites varían de un compilador de C a otro.
Constantes numéricas
![Page 27: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/27.jpg)
27Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Constantes enteras
• Número con valor entero• Se pueden representar en tres sistemas numéricos:
– Decimal, octal, hexadecimal
• Constantes enteras decimales– Representan enteros en base 10– Combinación de dígitos de 0‐9– Si la constante tiene más de 1 dígito, el primer dígito debe ser distinto de 0
– Ejemplos:• Constantes enteras válidas:
– 15, 27, 147, 2000• Constantes enteras no válidas:
– 12,245 Carácter ilegal (,).– 36.0 Carácter ilegal (.).– 10 20 30 Carácter ilegal (espacio en blanco).– 123‐3 Carácter ilegal (‐).– 0534 El primer dígito no puede ser cero.
![Page 28: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/28.jpg)
28Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Constantes enteras
• Constantes enteras octales:– Representa enteros en base 8– Combinación de dígitos de 0‐7– El primer dígito debe ser siempre 0.– Ejemplos:
• Constantes enteras válidas:– 0, 01, 036, 022
• Constantes enteras no válidas:– 123Una constante octal siempre debe comenzar por 0.– 012492 Dígito ilegal (9).– 023.14 Dígito ilegal (.).
![Page 29: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/29.jpg)
29Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Constantes enteras
• Constantes enteras hexadecimales:– Representan enteros en base 16– Combinación de dígitos de 0‐9 y A‐F (a‐f)
A ‐ 10, B ‐ 11, C ‐ 12, D ‐ 13, E ‐ 14, F ‐ 15– Los primeros dígitos deben ser siempre 0x o 0X– Cada dígito hexadecimal necesita 4 bits para representarlo.– Ejemplos:
• Constantes enteras válidas:– 0x, 0x12, 0xFFA
• Constantes enteras no válidas:– 0X12.34 Carácter ilegal (.).– 0BE38 El dato no comienza por 0x o por 0X.– 0xGaAa Carácter ilegal (G).
![Page 30: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/30.jpg)
30Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Constantes enteras
• Memoria ocupada por una constante entera:– Rango normal (enteros de 2 bytes): [–32768 32767].– Rangos ampliados:
• Constantes enteras largas– Se especifican añadiendo L o l al final de la constante.
• Constantes enteras sin signo– Se especifican añadiendo U o u al final de la constante.
• Constantes enteras largas sin signo– Se especifican añadiendo UL o ul al final de la constante.
– Ejemplos:• 50000U Decimal sin signo.• 123456789L Decimal larga.• 123456789UL Decimal larga sin signo.• 0123456L Octal larga.• 0777777U Octal sin signo.• 0x50000U hexadecimal sin signo.• 0XFFFFFUL hexadecimal larga sin signo.
![Page 31: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/31.jpg)
31Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Constantes en coma flotante
• Numero en base decimal con un punto decimal y/o un exponente• El punto decimal se representa en C con (.)• El exponente se representa en C con (E o e)• Ejemplos:
– Constantes en coma flotante válidas:• 0. / 1. / 0.2 / 50000. / 1.6667E+8 / 2E‐8 / 0.006e‐3 / .1234e12 / 9.3
– Constantes en coma flotante no válidas:• 1 Debe aparecer o bien un punto decimal o bien un exponente.• 1,000.0 Carácter ilegal (,).• 2e+10.2 El exponente debe ser una cantidad entera.• 3E 10 Carácter ilegal (espacio en blanco en el exponente).
![Page 32: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/32.jpg)
32Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Constantes de carácter
• Un único carácter encerrado entre comillas simples (‘)• Representación de los caracteres en memoria mediante código ASCII extendido (que es un valor entero equivalente)
– Utilizo 8 bits para codificar 256 caracteres diferentes, incluyendo caracteres de control.
– Esta organización define un “orden” entre los caracteres que permite realizar comparaciones
• Ejemplos:– ‘A’ ‘4’ ‘g’ ‘’
![Page 33: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/33.jpg)
33Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Constantes de carácter0 NUL 32 blanco 64 @ 96 `
1 SOH 33 ! 65 A 97 a
2 STX 34 “ 66 B 98 b
3 ETX 35 # 67 C 99 c
4 EOT 36 $ 68 D 100 d
5 ENQ 37 % 69 E 101 e
6 ACK 38 & 70 F 102 f
7 BEL 39 ‘ 71 G 103 g
8 BS 40 ( 72 H 104 h
9 HT 41 ) 73 I 105 i
10 LF 42 * 74 J 106 j
11 VT 43 + 75 K 107 k
12 FF 44 , 76 L 108 l
13 CR 45 - 77 M 109 m
14 SO 46 . 78 N 110 n
15 SI 47 / 79 O 111 o
16 DEL 48 0 80 P 112 p
17 DC1 49 1 81 Q 113 q
18 DC2 50 2 82 R 114 r
19 DC3 51 3 83 S 115 s
20 DC4 52 4 84 T 116 t
21 NAK 53 5 85 U 117 u
22 SYN 54 6 86 V 118 v
23 ETB 55 7 87 W 119 w
24 CAN 56 8 88 X 120 x
25 EM 57 9 89 Y 121 y
26 SUB 58 : 90 Z 122 z
27 ESC 59 ; 91 [ 123 {
28 GSFS 60 < 92 \ 124 |
29 RSGS 61 = 93 ] 125 }
30 USRS 62 > 94 ^ 126 ~
31 US 63 ? 95 _ 127 DEL
Valor ASCII Carácter Valor ASCII Carácter Valor ASCII Carácter Valor ASCII Carácter
![Page 34: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/34.jpg)
34Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Constantes de carácter
• Secuencias de escape– Representan caracteres no imprimibles
• ‘ / o bien caracteres de control como saltos de línea, tabulaciones, etc.
• Comienzan siempre con una barra inclinada (\)• Aunque se escriban con dos caracteres, internamente representan un único carácter.
sonido (alerta) \a 7retroceso \b 8
tabulador horizontal \t 9tabulador vertical \v 11
nueva línea \n 10avance de página \f 12retorno de carro \r 13
comillas \” 34comillas simples \’ 39
signo interrogación \? 63barra invertida \\ 92
nulo \0 0
Carácter Sec. Escape Valor ASCII
![Page 35: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/35.jpg)
35Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Constantes de cadena de caracteres• Una cadena de caracteres es una es una colección de datos de tipo carácter
• Una constante de cadena de caracteres consta de una secuencia de caracteres encerrados entre comillas dobles (“)
• Pueden incluir secuencias de escape• Debemos distinguir entre:
– ‘A’ y “A” NO ES LO MISMO‘A’: representa un sólo carácter“A”: representa una cadena de caracteres que tiene dos caracteres ( A y \0)
• Ejemplos:– “juan”– “al final salto de línea \n”
![Page 36: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/36.jpg)
36Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Constantes simbólicas• Se define como un identificador que sustituye a una secuencia de
caracteres– Los caracteres pueden representar una constante numérica, una constante de carácter o una constante de cadena de caracteres
– Se suelen definir al comienzo del programa#define NOMBRE_CONSTANTE valor#define NOMBRE_CONSTANTE valor
– No lleva ; al final pues no es una instrucción de C, sino una directiva para el preprocesador
• Ejemplos:# define INTERES 0.23
# define PI 3.141593
# define TRUE 1
# define FALSE 0
# define NOMBRE “juan”
![Page 37: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/37.jpg)
Variables
4
![Page 38: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/38.jpg)
38Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Variables
• Variable:– Identificador utilizado para representar cierto tipo de información dentro de una determinada parte del programa.• Pensamos en variables como etiquetas colocadas en determinadas posiciones de memoria.
– Una variable siempre debe tener asociado un tipo de datos– El tipo de datos de una variable se determina al declarar la variable
– El tipo de datos con que se declare una variable marcará el tipo de valores que va a poder almacenar
– Si no le asignamos un valor a una variable, puede tener cualquier valor
– Puede cambiar el contenido de una variable pero no su tipo asociado
![Page 39: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/39.jpg)
39Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Variables
• Ejemplo:int a;
int b;
int c;
char d;
.............
a = 3;
b = 5;
c = a + b;
d = ’a’;
...........
a = 4;
c = 19;
b = a - c; d = ’w’;
Declaración de variables
Instrucciones
![Page 40: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/40.jpg)
40Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Variables y vectores
• Se pueden declarar una variable que contenga un sólo elemento:
– int x;– char c;
• Se pueden declarar una variable que contenga varios elementos:
– A esta colección de elementos se le llama “vector”– Identificador asociado a una colección de datos– La referencia a cada uno de los datos de un vector se hace
utilizando el identificador del vector y un índice.– Los datos contenidos en un vector deben ser del mismo tipo.– Unidimensionales, bidimensionales, etc.– En C, el primer elemento de un vector en SIEMPRE el índice 0
![Page 41: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/41.jpg)
41Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Variables y vectores
• Ejemplo:
int lista_de_enteros[6];
lista_de_enteros[3] 1
0
122541143 2212
4321
lista_de_enteros
5
![Page 42: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/42.jpg)
42Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Variables y vectores• Cadena de caracteres:
– Se declara como: char mensaje[5];– El último elemento de una cadena de caracteres es siempre el carácter \0 que indica el fin de la cadena
– Por tanto, una cadena de caracteres de n caracteres necesita un vector de n+1 posiciones
• Ejemplo:– Representación en esa variable de la cadena de caracteres “Hola”
0
\0ao lH
4321
mensaje
![Page 43: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/43.jpg)
43Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Declaraciones
• Asociación de un tipo de datos con una variable concreta• Obligatorio declarar las variables para poder ser utilizadas dentro de un programa
• En C, las declaraciones se realizan al principio de las funciones
• Formato:tipo_de_dato variable1;tipo_de_dato variable1;tipo_de_dato nombre_del_vector[tamatipo_de_dato nombre_del_vector[tamañño];o];
• Se pueden declarar varias variables del mismo tipo en la misma línea pero NO es aconsejable.
• En la declaración de la variable se le puede asignar un valor, pero NO es aconsejable.
![Page 44: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/44.jpg)
44Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Declaraciones• Ejemplos:
– Declaración de una variable de tipo int que se llama a:int a;
– Declaración de una variable de tipo float que se llama raiz1:float raiz1;
– Declaración de una variable que es un vector de 12 posiciones de elementos de tipo float y que se llama raiz2:float raiz2[12];
– Declaración de una variable de tipo carácter (char) de nombre indicador:char indicador;
– Declaración de una variable que es un vector de 80 caracteres y que se llama texto:char texto[80];
– Declaración de una variable de tipo double y que se llama factor:double factor;
![Page 45: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/45.jpg)
Expresiones
5
![Page 46: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/46.jpg)
46Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Expresiones• Una EXPRESIÓN es la representación de un cálculo necesario para la obtención
de un resultado, es decir las expresiones son combinaciones de constantes, variables, funciones, símbolos de operación y paréntesis.
• Representa:– Un dato simple– Una entidad simple (constante, variable, elemento de un vector, referencia a una función)
– Combinación de entidades interconectadas por uno o más operadores– Condiciones lógicas– Ejemplos:
• Suma de la variable a y la variable b: a+b
• Asignación del valor de la variable y a la variable x: x = y• Asignación de la suma de los valores de las variables a y b a la variable c: c = a+b• Expresión lógica de comparación de si el valor de la variable x es menor o igual que el valor de la variable y: x <= y
• Expresión de comparación del valor de x y el valor de y: x == y• Incremento en 1 del valor de la variable i: i++ (equivalente a i= i +1)
![Page 47: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/47.jpg)
47Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Expresiones
• Numéricas: Son las expresiones que dan como resultado un número. Se construyen mediante los operadores aritméticos.
Ejp: PI * SQR(X)
• Alfanuméricas: Son las que producen resultados de tipo alfanumérico Se construyen mediante los operadores alfanuméricos.
Ejp: “HOLA” + “PEPE”
• Booleanas/lógicas: Expresiones que producen un resultado Cierto o Falso. Se construyen mediante los operadores lógicos y relacionales.
operandoOperador aritméticooperando
operandoOperador alfanuméricooperando
Operador lógico
Operadores relacionales
Ejp: A>0 y <=5
![Page 48: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/48.jpg)
48Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Instrucciones• Hacen que la computadora realice alguna acción• Hay tres tipos diferentes de instrucciones en C:
– Instrucciones de expresión• Expresión seguida de un punto y coma
– Instrucciones compuestas o Bloque de instrucciones• Formada por varias instrucciones individuales encerradas con un par de llaves { }
– Instrucciones de control• Realizan acciones especiales en los programas tales como comprobaciones lógicas, bucles y bifurcaciones
![Page 49: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/49.jpg)
49Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Instrucciones
a = 3;c = a + b;i++;printf (“El Area es igual a %f”,area);
{pi = 3.141593;circunferencia = 2 * pi * radio;area = pi * radio * radio;
}
while (cont <= n){
printf (“x = “);scanf (“%f”, &x);suma = suma + x;cont++;
}
• Ejemplos:Instrucciones de expresión
Bloque de instrucciones
Instrucciones de Control
(mientras)
![Page 50: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/50.jpg)
Funciones básicas de Entrada Salida
6
![Page 51: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/51.jpg)
51Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Entrada y salida de datos
• Entrada y salida de caracteres: getchar() y putchar()• Función scanf()• Función printf()• Funciones gets() y puts()
![Page 52: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/52.jpg)
52Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Entrada y salida de caracteres• Función getchar():
– Permite la entrada de caracteres uno a uno desde teclado.– Función de stdio.h– No requiere parámetros de entrada– Si hay un error en la lectura, devuelve un valor EOF– Modo de uso:
char tecla;tecla=getchar();
– Si se desean leer varios caracteres, es necesario incluir la función getchar() dentro de un bucle.
– Prototipo de la función:
int putchar( int ch );
![Page 53: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/53.jpg)
53Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Entrada y salida de caracteres• Función putchar():
– Envía un carácter al dispositivo de salida estándar– El carácter a transmitir deberá suministrarse a la función putchar() como argumento de la función• En forma de variable de tipo char• Como constante de tipo carácter
putchar(variable_tipo_carácter);
– Si hay un error en la escritura, devuelve un valor EOF– Ejemplo de uso:
char letra;letra=‘h’;putchar(letra);putchar(‘j’);
– Prototipo:int printf( const char *format, ... );
![Page 54: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/54.jpg)
54Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()• Permite la introducción de información desde el dispositivo de entrada estándar
– Permite cualquier combinación de valores numéricos, caracteres y cadenas de caracteres.
– La función devuelve el número de caracteres que se han conseguido introducir correctamente.
• Formato:scanf (cadena de control, arg1, arg2, .... , argn);
– Cadena de control:• Cadena de caracteres que contiene información acerca del formato de los datos que van a ser introducidos.
– Los argumentos (arg) son punteros a las direcciones de memoria donde se encuentran los datos.• Variables de un solo elemento: se indica la dirección con &• Variables de varios elementos de tipo carácter (cadena de caracteres): no hace falta el &
![Page 55: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/55.jpg)
55Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()– Es posible poner varios argumentos en la misma sentencia scanf(), pero NO es aconsejable por claridad, mejor hacerlo de uno en uno
int a;
int b;
printf(“Introducir el valor de a y b “);
/* Es posible usar */
scanf(“%d %d”, &a, &b);
/* Pero mejor */
printf(“Introduzca el valor de a: “);
scanf(“%d”, &a);
printf(“Introduzca el valor de b: “);
scanf(“%d”, &b);
![Page 56: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/56.jpg)
56Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()• Cadena de control:
– Incluye grupos de caracteres individuales.– Cada grupo de caracteres debe ir precedido por %.– El número de grupos de caracteres individuales en la cadena de control debe coincidir con el número de argumentos definidos en la función scanf().
– Los grupos de caracteres pueden estar separados por espacios en blanco, tabuladores, saltos de línea ...• Los espacios en blanco entre los datos de entrada serán leídos pero scanf() los ignorará
![Page 57: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/57.jpg)
57Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()Carácter de Conversión
Significado
c Dato tipo carácter
d Dato entero decimal
e Dato valor en coma flotante
f Dato valor en coma flotante (tipo float)
g Dato valor en coma flotante
h Dato entero corto
i Dato entero decimal, octal o hexadecimal
o Dato entero octal
s Dato cadena de caracteres (el carácter nulo \0 se añade automáticamente al final)
u Dato entero decimal sin signo
x Dato entero hexadecimal
[...] Dato cadena de caracteres que puede incluir caracteres de espaciado
lf Dato valor en coma flotante (tipo double)
![Page 58: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/58.jpg)
58Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()
#include <stdio.h>
int main (void)
{
char concepto[20];
int no_partida;
float coste;
double porc;
..............................
scanf (“%s”, concepto);
scanf(“%d”, &no_partida);
scanf(“%f”, &coste);
scanf(“%lf”, &porc);
}
El tipo de los argumentos debe ser coherente con los grupos de caracteres de la cadena de control
![Page 59: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/59.jpg)
59Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()
• Los datos introducidos deben corresponder con los argumentos de la función scanf en número, tipo y orden, (los datos octales y hexadecimales no llevan 0 ni 0x).
• Los datos de entrada pueden ser valores numéricos, caracteres sueltos, cadenas de caracteres o cualquier combinación de estos.
• Datos numéricos deben estar escritos como se han definido las constantes numéricas.
– Constantes octales y hexadecimales no necesitan ser precedidos de 0 y 0x al introducir dicho valor.
• Si se introducen dos o más datos, estos deberán estar separados por caracteres en blanco.
![Page 60: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/60.jpg)
60Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()
Ejemplo Función scanf: Separación de grupos de caracteres.
#include <stdio.h>int main(void)
{ char concep;int part; ... {No separamos los grupos de caracteres con blancos}scanf(“%i%c“,&part,&concep);printf(“%i %c”,part,concep); ...}
Una ejecución del programa: Si introducimos 10, dos blancos y el carácter ‘e’, tenemos:
10 e ↵10
![Page 61: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/61.jpg)
61Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()
![Page 62: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/62.jpg)
62Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()Ejemplo Función scanf :Separación de grupos de caracteres.
#include <stdio.h>int main(void){char concep;int part;... {Separamos los grupos de caracteres con blancos}scanf(“%i %c“,&part,&concep);printf(“%i %c”,part,concep); ...}Una ejecución del programa: Si introducimos 10, dos blancos y el carácter ‘e’, tenemos:
10 e ↵10 e
- La salida es el entero introducido en part, un blanco y el carácter ‘e’ introducido en concep.
Por tanto, si la cadena de control empieza con un char, es bueno preceder el primer % de un blanco y así eliminar caracteres extraños.
scanf (“ %c..”,.....)
![Page 63: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/63.jpg)
63Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()
63
![Page 64: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/64.jpg)
64Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()#include <stdio.h>int main (void){
int entero;/* Petición de los datos */printf("Introduce un valor en octal: ");scanf("%o", &entero);printf("\nEn octal: %o", entero);printf("\nEn decimal: %d", entero);printf("\nEn hexadecimal: %x", entero);
printf("\n\nIntroduce valor en hexadecimal: ");scanf("%x", &entero);printf("\nEn octal: %o", entero);printf("\nEn decimal: %d", entero);printf("\nEn hexadecimal: %x", entero);
printf("\n\nIntroduce un valor en decimal: ");scanf("%d", &entero);printf("\nEn octal: %o", entero);printf("\nEn decimal: %d", entero);printf("\nEn hexadecimal: %x", entero);
}
![Page 65: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/65.jpg)
65Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()Primera ejecución:
Introduce un valor en octal: 66
En octal: 66En decimal: 54En hexadecimal: 36
Introduce valor en hexadecimal: 66
En octal: 146En decimal: 102En hexadecimal: 66
Introduce un valor en decimal: 66
En octal: 102En decimal: 66En hexadecimal: 42
Segunda ejecución:
Introduce un valor en octal: 066
En octal: 66En decimal: 54En hexadecimal: 36
Introduce valor en hexadecimal: 0x66
En octal: 146En decimal: 102En hexadecimal: 66
Introduce un valor en decimal: 66
En octal: 102En decimal: 66En hexadecimal: 42
![Page 66: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/66.jpg)
66Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()Entrada de datos tipo cadena y carácter:
– Para leer un carácter se utiliza el especificador de formato: %c– Para leer una cadena de caracteres se utiliza el especificador de formato: %s• Hay que tener en cuenta que si se utiliza únicamente %s para leer una cadena, sólo leerá una palabra.Por ejemplo:
printf(“Introduce una cadena:”);scanf(“%s”, cadena);
Si el usuario introduce: Hola amigosEl resultado será que en la variable cadena sólo se habrá
almacenado la cadena “Hola”• Métodos alternativos para evitar este problema:
– Utilizar la función gets(): gets(cadena);– Uso de scanf() con el especificador: %[.....]
• Los corchetes incluyen los caracteres permitidos para la cadena.
• El uso de ^ sobre el grupo de caracteres [ ] permite la lectura de los caracteres opuestos a los encerrados entre corchetes.
![Page 67: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/67.jpg)
67Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()
La conversión de caracteres de tipo s se aplica a una cadena de caracteres que acaba en un carácter de espaciado.
Si deseamos que una cadena de caracteres pueda incluir blancos utilizar [...] e incluir en los corchetes los caracteres permitidos en la cadena.
Ejemplo Función scanf: Lectura de cadenas de caracteres.
#include <stdio.h>main()
{ char linea[80];...{Podemos guardar una cadena de máximo 80 caracteres} ...scanf(“ %[ ABCDEFGHIJKLMNÑOP]”,linea);...
}
Podemos guardar en lPodemos guardar en líínea una cadena de caracteres con los caracteres nea una cadena de caracteres con los caracteres blanco y blanco y ‘‘AA’’....’’PP’’
![Page 68: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/68.jpg)
68Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()
Si colocamos ^ antes de los caracteres de dentro de los corchetes, el sentido es el opuesto. Podemos leer cualquier cadena que no incluya esos caracteres.
Ejemplo Función scanf: Lectura de cadenas de caracteres.
#include <stdio.h>main()
{ char linea[80];...{Podemos guardar una cadena de máximo 80 caracteres} ...scanf(“ %[^\n]”,linea);...
}
Podemos guardar en lPodemos guardar en líínea una cadena de caracteres con cualquier carnea una cadena de caracteres con cualquier caráácter excepto cter excepto ‘‘��nn’’..
![Page 69: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/69.jpg)
69Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()
printf("Introduce una cadena:");scanf("%s", linea);printf("La cadena es: %s", linea);
Introduce una cadena:HOLA AMIGOS miosLa cadena es: HOLA
printf("Introduce una cadena:");scanf("%[ ABCDEFGHIJKLMNOPQRSTUVVXYZ]“,linea);printf("La cadena es: %s", linea);
Introduce una cadena:HOLA AMIGOS miosLa cadena es: HOLA AMIGOS
printf("\nIntroduce segunda cadena:");scanf("%[^\n]",linea);printf("La cadena es: %s", linea);
Introduce una cadena:HOLA AMIGOS miosLa cadena es: HOLA AMIGOS míos
printf("\nIntroduce una cadena:");gets(linea);printf("La cadena es: %s", linea);
Introduce una tercera cadena: HOLA AMIGOS miosLa cadena es: HOLA AMIGOS míos
CÓDIGO EJECUCIÓN
![Page 70: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/70.jpg)
70Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()
• Longitud de campo máxima:– Número de caracteres máximo para un determinado campo.– Se incluye un número entero entre el % y el carácter de conversión.
– El dato podrá estar compuesto por menos caracteres de los indicados por la longitud de campo máxima pero nunca por más.• Los datos sobrantes son interpretados como parte del siguiente dato
![Page 71: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/71.jpg)
71Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()
• Ejemplo:
123456789El entero es: 123
El float es: 45678.000000El caracter es: 9
#include <stdio.h>int main(void){
int i;float x;char c;
scanf("%3d",&i);printf("El entero es: %d \n", i);scanf("%5f", &x);printf("\nEl float es: %f", x);scanf("%c", &c);printf("\nEl caracter es: %c", c);
}
CÓDIGO
Ejecución 1
Ejecución 2
12El entero es: 1215634.8897
El float es: 15634.000000El caracter es: .
![Page 72: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/72.jpg)
72Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()
Ejemplo Función scanf: Longitud de campo máxima.
#include <stdio.h>int main(void)
{int a,b,c;... {Colocamos como longitud 3}scanf(“%3d %3d %3d“,&a,&b,&c);...
}Una ejecución del programa: Si tenemos en el input ‘123456789’
:
123456789 ↵
a = 123 b=456 c=789
![Page 73: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/73.jpg)
73Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()
Es posible saltarse un dato del input colocando * tras %, (supresisupresióón de n de asignaciasignacióónn).
Ejemplo Función scanf: Supresión de asignación.
#include <stdio.h>int main(void)
{char concepto[20];int no_partida;float coste;... {Colocamos * antes de d}scanf(“ %s %*d %f“, concepto,&no_partidab,&coste);...
}Una ejecución del programa: Si tenemos en el input ‘hola 2 34
4.5’ :
hola 2 34 4.5 ↵
concepto = “hola” no�partida=34 coste=4.5
![Page 74: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/74.jpg)
74Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()
Podemos saltarnos caracteres de espaciado de input con el carácter de conversión “%1s” en lugar de “ %c” .( NO utilizar).
Ejemplo Función scanf. Omisión de espaciado.
#include <stdio.h>int main(void)
{char c1,c2,c3;... {Colocamos “%1s”}scanf(“ %c%1s%1s“,&c1,&c2,&c3);...
}Un programa equivalente:
#include <stdio.h>void main(void)
{char c1,c2,c3;... {Colocamos “ %c”}scanf(“ %c %c %c“,&c1,&c2,&c3);...
}
![Page 75: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/75.jpg)
75Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función scanf()
Si aparecen caracteres no reconocidos en la cadena de control, se espera que aparezcan en el input.
- Si no aparecen scanf terminará su ejecución.
Ejemplo Función scanf.
#include <stdio.h>int main(void)
{
int i;float x;... {Colocamos una a}scanf(“%d a %f“,&i,&x);...
}Una ejecución del programa: Si tenemos en el input
‘ 2 34’ :
2 34 ↵
TERMINA LA EJECUCIÓN DE scanf
![Page 76: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/76.jpg)
76Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función printf()
• Escribe datos en el dispositivo de salida estándar.– Válida para cualquier combinación de valores numéricos, carácter o de cadena de caracteres
– Formato:printf (cadena de control, arg1, arg2, ..., arg);
– Cadena de control:• Cadena que hace referencia al formato de los datos a escribir• Las reglas aplicables a los grupos de caracteres en scanf() también son aplicables a printf()
• Dentro de la cadena de control pueden aparecer caracteres que no sean necesariamente caracteres de conversión
– Estos se muestran directamente a la pantalla– Los argumentos pueden ser cualquier tipo de variable y no es necesario precederlos del &
printf (cadena de control, arg1,arg2,...., argn);
![Page 77: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/77.jpg)
77Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función printf()
Carácter de
Conversión
Significado
c Dato tipo carácterd Dato entero decimale Dato valor en coma flotante con exponente
f Dato valor en coma flotante sin exponente
g Dato valor en coma flotante utilizando la conversión de tipo e o la conversión de tipo f según sea el caso. No se visualizan ni los ceros finales ni el punto decimal cuando no es necesario.
i Dato entero decimal con signoo Dato entero octal, sin el cero inicials Dato cadena de caracteresu Dato entero decimal sin signox Dato entero hexadecimal sin el prefijo 0x
![Page 78: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/78.jpg)
78Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función printf()Ejemplo:
#include <stdio.h>
#include <math.h>
int main(void)
{
float i;
float j;
/* Inicializaciones */
i = 2.0;
j=3.0;
printf(“%f %f %f %f”, i, j, i+j, sqrt(i+j));
}
Resultado:2.000000 3.000000 5.000000 2.236068
![Page 79: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/79.jpg)
79Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función printf()
Ejemplo:#include <stdio.h>
int main(void)
{
double x;
double y;
/* Inicializaciones */
x=5000.0;
y=0.0025;
printf(“%f %f %f %f \n\n”, x, y, x*y, x/y);
printf(“%e %e %e %e”, x, y, x*y, x/y);
}
Resultado:5000.000000 0.002500 12.500000 2000000.0000005.000000e+03 2.500000e-03 1.250000e+01 2.000000e+06
![Page 80: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/80.jpg)
80Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función printf()Se utiliza la conversión de tipo s para visualizar una cadena de caracteres, que puede incluir caracteres blancos y que termina en �0.
- Nótese la diferencia con scanf.
Ejemplo Función printf. Programa que lee una línea de texto y la muestra.
#include <stdio.h>
int main(void){char linea[80];... {Leemos la linea}scanf(“ %[^\n]“,linea);printf(“%s”,linea);...
}
Una ejecución del programa: Si tenemos en el input ‘Clase de Informática’ :
Clase de Informática ↵Clase de Informática
![Page 81: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/81.jpg)
81Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función printf()• LONGITUD DE CAMPO MÍNIMA:
– Especifica la longitud mínima del campo poniendo una cifra justo a continuación del %. (Por ejemplo, “%2d”)
– Si el campo tuviera una longitud menor a la de la longitud de campo mínima se rellena con espacios en blanco a la izquierda del campo.
– Si el campo tuviera longitud mayor se conserva esa longitud.
PRECISION MÁXIMA:Especifica el máximo número de cifras decimales con que se representará un valor en coma flotante.Es un entero sin signo que siempre es precedido por un punto decimal.(Por ejemplo, “%.3f”)
Si se especifica la longitud de campo mínima además de la precisión, entonces la especificación de la precisión seguirá a la especificación de la longitud de campo. (Por ejemplo, “%2.3f”)
![Page 82: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/82.jpg)
82Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función printf()
#include <stdio.h>int main(void){int i;float x;
/* Inicializaciones */i=12345;x=345.678;
printf(“%3d %5d %8d \n\n”, i, i, i);printf(“%3f %10f %13f \n\n”, x, x, x);printf(“%3e %13e %16e”, x, x, x);
}
Resultado:12345 12345 12345
345.678009 345.678009 345.678009
3.456780e+02 3.456780e+02 3.456780e+02
Ejemplo de longitud de campo mínima:
![Page 83: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/83.jpg)
83Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función printf()
#include <stdio.h>
int main(void)
{
float x;
/* Inicialización */
x=123.456;
printf(“%7f %7.3f %7.1f\n\n”, x, x, x);
printf(“%12e %12.5e %12.3e”, x, x, x);
}
Resultado:123.456001 123.456 123.5
1.234560e+02 1.23456e+02 1.235e+02
Ejemplo 1 de longitud de campo mínima y precisión máxima:
![Page 84: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/84.jpg)
84Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función printf()
#include <stdio.h>
int main(void)
{
float x;
/* Inicialización */
x=123.456;
printf(“%f %.3f %.1f \n\n”, x, x, x);printf(“%e %.5e %.3e”, x, x, x);
}
Resultado:123.456001 123.456 123.5 (Ejemplo 2)
1.234560e+02 1.23456e+02 1.235e+02 (Ejemplo 2)123.456001 123.456 123.5 (Ejemplo 1, página anterior)
1.234560e+02 1.23456e+02 1.235e+02 (Ejemplo 1)
Ejemplo 2 de longitud de campo mínima y precisión máxima:
![Page 85: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/85.jpg)
85Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función printf()Se puede utilizar una longitud de campo mlongitud de campo míínimanima y precisiprecisióónn en cadenas de caracteres . - La precisión en una cadena de caracteres indica el número máximo de caracteres
se pueden visualizar.
Ejemplo Función printf. Longitud de campo y precisión en cadenas de caracteres.
#include <stdio.h>
int main(void) {char linea[12];... printf(“%10s %15s %15.5s %.5s”,linea,linea,linea,linea);...
}
Una ejecución del programa: Si tenemos en el input ‘Informatica’ :
Informatica Informatica Infor Infor
![Page 86: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/86.jpg)
86Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función printf()• Es posible incluir prefijos para especificar:
– Entero largo con o sin signo o doble precisión (l)– Entero corto con o sin signo (h)
• Valido también con scanf()
Resultado1: 3456 ffe4 34703321 789654234
#include <stdio.h>
int main(void)
{
short int a;
short int b;
long int c;
long int d;
/* Inicializaciones */
a = 3456;
b = 0xFFe4;
c = 034703321L;
d = 789654234L;
printf("%5hd %6hx %8lo %ld",
a, b, c, d);
}
#include <stdio.h>
int main(void)
{
short int a;
short int b;
long int c;
long int d;
/* Inicializaciones */
a = 345678;
b = 0xFFe423;
c = 03470332100632L;
d = 7896542342232L;
printf("%5hd %6hx %8lo %ld",
a, b, c, d);
}
Resultado2: 17998 e423 30332100632 -1902515112
Ejemplo1
Ejemplo2
![Page 87: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/87.jpg)
87Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función printf()• Posibilidad de incluir indicadores:Indicador Significado
- El dato se ajusta a la izquierda dentro del campo (si se requieren espacios en blanco para conseguir la longitud de campo mínima, se añaden después del dato en lugar de antes).
+ Cada dato numérico es precedido por un signo (+ o -). Sin este indicador, sólo los datos negativos son precedidos del signo menos.
0 Hace que se presenten ceros en lugar de espacios en blanco. Se aplica sólo a datos que estén ajustados a la derecha dentro de campos de longitud mayor que la del dato.(NOTA: algunos compiladores consideran el indicador cero como parte de la especificación de la longitud de campo en lugar de cómo indicador real. Esto asegura que el 0 es procesado el último si hay varios indicadores presentes)
‘ ‘ Cada dato numérico positivo es precedido por un espacio en blanco. Este indicador se ignora si se encuentra presente también el indicador +.
# Con las conversiones de tipo o y tipo x:Hace que los datos octales y hexadecimales sean precedidos por 0 y 0x.
# Con las conversiones de tipo e, tipo f y tipo g:Hace que se presenten todos los números en coma flotante con un punto, aunque tengan un valor entero. Impide el truncamiento de los ceros de la derecha realizada por la conversión de tipo g.
![Page 88: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/88.jpg)
88Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Función printf()
#include <stdio.h>
int main(void)
{
int i ;
float x;
float y;
/* Inicializaciones */
i= 123;
x=12.0;
y=-3.3;
printf(“%6d %7.0f %10.1e \n\n”,i ,x, y);
printf(“%-6d %-7.0f %-10.1e \n\n”,i ,x, y);
printf(“%+6d %+7.0f %+10.1e \n\n”,i ,x, y);
printf(“%-+6d %-+7.0f %-+10.1e \n\n”,i ,x, y);
printf(“%7.0f %#7.0f %7g %#7g \n\n”,x ,x ,y ,y);
}
Resultado:123 12 -3.3e+00
123 12 -3.3e+00
+123 +12 -3.3e+00
+123 +12 -3.3e+00
12 12. -3.3 -3.30000
![Page 89: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/89.jpg)
89Departamento de Sistemas InformáticosEscuela Técnica Superior de Ingeniería ICAI
Tema 3: Introducción al C
Funciones gets() y puts()• Permiten entrada y salida de cadenas de caracteres• gets(cadena):
– El argumento debe ser una variable de varios elementos (vector de caracteres o cadena de caracteres) de tipo carácter.
– Lee de la entrada estándar una cadena de caracteres– Si ha habido error, gets() devuelve NULL
• puts(cadena):– El argumento debe ser una variable de varios elementos (array) de tipo carácter
– Escribe en la salida estándar la cadena de caracteres seguida de una nueva línea
Ejemplo de uso:#include <stdio.h>
int main(void)
{
char linea[80];
gets(linea);
puts(linea);
}
![Page 90: Fundamentos de Informática basico C.pdf · • En C se declaran todas las variables al comienzo de la función • La ... – Es posible utilizar el carácter “_” en los identificadores](https://reader033.fdocumento.com/reader033/viewer/2022041613/5e3986e6c9558c2b27697903/html5/thumbnails/90.jpg)
Escuela Técnica Superior de Ingeniería ICAIAlberto Aguilera 2528015 MadridTel +34 91 542 28 00Fax + 34 91 542 31 76Iwww.icai.upcomillas.es
www.upcomillas.es