Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: virus69 en 21 Marzo 2011, 03:32 am



Título: me pueden ayudar a hallar el error en la siguiente sintaxis?
Publicado por: virus69 en 21 Marzo 2011, 03:32 am
Saludos compañeros.
Estoy haciendo unos ejercicios de lenguaje C++.
Pero al intentar compilar me da varios errores tengo como 3 horas intentando de corregirlo pero no encuentro la codificación '\' que tengo que corregir
el error que me da es este:

virus69@virus69-laptop ~/Network $ g++ sol.cpp
sol.cpp:38: error: stray ‘\’ in program
sol.cpp:38:65: warning: missing terminating " character
sol.cpp:38: error: missing terminating " character
sol.cpp:58: error: stray ‘\’ in program
sol.cpp:58:80: warning: missing terminating " character
sol.cpp:58: error: missing terminating " character
sol.cpp:65: error: stray ‘\’ in program
sol.cpp:65:80: warning: missing terminating " character
sol.cpp:65: error: missing terminating " character
sol.cpp:86: error: stray ‘\’ in program
sol.cpp:86:80: warning: missing terminating " character
sol.cpp:86: error: missing terminating " character
sol.cpp:93: error: stray ‘\’ in program
sol.cpp:93:80: warning: missing terminating " character
sol.cpp:93: error: missing terminating " character
sol.cpp:114: error: stray ‘\’ in program
sol.cpp:114:80: warning: missing terminating " character
sol.cpp:114: error: missing terminating " character
sol.cpp:121: error: stray ‘\’ in program
sol.cpp:121:80: warning: missing terminating " character
sol.cpp:121: error: missing terminating " character
sol.cpp: In function ‘int main()’:
sol.cpp:18: error: ‘swicth’ was not declared in this scope
sol.cpp:19: error: expected ‘;’ before ‘{’ token
sol.cpp:130: error: expected ‘}’ at end of input
virus69@virus69-laptop ~/Network $


