



























































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Informática_1, Profesor: Pedro Luis Galindo Riaño, Carrera: Matemáticas, Universidad: UCA
Tipo: Apuntes
1 / 67
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




























































Lenguaje de medio nivel (entre ensamblador y un lenguaje de alto nivel).
Muy sencillo, con 28 palabras clave.
Portátil hasta cierto punto, sólo se necesitaría recompilar.
Incorpora una librería estándar de funciones.
Permite construirse las propias funciones o estructuras de datos.
Utilizado fundamentalmente para la programación de sistemas, puesto que o forma parte o interere directamente con el sistema operativo del ordenador. Además genera un código que se ejecuta tan rápido como el ensamblador y está pensado como un lenguaje para programadores.
Es un lenguaje estructurado: uso de bloques de programación, funcio- nes.
El C es un lenguaje compilado: fuente −→ objeto −→ ejecutable. El proceso de compilación es más lento, frente al uso de un intérprete, pero una vez compilado, el programa se ejecuta mucho más rápidamente.
2.1. La función main
Primera función en ejecutarse, esté donde esté. Por cuestiones de claridad siempre suele ponerse al principio, y todas las funciones que se utilizan se ponen debajo. La única diferencia de main con otras funciones es que cuando se encuentra el procesador la llave de cierre termina el problema, en vez de devolver el control al programa principal.
2.2. Los argumentos de una función
Las funciones pueden tener cero o más argumentos, separados por comas. De tal manera que cuando se dene la función se ponen los parámetros formales, que contendrán la información que se les pase cuando se llame a la función. Hay que asegurarse que los parámetros formales se correspondan en número, tipo y posición con los reales.
El C es un lenguaje robusto y hace muy pocas comprobaciones de tipos, por lo que lo más probable es que haga algo, aunque no sea lo que nosotros queremos si nos equivocamos en los tipos. C tiende a utilizar posiciones de memoria, más que el concepto de variable, con lo cual ante unos parámetros de tipos distintos a los esperados el resultado de su utilización puede ser totalmente inesperado.
Ejemplo:
mul (x, y) /* funci'on mul / int x, y; / x e y se declaran como variables enteras / { return (xy); /* Devuelve el producto de ambos argumentos */ }
Ejemplo: Utilización de la función mul en un programa.
main() { int x, y, j, k;
x = 1; y = 2; p = mul(x,y); printf ("%d",p); /* escribe el valor de p en decimal */
j = 234; k = 10; p = mul (k, j); printf("%d",p); }
/* Aqui vendria la definicion de la funcion mul */
El punto y coma es un terminador de una entidad lógica. Las llaves permiten denir bloques de sentencias agrupadas. El C no reconoce el carácter de nueva línea como terminador, por tanto podemos extendernos lo que queramos. Se utiliza por motivos de claridad simplemente. Por tanto las siguientes expresiones son equivalentes:
x = y; y = y + 1; mul(x,y);
Es equivalente a:
x = y; y = y + 1; mul(x,y);
El formato de las líneas es libre en C, por lo que puede utilizarse indentación o no. Se recomienda utilizar siempre indentación para hacer más claros los programas.
Función predenida que muestra por pantalla el contenido de sus argumen- tos.
printf (" %d", 123);
En general tendrá la forma:
printf (çadena de control", lista de argumentos);
3.1. Variables
Pueden estar nombradas por uno o varios caracteres. Dependiendo de los compiladores se aceptarán nombres más o menos largos, pero al menos se aceptan seis distintos. Se puede incluir el carácter de subrayado. Pueden comenzar su nombre por una letra (más recomendable) o bien por el carácter de subrayado.
Se diferencian las letras mayúsculas de las minúsculas, por tanto la variable importe e IMPORTE son distintas.
Se puede dar cualquier nombre a una variable excepto: una palabra clave de C o el nombre de una función de C. En C es obligatorio denir todas las variables antes de utilizarlas, a diferencia por ejemplo de Fortran que asignaba tipos por defecto a algunas variables.
Lista de palabras clave en C. Notar el uso de minúsculas
auto double if static break else int struct case entry long switch char extern register typedef continue oat return union default for sizeof unsigned do goto short while
En C también se distinguen variables globales conocidas por todas las fun- ciones y las variables locales que son conocidas sólo dentro de su misma función. Las variables locales existen mientras la función es usada. Se crean cuando se llama a la función y se destruyen cuando se termina.
Cuando se denen variables se dice primero a qué tipo pertenecen y luego se les da el nombre. En C existen 7 tipos de datos predenidos, que luego se pueden ampliar utilizando los registros, que en C se conocen como estructuras o struct.
En la tabla siguiente aparecen los 7 tipos predenidos con su rango y longitud en bits para la mayor parte de los microprocesadores. Antes de utilizar esta información convendría contrastarla con el manual de C que se utilice. Notar también que en C los caracteres se manipulan y consideran como un entero sin signo.
Tipos de datos predenidos en C y sus palabras clave asociadas
Tipos de datos Palabra clave C Bits Rango carácter char 8 0 a 255 entero int 16 -32768 a 32767 entero corto short int 8 -128 a 127 entero largo long int 32 -4294967296 a 4294967295 entero sin signo unsigned int 16 0 a 65535 coma otante oat 32 6 dígitos precisión coma otante con doble precisión double^64
12 dígitos de precisión
Vamos a ver ahora un ejemplo de deniciones de variables dentro de una función , variables locales, y de deniciones fuera de la función main, que hacen a las variables globales.
ejemplo()
3.3. Los arrays o vectores
Podemos tener en C vectores de cualquier tipo de dato básico. Siendo su sintaxis la siguiente:
tipo nombre-variable [numero-elementos]
Importante:
El primer elemento del vector tendrá índice 0 y el último el número de elementos menos 1.
C no comprueba que se exceda el número de elementos de un vector.
En el caso de denir una cadena de caracteres como un vector, luego puede accederse de forma individual a cada uno de ellos como si fuese un carácter.
Ejemplos:
/* Definiciones */ int q[10]; char c[10]; float f[20];
/* Utilizacion / main() { char cadena[80]; / Array de 80 caracteres */
gets(cadena); /* rutina de C que lee una cadena por teclado / printf (cadena) / Imprime la cadena; tambien podria utilizarse printf ("%s",cadena); o bien puts(cadena) / / Impresion de caracteres de forma individual */ printf ("%c %c %c", cadena[0], cadena[1], cadena[2]);
}
3.4. Expresiones y operadores
nombre_variable = expresión
En C cuando en una asignación hay tipos distintos a izquierda y derecha lo que se hace es transformar la expresión del lado derecho de la asignación para que quede del tipo del lado izquierdo. Se seguirán las siguientes normas para calibrar la pérdida de información en las conversiones:
Tipo obtenido
Tipo de la expresión
Pérdida posible de información char short int signo char int 8 bits mayor peso char long int 24 bits mayor peso short int int 8 bits mayor peso short int long int 24 bits mayor peso int long int 16 bits mayor peso int oat parte fraccionaria y posiblemente más oat double precisión resultado redondeado
A la mayoría de las variables se les puede dar un valor al declararlas:
tipo nombre_variable = constante;
Ejemplos:
char ca = 'a'; int primero = 0; float balance = 123.45;
Casos especiales:
'\t' : tabulacion ''' : comilla simple
De esta manera pueden introducirse caracteres especiales como constantes.
Operador Aritmético Acción resta, también menos unario
Comentarios
La división entre enteros o carácter produce un entero. Sin resto.
La operación módulo sólo se puede efectuar entre enteros.
Los operadores ++ y se evalúan de forma diferente si están a la izquierda o a la derecha de su operador. Si están a la izquierda se evalúa la operación antes de hacer la asignación. Si están a la derecha se hace la operación de asignación y luego se realiza el incremento o decremento.
Para entender los conceptos de operadores lógicos y relacionales hay que tener en cuenta que en C se considera falso el valor 0, mientras que es cierto cualquier valor distinto de 0. Además el resultado de evaluar un operador lógico será 1 para signicar cierto y 0 para denotar falso.
Los operadores relacionales y lógicos tienen menos precedencia a la hora de evaluarse que los aritméticos.
Operador Relacional Acción
mayor que = mayor o igual que < menor que <= menor o igual que == igual != distinto
Operador lógico Acción && AND || OR ! NOT
Ejemplo:
Precedencia entre los operadores lógicos y relacionales:
maxima!
= < <= == != && minima ||
Las operaciones con bits se reeren a la comprobación, colocación o desplaza- miento de los bits actuales de una variable entera o carácter. Estas operacio- nes no pueden realizarse ni con los tipos oat ni double. Estas operaciones suelen realizarse cuando se comunican programas con dispositivos físicos.
Operador sobre bit Acción & AND | OR XOR complemento a uno
desplazamiento a la derecha << desplazamiento a la izquierda
Nota: Las operaciones entre bits se suelen utilizar para cambiar los valores de de- terminados bits de un operando, no para evaluar expresiones a cierto o a falso.
Los operadores de desplazamiento >> y << mueven todos los bits de una