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

martes, 30 de julio de 2013

Los puntos de una circunferencia

El siguiente código guarda en un archivo de texto plano los puntos de una circunferencia, deberás complementar este programa para que muestre el proceso de lectura del archivo creado.

#include<stdio.h>
#include<conio.h>
#include<io.h>
#include<stdlib.h>
#include<math.h>
main()
{
      float x,y,r,g;
      
      FILE *fp;
      
      if((fp=fopen("datos.txt","wb"))==NULL)
          {
          printf("Error de escritura");
          exit(1);
          }
          r=100;
          for(g=0;g<=360;g+=10)
          {
          x=r*sin(g*3.1416/180);
          y=r*cos(g*3.1416/180);
          fprintf(fp,"%f\t %.0f\t %f\t %f\n",r,g,x,y);
          }
      fclose(fp);
          
          
          
               
}

rutina básica para crear gráficos

#include <winbgim.h>

void waitForLeftMouseClick();

int main()
{
    initwindow(400,300); //open a 400x300 graphics window
   
    // delete these lines and replace them with your own code:
    settextstyle(0,0,2);
    setcolor(RED);
    outtextxy(20,100,"Welcome to C++ graphics!");
    setcolor(GREEN);
    outtextxy(60,130,"Click this window");
    outtextxy(120,160,"to exit.");
   
               
    // while(!kbhit());     // wait for user to press a key
    waitForLeftMouseClick(); // use one or the other of these--not both


    closegraph();        //close graphics window
    return 0;
}

void waitForLeftMouseClick()
{
    clearmouseclick(WM_LBUTTONDOWN);
    const int DELAY = 50; // Milliseconds of delay between checks
    int x, y;
    while (!ismouseclick(WM_LBUTTONDOWN))
        delay(DELAY);
    getmouseclick(WM_LBUTTONDOWN, x, y);
}

Biblioteca para creación de gráficos

Descarga la bibliotecade gráficos de DEV-C++

lunes, 15 de julio de 2013

Escribir archivo de texto en lenguaje C

#include<stdio.h>
#include<conio.h>
#include<io.h>
#include<stdlib.h>
main()
{
     
      FILE *fp;
      char nom[30];
      int ed;
      fprintf(stdout,"Introduce tu nombre");
      fscanf(stdin,"%s",nom);
     
      fprintf(stdout,"Introduce tu edad");
      fscanf(stdin,"%d",&ed);
     
      if((fp=fopen("test.txt","wb"))==NULL)
         {
            printf("Error de escritura");                                                                       
            exit(1);                                   
                                          }
      fprintf(fp,"%s %d\n",nom,ed);
      fprintf(stdout,"Datos guardados");
      fclose(fp);
     
            if((fp=fopen("test.txt","rb"))==NULL)
         {
            printf("Error de lectura");                                                                       
            exit(1);                                   
                                          }
     
      fscanf(fp,"%s %d",nom,&ed);
      fprintf(stdout,"%s %d\n",nom,ed);
     
      getch();
     
     
      }

miércoles, 3 de julio de 2013

método de inserción

inserción

Códigos del método de QuickSort


:::::::::::::::::::::::::::::::::::::::::::

ORDENACION NUMEROS

:::::::::::::::::::::::::::::::::::::::::::



#include<stdio.h>
#include<conio.h>
void quicksort(int x[],int prim,int ult);
int main()
{ int tam,i;
  printf(":::::::::::::Quick Sort:::::::::::::\n\n");
  printf("\tDigita cuantos numeros deseas ordenar: ");
  scanf("%d",& tam);
  int x[tam];
  printf("\n\nIntroduce %d valores: \n",tam);
  for(i=0;i<tam;i++)
scanf("%d",&x[i]);
  quicksort(x,0,tam-1);
  printf("\t\nValores Ordenados: \n");
  for(i=0;i<tam;i++)
printf(" %d",x[i]);
  getch();
  return 0;
}