Aquí dejo la sintaxis:
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
{
   int opcion2;
   int opcion3;
   int opcion4;
   char opcion1[1];
   char nombre [20];
   etiqueta:
   system ("clear");
   system ("pause");
   
      cout<<"Bienvenido!\n\n\n";
      cout<<"Cuantas compras realizas habitualmente?(a->1-3, b->3-10, c->10-20) ";
      cin>>opcion1;
      swicth (opcion1)
      {
        case 1:
         system ("clear")
         cout << "Cual es tu nombre?-> ";
         cin>>nombre;
         cout << "\nTienes un descuento del 5% en tus compras " <<nombre<< " :)\n";
         cout << "Que desea comprar? (1->escobas: 10€ \2->recogedores: 4€ \3->aromatizantes: 6€)->  ";
         cin >>opcion2;
         if(opcion2 == 1)
         {
         cout << "\nCuantas unidades desea comprar?-> ";
         cin>>opcion3;
         cout << "\nSubtotal a pagar: "<<opcion3*10<< "\nTotal a pagar: " <<(opcion2*10)+((5/100)*(opcion2*10));
         system ("pause");
         }
         if (opcion2 == 3)
         {
         cout << "\nCuantas unidades desea comprar?-> ";
         cin>>opcion3;
         cout << "\nSubtotal a pagar: "<<opcion3*4<< "\nTotal a pagar: " <<(opcion3*4)+((5/100)*(opcion3*4));
         system("pause");
         break;
       case 2:
         cout << "Cual es tu nombre?-> ";
                    cin >>nombre;
                    cout << "\nTienes un descuento del 8% en tus compras " <<nombre<< " :)\n";
                    cout << "Que desea comprar? (1->escobas: 10€ \2->recogedores: 4€ \3->aromatizantes: 6€)->  ";
                    cin >>opcion2;
                    if(opcion2 == 1)
                    {
                    cout << "\nCuantas unidades desea comprar?-> ";
                    cin >>opcion3;
                    cout << "\nSubtotal a pagar: "<<opcion3*10<< "\nTotal a pagar: " <<(opcion2*10)+((8/100)*(opcion2*10));
                    system("pause");
                    }
                    if(opcion2 == 2)
                    {
                    cout << "\nCuantas unidades desea comprar?-> ";
                    cin >>opcion3;
                    cout << "\nSubtotal a pagar: "<<opcion3*4<< "\nTotal a pagar: " <<(opcion3*4)+((8/100)*(opcion3*4));
                    system("pause");
                    }
                    if(opcion2 == 3)
                    {
                    cout << "\nCuantas unidades desea comprar?-> ";
                    cin >>opcion3;
                    cout << "\nSubtotal a pagar: "<<opcion3*4<< "\nTotal a pagar: " <<(opcion3*4)+((8/100)*(opcion3*4));
                   system("pause");                 }
                   break;
       case 3:
          system("clear");
                    cout << "Cual es tu nombre?-> ";
                    cin >>nombre;
                    cout << "\nTienes un descuento del 10% en tus compras " <<nombre<< " :)\n";
                    cout << "Que desea comprar? (1->escobas: 10€ \2->recogedores: 4€ \3->aromatizantes: 6€)->  ";
                    cin >>opcion2;
                    if(opcion2 == 1)
                    {
                    cout << "\nCuantas unidades desea comprar?-> ";
                    cin >>opcion3;
                    out << "\nSubtotal a pagar: "<<opcion3*10<< "\nTotal a pagar: " <<(opcion2*10)+((10/100)*(opcion2*10));
                   system("pause");
                    }
                    if(opcion2 == 2)
                    {
                    cout << "\nCuantas unidades desea comprar?-> ";
                    cin >>opcion3;
                    cout << "\nSubtotal a pagar: "<<opcion3*4<< "\nTotal a pagar: " <<(opcion3*4)+((10/100)*(opcion3*4));
                    system("pause");
                    }
                    if(opcion2 == 3)
                    {
                    cout << "\nCuantas unidades desea comprar?-> ";
                    cin >>opcion3;
                    cout << "\nSubtotal a pagar: "<<opcion3*4<< "\nTotal a pagar: " <<(opcion3*4)+((10/100)*(opcion3*4));
                    system("pause");                 }
                    break;   
       case 4:
         system("clear");
                    cout << "Cual es tu nombre?-> ";
                    cin >>nombre;
                    cout << "\nTienes un descuento del 12% en tus compras " <<nombre<< " :)\n";
                    cout << "Que desea comprar? (1->escobas: 10€ \2->recogedores: 4€ \3->aromatizantes: 6€)->  ";
                    cin >>opcion2;
                    if(opcion2 == 1)
                    {
                    cout << "\nCuantas unidades desea comprar?-> ";
                    cin >>opcion3;
                    cout << "\nSubtotal a pagar: "<<opcion3*10<< "\nTotal a pagar: " <<(opcion2*10)+((12/100)*(opcion2*10));
                    system("pause");
                    }
                    if(opcion2 == 2)
                    {
                    cout << "\nCuantas unidades desea comprar?-> ";
                    cin >>opcion3;
                    cout << "\nSubtotal a pagar: "<<opcion3*4<< "\nTotal a pagar: " <<(opcion3*4)+((12/100)*(opcion3*4));
                    system("pause");
                    }
                    if(opcion2 == 3)
                    {
                    cout << "\nCuantas unidades desea comprar?-> ";
                    cin >>opcion3;
                    cout << "\nSubtotal a pagar: "<<opcion3*4<< "\nTotal a pagar: " <<(opcion3*4)+((12/100)*(opcion3*4));
                    system("pause");                 }
                    break;
      
         system("clear");
                   cout << "Opcion Incorrecta, Elija de nuevo";
         goto etiqueta;     
  }

}       


El compilador que uso es build-essential
S.O: GNU/Linux.

Espero que me puedan ayudar y decirme que es lo que tengo que corregir?
Saludos...


Título: Re: me pueden ayudar a hallar el error en la siguiente sintaxis?
Publicado por: Shell Root en 21 Marzo 2011, 03:54 am
Código modificado para que compile correctamente, pero se puede mejorar en un 90%.
Cuando estáis usando switch, debe de ser una variable entera (int) o cadena (char), en caso de ser char las opciones deben de ir en apostrofes ''(Comillas simples)
Código
  1. #include <stdlib.h>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.   int opcion1, opcion2, opcion3, opcion4;
  9.   char nombre[20];
  10.  
  11.   cout<<"Bienvenido!\n\n\n";
  12.   cout<<"Cuantas compras realizas habitualmente?(a->1-3, b->3-10, c->10-20) ";
  13.   cin>>opcion1;
  14.  
  15.   switch(opcion1)
  16.   {
  17.      case 1:
  18.         system ("clear");
  19.         cout << "Cual es tu nombre?-> ";
  20.         cin>>nombre;
  21.         cout << "\nTienes un descuento del 5% en tus compras " <<nombre<< " \n";
  22.         cout << "Que desea comprar? (1->escobas: 10€ \2->recogedores: 4€ \3->aromatizantes: 6€)->  ";
  23.         cin >>opcion2;
  24.         if(opcion2 == 1)
  25.         {
  26.            cout << "\nCuantas unidades desea comprar?-> ";
  27.            cin>>opcion3;
  28.            cout << "\nSubtotal a pagar: "<<opcion3*10<< "\nTotal a pagar: " <<(opcion2*10)+((5/100)*(opcion2*10));
  29.            system ("pause");
  30.         }
  31.         if (opcion2 == 3)
  32.         {
  33.            cout << "\nCuantas unidades desea comprar?-> ";
  34.            cin>>opcion3;
  35.            cout << "\nSubtotal a pagar: "<<opcion3*4<< "\nTotal a pagar: " <<(opcion3*4)+((5/100)*(opcion3*4));
  36.            system("pause");
  37.         }
  38.         break;
  39.      case 2:
  40.         cout << "Cual es tu nombre?-> ";
  41.         cin >>nombre;
  42.         cout << "\nTienes un descuento del 8% en tus compras " <<nombre<< " \n";
  43.         cout << "Que desea comprar? (1->escobas: 10€ \2->recogedores: 4€ \3->aromatizantes: 6€)->  ";
  44.         cin >>opcion2;
  45.         if(opcion2 == 1)
  46.         {
  47.            cout << "\nCuantas unidades desea comprar?-> ";
  48.            cin >>opcion3;
  49.            cout << "\nSubtotal a pagar: "<<opcion3*10<< "\nTotal a pagar: " <<(opcion2*10)+((8/100)*(opcion2*10));
  50.            system("pause");
  51.         }
  52.         if(opcion2 == 2)
  53.         {
  54.            cout << "\nCuantas unidades desea comprar?-> ";
  55.            cin >>opcion3;
  56.            cout << "\nSubtotal a pagar: "<<opcion3*4<< "\nTotal a pagar: " <<(opcion3*4)+((8/100)*(opcion3*4));
  57.            system("pause");
  58.         }
  59.         if(opcion2 == 3)
  60.         {
  61.            cout << "\nCuantas unidades desea comprar?-> ";
  62.            cin >>opcion3;
  63.            cout << "\nSubtotal a pagar: "<<opcion3*4<< "\nTotal a pagar: " <<(opcion3*4)+((8/100)*(opcion3*4));
  64.            system("pause");
  65.         }
  66.         break;
  67.       case 3:
  68.         system("clear");
  69.         cout << "Cual es tu nombre?-> ";
  70.         cin >>nombre;
  71.         cout << "\nTienes un descuento del 10% en tus compras " <<nombre<< " \n";
  72.         cout << "Que desea comprar? (1->escobas: 10€ \2->recogedores: 4€ \3->aromatizantes: 6€)->  ";
  73.         cin >>opcion2;
  74.         if(opcion2 == 1)
  75.         {
  76.            cout << "\nCuantas unidades desea comprar?-> ";
  77.            cin >>opcion3;
  78.            cout << "\nSubtotal a pagar: "<< opcion3*10 << "\nTotal a pagar: " << (opcion2*10)+((10/100)*(opcion2*10));
  79.            system("pause");
  80.         }
  81.         if(opcion2 == 2)
  82.         {
  83.            cout << "\nCuantas unidades desea comprar?-> ";
  84.            cin >>opcion3;
  85.            cout << "\nSubtotal a pagar: "<<opcion3*4<< "\nTotal a pagar: " <<(opcion3*4)+((10/100)*(opcion3*4));
  86.            system("pause");
  87.         }
  88.         if(opcion2 == 3)
  89.         {
  90.            cout << "\nCuantas unidades desea comprar?-> ";
  91.            cin >>opcion3;
  92.            cout << "\nSubtotal a pagar: "<<opcion3*4<< "\nTotal a pagar: " <<(opcion3*4)+((10/100)*(opcion3*4));
  93.            system("pause");
  94.         }
  95.         break;
  96.      case 4:
  97.         system("clear");
  98.         cout << "Cual es tu nombre?-> ";
  99.         cin >>nombre;
  100.         cout << "\nTienes un descuento del 12% en tus compras " <<nombre<< " \n";
  101.         cout << "Que desea comprar? (1->escobas: 10€ \2->recogedores: 4€ \3->aromatizantes: 6€)->  ";
  102.         cin >>opcion2;
  103.         if(opcion2 == 1)
  104.         {
  105.            cout << "\nCuantas unidades desea comprar?-> ";
  106.            cin >>opcion3;
  107.            cout << "\nSubtotal a pagar: "<<opcion3*10<< "\nTotal a pagar: " <<(opcion2*10)+((12/100)*(opcion2*10));
  108.            system("pause");
  109.         }
  110.         if(opcion2 == 2)
  111.         {
  112.            cout << "\nCuantas unidades desea comprar?-> ";
  113.            cin >>opcion3;
  114.            cout << "\nSubtotal a pagar: "<<opcion3*4<< "\nTotal a pagar: " <<(opcion3*4)+((12/100)*(opcion3*4));
  115.            system("pause");
  116.         }
  117.         if(opcion2 == 3)
  118.         {
  119.            cout << "\nCuantas unidades desea comprar?-> ";
  120.            cin >>opcion3;
  121.            cout << "\nSubtotal a pagar: "<<opcion3*4<< "\nTotal a pagar: " <<(opcion3*4)+((12/100)*(opcion3*4));
  122.            system("pause");
  123.         }
  124.         break;
  125.  
  126.         system("clear");
  127.         cout << "Opcion Incorrecta, Elija de nuevo";    
  128.      }
  129.   return 0;
  130. }


