Title: Empezando a programar en C
1Empezando a programar en C
- Fundamentos de Programación Tema 3
- Lic. CC. Físicas curso 2005/06
2Contenido
-
- Empezar a programar...
- Estructura de un programa C
- Algo de Entrada / Salida
- Las bibliotecas de funciones
- Variables y constantes en C
- Declaración de variables
- Inicialización
- Constantes
- Identificadores
- Tipos de datos
- Tipos de datos simples
-
3Para empezar a programar en 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. - Incluye las construcciones típicas de los
lenguajes estructurados(distintos tipos de
condicionales y bucles).
4Para empezar a programar en C...
- Se distingue entre mayúsculas y minúsculas.
- Palabras clave en minúsculas.
- Cada instrucción (declaraciones o ejecutables)
termina por - Las cadenas de caracteres se encierran entre
comillas dobles a. - Los tipo carácter se encierran entre comillas
simples a.
5Para empezar a programar en C...
- El código se estructura en bloques.
- if (x lt 10)
- cout ltlt "muy pequeño, pruebe de nuevo"
- reini_contador(-1)
-
Un bloque de código(delimitado por llaves)
6Para empezar a programar en C...
- 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.
7Estructura 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
- Debe existir siempre una función llamada main (Y
SÓLO UNA) , nombre que no puede repetirse en
ninguna otra entidad del programa.
8Estructura de un programa 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
9Las 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)
10Las bibliotecas de funciones
- Por ejemplo, para extraer la raiz cuadrada de un
número se puede usar la función - sqrt (numero)
- Pero para usarla antes hay que declarla, y la
declaración está en la biblioteca math.h - include ltmath.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.
11Un ejemplo de uso de bibliotecas
Un ejemplo de programa include
ltmath.hgt int main() float raiz, numero
7 raiz sqrt(numero) 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()
12Algo de Entrada / Salida
- Las operaciones de entradas y salidas no están
definidas como instrucciones en el núcleo del
lenguaje, sino en bibliotecas. - 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 estándar se llama cin.
- Canales de salida estándar cout (cerr).
- En estos canales las entradas y salidas están en
formato legible (son tipo texto)
13Algo de Entrada / Salida
cout ltlt
- cómo usar el canal de salida estándar?
- Paso 1. Declararlo...
- include ltiostream.hgt
- Paso2. Usarlo...
- Se puede escribir cualquier tipo de dato
predefinido. - Cada dato o salida se precede de ltlt (INSERTOR)
- 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
-
en c hay que declarar cualquier identificador
antes de usarlo!!!
14Algo de Entrada / Salida
cout ltlt
- El insertor se puede secuenciar.
- cout ltlt La aproximacion a pi tras ltlt
iteraciones - ltlt iteraciones es ltlt pi ltlt \n
- Paso 3... formatear la salida. Los manipuladores
de la salida están declarados en iomanip.h - setprecision(precision). Sirve para determinar
la precisión con que se saca un dato real. - setw(anchura). Sirve para especificar la anchura
de mínima que ocupará el siguiente dato. - 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
15Algo de Entrada / Salida
cin gtgt
- cómo usar el canal de entrada estándar?
- Paso 1... Declararlo.
- Paso 2. Usarlo.
- Se puede leer por el canal de entrada 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
16Algo de Entrada / Salida
cin gtgt
- Qué pasa si falta concordancia entre lo que
pedimos leer y lo que el usuario nos da? - Qué pasa con los espacios?.
17Un 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
18Un 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
19Qué es una variable en programación
- Posiciones de memoria donde se almacena un dato
durante la ejecución.
20Qué es una variable en programación
ACCIÓN se reserva una cierta cantidad de memoria
y se asigna un identificador
- Primer paso... Declaración
- 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
21Qué es una variable en programación
- Segundo paso...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
22Qué es una variable en programación
- 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
-
-
23Qué es una variable en programación
- 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? -
-
ACCIÓN se almacena un dato en una posición de
memoria
24Qué es una constante en programación
- 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. -
25Tipos de datos
- Clasificación de tipos
- Simples
- Estructurados
- Predefinidos
- Definidos por el programador
26Tipos de datos
27Tipos de datos
bool
- bool
- conjunto de valores. valores lógicos (true /
false). - operaciones
- 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.
- Comparaciones de igualdad. Entre valores del
mismo tipo, devuelven un tipo bool.
28Tipos de datos
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
29Tipos de datos
int
- int
- conjunto de valores. cantidades enteras (entre
?32768 y 32767). - operaciones.
- 1. Aritméticas. , -, , /, (resto de la
división). - a 34 5
- b a 10
- 2. Asignación.
- var op expresion Con un operador de los de
1. - var var op expresion
- int x 5, y 10
- x 3 // Equivale a?
- y x y // Equivale a?
30Tipos de datos
int
- 3. Incremento y Decremento.
- var
- var --
- 4. Relacionales. gt, gt, lt, lt, , !.
- Su resultado es siempre un tipo bool.
- Bool b1, b2
- int x 4, y 5
- b1 y lt 4
- x
- b2 x y
-
31Tipos de datos
char
- char
- conjunto 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.
32Tipos de datos
- 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).
33Tipos de datos
- 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)
34Tipos de datos
- Conversión automática de tipos
- variable expresión
- 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
35Tipos de datos
- 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.
36Un 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 ltiostream.hgt
-
- int main()
-
-
-
-
-
-
-
-
-
- return 0
-
gtgtgt Prog0002
37Un 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 ltiostream.hgt
- int main()
-
- float base, altura, area
-
-
-
-
-
-
-
- return 0
-
Los datos
gtgtgt Prog0002
38Un 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 ltiostream.hgt
-
- 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
gtgtgt Prog0002
39Un 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 ltiostream.hgt
-
- 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
gtgtgt Prog0002
40Un 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 ltiostream.hgt
-
- 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