You are on page 1of 52

Tema 1: Introducción al

Lenguaje C
Informática
Grado en Biotecnología

1
Índice
 El lenguaje C y funcionamiento
 Elementos de un programa en C
 Tipos de datos
 Variables y constantes
 Estructura de un programa en C
 Ejemplo
 Librerías y entrada y salida de datos
 Repaso y ejercicios

2
Índice
 El lenguaje C y funcionamiento
 Elementos de un programa en C
 Tipos de datos
 Variables y constantes
 Estructura de un programa en C
 Ejemplo
 Librerías y entrada y salida de datos
 Repaso y ejercicios

3
El Lenguaje C
 Lenguaje de alto nivel
 Aunque conserva algunas características de
bajo nivel
 Lenguaje de propósito general
 Lenguaje estructurado y modular
 Lenguaje compilado
 Genera código máquina muy compacto
 Diferencia la estructura básica del lenguaje y las
bibliotecas de apoyo
 Es secuencial.
4
¿Por qué lenguaje C?

5
¿Cómo hacer para que
funcione?
1. Edición
2. Compilación
3. Enlazado
4. Ejecución
5. Depuración (en EPD)

6
¿Cómo hacer para que
funcione?
1. Edición (Implementación)
 Escribimos el texto del programa y lo
almacenamos en un archivo con la extensión '.c'.
 Es lo que llamamos el código fuente.
2. Compilación
3. Enlazado
4. Ejecución
5. Depuración (en EPD)

7
¿Cómo hacer para que
funcione?
1. Edición
2. Compilación
 Para poder ser ejecutado, la secuencia de instrucciones
del programa debe ser convertida a un código
comprensible para la máquina.
 Para eso es necesario un traductor (el compilador) que
lee el archivo fuente y genera el archivo objeto
(habitualmente con la extensión '.o' o '.obj').
 Los errores de esta fase se llaman errores de
compilación.
3. Enlazado
4. Ejecución
5. Depuración (en EPD)
8
¿Cómo hacer para que
funcione?
1. Edición
2. Compilación
3. Enlazado
 Normalmente un programa necesita librerías
para su ejecución.
 Una librería es un conjunto de funciones que
proporciona C.
 En la fase de enlazado, el enlazador añade las
librerías para generar el archivo ejecutable.
4. Ejecución
5. Depuración (en EPD)
9
¿Cómo hacer para que
funcione?
1. Edición
2. Compilación
3. Enlazado
4. Ejecución
 Finalmente, podemos ejecutar nuestro
programa en la fase de ejecución.
 Los errores de esta fase se llaman errores de
ejecución.
5. Depuración (en EPD)

10
Fases de la compilación
Fuente Compilador
*.LIB

Precompilación Compilación Enlazado

*.C
Programa

*. EXE

*.LIB
*.C” *.OBJ
*.H Biblioteca
estándar

11
Ejemplo
1. Problema
2. Secuencia de operaciones
3. Resolver

12
Índice
 El lenguaje C y funcionamiento
 Elementos de un programa en C
 Tipos de datos
 Variables y constantes
 Estructura de un programa en C
 Ejemplo
 Librerías y entrada y salida de datos
 Repaso y ejercicios

13
Qué programa vamos a usar?

14
Elementos de un programa en C
 Identificadores
 Palabras reservadas
 Operadores y separadores
 Comentarios
 Tipos de datos
 Constantes y variables

15
Identificadores
 Hablamos de identificadores de variables
 Un identificador es una secuencia de caracteres,
letras, dígitos y subrayados.
 El primer carácter debe ser una letra o un
subrayado.
 Las mayúsculas y minúsculas son diferentes.
 Ejemplos:
 precio
 precioTotal
 sueldo_minimo
 valor_articulo_34
 Precio
16
Palabras reservadas OJO!!

 Las palabras reservadas tienen un significado


específico y únicamente se pueden utilizar con ese
significado en un programa.

auto double int struct


break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while

17
Operadores y separadores
 Todas las sentencias deben terminar con ;
Qué tipo de error daría sino?

 Operadores aritméticos: + - * /
 a+b
 a-b

 En general:
!%^&*()-+={}~[]\;’:<>?,./”

18
Operadores aritméticos
Operador Tipos enteros Tipos reales
+ Suma Suma
- Resta Resta
* Producto Producto
/ Cociente División
% Resto
++ Incremento Incremento
-- Decremento Decremento
19
Operadores relacionales
Operador Significado
> Mayor estricto que
>= Mayor o igual que
== Igual a
<= Menor o igual que
< Menor estricto que
!= Diferente a

20
Operadores lógicos
Operador Significado

&& Y

|| O

! NO

 La evaluación de operaciones lógicas ocurre


de izquierda a derecha y se detiene tan
pronto como es posible.
21
¿Qué resulta de?
 3*4+5 -> Reglas de prioridad.
 Establecen prioridad entre los operadores.
 Los paréntesis pueden alterar el orden de ejecución de las
