Mostrando entradas con la etiqueta PROGRAMACION ESTRUCTURADA EN C. Mostrar todas las entradas
Mostrando entradas con la etiqueta PROGRAMACION ESTRUCTURADA EN C. Mostrar todas las entradas

martes, 18 de junio de 2013

Programa que lee archivos y los muestra en la pantalla

// DAP: Un programa que lee archivos y los muestra
// en la pantalla.

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

int main(int argc, char *argv[])
{
FILE *fp;
char car;

if(argc != 2)
{
printf("Has olvidado introducir el nombre del archivo. \n");
exit(1);
}

if((fp = fopen(argv[1], "r")) == NULL)
{
printf("No se puede abrir el archivo. \n");
exit(1);
}

car = getc(fp); // lee un caracter

while (car != EOF)
{
putchar(car); //lo muestra en pantalla
car = getc(fp);
}

fclose(fp);

system("PAUSE");
return 0;
}

Un programa que guarda texto en disco

// TAD: Un programa que guarda texto en disco.

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

int main (int argc, char *argv[])
{
FILE *fp;
char car;

if(argc != 2)
{
printf("Has olvidado introducir el nombre del archivo. \n");
exit(1);
}

if((fp = fopen(argv[1], "w")) == NULL)
{
printf("No se puede abrir el archivo. \n");
exit(1);
}

do
{
car = getchar();
putc(car, fp);
}while (car != 'f');

fclose(fp);

system("PAUSE");
return 0;
}//fin de main

lunes, 17 de junio de 2013

Leer un caracter del teclado y comprobar si es una letra

//Leer un caracter del teclado y comprobar si es una letra

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

int main()
{
char inicial;

printf("Cual es su primer caracter inicial ?:  ");
scanf("%c", &inicial);
if(!isalpha(inicial))
puts("Caracter no alfabético ");

puts("Terminado");
puts("\n");
system("PAUSE");
return 0;
}

Calculo de los numeros de Fibonacci

// Calculo de los numeros de Fibonacci

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

long int fibonacci(void);

int main()
{
int n,i;
printf("\nCuantos numeros de fibonacci ?:  ");
scanf("%d", &n);
printf("\nSecuencia de fibonacci: 0,1");
for ( i = 2; i < n; i++ )
printf(", %ld", fibonacci());

printf("\n");
    system("PAUSE");
return 0;
}//fin main

long int fibonacci(void)
{
static int x = 0;
static int y = 1;
y = y + x;
x = y - x;
return y;
}

Funcion que devuelve mayor de dos enteros

// La funcion max devuelve el numero mayor de dos enteros

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

int max(int x, int y)
{
if (x < y)
return y;
else
return x;
}//final de max

int main()
{
int m, n;

printf("Introduzca dos numeros enteros: ");
scanf("%d %d", &m,&n);
printf("Maximo de %d y %d es %d\n", m,n,max(m, n));



system("PAUSE");
return 0; //terminacion exitosa
}//fin de main

Suma de los 10 primeros numeros pares

// Suma de los 10 primeros numeros pares

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

int main()
{
int suma = 0;
int n;
for(n = 1; n <= 10; n++)
suma += 2*n;

printf("La suma de los 10 primeros numeros pares: %d\n", suma);

system("PAUSE");
return 0; //terminacion exitosa
}//fin de main

Calculo de la media de seis numeros

// Calculo de la media de seis numeros

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

int main()
{
const int TotalNum = 6;
int ContadorNum = 0;
float SumaNum = 0;
float media;
float numero;

printf("Introduzca %d numeros\n", TotalNum);

while(ContadorNum < TotalNum)
{

scanf("%f", &numero);
SumaNum += numero;
++ContadorNum;
}// fin de while

media = SumaNum/ContadorNum;
printf("Media: %.2f \n", media);

system("PAUSE");
return 0; //terminacion exitosa
}// fin de main

Calculo de calorias

/* El programa realiza un calculo de calorías */

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

int main()
{
int num_de_elementos, cuenta, calorias_por_alimento, calorias_total;

printf(" Cuantos alimentos ha comido hoy ? ");
scanf("%d", &num_de_elementos);

calorias_total = 0;
cuenta = 1;

printf("Introducir el numero de calorias de cada uno de los ");
printf("%d", num_de_elementos,"alimentos tomados: \n");

while(cuenta++ <= num_de_elementos)
{
scanf("%d", &calorias_por_alimento);
calorias_total += calorias_por_alimento;
}//fin while

printf("Las calorias totales consumidas hoy son = ");
printf(" %d \n", calorias_total);

system("PAUSE");
return 0; //terminacion exitosa
}// fin de main

viernes, 24 de mayo de 2013

Visualizacion de un temporizador software


/* Visualizacion de un temporizador software. */

#include<stdio.h>

#define RETAR 12800000

struct mi_hora {
      int horas;
      int minutos;
      int segundos;
};