Título: Re: me pueden ayudar a hallar el error en la siguiente sintaxis?
Publicado por: virus69 en 21 Marzo 2011, 18:13 pm
Gracias amigo! entendí en parte tu explicación. revise el código observe las modificaciones que hiciste.

Pero dime cual fue el error que cometí? para no volverlo hacer en las próximas practicas!!!

Solo soy un simple aficionado que quiere aprender C++

Saludos...


Título: Re: me pueden ayudar a hallar el error en la siguiente sintaxis?
Publicado por: Shell Root en 21 Marzo 2011, 18:34 pm
revise el código observe las modificaciones que hiciste.
Pero dime cual fue el error que cometí? para no volverlo hacer en las próximas practicas!!!

Pero si viste las modificaciones que hice, porque preguntas de los errores, supongo que los vistes!


Título: Re: me pueden ayudar a hallar el error en la siguiente sintaxis?
Publicado por: El_Java en 21 Marzo 2011, 18:41 pm
Aún se podria optimizar más mi código, pero esta me parecia una buena oportunidad para mostrar todo lo que se puede optimizar un código  ;D

Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3. using namespace std;
  4.  
  5. int main(){
  6.    unsigned int opcion1, opcion2, opcion3;
  7.    char nombre[20];
  8.    unsigned int descuento=0; //nuevas variables
  9.  
  10.    cout << "Bienvenido! \n\n\n";
  11.    cout << "Cuantas compras realizas habitualmente? (a->1-3, b->3-10, c->10-20) ";
  12.    cin >> opcion1;
  13.  
  14.    switch(opcion1){
  15.        case 1:
  16.            descuento = 5; break;
  17.        case 2:
  18.            descuento = 8; break;
  19.        case 3:
  20.            descuento = 10; break;
  21.        case 4:
  22.            descuento = 12; break;
  23.        default:
  24.            system("clear");
  25.            cout << "Opcion Incorrecta, Elija de nuevo \n";
  26.    }
  27.    if (descuento != 0){ //Para que no se ejecute si no se pulsa alguno de los botones elegidos
  28.        system ("clear");
  29.        cout << "Cual es tu nombre?-> ";
  30.        cin>>nombre;
  31.        cout << "\nTienes un descuento del " << descuento << "% en tus compras " <<nombre<< " \n";
  32.        cout << "Que desea comprar? (1->escobas: 10€ \2->recogedores: 4€ \3->aromatizantes: 6€)->  ";
  33.        cin >>opcion2;
  34.  
  35.        if(opcion2 == 1){
  36.            cout << "\nCuantas unidades desea comprar?-> ";
  37.            cin>>opcion3;
  38.            cout << "\nSubtotal a pagar: "<<opcion3*10<< "\nTotal a pagar: " <<(opcion2*10)+((5/100)*(opcion2*10));
  39.            system ("pause");
  40.        }
  41.  
  42.        if(opcion2 == 2){
  43.            cout << "\nCuantas unidades desea comprar?-> ";
  44.            cin >>opcion3;
  45.            cout << "\nSubtotal a pagar: "<<opcion3*4<< "\nTotal a pagar: " <<(opcion3*4)+((8/100)*(opcion3*4));
  46.            system("pause");
  47.        }
  48.  
  49.        if (opcion2 == 3){
  50.            cout << "\nCuantas unidades desea comprar?-> ";
  51.            cin>>opcion3;
  52.            cout << "\nSubtotal a pagar: "<<opcion3*4<< "\nTotal a pagar: " <<(opcion3*4)+((5/100)*(opcion3*4));
  53.           system("pause");
  54.        }
  55.    }
  56.  
  57.    return 0;
  58. }
  59.  
  60. Espero que te sea de ayuda, un saludo.
  61.  
  62.  