void quicksort(int x[],int prim,int ult)
{  int pivot,j,temp,i;
   if(prim<ult)
   {   pivot=prim;
       i=prim;
       j=ult;
       while(i<j)
       {   while(x[i]<= x[pivot]&& i<ult)
              i++;
      while(x[j]>x[pivot])
         j--;
  if(i<j)
           {   temp=x[i];
  x[i]=x[j];
  x[j]=temp;
  }
       }
       temp=x[pivot];
       x[pivot]=x[j];
       x[j]=temp;
       quicksort(x,prim,j-1);
       quicksort(x,j+1,ult);
   }
}




:::::::::::::::::::::::::::::::::::::::::::::::::::::::

ORDENACION CADENAS

:::::::::::::::::::::::::::::::::::::::::::::::::::::::



#include <stdio.h>
#include <string.h>
void quicksort(char nombre[15][15],int izquierda,int derecha)
{
     int i,j;
     char y[15],*x;
     i=izquierda;
     j=derecha;
     x=nombre[(izquierda+derecha)/2];
     do{
        while((strcmp(nombre[i],x)<0) && (i<derecha)) i++;
        while((strcmp(nombre[j],x)>0) && (j>izquierda)) j--;
        if(i<=j)
        {
           strcpy(y,nombre[i]);
           strcpy(nombre[i],nombre[j]);
           strcpy(nombre[j],y);
           i++;
           j--;
        }
     }while(i<=j);
     if(izquierda<j) quicksort(nombre,izquierda,j);
     if(i<derecha) quicksort(nombre,i,derecha);
}
int main()
{
    char nombre[15][15];
    int n,i,izquierda,derecha,respuesta;
    do
    {
        printf("\nCuantos nombres deseas ordenar:\n ");
        scanf("%d",&n);
        for(i=0;i<n;i++)
        {
           printf("Introduzca el nombre de la persona %d: ",i+1);
           scanf("%s",nombre[i]);
        }
        izquierda=0;
        derecha=n-1;
        quicksort(nombre,izquierda,derecha);
        printf("Los nombres en orden alfabetico:\n");
        for(i=0;i<n;i++)
           printf("\n %d.-%s",i+1,nombre[i]);
        printf("\nEjecutar programa de nuevo? (SI = 1 y NO = 0)\n");
        scanf("%d",&respuesta);
    }while(respuesta==1);
    return 0;
}


Exposicion QuickSort

Exposicion QuickSort Grupo 352

Exposiciones grupo 353

Exposición: QuickSort

lunes, 24 de junio de 2013

EVALUACION UNIDAD II



EVALUACION UNIDAD II
GRUPO 353

EVALUACION TIPO A

1.       Desarrolle utilizando una biblioteca y varias funciones el siguiente problema:
Crear un menú de 5 opciones: cada opción realizará el  cálculo del área de una figura plana regular diferente (circulo, rectángulo, etc).
2.       Desarrolle utilizando variables globales y arreglos una función que capture un arreglo de una dimensión y calcule por medio de funciones: 
          a)La sumatoria             b) El promedio
      c) El numero mayor
3.  Desarrolle por medio de una función por medio  un programa que realice la conversión  de radian a grados y de grados a radianes (El tipo de función será con retorno de valor y con parámetros).
4. Desarrolla un programa utilizando funciones que convierta de decimal a binario
5. Desarrolla un programa utilizando funciones que imprima en pantalla el equivalente de un numero decimal en romano.

EVALUACIÓN TIPO B

1.       Utilice variables globales y funciones para crear un programa que contenga un menú con 5 opciones, cada opción deberá de calcular un volumen diferente (cono, cubo, etc).
2.       Desarrolla un biblioteca y varias funciones para poder calcular el teorema de Pitágoras (calcular las letras a,b,c).

3.       Realiza un programa que capture un arreglo de una dimensión, lo imprima, y calcule la sumatoria, el valor menor y su promedio.

4.       Desarrolla un programa utilizando funciones que convierta de binario a decimal

5.       Desarrolla un programa que utilizando funciones imprima en pantalla el equivalente de un numero romano en decimal


martes, 18 de junio de 2013