/*************************************/
/* Prototipo de funciones ************/
/*************************************/
void mostrar(struct mi_hora *t);
void actualizar(struct mi_hora *t);
void retardo(void);
/*************************************/

int main(void)
{
      struct mi_hora hora;
     
      hora.horas = 0;
      hora.minutos = 0;
      hora.segundos = 0;
     
      for(;;)
      {
            actualizar(&hora);
            mostrar(&hora);
      }// fin de for
           
      system("PAUSE");
      return 0; // terminacion exitosa
     
}// fin de main

void actualizar(struct mi_hora *t)
{
      t-> segundos++;
      if(t-> segundos == 60)
      {
            t-> segundos = 0;
            t-> minutos++;
      }
     
      if(t-> minutos == 60)
      {
            t-> minutos = 0;
            t-> horas++;
      }
     
      if(t-> horas == 24)
            t-> horas = 0;
           
      retardo();
}// fin actualizar

void mostrar(struct mi_hora *t)
{

      printf("%02d:", t-> horas);
      printf("%02d:", t-> minutos);
      printf("%02d:", t-> segundos);
      printf("\n");
           
}// fin de mostrar

void retardo(void)
{
      long int t;
     
      /* cambiese esto segun sea necesario */
      for(t = 1; t < RETAR ; ++t);
}// fin de retardo

Programa de lista de correos (arrays de estructuras)


/*Un sencillo programa de lista de correos que ilustra el uso de
arrays de estructuras. */

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

#define MAX 100

struct dir {
      char nombre[30];
      char calle[40];
      char ciudad[20];
      char provincia[3];
      unsigned long int codigo;
} lista_dir[MAX];

/* Prototipo de funciones **************/
void inic_lista(void), intro(void);
void borrar(void), listar(void);   
int menu(void), busca_libre(void); 
/***************************************/

int main(void)
{
      char opcion;
     
      inic_lista();     // inicializar el array de estructuras
     
      for(;;)
      {
            opcion = menu();
            switch(opcion)
            {
                  case 1: intro();
                        break;
                  case 2: borrar();
                        break;
                  case 3: listar();
                        break;
                  case 4:     exit(0);
            } //fin de switch
      } //fin de for
     
      system("PAUSE");
      return 0; //terminacion exitosa
}// fin de main

/****************************************************************/
/* Inicializar la lista. ****************************************/
/****************************************************************/
void inic_lista(void)
{
      register int t;
     
      for(t = 0; t < MAX; ++t)     lista_dir[t].nombre[0] = '\0';
}
/****************************************************************/

/*************************************************/
/* Seleccionar una operacion. ********************/
/*************************************************/
int menu(void)
{
      char s[80];
      int c;
     
      printf("1. Introducir un nombre\n");
      printf("2. Borrar un nombre\n");
      printf("3. Listar el archivo\n");
      printf("4. Salir\n");
     
      do
      {
            printf("\nIntroduce tu opcion:  ");
            gets(s);
            c = atoi(s);
      }while(c < 0 || c > 4);  //fin de do_while
     
      return c;
} //fin de menu
/***************************************************/

/**************************************/
/* Introducir direcciones en la lista */
/**************************************/

void intro(void)
{
      int sitio;
      char s[80];
     
      sitio = busca_libre();
     
      if(sitio == -1)
      {
            printf("\nLista llena");
            return;
      }
     
      printf("Introduce el nombre: ");
      gets(lista_dir[sitio].nombre);
     
      printf("Introduce la calle: ");
      gets(lista_dir[sitio].calle);
     
      printf("Introduce la ciudad: ");
      gets(lista_dir[sitio].ciudad);
     
      printf("Introduce las siglas de la provincia:  ");
      gets(lista_dir[sitio].provincia);
     
      printf("Introduzca el codigo postal:  ");
      gets(s);
      lista_dir[sitio].codigo = strtoul(s, '\0', 10);
     
} // fin de intro
/*********************************************************/

/************************************/
/* Buscar una estructura no usada ***/
/************************************/

int busca_libre(void)
{
      register int t;
     
      for( t = 0; lista_dir[t].nombre[0] && t < MAX; ++t);
     
      if(t == MAX) return -1; // no hay sitio libre
      return t;
     
} // fin de busca_libre
/*********************************************************/

/*****************************************************/
/* Eliminar una direccion ****************************/
/*****************************************************/

void borrar(void)
{
      register int sitio;
      char s[80];
     
      printf("Introduce el numero de registro:  ");
      gets(s);
      sitio = atoi(s);
     
      if(sitio >= 0 && sitio < MAX)
            lista_dir[sitio].nombre[0] = '\0';
     
} // fin de borrar
/*****************************************************/

/*****************************************************/
/*  Mostrar la lista en la pantalla ******************/
/*****************************************************/