Título: Re: me pueden ayudar a hallar el error en la siguiente sintaxis?
Publicado por: El_Java en 21 Marzo 2011, 18:44 pm
Tu fallo, amigo, creo que esta en usar para el switch un array de tipo char (char[1]), seria mucho mas facil poner (char variable) y luego en el switch (case 'a'... case 'b'... ).


Título: Re: me pueden ayudar a hallar el error en la siguiente sintaxis?
Publicado por: virus69 en 22 Marzo 2011, 19:56 pm
Gracias amigos. con tu codificación pude ver con mas claridad mis fallas, hasta me cumplió unas funciones de solicitudes de datos que en mi codificación no hacia!

Les agradezco a todos por darme una mano, felicito al foro por tener tan buena recepción con los usuarios novatos.

Saludos....

Aún se podria optimizar más mi código, pero esta me parecia una buena oportunidad para mostrar todo lo que se puede optimizar un código  ;D

Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3. using namespace std;
  4.  
  5. int main(){
  6.    unsigned int opcion1, opcion2, opcion3;
  7.    char nombre[20];
  8.    unsigned int descuento=0; //nuevas variables
  9.  
  10.    cout << "Bienvenido! \n\n\n";
  11.    cout << "Cuantas compras realizas habitualmente? (a->1-3, b->3-10, c->10-20) ";
  12.    cin >> opcion1;
  13.  
  14.    switch(opcion1){
  15.        case 1:
  16.            descuento = 5; break;
  17.        case 2:
  18.            descuento = 8; break;
  19.        case 3:
  20.            descuento = 10; break;
  21.        case 4:
  22.            descuento = 12; break;
  23.        default:
  24.            system("clear");
  25.            cout << "Opcion Incorrecta, Elija de nuevo \n";
  26.    }
  27.    if (descuento != 0){ //Para que no se ejecute si no se pulsa alguno de los botones elegidos
  28.        system ("clear");
  29.        cout << "Cual es tu nombre?-> ";
  30.        cin>>nombre;
  31.        cout << "\nTienes un descuento del " << descuento << "% en tus compras " <<nombre<< " \n";
  32.        cout << "Que desea comprar? (1->escobas: 10€ \2->recogedores: 4€ \3->aromatizantes: 6€)->  ";
  33.        cin >>opcion2;
  34.  
  35.        if(opcion2 == 1){
  36.            cout << "\nCuantas unidades desea comprar?-> ";
  37.            cin>>opcion3;
  38.            cout << "\nSubtotal a pagar: "<<opcion3*10<< "\nTotal a pagar: " <<(opcion2*10)+((5/100)*(opcion2*10));
  39.            system ("pause");
  40.        }
  41.  
  42.        if(opcion2 == 2){
  43.            cout << "\nCuantas unidades desea comprar?-> ";
  44.            cin >>opcion3;
  45.            cout << "\nSubtotal a pagar: "<<opcion3*4<< "\nTotal a pagar: " <<(opcion3*4)+((8/100)*(opcion3*4));
  46.            system("pause");
  47.        }
  48.  
  49.        if (opcion2 == 3){
  50.            cout << "\nCuantas unidades desea comprar?-> ";
  51.            cin>>opcion3;
  52.            cout << "\nSubtotal a pagar: "<<opcion3*4<< "\nTotal a pagar: " <<(opcion3*4)+((5/100)*(opcion3*4));
  53.           system("pause");
  54.        }
  55.    }
  56.  
  57.    return 0;
  58. }
  59.  
  60. Espero que te sea de ayuda, un saludo.
  61.  
  62.  


