Title: Introduccin al lenguaje C
1Introducción al lenguaje C
Departamento de Sistemas Informáticos
yProgramación
- Facultad de CC. FÃsicas. CURSO 05/06Laboratorio
de Programación SESIÓN 0
2Contenido
-
- El lenguaje C Datos, operadores y expresiones
- Variables y constantes en C
- Declaración de variables
- Inicialización
- Constantes
- Identificadores
- Tipos de datos
- Tipos de datos simples
- Algo de Entrada / Salida
- Estructura de un programa C
- Algunas caracterÃsticas sintácticas heredadas
de C - Estructura de un programa
-
3Introducción al lenguaje C
- La base de C el lenguaje C
- Incluye las construcciones tÃpicas de los
lenguajes estructurados(distintos tipos de
condicionales y bucles). - Componente estructural básico la función.
- Otra forma de estructuración el bloque de
código. - if (x lt 10)
- cout ltlt "muy pequeño, pruebe de nuevo"
- reini_contador(-1)
-
Un bloque de código(delimitado por llaves)
4Introducción al lenguaje C
- La base de C el lenguaje C
- Exige declarar cualquier entidad que se utilice
en el programa. - Se ha buscado un lenguaje mÃnimo se ha incluido
en bibliotecas muchas funciones que en otros
lenguajes se deja en el núcleo. - Siempre que se use una función u operación
definida en una biblioteca hay que indicar al
compilador dónde encontrarla.
5Introducción al lenguaje C
- La base de C el lenguaje C
- Se distingue entre mayúsculas y minúsculas.
- Palabras clave en minúsculas.
- Cada instrucción (declaraciones o ejecutables)
termina por - Forma de los comentarios
- / Un comentario de párrafo. Lo normal
- es que se extienda a lo largo de varias
- lÃneas. La marca de cierre se suele colocar
- bajo la de apertura.
- /
- //
- // Un comentario que acaba al final de esta
lÃnea.
6Introducción al lenguaje C
- La base de C el lenguaje C
- Las cadenas de caracteres se encierran entre
comillas dobles a. - Los tipo carácter se encierran entre comillas
simples a. - Los bloques de código se encierran entre llaves
7Introducción al lenguaje C
- Estructura de un programa C.
- Un módulo de programa se compone de dos partes
- SECCIÓN DE DECLARACIONES GLOBALES
- Contiene la definición de las entidades comunes a
todas las funciones del programa. - SECCIÓN DE DEFINICIÓN DE FUNCIONES
- Puesto que el componente estructural básico es la
función un módulo de programa se compone de
funciones. - Debe existir siempre una función llamada main ,
nombre que no puede repetirse en ninguna otra
entidad del programa. - La ejecución del programa empieza siempre por la
función main (donde quiera que esté). - Debe devolver un valor que refleje el estado de
error del programa. Devolver el valor 0 significa
que el programa terminó normalmente y sin errores.
8Introducción al lenguaje C
Forma general de un módulo de programa
- declaraciones globales
- función main( )
-
- secuencia de declaraciones e instrucciones
-
- función1( )
-
- secuencia de declaraciones e instrucciones
- función2( )
-
- secuencia de declaraciones e instrucciones
-
- . . .
- funciónN( )
-
- secuencia de declaraciones e instrucciones
Funciones
9Introducción al lenguaje C
- Las bibliotecas de funciones
- Cada biblioteca de funciones tiene asociada un
archivo de definición que se denomina archivo de
cabecera (o simplemente cabecera). - Los archivos de cabecera en C tienen la extensión
.h y contienen las declaraciones de los
elementos de programa (datos y funciones) que la
biblioteca exporta (pone a disposición). - Para utilizar algo de una biblioteca en un módulo
de programa hay que colocar al principio una
directiva de preprocesamiento include seguida
del nombre del correspondiente archivo de
cabecera entre comillas dobles o ángulos - include ltcabeceragt
- Programación modular (compilación separada de
módulos)
10Introducción al lenguaje C
- Las bibliotecas de funciones
- Por ejemplo, para mostrar datos en la pantalla
podemos usar el operador ltlt con el elemento
cout, que representa la salida estándar (la
pantalla normalmente) - cout ltlt dato
- Pero para poder usar cout y su operador ltlt (que,
por cierto, se denomina insertor) debemos incluir
la biblioteca donde están definidos se trata de
la biblioteca cuyas declaraciones se encuentran
en el archivo de cabecera iostream.h - include ltiostream.hgt
- Una vez que se incluye el archivo de cabecera se
conocen las declaraciones de la biblioteca y, por
tanto, se puede usar lo que está definido en ella.
11Introducción al lenguaje C
Un ejemplo de programa include
ltiostream.hgt int main() cout ltlt "Me
gusta programar en C\n" return 0
Cabecera de la funcióntipo de dato que
devuelvenombrelista de parámetros entre
paréntesis
Función
Cabecera de la función
Cuerpo de la función un bloque ...
La ejecución siempre comienza con la función
main()
12Introducción al lenguaje C
Un ejemplo de programa include
ltiostream.hgt int main() cout ltlt "Me gusta
programar en C\n" return 0
Biblioteca de E/S por consolaEste programa usa
la definición de cout como salida estándar y el
operador ltlt que se le aplica
Directiva de preprocesamiento
Las palabras reservadas las mostraremos en azul
para resaltarlas
13Introducción al lenguaje C
Un ejemplo de programa include
ltiostream.hgt int main() cout ltlt "Me
gusta programar en C\n" return 0
El punto y coma () es un terminador de
instrucciones(declaraciones o ejecutables)
cout flujo de salida estándar (normalmente la
pantalla)
ltlt operador de inserción (insertor) para flujos
de salidaEnvÃa al flujo el operando derecho
Constante de cadena de caracteres "..."
Secuencias de escape (constantes de carácter de
barra invertida)
Devuelve el valor-resultado
gtgtgt Prog0001
14El lenguaje C Datos, operadores y expresiones
- Declaración de variables en C
- En C todas las variables deben declararse.
- Se les asigna un tipo
- Se les asigna un identificador
-
- En C la declaración es una instrucción.
- La variable existe desde la instrucción de
declaración hasta que termina el bloque donde ha
sido declarada. - //Declaración de variables
- Tipo1 suma
- Tipo2 Suma
- Tipo3 SUMA
Nombres de identificadores Longitud entre uno y
32 caracteres. Primer carácter una letra o un
subrayado Resto de caracteres letras, números o
subrayados
C distingue entre minúsculas y mayúsculas
15El lenguaje C Datos, operadores y expresiones
- Inicialización y asignación de variables
- En C las variables se crean con valor
indefinido. - PELIGRO, antes de utilizar una variable tiene
el valor adecuado? - C permite dar valor a una variable al mismo
tiempo que se declara - Para dar valor a una variable se usa el operador
. - //Declaración de variables con valor
- TipoEntero suma 3
- TipoLetra carácter a
-
-
16El lenguaje C Datos, operadores y expresiones
- Inicialización y asignación de variables
- Se pueden declarar varias variables en una misma
instrucción separándolas por comas. - tipo suma, entero valor1, numero
- //es más fácil entender lo siguiente
- tipo suma
- tipo entero valor1
- tipo numero
-
-
17El lenguaje C Datos, operadores y expresiones
- Inicialización y asignación de variables
- Una instrucción de asignación se ejecuta de
derecha a izquierda. NO ES UNA IGUALDAD. - //declaración
- tipo numero1, numero2, numero3, numero4 10
- //asignaciones
- numero1 100
- numero2 200
- numero3 300
- numero1 numero2 numero3
- numero4 (numero2 numero4) 10
- //Cuánto valen numero1, numero2, numero3,
numero4? -
-
18El lenguaje C Datos, operadores y expresiones
- Constantes
- Una constante una programación es una variable
cuyo valor no varÃa a lo largo de la ejecución. - El valor se asigna en el momento de la
declaración. - tipo const NombreConstante ValorConstante
- En C el valor de una constante puede ser el
resultado de un cálculo. -
19El lenguaje C Datos, operadores y expresiones
- Tipos de datos simples predefinidos en C
- boolconjunto de valores. valores lógicos (true
/ false). - operaciones.
- 1. Operaciones lógicas. Entre valores tipo
bool. Devuelven tipo bool. - expr1 expr2 true si las dos son true.
- expr1 expr2 false si las dos son false.
- !exprb valor contrario del que tiene exprb.
- 1. Comparaciones de igualdad. Entre valores del
mismo tipo, devuelven un tipo bool (, !,
lt, gt, gt, lt).
20El lenguaje C Datos, operadores y expresiones
- Tipos de datos simples predefinidos en C
- Bool. Operaciones lógicas tablas de verdad.
- A B A B A B !A
- 0 0 0 0 1
- 0 1 0 1 1
- 1 0 0 1 0
- 1 1 1 1 0
21El lenguaje C Datos, operadores y expresiones
- Tipos de datos simples predefinidos en C
- int 3. Incremento y Decremento.
- var
- var --
- 4. Relacionales. gt, gt, lt, lt, , !.
- Su resultado es siempre un tipo entero
que se interpreta como bool (1 cierto, 0
falso). - Bool b1, b2
- int x 4, y 5
- b1 y lt 4
- x
- b2 x y
-
PROBAR x 10 y x //valor de y? X 10 Y
x //valor de y?
22El lenguaje C Datos, operadores y expresiones
- Tipos de datos simples predefinidos en C
- charconjunto de valores. Caracteres y cualquier
cantidad de 8 bits. - operaciones.
- Todas las de los enteros (en C los caracteres
son tratados como números). - char c1 a, c2 b, c3 A
- bool b1, b2
- b1 c2 gt c1
- b2 c3 gt c1 //Peligro el resultado depende del
sistema. - C2 //Siguiente carácter en orden alfabético.
23El lenguaje C Datos, operadores y expresiones
- Tipos de datos simples predefinidos en C
- floatconjunto de valores.
- números reales (entre 1.18E?38 y 3.4E38, y sus
negativos). - operaciones.
- , -, , /.
- doublenúmeros reales más grandes (entre
2.23E?308 y 1.79E308, y sus negativos).
24El lenguaje C Datos, operadores y expresiones
- Resumen tipos de datos simples predefinidos
- charcaracteres y cualquier cantidad de 8 bits.
- intcantidades enteras (entre ?32768 y 32767).
- floatnúmeros reales (entre 1.18E?38 y 3.4E38, y
sus negativos). - doublenúmeros reales más grandes (entre
2.23E?308 y 1.79E308, y sus negativos). - boolvalores lógicos (true / false).
- voidnada (indica, por ejemplo, que una función
no devuelve valor).
25El lenguaje C Datos, operadores y expresiones
- Modificadores de tipos (un)signed short/long
- Se altera el significado de un tipo base
- unsigned short int 0 a 255
- unsigned int 0 a 65535
- long int 2147483648 a 2147483647
- unsigned long int 0 a 4294967295
- long double 3.37E-4932 a 1.18E4932, y sus
negativos
modificador intse abrevia amodificador(long
int como long)
26El lenguaje C Datos, operadores y expresiones
- Instrucciones de asignación
- variable expresión
- Conversión automática de tipos
- Promoción de tipocuando los dos operandos son
de tipos distintos,el del tipo menor se
promociona al tipo mayor. - Tipos de mayor a menor
- long double
- double
- float
- long int
- int
- short int
- char
27El lenguaje C Datos, operadores y expresiones
- Expresiones
- Los operadores, las constantes y las variables
son lo que constituyen las expresiones.Una
expresión es cualquier combinación válida de esos
elementos (como en otros lenguajes). - Moldes (casts)
- Fuerzan a que una expresión sea de un tipo
determinado. - (tipo) expresión
- (float) x/2 asegura que el resultado es float
- Hay otras formas de moldes que se verán en su
momento.
28El lenguaje C Datos, operadores y expresiones
- Constantes literales
- Tipo de dato Ejemplos
- char 'a' '9' '\n'
- int 1 123 21000 234
- long int 35000 34
- unsigned int 10000 987 40000
- float 123.23 4.34e3
- double 12312333 0.9876324
- bool true false
- Además, constantes de cadena "Esto es una
prueba"
Constantes de barra invertida Para representar
caracteres especiales \n salto de lÃnea\t
tabulación. . .
29El lenguaje C Datos, operadores y expresiones
- Algo de Entrada / Salida
- En C se puede escribir y leer como en C
stdio.h. - O con las funciones incluidas en la biblioteca
iostream.h - Canal de entrada cin.
- Canales de salida cout (cerr).
- En estos canales las entradas y salidas están en
formato legible (son tipo texto)
30El lenguaje C Datos, operadores y expresiones
- Algo de Entrada / Salida. cout.
- Se puede escribir por el canal de salida
utilizando el operador ltlt (insertor). - Se puede escribir cualquier tipo de dato
predefinido. - int iteraciones 0
- double pi
- /Calculo de una aproximación de pi tras un
cierto nº de iteraciones/ - cout ltlt La aproximacion a pi tras
- cout ltlt iteraciones
- cout ltlt iteraciones es
- cout ltlt pi
- //
31El lenguaje C Datos, operadores y expresiones
- Algo de Entrada / Salida. cout.
- El insertor se puede secuenciar.
- cout ltlt La aproximacion a pi tras ltlt
iteraciones - ltlt iteraciones es ltlt pi ltlt \n
- Para los detalles de presentación se puede
utilizar manipuladores (en iomanip.h - setw(anchura). Sirve para especificar la anchura
de mÃnima que ocupará el siguiente dato. - setprecision(numdecimales). Establece el número
de decimales que se mostrarán en los siguientes
números en coma flotante. - cout ltlt setw(13) ltlt 32 ltlt \n
- cout ltlt setw(13) ltlt 0.123456789123456789 ltlt n
- cout ltlt setw(4) ltlt HOLA CARACOLA ltlt \n
- cout ltlt setw(32) ltlt HOLA CARACOLA ltlt \n
- cout ltlt setw(13) ltlt setprecision(15) ltlt
0.12345678901234567890 ltlt n
32El lenguaje C Datos, operadores y expresiones
- Algo de Entrada / Salida. cin.
- Se puede escribir por el canal de salida
utilizando el operador gtgt (extractor). - Se puede leer cualquier tipo de dato
predefinido. - int entero1, entero2, suma
- //Calcula la suma de dos enteros y la muestra
- cout ltlt Introduzca primer valor entero \n
- cin gtgt entero1
- cout ltlt Introduca segundo valor entero \n
- cin gtgt entero2
- suma entero1 entero2
- cout gtgt El resultado de la suma es ltlt suma
- //
33El lenguaje C Datos, operadores y expresiones
- Algo de Entrada / Salida. cin.
- Qué pasa si falta concordancia entre lo que
pedimos leer y lo que el usuario nos da? - Qué pasa con los espacios?.
34El lenguaje C Un ejemplo de programa
- Programa que pida la base y la altura de un
triángulo, calcule su área y muestre los datos y
el resultado. - include ltiostreamgt
- using namespace std
- int main()
-
-
-
-
-
-
-
-
-
- return 0
-
35El lenguaje C Un ejemplo de programa
- Programa que pida la base y la altura de un
triángulo, calcule su área y muestre los datos y
el resultado. - include ltiostreamgt
- using namespace std
- int main()
-
- float base, altura, area
-
-
-
-
-
-
-
- return 0
-
Los datos
36El lenguaje C Un ejemplo de programa
- Programa que pida la base y la altura de un
triángulo, calcule su área y muestre los datos y
el resultado. - include ltiostreamgt
- using namespace std
- int main()
-
- float base, altura, area
- cout ltlt "Introduce la base "
- cin gtgt base
- cout ltlt "Introduce la altura "
- cin gtgt altura
-
-
-
- return 0
-
Entrada de datos
37El lenguaje C Un ejemplo de programa
- Programa que pida la base y la altura de un
triángulo, calcule su área y muestre los datos y
el resultado. - include ltiostreamgt
- using namespace std
- int main()
-
- float base, altura, area
- cout ltlt "Introduce la base "
- cin gtgt base
- cout ltlt "Introduce la altura "
- cin gtgt altura
- area base altura / 2
-
-
- return 0
-
Cálculos
38El lenguaje C Un ejemplo de programa
- Programa que pida la base y la altura de un
triángulo, calcule su área y muestre los datos y
el resultado. - include ltiostreamgt
- using namespace std
- int main()
-
- float base, altura, area
- cout ltlt "Introduce la base "
- cin gtgt base
- cout ltlt "Introduce la altura "
- cin gtgt altura
- area base altura / 2
- cout ltlt "El área de un triángulo de base " ltlt
base - ltlt " y altura " ltlt altura ltlt " es " ltlt
area - return 0
-
Salida de datos
gtgtgt Prog0002