marzo 01, 2013

EJEMPLO: PROGRAMA DONDE INGRESA EL SEXO DE UNA PERSONA Y VE SI ES HOMBRE O MUJER


 Ingresar el sexo de una persona como " f o " m ", luego informar "es hombre" si ingreso una m, o "es mujer" si ingreso una f.


void main()
{
char sexo;

printf("Ingrese sexo: ");
scanf("%c",&sexo);
fflush(stdin);

if (sexo=='f')
printf("\nEs mujer");
if (sexo=='m')
printf("Es hombre");

getch();

}


o también:

void main()
{
char sexo;

printf("Ingrese sexo: ");
sexo = getch();
if (sexo=='f')
printf("\nEs mujer");
if (sexo=='m')
printf("Es hombre");

getch();

}

EJEMPLO: PROGRAMA DE ALUMNOS QUE LEE SUS MATRICULAS EN NUMEROS ENTEROS Y CALIFICACIONES EN CHAR CON FUNCION


Función que lee las matrículas (números enteros) y las calificaciones (tipo char) de los alumnos de un grupo y las almacene en dos arreglos unidimensionales. La función deberá leer los datos hasta que se de una matrícula cero la cual indica el fin de captura. La función regresa el número de alumnos por el mecanismo de return. Después debe de imprimir el contenido de los arreglos.

#include stdio.h

void despliega(int *mats,char *califs,int numcap);
int leedato(int *mats,char *califs,int maximo);

void main(void){
int max=30,matr[29],numalumn;
char calif[29];

 clrscr();

 numalumn=leedato(matr,calif,max);
 printf("\nEl numero de alumnos capturados es %d",numalumn);
 despliega(matr,calif,numalumn);

}
 int leedato(int *mats,char *califs,int maximo){

  int n=0;

  printf("\n   *** Introduce la matricula y su calificacion.  ***");
  printf("\n   *** Para terminar dale un cero a la matricula. ***");

   while(1){

    if(n>=maximo){
    printf("\nEl arreglo se encuentra lleno");
    getch();
    break;
   }
     printf("\n\nMatricula del alumno %d: ",n+1);
     scanf("%d",mats);

      if(*mats==0){
      break;
     }
       printf("\nCalificacion del alumno %d: ",n+1);
       scanf("%d",califs);

       mats++;
       califs++;
       n++;
 }
return n;
}

 void despliega(int *mats,char *califs,int numcap){

   int i=1;

    while(1){

      if(i>numcap){
      break;
     }
       printf("\nLa calificacion del alumno %d es %d",*mats,*califs);
       i++;
       mats++;
       califs++;
   }
        getch();
 }

EJEMPLO: PROGRAMA QUE FUNCIONA COMO ATOI, CONVIERTE CADENA EN ENTERO


Ejemplos de cadenas. Función que realiza la misma operación que la función atoi, que convierte una cadena en un entero. La función regresa el entero representado por la cadena s si se pudo convertir, en caso contrario regresa 0. Si la función encuentra caracteres espacio o tabulación, los salta. Si al empezar la secuencia de dígitos, ésta se interrumpe, el programa termina.

#include stdio.h
#include ctype.h

int myatoi(char *s);

void main(void){

 int n;
 char cad[50];
  clrscr();

  printf("Introduce la cadena: ");
  gets(cad);
  n=myatoi(cad);
   printf("\nEl entero extraido de la cadena fue %d",n);
    getch();
}

 int myatoi(char *s){
  int signo=1,num=0;

   while(1){
    if(*s==' ' || *s=='\t'){
     s++;
   }
     else break;
   }
     if(*s=='+'){
     s++;
    }
      else if(*s=='-'){
       signo=-1;
s++;
      }
       while(1){
if(*s=='\0' || !isdigit(*s)){
break;
       }
  num=10*num+(*s-'0');
  s++;
     }
   return signo*num;
 }

EJEMPLO: PROGRAMA QUE LEE NUMEROS PERO CON INSTRUCCIONES "GUARDAR" "LISTA"


Función que lee una serie de números de la línea de comandos y ejecuta la instrucción proporcionada después del último número de la serie. Si la instrucción es GUARDA, los números son guardados en un arreglo de tipo entero. Si la instrucción es LISTA, los numeros son desplegados como cadenas.


#include stdio.h
#include ctype.h
#include string.h
#include stdlib.h

 void main(int np, char *ps[]){
  int arreglo[100],j,i;
   clrscr();

     if(strcmp(ps[np-1],"GUARDA")==0){
      for(i=0,j=1;j<(np-1);i++,j++){
       arreglo[i]=atoi(ps[j]);
       printf("\n%d",arreglo[i]);
      }
    }

      if(strcmp(ps[np-1],"LISTA")==0){
       for(i=1;i<(np-1);i++){
       puts(ps[i]);
      }
    }

 }

EJEMPLO: PROGRAMA QUE CALCULA LONGITUD DE CADENA Y DEVUELVE "S" SIN CORTAR


