LENGUAJE C

Uploaded from authorPOINTLite
Views:
 
Category: Entertainment
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

Slide 1: 

LISTAS LIGADAS Y MANEJO DE BITS

1. Observar la figura y contestar las siguientes preguntas : 

1. Observar la figura y contestar las siguientes preguntas Escribir el código en lenguajes C que la represente. A partir del inciso A), escribir el código en lenguajes C para insertar únicamente el 15 A partir del inciso A), escribir el código en lenguajes C para insertar únicamente la 'G'

Solución del Inciso a : 

Solución del Inciso a #include<stdio.h> //Librerias#include<conio.h>#include<stdlib.h>struct nodo_int{      int dato;      struct nodo_int *sig;      };typedef struct nodo_int NodoInt;struct nodo_char{      char dato;      struct nodo_char *sig;      };typedef struct nodo_char NodoChar;struct nodo_doble{      float dato;      struct nodo_char *pun1;      struct nodo_int *pun2;      };typedef struct nodo_doble NodoDoble;NodoInt *inicio_int=NULL;NodoChar *inicio_char=NULL;NodoDoble *inicio_doble=NULL;

Solución del inciso a : 

Solución del inciso a void inicio()//funcion para crear el nodo inicial con 2 punteros{    NodoDoble *p=inicio_doble;    p=(NodoDoble *)malloc(sizeof(NodoDoble));//se crea el nodo con 2 apuntadores    p->dato=3.14;    p->pun1=inicio_char;//se enlaza el primer puntero a la lista de valores char    p->pun2=inicio_int;//se enlaza el segundo puntero a la lista de valores int    inicio_doble=p;    }void insert_int(int x)//funcion para crear la lista ligada de valores int{    NodoInt *p=inicio_int;    p=(NodoInt *)malloc(sizeof(NodoInt));    p->dato=x;    p->sig=inicio_int;    inicio_int=p;    }void insert_char(char x)//funcion para crear la lista ligada de valores char{    NodoChar *p=inicio_char;    p=(NodoChar *)malloc(sizeof(NodoChar));    p->dato=x;    p->sig=inicio_char;    inicio_char=p;    }

Solución del inciso a : 

