[Cursoc] Algunos ejemplos

Magnanego, Nestor Nestor.Magnanego@nuevobancosuquia.com.ar
Fri, 17 Dec 2004 11:02:08 -0300


Un mail un poco largo, con algunos ejemplos tomados de de aqui y de alla.
Saludos.
Nestor.
PD: Habra más
PD2: Quien tenga ejemplos con que colaborar con la lista, agradecido.

/* ej02.c */

#include <stdio.h>
int main(void)
{
	int answer = 42;
	printf("Y la respuesta es es: %d\n", answer);
	return 0;
}
----------------------------------------------------------------------------
-------------

/*ej03.c   */

#include <stdio.h>
#include <math.h>
int main(void)
{
	double a, pi;
	int b;
	a = 500 / 40; 
	printf("a = %.3f\n", a);
	a = 500.0 / 40; 
	printf("a = %.3f\n", a);
	a++;
	printf("a now = %.3f\n", a);
	b = (int) a;
	b ^= 5;
	printf("b = %d\n", b);
	pi = 4 * atan(1.0);
	printf("pi ~= %.10f\n", pi);
	return 0;
}

----------------------------------------------------------------------------
-------------

/* ej04.c */

#include <stdio.h>
enum colores {ROJO, NARANJA, AMARILLO, VERDE, AZUL, INDIGO, VIOLETA,
	NUMERO_DE_COLORES};
typedef enum colores colores_t;
int main(void)
{
	colores_t cielo, bosque;
	printf("Son  %d colores en el enum\n", NUMERO_DE_COLORES);
	cielo = AZUL;
	bosque = VERDE;
	printf("cielo = %d\n", (int)cielo);
	printf("bosque = %d\n", (int)bosque);
	return 0;
}

----------------------------------------------------------------------------
-------------

/* ej05.c */

enum marcas {VOLKSWAGEN, FORD, MERCEDES, TOYOTA, PEUGEOT};
enum colores {ROJO, VERDE, AZUL, GRIS, NEGRO, BLANCO};
struct auto {enum marcas marca;
	       enum colores color;
		  int usado;
		  union {unsigned long kilometraje; int meses_garantia;}
infoauto;
	       unsigned diesel:1, airbag:1, aire_acondicionado:1;
	 };
int main(void)
{
	struct auto miauto = {VOLKSWAGEN, GREY, 1, 50000, 0, 0, 0};
	struct auto tuauto;
	tuauto.marca = MERCEDES;
	tuauto.color = NEGRO;
	tuauto.usado = 0;
	tuauto.infoauto.meses_garantia = 12;
	tuauto.diesel = 1;
	tuauto.airbag = 1;
	tuauto.aire_acondicionado = 1;
	return 0;
}

Este programa no tiene salida por pantalla, pero puedes hacersela si
quieres.

----------------------------------------------------------------------------
-------------------------------------------

/* ej06.c */

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
	int sino;
	srand((unsigned)time(NULL));
	sino = rand() % 2;
	if (sino == 0)
		printf("No\n");
	else
		printf("Si\n");
	return 0;
}

----------------------------------------------------------------------------
-------------

/* ej07.c */


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

enum animal {GATO, PERRO, VACA, BURRO, ARAÑA, NUMERO_DE_ANIMALES};

void animalsonido(enum animal animalnro)
{
	switch(animalnro)
	{
		case GATO:
			printf("Miau Miau!\n");
			break;
		case PERRO:
			printf("Gua .. Gua..!\n");
			break;
		case VACA:
			printf("Muuu!\n");
			break;
		default:
			printf("Animal que hace sonidos no audibles por
humanos.\n");
			break;
	}
}

void animalcomida(enum animal animalnro)
{
	switch(animalnro)
	{
		case VACA:
		case BURRO:
			printf("Comen plantas.\n");
			break;
		case GATO:
		case ARAÑA:
			printf("Comen otros animales.\n");
			break;
	}
}

int main(void)
{
	enum animal mianimal, tuanimal;
	srand((unsigned)time(NULL));
	mianimal = rand() % NUMERO_DE_ANIMALES;
	animalsonido(mianimal);
	animalcomida(mianimal);
	tuanimal = rand() % NUMERO_DE_ANIMALES;
	animalsonido(tuanimal);
	animalcomida(tuanimal);
	return 0;
}

----------------------------------------------------------------------------
-------------

/* ej08.c  */

#include <stdio.h>
int main(void)
{
	int i;
	i = 1;
	while (i<4)
	{
		printf("%d\n",i);
		i++;
	}
	printf("\n");
	i = 1;
	do
	{
		printf("%d\n",i);
		i++;
	}
	while (i<4);
	printf("\n");
	for (i=15; i>=10; i--)
		printf("%d\n",i);
	return 0;
}

----------------------------------------------------------------------------
-------------

/* ej09.c */

#include <stdio.h>
#include <string.h>
int main(void)
{
	char s[20];
	strcpy(s, "cadenas");
	printf("s = %s\n", s);
	printf("s[3] = %c\n", s[3]);
	printf("s[7] = %d\n", s[7]);
	printf("strlen(s) = %lu\n",( unsigned long)strlen(s));
	strcat(s, " explicadas");
	printf("ahora s contiene = %s\n", s);
	printf("strlen(s) = %lu\n",( unsigned long)strlen(s));
	return 0;
}

----------------------------------------------------------------------------
-------------------------------------------

/* ej10.c */

#include <stdio.h>
int main(void)
{
	int a[] = {1,2,3,5,7,11,13,17,19};
	int *p;
	printf("a[4] = %d\n", a[4]);
	printf("Direccion del array = %p\n", ( void *)a);
	printf("Direccion del elemento nr. 0 del array = %p\n", ( void
*)&a[0]);
	printf("Direccion del elemento nr. 4 del array = %p\n", ( void
*)&a[4]);
	p = a;
	printf("Valor del puntero = %p\n", ( void *)p);
	printf("Valor al que apunta el puntero = %d\n", *p);
	p += 4;
	printf("Nuevo valor del puntero = %p\n", ( void *)p);
	printf("Nuevo valor al que apunta el puntero = %d\n", *p);
	return 0;
}

----------------------------------------------------------------------------
-------------

/* ej11.c */

#include <stdio.h>

int main(int argc, char *argv[])
{
	int i;
	printf("Hay %d argumentos de linea de comandos\n", argc);
	for (i=0; i < argc; i++)
	{
		printf("Argumento nro. %d = %s\n", i, argv[i]);
	}
	return 0;
}