operaciones, ya que las expresiones que están dentro de los
paréntesis se evalúan en primer lugar.
 6/2*3 -> Reglas de asociatividad.
 Resuelven la ambigüedad entre operadores de la misma
prioridad
 Siempre podéis utilizar paréntesis en vuestros
programas para evitar estos casos en los que se
aplica la prioridad y la asociatividad si no lo tenéis
claro.
 Debéis conocer las reglas para poder entender los
programas que escriben otros. 22
Prioridad y asociatividad
Operadores (ordenados de Asociatividad
arriba a abajo de mayor a
menor prioridad)
!, ++, --, - (unario) De derecha a izquierda

*, /, % De izquierda a derecha

+, - De izquierda a derecha

<, <=, > , >= De izquierda a derecha

==, != De izquierda a derecha

&& De izquierda a derecha

|| De izquierda a derecha

23
Ejemplos
(Enteros) 1.d+c++

a=3; 2.d+c++>a*b

b=4; 3.!(d+c++>a*b)

c=5; 4.a+d/b*a<d*c || a*c-b+d>=a*b


d=6; 5.a+d/b*a<d*c && a*c-b+d>=a*b

Antes de intentar resolverlo, entender el orden!!

24
Comentarios
 Se marca el inicio de un comentario con /* y
su finalización con */ (puede abarcar varías
líneas).
 Desde el año 99, se pueden utilizar
comentarios “en línea”. Éstos comienzan con
// y se alargan hasta el final de la línea.
 Ejemplos:
 /* Guardamos
en fichero */
 x++; // Incrementamos el valor de x
 /* (C) by Jesús */ 25
Índice
 El lenguaje C y funcionamiento
 Elementos de un programa en C
 Tipos de datos
 Variables y constantes
 Estructura de un programa en C
 Ejemplo
 Librerías y entrada y salida de datos
 Repaso y ejercicios

26
Tipos de datos
 C nos ofrece diferentes tipos fundamentales:
Caracteres
 char: [‘a’, ‘x’, ‘%’, ‘\n’]
Enteros:
 int: [De -32767 hasta 32767]
 long:[De −2147483647 hasta 2147483647 ]
Números con decimales (punto flotante)
 float: [De -3.4 × 1038 hasta +3.4 × 1038]
 double: [De ±5.0 × 10−324 hasta ±1.7 × 10308]
IMP! En C la coma se representa con el ‘.’
27
Tipos de datos
 C no existe el tipo de datos booleano
(True/False)
 En lugar de ello:
 si una variable=0 se considera Falso
 Si una variable!=0 se considera Verdadero
 !(c1==0)

28
Índice
 El lenguaje C y funcionamiento
 Elementos de un programa en C
 Tipos de datos
 Variables y constantes
 Estructura de un programa en C
 Ejemplo
 Librerías y entrada y salida de datos
 Repaso y ejercicios

29
Variables
 Una variable es una posición de memoria
donde se almacena un valor de un cierto tipo
de dato.
Dirección
0 1 0 1 1 0 0 0 1

30
Variables
 Las variables tienen un nombre
(identificador) que describe su propósito.
 Su declaración debe aparecer al principio de
un bloque (justo detrás de una { o de otra
declaración).

31
Declaración de variables
 La declaración tiene siempre la estructura
tipo nombre_variable;
tipo es un tipo de dato conocido en C
nombre_variable es un identificador válido en C
 Ejemplos:
 long numHoras;
 double anguloRotacion;
 float NotaMedia;
 char c;

32
Inicialización de variables
 Se puede proporcionar un valor a una variable
en el momento de su declaración.
tipo nombre_variable = expresion;
dónde expresion es cualquier expresión válida
del mismo tipo del que se define la variable
 Ejemplos:
 char respuesta = ‘S’;
 int contador = 1;
 float peso = 87.3*56.9;
 int anyo = 2008; (OJO con la ñ)
33
Asignación de valores a
variables
 Se puede modificar el valor de una variable en
cualquier momento del programa.
nombre_variable = expresion;
dónde expresion es cualquier expresión válida
del mismo tipo de la variable
 Ejemplos:
 x = (z-3)*12;
 segundos = minutos*60;
 f = m*a
 en_pesetas = en_euros * 166.386;
34
Constantes simbólicas
 La sintaxis es:
#define ID_CONSTANTE _MAYUS valor_constante
Pueden ser de varios tipos de datos. En el caso de constantes
de tipo carácter, éstas contienen un único carácter entre
comillas simples, en el caso de una constante de tipo cadena,
éstas contienen una secuencia de caracteres entre comillas
dobles.
 Ejemplos:
#define PI 3.14159
#define MAXIMO 999
#define ULTIMALETRA 'Z'
#define MENSAJE "Introduzca su edad:“
En la compilación se sustituyen los identificadores ( PI,
MAXIMO, ULTIMALETRA, MENSAJE) con su valor real
(3.14159, 999,’Z’, “Introduzca su edad”).
35
Constantes simbólicas
 Ejemplo suma

 Ejemplo comprobar si un número es mayor


que 999

36
Índice
 El lenguaje C y funcionamiento
 Elementos de un programa en C
 Tipos de datos
 Variables y constantes
 Estructura de un programa en C
 Ejemplo
 Librerías y entrada y salida de datos
 Repaso y ejercicios

37
Estructura de un programa C
Definición de constantes
directivas de preprocesador;
Inclusión de librerías
void main() {
variables locales de la función main;
instrucciones asociadas a la función main;
}

Ejemplo: Sumar y comprobar si es mayor que


999 y par

38
Índice
 El lenguaje C y funcionamiento
 Elementos de un programa en C
 Tipos de datos
 Variables y constantes
 Estructura de un programa en C
 Ejemplo
 Librerías y entrada y salida de datos
 Repaso y ejercicios

39
Ejemplo
Calcular el área de un círculo

40
Índice
 El lenguaje C y funcionamiento
 Elementos de un programa en C
 Tipos de datos
 Variables y constantes
 Estructura de un programa en C
 Ejemplo
 Librerías y entrada y salida de datos
 Repaso y ejercicios

41
Inclusión de Librerías
 Se utilizan para comunicar al compilador dónde está
la información necesaria para interpretar
correctamente las funciones, constantes y tipos
utilizados en el programa.
 Esta información se almacena en un fichero de
extensión .h (fichero de cabecera, header file) que
se importa mediante:
#include <nombre_fichero_cabecera.h>

 Ejemplo: #include <stdio.h> (funciones de entrada


y salida de datos)
42
Entrada/Salida
 Para mostrar valores por pantalla y recoger