Solución del inciso a void imp_int(){//funcion para imprimir la lista de valores int    NodoInt *aux=inicio_int;    while(aux!=NULL){           printf("%d\t",aux->dato);           aux=aux->sig;          }    } void imp_char(){//funcion para imprimir la lista de valores char    NodoChar *aux=inicio_char;    while(aux!=NULL){           printf("%c\t",aux->dato);           aux=aux->sig;          }    } void imp_estructura(){//funcion para imprimir la estructura    NodoDoble *aux=inicio_doble;    printf("\t");    imp_char();    printf("\n");    printf("%.2f",aux->dato);     printf("\n");    printf("\t");    imp_int();    }

Solución del inciso a : 

Solución del inciso a main(){    int op;    inicio();    //llenamos la lista int con los valores indicados    insert_int(30);    insert_int(20);    insert_int(10);    //llenamos la lista char con los valores indicados    insert_char('F');    insert_char('E');    insert_char('C');    imp_estructura();        getch();       }

Solución del inciso b y c : 

Solución del inciso b y c #include<stdio.h> //Librerias#include<conio.h>#include<stdlib.h>struct nodo_int{      int dato;      struct nodo_int *sig;      };typedef struct nodo_int NodoInt;struct nodo_char{      char dato;      struct nodo_char *sig;      };typedef struct nodo_char NodoChar;struct nodo_doble{      float dato;      struct nodo_char *pun1;      struct nodo_int *pun2;      };

Solución del inciso b y c : 

Solución del inciso b y c typedef struct nodo_doble NodoDoble;NodoInt *inicio_int=NULL;NodoChar *inicio_char=NULL;NodoDoble *inicio_doble=NULL;void inicio()//funcion para crear el nodo inicial con 2 punteros{    NodoDoble *p=inicio_doble;    p=(NodoDoble *)malloc(sizeof(NodoDoble));//se crea el nodo con 2 apuntadores    p->dato=3.14;    p->pun1=inicio_char;//se enlaza el primer puntero a la lista de valores char    p->pun2=inicio_int;//se enlaza el segundo puntero a la lista de valores int    inicio_doble=p;    }void insert_int(int x)//funcion para crear la lista ligada de valores int{    NodoInt *p=inicio_int;    p=(NodoInt *)malloc(sizeof(NodoInt));    p->dato=x;    p->sig=inicio_int;    inicio_int=p;    }

Solución del inciso b y c : 

Solución del inciso b y c void insert_char(char x)//funcion para crear la lista ligada de valores char{    NodoChar *p=inicio_char;    p=(NodoChar *)malloc(sizeof(NodoChar));    p->dato=x;    p->sig=inicio_char;    inicio_char=p;    }void imp_int(){//funcion para imprimir la lista de valores int    NodoInt *aux=inicio_int;    while(aux!=NULL){           printf("%d\t",aux->dato);           aux=aux->sig;          }    } void imp_char(){//funcion para imprimir la lista de valores char    NodoChar *aux=inicio_char;    while(aux!=NULL){           printf("%c\t",aux->dato);           aux=aux->sig;          }    }

Solución del inciso b y c : 

Solución del inciso b y c void imp_estructura(){//funcion para imprimir la estructura    NodoDoble *aux=inicio_doble;    printf("\t");    imp_char();    printf("\n");    printf("%.2f",aux->dato);     printf("\n");    printf("\t");    imp_int();    }void inciso_b(){//codigo para el inciso b)    NodoInt *p=inicio_int, *q;    while(p->dato!=10)     p=p->sig;    q=(NodoInt *)malloc(sizeof(NodoInt));    q->dato=15;    q->sig=p->sig;            p->sig=q;                   } void ins_G(){//codigo para insertar la G    NodoChar *p=inicio_char, *q;    while(p->dato!='F')     p=p->sig;    q=(NodoChar *)malloc(sizeof(NodoChar));    q->dato='G';    q->sig=p->sig;            p->sig=q;                   }

Solución del inciso b y c : 

Solución del inciso b y c main(){    int op;    inicio();    //llenamos la lista int con los valores indicados    insert_int(30);    insert_int(20);    insert_int(10);    //llenamos la lista char con los valores indicados    insert_char('F');    insert_char('E');    insert_char('C');    imp_estructura();    do{    printf("\n\n1.-Ejecutar inciso b.");    printf("\n2.-Ejecutar inciso c.");    printf("\n3.-Salir");    printf("\nOpcion (1/2/3):");    scanf("%d",&op);    switch(op){     case 1:          system("cls");          inciso_b();          imp_estructura();          break;          case 2:          system("cls");          ins_G();          imp_estructura();          break;          }          }while(op<3);    }

2.  Programar en lenguaje C una aplicación que muestre el binario de un número dado por el usuario, basada en el manejo de bits. : 

2.  Programar en lenguaje C una aplicación que muestre el binario de un número dado por el usuario, basada en el manejo de bits.

Solución del ejercicio 2 : 

Solución del ejercicio 2 #include<stdio.h>#include<conio.h>#include<ostream>void despliegaBits(unsigned valor);int main(){   unsigned x; /*Variable para almmacenar la entreda del usuario*/      system("color 0A");   printf("Introdusca un Entero:");   scanf("%u", &x);   despliegaBits(x);   getch();   return 0;}

Solución del ejercicio 2 : 

Solución del ejercicio 2 void despliegaBits(unsigned valor){   unsigned c;      unsigned despliegaMascara = 1 << 31;   printf("El binario es: \n");   printf("%10u = ",valor);   for(c=1;c<=32;c++)   {       putchar(valor & despliegaMascara ? '1' : '0');       valor <<= 1;       if(c % 8 == 0)       {           putchar(' ');       }    }    putchar('\n');}

Slide 15: 

LOS PROGRAMAS FUERON COMPILADOS EN DEV-C++ ESPERO TE SIRVAN SI DESEAS BAJAR EL CÓDIGO DE LOS PROGRAMAS QUE SE MOSTRARON Y ADEMÁS VER UN EJEMPLO DE UNION Y ENUMERACIÓN PUEDES IR AL SIGUIENTE LINK: https://docs.google.com/document/pub?id=130k25iZEqs0TzXjWkNJ9BvKmzyG2kxs0HxQ47tThXcA