Está en la página 1de 11

Empezando a

programar
Marco A. Peña

Introducción a la programación en C

Departament d’Arquitectura de Computadors


Universitat Politècnica de Catalunya
2

Identificadores
/ Nombre para referir una constante, variable, función, ...
/ Secuencia de letras, números y _
/ No puede empezar con un número
/ Distingue mayúsculas y minúsculas
/ Palabras reservadas en ANSI C:
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
3

Estructura de un programa
/ Directivas del preprocesador
/ Definiciones de tipos de datos
/ Declaraciones de funciones. Entre ellas el programa principal :
main()

/* Evaluando una expresión */


#include <stdio.h> Constante
void main()
{ Cuerpo del
int a, b, c = 5; Variables programa
a = 3 * c;
b = 32 / 4; Sentencias
c = a − b;
Fin de
printf("Valor resultante: %d\n", c); sentencia
}
4

Variables
/ Objeto abstracto donde se almacena un valor. Se puede consultar
y modificar durante la ejecución del programa.
/ Declaración: antes de ser usadas por primera vez:
/ Reservar espacio en memoria
/ Asociar un identificador
/ Opcionalmente, asignar un valor (inicialización)

tipo_de_datos nombre_de_variable;
tipo_de_datos nombre_de_variable, nombre_de_variable, ... ;
tipo_de_datos nombre_de_variable = valor_inicial;

/ Ejemplo:
int a, b, c = 5;
5

Constantes
/ Se puede consultar pero no modificar su valor.
/ Literal: aparece cada vez que se necesita el valor:
/ Decimal: signo + dígito no 0 + dígitos 0 al 9
/ Octal: signo + 0 + dígitos 0 al 7
/ Hexadecimal: signo + 0x o 0X + dígitos 0 al 9 y A a F
/ Coma flotante:
/ signo + parte entera + . + parte decimal
/ signo + mantisa + exponente

/ Simbólica: asocia un valor fijo a un nombre.


#define PI 3.14
perimetro = 2 * 3.14 * radio; ...
area = 3.14 * radio * radio; perimetro = 2 * PI * radio;
area = PI * radio * radio;
6

Entrada y salida básica


/ C proporciona entrada y salida con formato (entre comillas).

/ Mostrar mensajes y valores en pantalla. Ejemplo:


char ch;
int num;
. . .
printf("Un carácter: %c . Y un entero: %d\n", ch, num);

/ Introducir valores por teclado. Ejemplo:


char ch;
int num;
. . .
scanf("%c %d", &ch, &num);
7

Expresiones aritméticas
/ Fórmula matemática que especifica un valor
/ Asignación: variable = expresión;
Unarios Cambio de signo −
Incremento ++
Decremento −−
/ Operadores: Binarios Suma +
Resta −
Multiplicación *
División /
Módulo %
/ Forma pre−fija y post−fija de ++ y −− . Ejemplo:
z++;
x = ((++z) − (w−−)) % 100; x = (z − w) % 100;
w−−;
/ Operación y asignación de forma compacta. Ejemplo:
i = i + 5; i += 5;
x = x * (y + 2); x *= (y + 2);
8

Expresiones relacionales
/ Condiciones básicas en sentencias condicionales e iterativas
Menor que <
Mayor que >
Menor o igual que <=
/ Operadores:
Mayor o igual que >=
Igual que ==
Distinto que !=
/ Resultado lógico:
/ falso ⇔ cero
/ cierto ⇔ distinto de cero

4 > 8 ⇔ falso 23 == 22⇔ falso


/ Ejemplos:
3 <= 24 ⇔ cierto 4 != 5 ⇔ cierto

/ No confundir asignación (=) con comparación (==): x = 3 es


también una expresión, ..., no cero ⇔ cierto
9

Expresiones lógicas
/ Expresiones condicionales complejas
Conjunción ó Y lógico &&
/ Operadores: Disyunción ó O lógico ||
Negación ó NO lógico !
A B !A A && B A || B
cierto cierto falso cierto cierto
/ Tabla de verdad: cierto falso falso falso cierto
falso cierto cierto falso cierto
falso falso cierto falso falso

/ Ejemplos:
4 && 0 falso (5 <= 0) || !(x > x −1) falso
!(4 > 1) falso 2 && (4 > 9) falso
(x < x − 8) || 4 falso (8 == 4 * 2) && (5 > 2) cierto
10

Prioridad de operadores
Operador Símbolo Asociatividad
+ Paréntesis () Izquierda a derecha
NO lógico ! Derecha a izquierda
Cambio de signo −
Incremento ++
Decremento −−
Multiplicación * Izquierda a derecha
División /
Módulo %
Suma + Izquierda a derecha
Resta −
Menor que < Izquierda a derecha
Menor o igual que <=
Mayor que >
Mayor o igual que >=
Igual que = Izquierda a derecha
Distinto que !=
Y lógico && Izquierda a derecha
O lógico || Izquierda a derecha
Asignaciones = += −= Derecha a izquierda
− *= /= %=
11

Ejercicios
/ Pedir la base y la altura de un rectángulo, calcular su área y su
perímetro, y mostrar los resultados por pantalla.
/ Pedir una cantidad de segundos y mostrar por pantalla a cuántas
horas, minutos y segundos corresponden.
/ Suponiendo la declaración previa: int x = 7, y; , calcular el valor de
la variable y tras evaluar cada una de las siguientes asignaciones:
• y = −2 + −−x;
• y += 2;
• y = (y == x);
• y = y++ − x;
/ Evaluar las siguientes expresiones:
• 5 / 2 + 20 % 6
• 4 * 6 / 2 − 15 / 2
• 5 * 15 / 2 / (4 − 2)
• 8 == 16 || 7 != 4 && 4 < 1
• (4 * 3 < 6 || 3 > 5 − 2) && 3 + 2 < 12

También podría gustarte