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ú

Mensajes - Emily

#1
Hola a todos
en mi programa deseo ingresar unos paquetes en 3 filas diferentes
las frases que ingresaría serian así : SRP102
deseo guardar eso en un fila pero no se como guardar un frase en un espacio de una fila
alguien de favor me podría decir de que manera hacerlo
este es el avance que tengo de mi programa
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

struct servidor{
char s1[20];
};

typedef struct Nodo{
    char Dato[20];
    struct Nodo *sig;
}Nodo;

Nodo *Crear1(char dato[20]){
Nodo *espacio;
    espacio=(Nodo*)malloc(sizeof(Nodo));
    espacio->Dato[20]=dato[20];
    espacio->sig=NULL;
    return espacio;
}

Nodo *Alta1 (char dato[20],Nodo *frente){
    Nodo *box;
    Nodo *aux;
    box=Crear1(dato);
    if (frente==NULL){
        frente=box;
    }else{
    aux=frente;
        while((aux->sig)!=NULL){
        aux=aux->sig;
}
aux->sig=box;
    }
    return frente;
}

void Mostrar (Nodo *top){
    if(top==NULL)
    {
        printf ("\nNo hay ningun dato\n");
    }
    else {

        while (top!=NULL)
        {
            printf ("\n| %d |\n ___  ",top->Dato);
            top=top->sig;
        }
        printf("\n");
    }

}

int main(){
    struct Nodo *Fila;
    Fila=NULL;
    int op;
    char s1[20];
do{
printf ("1.-Ingresar paquetes en el servidor 1\n2.-Ingresar paquetes en el servidor 2\n3.-Ingresar paquetes en el servidor 3\n4.-Salir\nSeleccione una opcion: \n");
        scanf("%d", &op);
    switch(op){
    case 1:
    printf("Ingrese el numero del paquete:  \n");
    scanf("%s",s1);
    Fila=Alta1(s1,Fila);
    Mostrar(Fila);
    system("pause");
    system("cls");
   
    break;
    case 2:
break;
}   
}while(op!=4);
}

#2
Ya logre avanzar mas con mi programa, pero ahora mi duda es como puedo hacer la comparación de que cuando al inicio de la cadena se ingrese un ),],} marque un error
Aquí esta mi código
Alguien de favor me podría decir una manera con la cual pueda hacer la comparación o explicarme una forma de hacerla

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

typedef struct Nodo{
int Dato;
struct Nodo *sig;
}Nodo;

Nodo *Crear(char dato){
Nodo *espacio;
espacio=(Nodo*)malloc(sizeof(Nodo));
espacio->Dato=dato;
espacio->sig=NULL;
return espacio;
}

Nodo *Alta(char dato,Nodo *cima){
Nodo *box;
box=Crear(dato);
if(cima==NULL){
cima=box;
}else{
box->sig=cima;
cima=box;
}
return cima;
}

void Mostrar(Nodo *cima){
if(cima==NULL){
printf("\nNo hay ningun dato\n");
}else{
while(cima!=NULL){
printf ("\n| %c |\n ___  ",cima->Dato);
            cima=cima->sig;
}
printf("\n");
}
}

Nodo *Baja(Nodo *cima){
Nodo *aux;
if(cima==NULL){
return 0;
}else{
aux=cima;
cima=aux->sig;
free(aux);
return cima;
}
}


int main(){
int c;
struct Nodo *Pila;
    Pila=NULL;
    while (EOF != (c=getchar())){
    switch (c){
    case '(':
    Pila=Alta(c,Pila);
    break;
    case '{':
    Pila=Alta(c,Pila);
    break;
    case '[':
    Pila=Alta(c,Pila);
    break;
    case ')':
    if ((Pila->Dato)=='('){
    Pila=Baja(Pila);
}else{
printf("La ecuacion no esta balanceada");
return 0;
}
    break;
    case ']':
    if ((Pila->Dato)=='['){
    Pila=Baja(Pila);
}else{
printf("La ecuacion no esta balanceada");
return 0;
}
    break;
    case '}':
    if ((Pila->Dato)=='{'){
    Pila=Baja(Pila);
}else{
printf("La ecuacion no esta balanceada");
return 0;
}
    break;
}
}
printf("La ecuacion esta balanceada");
Mostrar(Pila);
}
#3
Ya logre resolver mi duda con el programa
si a alguien le sirve el codigo, aqui lo dejo

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


    typedef struct Nodo
    {
        int Dato;
        struct Nodo *sig;
    }Nodo;