Título: Re: me pueden ayudar a hallar el error en la siguiente sintaxis?
Publicado por: virus69 en 31 Marzo 2011, 03:53 am
Saludos amigos!
Me pueden ayudar a mejorar la siguiente sentencia?
Ya que tengo problema cuando ingreso la cantidad de vendedores!
Compilen  para que vea lo que esta faltando.

Saludos...

Este es el enunciado:

Estatuto WHILE

La compañía aseguradora del pacifico paga $5,000 semanales a
sus vendedores más una comisión de 9% del total de ventas realizadas.
La compañía aseguradora solicita al departamento de sistemas que se le
desarrolle un programa en C++ que pida al usuario el monto de ventas y
determine el pago que deberá realizarse a cada vendedor. Una vez que ha
calculado el pago de cada vendedor la compañía genera un reporte de la
cantidad de vendedores cuyo pagó excedió los $8,000.

La sentencia:

#include <stdlib.h>
#include <iostream>
using namespace std;

int main()
{
      int ventas, dinero1, vendedores;
      dinero1 = 5000+((9/100)*ventas);
      cout << "Bienvenidos!\n\n";
      cout << "Introduzca el numero de ventas realizadas: ";
      cin >>ventas;
      while (ventas>0)
      {
      cout << "Esta semana recibiras " <<dinero1<<"$";
      cout << "\nHas realizado " <<ventas<< " ventas";
      cout << "\nCuantos vendedores realizaron las mismas ventas?->  ";
      cin >>vendedores;
      system("pause");
      }
      if (dinero1>8000)
      {
      cout <<"\n" <<vendedores << " vendedores obtuvieron mas de 8.000$";
      system("pause");
      }
      else {
      cout <<vendedores << " vendedores obtuvieron menos de 8.000$";
      system("pause");
      }
     
}