temas a exponer en la unidad 3 (programación estructurada).

burbuja,
inserción,
selección,
quicksort,
búsqueda secuencial,
secuencial con centinela,
binaria e intercalación de datos.
Shell

Programacion estructurada

Método de la burbuja utilizando cadenas de caracteres



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

int main()
{
   char s1[25] = "lopez";
   char s2[25] = "hernandez";
   char temp[25];
   int i;
   printf( "s1=%s\t", s1 );
   printf( "s2=%s\n", s2 );
   i = strcmp( s1, s2 );
   if( i > 0 ) {
  strcpy(temp,s2);
   strcpy(s2,s1);  
   strcpy(s1,temp);
}
   printf("%s¬n %s",s1,s2);
   printf("\n\n");
   system("pause");
   return 0;
}

lunes, 17 de junio de 2013

AVISO IMPORTANTE

El día de hoy 17 de Junio del 2013 no podré estar con ustedes (Grupo 353 y 451), debido a motivos de fuerza mayor.

Grupo 451: Se recorre la evaluación de la unidad 2 al próximo día Lunes, junto con la entrega de la práctica.

Saludos Cordiales

miércoles, 12 de junio de 2013

funciones y vectores

El siguiente programa capturaun vector de 5 elementos y los envia a una función para imprimirlo en pantalla y mostrar su sumatoria.

int sumaVec(int vec[5]);
void impVec(int vec[5]);
#include<stdio.h>
#include<conio.h>
main()
{
      int vec[5],i,s;
      printf("Lectura de los elementos de un vector\n");
      for(i=0;i<5;i++)
      {
      printf("Introduce elnumero %d->", i+1);
      scanf("%d",&vec[i]);
      } 
      printf("\n");
         
      impVec(vec);
      printf("\n");
      s=sumaVec(vec);
      printf("\n");
      printf("suma=%d",s);
         getch();
      }

int sumaVec(int vec[5])
{
   int i,suma=0;
   for(i=0;i<5;i++)
    suma=suma+vec[i];
    return suma;
    }
   
void impVec(int vec[5])
{
     int i;
     for(int i=0;i<5;i++)
     printf("%d\n",vec[i]);
    
     }

miércoles, 29 de mayo de 2013

PROGRAMACION ESTRUCTURADA

TIPOS DE FUNCIONES

/*funcion sin retorno de valor y sin parametros*/
void suma(void);
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()

{
      system("cls");
      suma();
      getch();
     
     
      }
     
void suma (void)
{
     int a,b,s;
     printf("Dame un valor->");
     scanf("%d",&a);  
     printf("Dame otro valor->");
     scanf("%d",&b);
     s=a+b;
     printf("Suma=%d",s);
    
     }


/*funcion con retorno de valor y sin parametros*/
int suma(void);
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()

{
      int sum;
      system("cls");
      sum=suma();
      printf("Suma=%d",sum);
      getch();
     
     
      }
     
int suma(void)
{
     int a,b,s;
     printf("Dame un valor->");
     scanf("%d",&a);  
     printf("Dame otro valor->");
     scanf("%d",&b);
     s=a+b;
     return s;
    
     }


/*funcion sin retorno de valor y con parametros*/
void suma(int x,int y);
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()

{
      int sum;
      int a,b;
     system("cls");
     printf("Dame un valor->");
     scanf("%d",&a);  
     printf("Dame otro valor->");
     scanf("%d",&b);
      suma(a,b);
      getch();
        }
     
void suma(int x,int y)
{
    
     int s;
     s=x+y;
    printf("Suma=%d",s);
    
     }

/*funcion con retorno de valor y con parametros*/
int suma(int x,int y);
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()

{
      int sum;
      int a,b;
     system("cls");
     printf("Dame un valor->");
     scanf("%d",&a);  
     printf("Dame otro valor->");
     scanf("%d",&b);
     sum=suma(a,b);
     printf("Suma=%d",sum);
      getch();
        }
     
int suma(int x,int y)
{
    
     int s;
     s=x+y;
     return s;   
    
     }