Foros del Web » Programación para mayores de 30 ;) » C/C++ »

ayuda con un codigo

Estas en el tema de ayuda con un codigo en el foro de C/C++ en Foros del Web. hola a todos, bueno, estoy aprendiendo a programar en c++, recien llevo como 2 clases de esto, y estoy haciendo el siguiente ejercicio: La compañía ...
  #1 (permalink)  
Antiguo 18/05/2009, 17:53
 
Fecha de Ingreso: mayo-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
ayuda con un codigo

hola a todos,

bueno, estoy aprendiendo a programar en c++, recien llevo como 2 clases de esto, y estoy haciendo el siguiente ejercicio:

La compañía de cable necesita un sistema de autoservicio para calcular el total de la
cuenta de sus abonados. Para eso pregunta un cuestionario que incluye las sigueintes
preguntas.
¿Tiene canales premium? (si/no)
¿Tiene canales de futbol? (si/no)
¿Tiene canales cine? (si/no)
¿Tiene canales infantiles? (si/no)
¿En que sector vive? (Norte, Centro, Sur)

De acuerdo a los antecedentes, el sistema valida en una tabla, los costos adicionales a
cargo fijo de $15000 y entrega el valor final del servicio.

Servicio Costo adicional Sector Recargo por zona
Premium $5000 Norte $3000
Futbol $3500 Centro $4000
Cine $4000 Sur $5000
Infantiles $2500


Ahora he hecho gran parte del codigo, pero tengo una duda. Todo lo he hecho con IF. Pero en la 5ta pregunta me da un problema por que tengo 3 opciones..entonces tengo 2 else dentro del if, y lo tengo hecho asi..como mostrara mi codigo. pero, si no me equivoco eso tambien se puede hacer con la condicional SWITCH, pero no entiendo como se hace el SWITCH. Y el codigo como lo tengo hasta ahora me manda el siguiente error, que no se a que se refiere..y he buscado en internet, pero no encuentro solucion:
Compiler: Default compiler
Building Makefile: "C:\Dev-Cpp\ejercicios\Makefile.win"
Executing make...
make.exe -f "C:\Dev-Cpp\ejercicios\Makefile.win" all
gcc.exe -c "ejercicio 1.c" -o "ejercicio 1.o" -I"C:/Dev-Cpp/include"

ejercicio 1.c: In function `main':
ejercicio 1.c:56: error: syntax error at end of input

make.exe: *** ["ejercicio 1.o"] Error 1

Execution terminated



Por favor...ayuda.

Aqui esta el codigo como lo tengo hasta ahora: por favor ayuden..
Código:
   
/*ejercicio 2*/

#include <stdio.h>

main(){
       int r1,r2,r3,r4, p1,p2,p3,p4,p5,t;
       char r5, n, s, c;
       
             
       printf("Tiene canales premium?/n 1=si, 2=no");
       scanf("%d", r1);
       
       printf("Tiene canales de futbol? /n 1=si, 2=no");
       scanf("%d", r2);
       
       printf("Tiene canales de cine?/n 1=si, 2=no");
       scanf("%d", r3);
       
       printf("Tiene canales infantiles? /n 1=si, 2=no");
       scanf("%d", r4);
       
       printf("En que sector vive? /n n=norte s=sur c=centro ");
       scanf("%d", r5);
       

if(r1=1){
p1==1500;
         }
         if (r2=1){
         p2==3500;
         }
                   if (r3=1){
                   p3==4000;
                   }
                             if (r4=1){
                             p4==2500;
                             }
                                       if (r5=n){
                                       p5==3000;
                                       } else {
                                              if (r5=c){
                                                p5==4000;
                                               } 
                                               
                                                  else{
                                                    if(r5=n){
                                                             p5==5000;
                                                             }
                                                             }                                                         
                                            
 t=p1+p2+p3+p4+p5+1500;  
 
 printf("El monto a pagar es: %d", t);             
}
  #2 (permalink)  
Antiguo 18/05/2009, 21:11
Avatar de fradve  
Fecha de Ingreso: abril-2009
Mensajes: 157
Antigüedad: 15 años
Puntos: 7
Respuesta: ayuda con un codigo

Hola,

Si te fijas las comparaciones las estas haciendo como asignaciones y viceversa
Código c++:
Ver original
  1. if(r1=1){
  2. p1==1500;
  3.          }
  4.          if (r2=1){
  5.          p2==3500;
  6.          }
  7.                    if (r3=1){
  8.                    p3==4000;
  9.                    }
  10.                              if (r4=1){
  11.                              p4==2500;
  12.                              }
  13.                                        if (r5=n){
  14.                                        p5==3000;
  15.                                        } else {
  16.                                               if (r5=c){
  17.                                                 p5==4000;
  18.                                                }
  19.                                                
  20.                                                   else{
  21.                                                     if(r5=n){
  22.                                                              p5==5000;
  23.                                                              }
  24.                                                              }

lo correcto es:

Código c++:
Ver original
  1. if(r1==1){
  2. p1=1500;
  3.          }
  4.          if (r2==1){
  5.          p2=3500;
  6.          }
  7.                    if (r3==1){
  8.                    p3=4000;
  9.                    }
  10.                              if (r4==1){
  11.                              p4=2500;
  12.                              }
  13.                                        if (r5==n){
  14.                                        p5=3000;
  15.                                        } else {
  16.                                               if (r5==c){
  17.                                                 p5=4000;
  18.                                                }
  19.                                                
  20.                                                   else{
  21.                                                     if(r5==n){
  22.                                                              p5=5000;
  23.                                                              }
  24.                                                              }

Saludos

Última edición por fradve; 18/05/2009 a las 21:11 Razón: sal2
  #3 (permalink)  
Antiguo 18/05/2009, 21:42
 
Fecha de Ingreso: mayo-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
Respuesta: ayuda con un codigo

Pues claro, en los if estas haciendo que "r5" sea igual que "c" (no estas haciendo una expresion de comparacion sino de asignacion) y en las variable que quieres poner el resultado quieres ver si "p5" es igual a "3000" (estas haciendo una comparacion logica), el codigo que proporciono
fradve es como deberias hacerlo......
  #4 (permalink)  
Antiguo 19/05/2009, 19:46
 
Fecha de Ingreso: mayo-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
Respuesta: ayuda con un codigo

hola
gracias por sus respuestas acabo de ver..y ahora entiendo y veo en lo q me equivoque..
pero todo eso se puede hacer con un switch o no??

voy a probar el codigo
  #5 (permalink)  
Antiguo 19/05/2009, 22:19
Avatar de fradve  
Fecha de Ingreso: abril-2009
Mensajes: 157
Antigüedad: 15 años
Puntos: 7
Respuesta: ayuda con un codigo

En este caso, como se trata del valor de distintas variables está bien hacerlo con if, ya que con el switch solo puedes preguntar por el valor de una variable.

Saludos
__________________
En programación hay mil y un formas de hacer lo mismo...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:57.