Nodo *Crear (int);
Nodo *Alta (int, Nodo *top);
Nodo *Baja (Nodo *top);
void Mostrar(Nodo *top);
void Contar (Nodo *top);

int main(){
    struct Nodo *Pila;
    Pila=NULL;
    int Op=1,dato,o,size;
    do {
    printf ("¿Que desea hacer?\n1:Añadir valor\n2:Mostrar valores\n3:Eliminar nodo\n4:Contar nodos\n5:Salir\n");
    scanf ("%d",&Op);
    switch (Op){
        case 1:
                printf ("\n\tIngrese el valor:");
                scanf ("%d",&dato);
                Pila=Alta(dato,Pila);
                system("cls");
                break;
        case 2:
                Mostrar(Pila);
                system("pause");
                system("cls");
               
                break;
        case 3:
                Pila=Baja(Pila);
                system("cls");
                break;
        case 4:
                Contar(Pila);
                system("pause");
                system("cls");
                break;
        case 5:
        break;
               
        default :
        printf( "\nOpcion incorrecta.\n" );
                }


        }while (Op!=5);
        }


Nodo *Crear (int dato){

            Nodo *espacio;
            espacio=(Nodo*)malloc(sizeof(Nodo));


                espacio->Dato=dato;

                espacio->sig=NULL;

                return espacio;

}


Nodo *Alta (int dato,Nodo *top)
{
    Nodo *box;
    box=Crear(dato);
        if (top==NULL){
            top=box;
        }
        else
        {
            box->sig=top;
            top=box;
        }
        return top;
}

Nodo *Baja (Nodo* top){
    Nodo *aux;
    if (top==NULL)
    {
        return 0;
    }
    else {

        aux=top;
        top=aux->sig;
        free (aux);
        return top;
    }
}

void Mostrar (Nodo *top){
    if(top==NULL)
    {
        printf ("\nNo hay ningun dato\n");
    }
    else {

        while (top!=NULL)
        {
            printf ("\n| %d |\n ___  ",top->Dato);
            top=top->sig;
        }
        printf("\n");
    }

}

void Contar (Nodo *top){
    int Cont=0;
    if(top==NULL)
    {
        printf ("No hay nada\n");
    }
    else {
        while (top!=NULL)
        {
            Cont=Cont+1;
            top=top->sig;
        }
        printf("El tamaño es: %d\n",Cont);
    }
}

#4
Eso es lo que necesito hacer pero ya me atore en las comparaciones
#5
Hola a todos
verán tengo que realizas un programa en c utilizando pilas
Al programa le tengo que ingresar una ecuación ejemplo {(3+3)} de esta ecuación solo tengo que guardar el {,( en una pila pero cuando detecte los ),} tengo que eliminar la pila en donde se encuentra su pareja

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

typedef struct Nodo{
int Dato;
struct Nodo *sig;
}Nodo;

Nodo *Crear(char dato){
Nodo *espacio;
espacio=(Nodo*)malloc(sizeof(Nodo));
espacio->Dato=dato;
espacio->sig=NULL;
return espacio;
}

Nodo *Alta(char dato,Nodo *cima){
Nodo *box;
box=Crear(dato);
if(cima==NULL){
cima=box;
}else{
box->sig=cima;
cima=box;
}
return cima;
}

void Mostrar(Nodo *cima){
if(cima==NULL){
printf("\nNo hay ningun dato\n");
}else{
while(cima!=NULL){
printf ("\n| %c |\n ___  ",cima->Dato);
            cima=cima->sig;
}
printf("\n");
}
}

