viernes, 30 de diciembre de 2011

Calcular la Enésima Potencia de un Número, en C

Este programa calcula cualquier potencia de un número entero. Recibe un par de enteros: la base y el exponente. El algoritmo es muy sencillo y se realiza todo en la función Potencia, consiste en un ciclo while que se realiza tantas veces como lo indique el exponente, la primera instrucción de ese ciclo se puede escribir como pot *= x, para hacerla un poco más eficiente.

 #include <stdio.h>
 /* stdio.h incluye entrada y salida*/
 
 int main()
 {  /*Abre main*/
  int base;
  int exponente;
  printf("\nIntroduzca la base: ");
  scanf("%d", &base);
  printf("\nIntroduzca el exponente: ");
  scanf("%d", &exponente);

  /*El llamado a la funcion Potencia se hace desde printf*/  
  printf("\n%d elevado a la %d es: %d\n", base, exponente, Potencia(base, exponente));
 return 0; 
 }  /* Cierra main*/


 ////////////////////////////////////////////////////
 // INICIA FUNCION POTENCIA
 ////////////////////////////////////////////////////

 int Potencia( int x, int y )
 {  /* Abre potencia */
 int i = 0;
 int pot = 1;

 while( i < y )
 {  // Abre while
 pot = pot*x;
 i++;
 }  // Cierra while 

 return (pot);
 }  /* Cierra potencia*/

martes, 27 de diciembre de 2011

Una Versión Limitada del Comando Unix WC

Este programa es una versión primitiva del comando wc de unix, el cual, entre otras cosas, cuenta las líneas, las palabras y los caracteres de un archivo. El cuadro siguiente muestra el resultado de ejecutar este programa con su mismo código como entrada. También se muestran los resultados que se obtienen con el comando wc.

[hernandez@localhost Programas]$ ./a.out < Programa.c

El numero de lineas es: 42
El numero de palabras es: 171
El numero de caracteres es: 1038

[hernandez@localhost Programas]$ wc Programa.c
  42  171 1038 Programa.c

Éste es el código:
 /* Este programa debe contar el numero de lineas, el numero de caracteres, palabras
    y palabras específicas.*/

 #include<stdio.h>
 #define ADENTRO 1
 #define AFUERA 0

 int main()
 {                 // Abre main
 int Caracteres = 0;
 int Palabras = 0; 
 int Lineas =  0; 
 int estado = AFUERA;
 int c;

 while ((c = getchar()) != EOF)
 /* Un error sutil dificil de detectar ocurre
    cuando se suprimen los parentesis que encierran
    la instruccion c = getchar() */
 {        // abre while
 // aqui se cuentan los caracteres
 Caracteres++;
 // Aqui se cuentan las lineas
 if ( '\n' == c )
 Lineas++;
 
 // Aqui se cuentan las palabras
 if ( (' ' == c) || ('\t' == c) || ('\n' == c) )
 estado = AFUERA;
 else
 if ( AFUERA == estado )
 {  // abre if 
 estado = ADENTRO;
 Palabras++; 
 }  // Cierra if

 }         // Cierra while

 printf("\n\nEl numero de lineas es: %d", Lineas);
 printf("\nEl numero de palabras es: %d", Palabras);
 printf("\nEl numero de caracteres es: %d\n\n", Caracteres);
 
 }                 // Cierra main

Búsqueda de un Carácter en un Archivo, en C

El siguiente programa recibe un texto y busca e imprime en qué línea y posición se encuentra un caracter dado. En este caso el programa busca la letra 'd', pero se puede cambiar para buscar cualquier caracter. El programa es muy sencillo, pero es un primer paso para hacer una búsqueda de una cadena. El siguiente es el resultado de ejecutar el programa con su mismo código como entrada.

 #include<stdio.h>
           
 int main()
 {  // Abre main
 int c, lineas = 1;
 int posicion = 0;
 int s = 'd'; // cambiar q por cualquier
              // caracter   
 while ((c = getchar()) != EOF)
 {   // abre while
    
 if ( '\n' != c )
 { // Abre if
 posicion++;
 if (s == c )
 {
 printf("\nEl caracter ");
 putchar(c);
 printf(" aparece en la posicion: %d de la linea %d", posicion, lineas);  
 }
 }  // Cierra if
 else
 {  // Abre else
 lineas++;
 posicion = 0;  
 }  // Cierra else
 }   // Cierra while 
 printf("\n");
 }   // Cierra main
Related Posts Plugin for WordPress, Blogger...