<file_sep>/*
Programa:	brujeria.c
Sinopsis:	Ejemplo de uso de caracteres
Fecha:		Enero 2018
Autor:		<NAME>
Versión:	1.0
*/
#include<stdio.h>

int main() {
	char letra; //variable de letra

	//Un mensaje misterioso...¿lo adivinas?
	letra=65;
	printf("\nLetra: %c", letra);
	letra++;
	printf("\nLetra: %c", letra);
	letra+=16;
	printf("\nLetra: %c", letra);
	letra=65;
	printf("\nLetra: %c", letra);
	letra+=2;
	printf("\nLetra: %c", letra);
	letra=65;
	printf("\nLetra: %c", letra);
	letra+=3;
	printf("\nLetra: %c", letra);
	letra=65;
	printf("\nLetra: %c", letra);
	letra++;
	printf("\nLetra: %c", letra);
	letra+=16;
	printf("\nLetra: %c", letra);
	letra=65;
	printf("\nLetra: %c\n", letra);
	return 0;
}

<file_sep>/*
Programa:	tipos.c
Sinopsis:	Ejemplo de uso de tipos definidos por el usuario
Fecha:		Enero 2018
Autor:		<NAME>
Versión:	1.0
*/
#include<stdio.h>

//Un primer tipo definido por el usuario
typedef unsigned NUM_HIJOS;

//Un segundo tipo definido por el usuario
typedef float EUR;

//Más difícil todavía: tipo definido y enumerado
typedef enum {CONECTADA, TEST, FUNCIONANDO, PARANDO, DETENIDA} ESTADO;

int main() {
	//Declaración de variables: observar la forma de declarar ahora
	NUM_HIJOS mishijos=2;
	EUR salario=1200.0;
	ESTADO siemens=0;

	//Tipo definido NUM_HIJOS
	printf("\n Mis hijos: %u", mishijos);
	mishijos++; //Sorpresa de última hora
	printf("\n Mis hijos ahora: %u", mishijos);
	mishijos = -1;	//Es posible?
	printf("\n Mis hijos al final: %u\n", mishijos);

	//Tipo definido EUR
	printf("\nMi salario: %6.2f", salario);
	salario*=1.001;
	printf("\nDespués de IPC: %6.2f\n", salario);

	//Tipo definido y enumerado  ESTADO
	printf("\n Estado actual: %i", siemens);
	siemens++;
	printf("\n Cambio: %i", siemens);
	siemens+=6;
	printf("\n Estado final: %i\n", siemens); //Posible?

return 0;
}

<file_sep>/*
Triangulo, empleando %c para su representación
Enero 2018
<NAME>
*/
#include<stdio.h>
int
main ()
{
  printf ("\nTriangulo\n");
  printf ("\t%4c\n", '*');
  printf ("\t%3c%2c\n", '*', '*');
  printf ("\t%2c%4c\n", '*', '*');
  printf ("\t*******\n");
  return 0;
}
<file_sep>/*
Programa:	calendario.c
Sinopsis:	Ejemplo de definición de enumeraciones
Fecha:		Enero 2018
Autor:		<NAME>
Versión:	1.0
*/
#include<stdio.h>
#define MESES 12	//Número de meses que tiene el año

//Declaración del tipo enumerado (enumeración)
//enum Meses {ENERO, FEBRERO, MARZO, ABRIL, MAYO, JUNIO, JULIO, AGOSTO, SEPTIEMBRE, OCTUBRE, NOVIEMBRE, DICIEMBRE};

//Otra posible definición....¿es mejor?
enum Meses {NULO, ENERO, FEBRERO, MARZO, ABRIL, MAYO, JUNIO, JULIO, AGOSTO, SEPTIEMBRE, OCTUBRE, NOVIEMBRE, DICIEMBRE};


int main () {
	enum Meses mimes;	//Declaramos la variable de tipo enumerado Meses
	//Valor inicial
	mimes=ABRIL;
	
	printf ("\tMi mes: %i\n", mimes);

	//Avanzamos 3m
	mimes+=3;
	printf ("\tSalto de tres: %i\n", mimes); //JULIO
	//Avanzamos 6m
	mimes+=6;
	printf ("\tSalto de seis: %i\n", mimes); //¿?

	//Avanzamos "modularmente" 5m. ¿Por qué?
	mimes= (mimes + 5) % MESES;
	printf ("\tValor final: %i\n", mimes); //JUNIO!!
	return 0;

}




<file_sep>/*
Programa:	enumera.c
Sinopsis:	Ejemplo de definición de enumeraciones
Fecha:		Enero 2018
Autor:		<NAME>
Versión:	1.0
*/
#include<stdio.h>
/*
Programa:	enumera.c
Sinopsis:	Ejemplo de definición de enumeraciones
Fecha:		Enero 2018
Autor:		<NAME>
Versión:	1.0
*/
#include<stdio.h>

//Definición del tipo enumerado
enum colores
{ NEGRO = 0, ROJO = 1, VERDE = 2, AZUL = 4 };

//Prototipo de una función extraña
int pintadoDeVerde (enum colores micolor) ;

int
main ()
{
  enum colores colorPelo = NEGRO;
  printf ("\tColor inicial: %i\n", colorPelo);
  //Siguiente	
  colorPelo++;
  printf ("\tNuevo color: %i\n", colorPelo);
  //Dos siguientes	
  colorPelo+=2;
  printf ("\tNuevo color (cuidado): %i\n", colorPelo); //NO es un color

  //Avanzamos 5	
  colorPelo+=5;
  printf ("\tOtro color (cuidado): %i\n", colorPelo);

  //Función pintadoDeVerde
  printf("\nPintado de verde (1)?: %i\n", pintadoDeVerde(VERDE)); 
  printf("\nPintado de verde (2)?: %i\n", pintadoDeVerde(NEGRO)); 
	
  return 0;
}

//¿Puedes decir qué hace esta función?
int pintadoDeVerde (enum colores micolor) {
	return micolor==VERDE;
}