Nodo *Baja(Nodo *cima){
Nodo *aux;
if(cima==NULL){
return 0;
}else{
aux=cima;
cima=aux->sig;
free(aux);
return cima;
}
}


int main(){
int c;
struct Nodo *Pila;
    Pila=NULL;
    while (EOF != (c=getchar())){
    switch (c){
    case '(':
    Pila=Alta(c,Pila);
    break;
    case '{':
    Pila=Alta(c,Pila);
    break;
    case '[':
    Pila=Alta(c,Pila);
    break;
    case ')':
   
    break;
}
}
Mostrar(Pila); 
}

tengo este avance de mi código, ya guarda en las pilas los (,{,[ pero no se de que manera decirle que cuando encuentre un ),},] y coincida con el ultimo que se ingreso lo elimine
por favor alguien explíqueme de que manera puedo compararlos
#6
Tengo este avance de mi programa

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

typedef struct _Nodo{
        int dato;
        struct _Nodo *sig;
}Nodo;

Nodo *reservarmemoria(int dato){
     Nodo *espacio;
     espacio = (Nodo*) malloc(sizeof(Nodo));
     if(espacio != NULL){
                printf("Error");               
     }else{
           espacio -> dato = dato;
           espacio -> sig = NULL;
           return espacio;
     }
}
     
Nodo *alta(int dato, Nodo *cima){
     Nodo *box;
     box = reservarmemoria(dato);
     if (cima != NULL){
              box -> sig = cima;
     }
     return box;
}

Nodo *baja (Nodo *cima){
     Nodo *aux;
     if (cima != NULL){
              aux = cima;
              cima = aux -> sig;
              free(aux);
     }
     return cima;
}

void mostrar (Nodo *cima){
     if (cima == NULL){
              printf ("\n No hay nodos");             
     }else{
           while (cima != NULL){
                 printf ("Elemento %d\n", cima -> dato);
                 cima = cima -> sig;
           }
     }
}

void tamano (Nodo *cima){
     int i=0;
     if (cima == NULL){
              printf ("\n No hay nodos");             
     }else{
           while (cima != NULL){
                 cima = cima -> sig;
                 i++;
           }
           printf ("El tamaño es: %d\n", i);
     }
}

int main(){
    int op,dato;
    printf ("1.-Dar de alta un Nodo\n2.-Dar de baja un Nodo\n3.-Mostrar todos los Nodos\n4.-Mostrar el tamaño\n5.-Salir\n");
    scanf ("\n%d", &op);
    do{
          switch (op){
                 case 1:
                       printf ("Alta\nIntrodusca el numero a guardar en el nodo\n");
                       scanf ("%d\n", &dato);
                       alta(dato,);                                                                     
                 break;
                 case 2:
                      printf("Baja\n");
                      baja(cima);
                 break;
                 case 3:
                      mostrar(cima);
                 break;
                     
          }
         
    }while(op !=5);
    return 0;
}


Se que tengo que insertar una nueva estructura en el main que va a ser la que mande a cima pero no se de que manera hacerlo me preguntaba si alguien podría asesorarme
#7
Hola a todos
Tengo una gran duda
me pidieron que creara un archivo .txt el cual tendría dos números pero que los tengo que sumar en un programa de c pero no se como puedo solicitar esos dos números para poder sumarlos en mi programa de c.
por favor alguien podría explicarme el como solicitar esos dos números para poder sumarlos en c.
#8
El programa tiene que simular un cruce vehicular
de un lado voy a tener una fila de caracteres y del otro una fila de números
el usuario tiene que ingresar cuantos nodos va a tener cada una
y voy a tener un semáforo que solo de 1 y 0, si me sale 1 voy a dejar pasar el primer nodo que se ingreso a la fila de caracteres y si sale 0 voy a dejar pasar un nodo de la fila de los numeros
esos nodos que pasen me van a generar una nueva fila

