viernes, 22 de noviembre de 2013

Lista simple

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

 struct _agenda {
        char nombre[20];
 char telefono[12];
        struct _agenda *siguiente;
        };

 struct _agenda *primero, *ultimo;

 void mostrar_menu() {
      printf("\n\nMenú:\n=====\n\n");
      printf("1.- Añadir elementos\n");
      printf("2.- Borrar elementos\n");
      printf("3.- Mostrar lista\n");
      printf("4.- Salir\n\n");
      printf("Escoge una opción: ");fflush(stdin);
 }

 /* Con esta función añadimos un elemento al final de la lista */
 void anadir_elemento() {
      struct _agenda *nuevo;

      /* reservamos memoria para el nuevo elemento */
nuevo = (struct _agenda *) malloc (sizeof(struct _agenda));
      if (nuevo==NULL) printf( "No hay memoria disponible!\n");

      printf("\nNuevo elemento:\n");
printf("Nombre: "); fflush(stdin);
gets(nuevo->nombre);
      printf("Teléfono: "); fflush(stdin);
      gets(nuevo->telefono);

      /* el campo siguiente va a ser NULL por ser el último elemento
         de la lista */
nuevo->siguiente = NULL;

      /* ahora metemos el nuevo elemento en la lista. lo situamos
         al final de la lista */
      /* comprobamos si la lista está vacía. si primero==NULL es que no
         hay ningún elemento en la lista. también vale ultimo==NULL */
      if (primero==NULL) {
         printf( "Primer elemento\n");
         primero = nuevo;
         ultimo = nuevo;
         }
      else {
           /* el que hasta ahora era el último tiene que apuntar al nuevo */
           ultimo->siguiente = nuevo;
           /* hacemos que el nuevo sea ahora el último */
           ultimo = nuevo;
      }
 }

 void mostrar_lista() {
      struct _agenda *auxiliar; /* lo usamos para recorrer la lista */
      int i;

      i=0;
      auxiliar = primero;
      printf("\nMostrando la lista completa:\n");
      while (auxiliar!=NULL) {
            printf( "Nombre: %s, Telefono: %s\n",
                    auxiliar->nombre,auxiliar->telefono);
            auxiliar = auxiliar->siguiente;
            i++;
      }
      if (i==0) printf( "\nLa lista está vacía!!\n" );
 }

 int main() {
 char opcion;

     primero = (struct _agenda *) NULL;
 ultimo = (struct _agenda *) NULL;
     do {
         mostrar_menu();
opcion = getch();
             switch ( opcion ) {
                case '1': anadir_elemento();
                       break;
                case '2':  printf("No disponible todavía!\n");
                        break;
case '3': mostrar_lista();
                        break;
                case '4': exit( 1 );
                default: printf( "Opción no válida\n" );
                         break;
             }
     } while (opcion!='4');
 }

viernes, 8 de noviembre de 2013

Arreglos y funciones: La matriz Unitaria

El siguiente programa crea e imprime la matriz unitaria por medio de funciones

#include<stdio.h>
#include<conio.h>
void imprimir(int a[][5]);
void llenar();
      int x[5][5];
main()
{
      int i;

          llenar();  
        imprimir(x);
        getch();
   
      }
void imprimir(int a[][5])
{
           for(int i=0;i<5;i++){
            for(int j=0;j<5;j++)
            {
           printf("%d\t",a[i][j]);
         
           }
           printf("\n");
           }
     }
void llenar(void)
{
     for(int i=0;i<5;i++){
          for(int j=0;j<5;j++)
          {
              if(i==j)
              x[i][j]=1;
              else
                x[i][j]=0;  }
                       
                          }
     }



Arreglos y funciones

El siguiente programa es utilizado para capturar un arreglo y posteriormente se imprime por medio de una función.

#include<stdio.h>
#include<conio.h>
void imprimir(int a[]);
main()
{
      int i;
      int x[5];
      for(i=0;i<5;i++){
        printf("Dame el valor %d->",i+1);
        scanf("%d",&x[i]);}
        imprimir(x);  
        getch();
     
      }
void imprimir(int a[])
{
           for(int i=0;i<5;i++)
           printf("%d\n",a[i]);
   
     }

viernes, 18 de octubre de 2013

formula para calcular el dia

a=(14-mm)/12;
y=aa-a;
m=mm+(12*a)-2;

d=(dd+y+y/4-y/100+y/400+(31*m/12));
d=d%7;


Nota: la fecha de entrada esta dada por las siguientes variables:
dd: dia
mm: mes
aa: año

Ejemplo: la fecha 19 de octubre del 2013 se representa por:

dd:19
mm:10
aa:2013

Bibliografìa


http://jms32.eresmas.net/web2008/documentos/informatica/lenguajes/puntoNET/System/date/DiaDeLaSemana/2010_01_26_DiaDeLaSemana.html#Refh2_En_Que_Dia_De_La_Semana_Cae_Una_Fecha_Determinada