valores desde el teclado.
 Las funciones de entrada salida se encuentran
en la librería estándar <stdio.h>.
 Entrada/salida de caracteres:
putchar, getchar
 Entrada/salida de cadenas:
puts, gets
 Entrada/salida con formato:
printf, scanf 43
Salida con formato
 La función printf permite escribir una lista de datos con
un formato preestablecido.
 Acepta diferentes tipos de argumentos: carácter, valor
numérico entero o real o cadena de caracteres
 Los escribe según un formato especificado sobre la
salida estándar. La forma de la función printf es:

printf ("formato", arg1, arg2, ..., argn);

 argi pueden ser constantes, variables o expresiones


 “formato” es una serie de caracteres en la cual se
pueden encontrar dos tipos de datos:
 texto a escribir literalmente,
 los símbolos especificadores del formato con el cual se van a
escribir las variables dadas como argumentos.
44
Especificadores de formato
para printf
Especificador Tipo de datos

%c Carácter

%d Número entero

%f Número real (float)

%lf Numero real (double)


%s Cadena de caracteres

45
Ejemplos de printf
1) float x=23.32;
printf (“\nEl cuadrado de %f vale %f”, x, x*x);

2) int edad = 34;


printf (“\nLa edad de %s es %d años”, “Juan”, edad);

3) double x = 3.141592654;
printf (“\nSeno (%f) = %f\n”, x, sin(x));

46
Entrada con formato
 La función scanf permite leer valores desde la
entrada estándar(teclado) y almacenarlos en las
variables que se especifican como argumentos.
 Éstas deben ir normalmente precedidas por el
símbolo &. La sintaxis es:

scanf ("formato", &arg1, &arg2, ..., &argn);

donde debe haber tantos especificadores en la cadena


de “formato” como variables en la lista de
argumentos. Los especificadores de formato son los
mismos que para la función printf

47
Ejemplos de scanf
1) int horas;
printf(“Introduzca el numero de horas\n”);
scanf(“%d”,&horas);

2) char letra;
printf(“Introduzca una letra\n”);
scanf(“%c”,&letra);

3) int horas; double velocidad_media;


printf(“Introduzca las horas conduciendo y la vel. media”);
scanf(“%d%lf”,&horas,&velocidad_media);

48
Mi primer programa en C

49
Índice
 El lenguaje C y funcionamiento
 Elementos de un programa en C
 Tipos de datos
 Variables y constantes
 Estructura de un programa en C
 Ejemplo
 Librerías y entrada y salida de datos
 Repaso y ejercicios

50
Ejercicios
1. Escribir un programa que lea la masa de un objeto y su
aceleración, calcule la fuerza que se está ejerciendo
sobre el mismo y lo muestre en pantalla. Recordad que
F = m * a.

2. Escriba un programa que tome por teclado los


coeficientes (a, b y c) de una ecuación de segundo
grado y la resuelva.

51
Ejercicios
3. Escriba un programa que dada una variable real f que
representa una temperatura en grados Fahrenheit,
almacene en otra variable real c la misma temperatura
en grados Celsius e imprima el resultado por pantalla.
Utilice la siguiente fórmula:

¿Cuáles de las siguientes expresiones son correctas?


1. c = 5/9*(f-32);
2. c = (5/9)*(f-32);
3. c = (5/9.0)*(f-32);
4. c = ((double)5/9)*(f-32);
5. c = (f-32)*5/9;
52

You might also like