Ejemplos de cadenas. Función que realiza la misma operación que la función strlen. Calcula la longitud de la cadena S. Regresa el número de caracteres en S sin contar el caracter de fin de cadena.


#include stdio.h
#include ctype.h

int mystrlen(char *s);

void main(void){

 int n;
 char cad[50];
  clrscr();

  printf("Introduce la cadena: ");
  gets(cad);
  n=mystrlen(cad);
   printf("\nEl numero de caracteres de la cadena s fue %d",n);
    getch();
}

  int mystrlen(char *s){

   int c=0;

   while(1){
    if(*s=='\0'){
    break;
   }
     c++;
     s++;
  }
      return c;
 }

EJMEPLO: EDITOR DE TEXTO CON ARREGLO CADENAS



Editor de textos con arreglo de cadenas.


#include string.h
#include stdio.h
#include ctype.h

void inserta(char t[][50],int *ll,int act,int max);
void modif_actual(int *act,int ll);
void reemplaza_linea(char t[][50],int ll,int *act);
void lista(char t[][50],int *ll);
void agrega_linea(char t[][50],int *ll,int max,int *act);

 void main(void){

   char txt[30][50],opcion;
    int llenas=0,max=30,actual;

     while(1){
      clrscr();
      printf("                             EDITOR DE TEXTO");
      printf("\n             SELECCIONA LA PRIMERA LETRA DE LA OPCION DESEADA");
      printf("\n\nAgregar  Salir  Lista   Reemplaza   Inserta   Opcion: ");

      opcion=toupper(getch());
       if(opcion=='S')
       break;
if(opcion=='A')
agrega_linea(txt,&llenas,max,&actual);
if(opcion=='L')
lista(txt,&llenas);
 if(opcion=='R')
 reemplaza_linea(txt,llenas,&actual);
 if(opcion=='I')
 inserta(txt,&llenas,actual,max);
    }
  }

/**************************************************************************/
  void agrega_linea(char t[][50],int *ll,int max,int *act){
      if(*ll==max){
      printf("\n\nMemoria insuficiente...");
       return;
     }
      printf("\n\n>");
      fflush(stdin);
      gets(t[*ll]);
      *ll=*ll+1;
      *act=*ll;
   }

/**************************************************************************/

  void lista(char t[][50],int *ll){

    int i=0;
     printf("\n\n");

     while(i<*ll){

      puts(t[i]);
      i++;
    }
      getch();
  }

/**************************************************************************/

     void modif_actual(int *act,int ll){
      int v;

       printf("\n\nIndica el numero de la linea a posicionar: ");
       scanf("%d",&v);

if(v<=ll && v!=0){
*act=v;
       }
else{
*act=-1;
}
   }

/**************************************************************************/

     void reemplaza_linea(char t[][50],int ll,int *act){

       if(ll==0){
       printf("\n\nNo existe informacion a reemplazar");
       getch();
       return;
      }
 modif_actual(act,ll);
   if(*act==-1){
    printf("\n\nLa linea seleccionada no existe...");
    getch();
  }

   else{

    printf("\n\nIntroduce la nueva linea: ");
    fflush(stdin);
     gets(t[*act-1]);
 }
      }

/*************************************************************************/

 void inserta(char t[][50],int *ll,int act,int max){
   int j;
     if(*ll==max){
      printf("\n\nMemoria insuficiente...");
      getch();
       return;
    }
      modif_actual(&act,*ll);

      if(act==-1){
       printf("\n\nLa linea seleccionada no existe...");
getch();
     }
      else{

j=*ll-1;

while(j>=act-1){
strcpy(t[j+1],t[j]);
j--;
       }
printf("\n\nInserta la nueva linea: ");
fflush(stdin);
gets(t[act-1]);
(*ll)++;
   }
}

EJEMPLO: PROGRAMA CON NUMERO FLOTANTE


Programa que recibe en la línea de comando un número flotante, un caracter que represente una de las cuatro operaciones fundamentales y un segundo número. El programa deberá desplegar el resultado de la operación deseada.


#include stdio.h
#include stdlib.h
#include string.h

 void main(int narg,char *sarg[]){
  float op1,op2,resul;
  int i=1;
   clrscr();

    printf("PROGRAMA QUE CALCULA UNA OPERACION ARITMETICA SIMPLE ENTRE DOS OPERANDOS");
    printf("\n\nLa sintaxis es: Calcula operando operador operando");
    printf("\n");
   while(i<=narg){
     printf("%s",sarg[i]);
     i++;
   }

   op1=atof(sarg[1]);
   op2=atof(sarg[3]);

     if(strcmp(sarg[2],"+")==0)
     resul=op1+op2;
      else if(sarg[2][0]=='-')
      resul=op1-op2;
       else if(strcmp(sarg[2],"*")==0)
       resul=op1*op2;
else if(sarg[2][0]=='/')
resul=op1/op2;
 else{
  printf("\nOperador invalido: '%s'",sarg[2]);
  return;
 }
printf("\n\nEl resultado es %.1f",resul);
getch();

}