Friday, October 24, 2014

Informatica II : Recuperatorio Segundo Parcialito 8/5/2014 (Resuelto!)


#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
typedef struct
{
    char nombre[30];
    char apellido[30];
    int edad;
    unsigned int codigo;
} t_persona;


int main()
{
    t_persona persona[3];
    int i;
    char auxn,auxa;

    for (i=0; i<3; i++)
    {
        persona[i].codigo=0;

        printf("Ingresar nombre:");
        cargar_txt(persona[i].nombre);
        printf("\nIngresar apellido:");
        cargar_txt(persona[i].apellido);
        printf("\nIngresar edad:");
        scanf("%d", &(persona[i].edad));

        auxn=persona[i].nombre[0];
        if(es_mayuscula(auxn))
        {
            auxn=auxn^32;
        }
        persona[i].codigo=persona[i].codigo|auxn;
        persona[i].codigo=persona[i].codigo<<8;

        auxa=persona[i].apellido[0];
        if(es_mayuscula(auxa))
        {
            auxa=auxa^32;
        }
        persona[i].codigo=persona[i].codigo|auxa;
        persona[i].codigo=persona[i].codigo<<8;

        persona[i].codigo=persona[i].codigo|persona[i].edad;
    }
    for(i=0;i<3;i++)
    {
        mostrar_bin(persona[i].codigo);
        printf("\n");
    }


    return 0;
}
void cargar_txt(char txt[])
{
    char l;
    int i=0;
    do
    {
        l=getche();
        if(l!='\r')
        {
            txt[i]=l;
            i++;
        }
    }
    while ((l!='\r')&&(i<29));
    txt[i]='\0';
}
void es_mayuscula(char l)
{
    if((l>='A')&&(l<='Z'))
        return 1;
    else
        return 0;
}
void mostrar_bin (unsigned int var)
{
    int i;
    int aux;
    unsigned int mask=1;
    mask=mask<<((sizeof(unsigned int)*8)-1);
    for(i=0;i<(sizeof(unsigned int)*8);i++)
    {
        aux=var&mask;
        var=var<<1;
        if(aux!=0)
            printf("1");
        else
            printf("0");
    }
}

No comments:

Post a Comment