este es mi programa pero ya me atore en la parte del semáforo, por favor alguien que me ayude

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

void insertar_filasFC();
void imprimir_filasFC();
void insertar_filasFN();
void imprimir_filasFN();
void insertar_filasF();
void eliminar_Nodo();
void eliminar_Nodo1();

typedef struct nodo
{
  char FC_filas;//donde se guarda la fila de los caracteres
  char FN_filas;//donde se guarda la fila de los numeros
  char F_filas;//donde se guarda la fila resultante
  struct nodo *sig;//puntero siguiente
}nodo;

nodo *primero1=NULL,*ultimo1=NULL,*primero2=NULL,*ultimo2=NULL,*primero=NULL,*ultimo=NULL,*inicio2=NULL,*inicio=NULL,*inicio1=NULL;

int main()
{
    int FC,FN,i,n,k;
    int semaforo=rand()%2;
    char letra='A',j='1';
    printf("Ingresar el numero de nodos para la fila de los caracteres\n");
    scanf("%d",&FC);
    printf("Ingresar el numero de nodos para la fila de los numeros\n");
    scanf("%d",&FN);
    if(FC<27||FN<10){
        printf("Fila de los Caracteres\n");
        for(i=1; i<=FC; i++){
            //printf("%c  ",letra);
            insertar_filasFC(letra);
            letra++;
        }
        imprimir_filasFC();
        printf("\nFila de los Numeros\n");
        for(i=1; i<=FN; i++){
            insertar_filasFN(j);
            j++;
            //printf("%d  ",j);
        }
        imprimir_filasFN();
        insertar_filasFC(*ultimo1);
        insertar_filasFN(*ultimo1);
        do{
            if (semaforo==1){
                insertar_filasFC(*primero);
                insertar_filasF(primero);
                eliminar_Nodo(primero);
            }else{
                if (semaforo==0){
                    insertar_filasFN(*primero1);
                    insertar_filasF(primero1);
                    eliminar_Nodo1(primero1);
                }
            }
            while(ultimo==NULL || ultimo1==NULL){

            }
        }while(ultimo!=NULL && ultimo1!=NULL);
    }else{
        printf("ERROR");
        system("pause");
        system("cls");
        return main();
    }
    //printf("%d",semaforo);
    return 0;
}

void insertar_filasF(char *dato){
    primero2=(nodo*)malloc(sizeof(nodo));
    primero2-> F_filas=dato;
    primero2->sig=NULL;
    if(ultimo2==NULL)
        ultimo2=inicio2=primero2;
    else{
        ultimo2->sig=primero2;
        ultimo2=primero2;
    }
}

void insertar_filasFC(char *letras){
    primero=(nodo*)malloc(sizeof(nodo));
    primero-> FC_filas=letras;
    primero->sig=NULL;
    if(ultimo==NULL)
        ultimo=inicio=primero;
    else{
        ultimo->sig=primero;
        ultimo=primero;
    }
}

void imprimir_filasFC(){
    primero=inicio;
    while(primero!=NULL){
        printf("%c  ",primero->FC_filas);
        primero=primero->sig;
    }
}

void insertar_filasFN(char *i){
    primero1=(nodo*)malloc(sizeof(nodo));
    primero1->FN_filas=i;
    primero1->sig=NULL;
    if(ultimo1==NULL)
        ultimo1=inicio1=primero1;
    else{
        ultimo1->sig=primero1;
        ultimo1=primero1;
    }
}

void imprimir_filasFN(){
    primero1=inicio1;
    while(primero1!=NULL){
        printf("%c  ",primero1->FN_filas);
        primero1=primero1->sig;
    }
}

void eliminar_Nodo(char dato){
    inicio=primero;
    if(primero==NULL){
        primero=inicio->sig;
        free(inicio);
    }
    return primero;
}

