Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - MIG80

#1
Hardware / Duda sobre discos duros IDE
16 Noviembre 2010, 23:25 PM
Hola, bueno tengo una PC antigua con una placa base 'PCCHIPS Aristo M748LMRT/Amptron PII-3748' la cual soporta discos duros IDE y quiero comprar un disco duro para esa PC. He visto discos duros IDE de 80GB, 120GB, 160GB y 250GB, mi pregunta es ¿funcionarán con esa placa base? Gracias de antemano por las respuestas que me puedan dar.

Un saludo!
#2
Programación C/C++ / Calendario perpetuo
24 Julio 2010, 08:17 AM
Hola a todos! :D

Bueno al punto, vagando por la la Internet me encontré con una página que da el calendario (calendario gregoriano) de cualquier año  y quise hacer un programa en C que haga lo mismo  :rolleyes:, el resultado es el programa que está a continuación.


/*
 Calendario perpetuo.
 Autor: czealt
 fecha: julio de 2010
*/

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

#define year_ref  2010
#define diainicio Viernes

enum Dia{ Domingo, Lunes, Martes, Miercoles, Jueves, Viernes, Sabado };

enum Mes{ Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto, Setiembre,
        Octubre, Noviembre, Diciembre };

int esbisiesto(int year);
int cdiasmes(int mes,int year);
void imprimirmes(int mes, int year, int diaunomes);

int main(int argc, char *argv[])
{
 int a, year, ai=year_ref, af, ndias=0, dia1enero, mes, diaunomes;

 if(argc < 2)
 {
   printf("Uso: %s A¤o\n", argv[0]);
   return 0;
 }
 year = atoi(argv[1]);

 af = year-1;
 if(year < year_ref)
 {
   ai = year;
   af = year_ref-1;
 }
 for(a = ai; a <= af; a++)
   ndias += esbisiesto(a)?2:1;

 dia1enero = (diainicio + ((year >= year_ref)?1:-1) * ndias) %7;
 if(dia1enero < 0)
   dia1enero += 7;

 printf("Calendario del a¤o %d\n", year);
 diaunomes = dia1enero;
 for(mes = Enero; mes <= Diciembre; mes++)
 {
   imprimirmes(mes, year, diaunomes);
   diaunomes = (diaunomes + cdiasmes(mes, year)) %7;
 }
 return 0;
}

int esbisiesto(int year)
/*
"Un año es bisiesto si es divisible por 4, excepto el último de cada siglo
(aquellos divisibles por 100) que para ser bisiestos, tambien deben ser
divisibles por 400."
*/
{
 return (year%4) == 0 && ((year%100) != 0 || (year%400) == 0);
}

int cdiasmes(int mes,int year)
/*
Determina la cantidad de dias que trae cada mes.
*/
{
 static const int diasmes[] = {31,28,31,30,31,30,31,31,30,31,30,31};
 int cdias = diasmes[mes];
 if(mes == Febrero && esbisiesto(year))
   cdias++;
 return cdias;
}

void imprimirmes(int mes, int year, int diaunomes)
{
 static const char *strmes[]={"Enero","Febrero","Marzo","Abril","Mayo",
                              "Junio","Julio","Agosto","Setiembre","Octubre",
                              "Noviembre","Diciembre"};
 const int diasmes = cdiasmes(mes,year);
 int c, dia;
 printf("\n%s\n  D  L  M  M  J  V  S\n", strmes[mes]);
 dia = (35 - diaunomes) % 35 + 1;
 for(c = 35; c; c--)
 {
   if(dia > diasmes)
     printf("   ");
   else
     printf("%3d", dia);
   if((c - 1) % 7 == 0) putchar('\n');
   dia = dia % 35 + 1;
 }
}


Si tienen mejoras y/o criticas al codigo me gustaria conocerlas.

Saludos  :)