void listar(void)
{
      register int t;
     
      for(t = 0; t < MAX; ++t)
      {
            if(lista_dir[t].nombre[0])
            {
                  printf("%s\n", lista_dir[t].nombre);
                  printf("%s\n", lista_dir[t].calle);
                  printf("%s\n", lista_dir[t].ciudad);
                  printf("%s\n", lista_dir[t].provincia);
                  printf("%lu\n\n", lista_dir[t].codigo);
           
            }//fin de if
      }//fin de for
      printf("\n\n");
}//fin de listar

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

jueves, 23 de mayo de 2013

Calcular el factorial de un numero utilizando recursividad


#include <stdio.h>

long int fact(int num); //prototipo de funcion

int main()
{
            int n;
           
            printf("Introduzca el valor de n =>  ");
            scanf("%ld", &n);
            printf("\nn! es igual a %8ld",fact(n));
           
            printf("\n\n");
            system("PAUSE");
            return 0;
}

/* definicion de la funcion fact */

long int fact(int num)
{
            if(num == 0)
                        return(1);
            else
                        return(num * fact(num-1));
}

miércoles, 22 de mayo de 2013

Calcular la media de n numeros (for)


/* calcular la media de n numeros */

#include <stdio.h>

int main()
{
            int n, cont = 1;
            float x, media, suma = 0;
           
            /* inicializar y leer el valor de n */
            printf("Cuantos numeros?  ");
            scanf("%d", &n);
           
            /* leer los numeros */
            for(cont = 1; cont <= n; ++cont)
            {
                        printf("x =  ");
                        scanf("%f", &x);
                        suma += x;
            }

            /* calcular la media y escribir la respuesta */
            media = suma/n;
            printf("\nLa media es %f\n\n", media);
           
            system("PAUSE");
            return 0;
}

Conversion de minusculas a mayusculas (for)


/* convertir una linea de texto de minusculas a mayusculas (for)*/

#include <stdio.h>
#include <ctype.h>

#define EOL '\n'

int main()
{
            char letras[80];
            int aux, cont;
           
            /* leer el texto en minusculas */
            for(cont = 0; (letras[cont] = getchar()) != EOL; ++cont);
           
            aux = cont;
           
            /* escribir el texto en mayusculas */
            for(cont = 0; cont < aux; ++cont)
                        putchar(toupper(letras[cont]));
           
            printf("\n\n");
            system("PAUSE");
            return 0;
}

Media de una lista de numeros (do-while)


/* calcular la media de n numeros (do-while) */

#include <stdio.h>

int main()
{
            int n, cont = 1;
            float x, media, suma = 0;
           
            /* inicializar y leer el valor de n */
            printf("Cuantos numeros?  ");
            scanf("%d", &n);
           
            /* leer los numeros */
            do
            {
                        printf("x =  ");
                        scanf("%f", &x);
                        suma += x;
                        ++cont;
            }while(cont <= n);
           
            /* calcular la media y escribir la respuesta */
            media = suma/n;
            printf("\nLa media es %f\n\n", media);
           
            system("PAUSE");
            return 0;
}

Conversion de minusculas a mayusculas (do-while)


/* convertir una linea de texto de minusculas a mayusculas (do_while) */

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

#define EOL '\n'

int main()
{
            char letras[80];
            int aux, cont = -1;
           
            /* leer el texto en minusculas */
            do
                        ++cont;
            while((letras[cont] = getchar()) != EOL);

            aux = cont;
           
            /* escribir el texto en mayusculas */
            cont = 0;
            do
            {
                        putchar(toupper(letras[cont]));
                        ++cont;
            }while (cont < aux);

           printf("\n\n");
            system("PAUSE");
            return 0;
}

Media de una lista de numeros. (while)


/* calcular la media de n numeros */

#include <stdio.h>
int main()
{
            int n, cont = 1;
            float x, media, suma = 0;
           
            /* inicializar y leer el valor de n */
            printf("Cuantos numeros?  ");
            scanf("%d", &n);
           
            /*leer los numeros*/
            while (cont <= n)
            {
                        printf("x = ");
                        scanf("%f", &x);
                        suma += x;
                        ++cont;
            }
           
            /*calcular la media y escribir la respuesta */
            media = suma/n;
            printf("\nLa media es %f\n\n", media);
           
            system("PAUSE");
            return 0;
}

Convertir una linea de texto de minuscula a mayuscula. (while)


/* convertir una línea de texto de minúsculas a mayúsculas */

#include <stdio.h>
#include <ctype.h>

#define EOL '\n'

int main ()
{
            char letras[80];
            int aux, cont = 0;
           
            /* leer el texto en minúsculas */
            while ((letras[cont] = getchar()) != EOL) ++cont;
            aux = cont;
           
            /* escribir el texto en mayúsculas */
            cont = 0;
            while (cont < aux)
            {
                        putchar(toupper(letras[cont]));
                        ++cont;
            }
           
            printf("\n\n");
           
            system("PAUSE");
           
            return 0;
}