void eliminar_Nodo1(char dato){
    inicio1=primero1;
    if(primero1==NULL){
        primero1=inicio1->sig;
        free(inicio1);
    }
    return primero;
}
#9
Hola a todos
hice este programa en arduino el cual tiene una conexión a C (C solo manda 3 datos que son la horas, los minutos y los segundos)
pero al momento de enviar mis datos de C a arduino este se va directo a las funciones y nunca lee los datos que se le envió de C
alguien de favor me podría ayudar


#include <SoftwareSerial.h>
SoftwareSerial blue(2,3);
void setup() {
 // put your setup code here, to run once:
 blue.begin(9600);
 Serial.begin(9600);
}

void loop() {
 int a,b,c;
 // put your main code here, to run repeatedly:
if (blue.available()){
a=blue.read();
b=blue.read();
c=blue.read();
Serial.print(a+':'+b+':'+c+'\n');}
delay(1000);

if ((a<24) and  (b<60) and (c<60)){
america(a,b,c);
asia(a,b,c);
africa(a,b,c);
europa(a,b,c);
oceania(a,b,c);
c++;
}
else {
 Serial.println("Error al ingresar la hora...");
}
delay(30000);
 }

 
void america (int a, int b, int c){
      if (a<23) {
       Serial.print ("Caracas Venezuela: ");
       Serial.print(a+1);
       Serial.print(":");
       Serial.print(b);
       Serial.print(":");
       Serial.print(c);
      }
      else {
       Serial.print ("Caracas Venezuela: ");
       Serial.print("00:");
       Serial.print(b);
       Serial.print(":");
       Serial.print(c);    
      }
}
void asia (int a, int b, int c){
  if (a<10) {
   Serial.print ("Corea del Sur: ");
   Serial.print(a+14);
   Serial.print(":");
   Serial.print(b);
   Serial.print(":");
   Serial.print(c);
  }
   if (a==10) {
   Serial.print ("Corea del Sur: ");
   Serial.print("00:");
   Serial.print(b);
   Serial.print(":");
   Serial.print(c);
  }
  else {
   Serial.print ("Caracas Venezuela: ");
   Serial.print(a-10);
   Serial.print(":");
   Serial.print(b);
   Serial.print(":");
   Serial.print(c);    
  }
}
void africa (int a, int b, int c){
  if (a<17) {
   Serial.print ("Egipto: ");
   Serial.print(a+14);
   Serial.print(":");
   Serial.print(b);
   Serial.print(":");
   Serial.print(c);
  }
   if (a==17) {
   Serial.print ("Egipto: ");
   Serial.print("00:");
   Serial.print(b);
   Serial.print(":");
   Serial.print(c);
  }
  else {
   Serial.print ("Egipto: ");
   Serial.print(a-17);
   Serial.print(":");
   Serial.print(b);
   Serial.print(":");
   Serial.print(c);    
  }
}
void oceania (int a, int b, int c){
  if (a<11) {
   Serial.print ("Sydney: ");
   Serial.print(a+13);
   Serial.print(":");
   Serial.print(b);
   Serial.print(":");
   Serial.print(c);
  }
   if (a==11) {
   Serial.print ("Sydney: ");
   Serial.print("00:");
   Serial.print(b);
   Serial.print(":");
   Serial.print(c);
  }
  else {
   Serial.print ("Sydney: ");
   Serial.print(a-11);
   Serial.print(":");
   Serial.print(b);
   Serial.print(":");
   Serial.print(c);    
  }
}
void europa (int a, int b, int c){
  if (a<18) {
   Serial.print ("Londres: ");
   Serial.print(a+13);
   Serial.print(":");
   Serial.print(b);
   Serial.print(":");
   Serial.print(c);
  }
   if (a==18) {
   Serial.print ("Londres: ");
   Serial.print("00:");
   Serial.print(b);
   Serial.print(":");
   Serial.print(c);
  }
  else {
   Serial.print ("Londres: ");
   Serial.print(a-18);
   Serial.print(":");
   Serial.print(b);
   Serial.print(":");
   Serial.print(c);    
  }
}
#10
Muchas por su ayuda
Una duda mas
Y en Arduino cómo sería el código para recibir ese dato que se envía ??