elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  necesito q el programa me pida los datos hasta q yo le diga que no, y que imprim
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: necesito q el programa me pida los datos hasta q yo le diga que no, y que imprim  (Leído 1,956 veces)
luis torres

Desconectado Desconectado

Mensajes: 4


Ver Perfil
necesito q el programa me pida los datos hasta q yo le diga que no, y que imprim
« en: 29 Junio 2014, 20:36 pm »

Código
  1. #include <iostream>
  2. #include<stdio.h>
  3.  
  4. float zonaA(float v)
  5. {
  6. float limit=100,mult=0;
  7. if(v>limit){
  8. mult=(1000+(500*(v-limit)));
  9. }
  10. else{
  11. mult=0;}
  12. return mult;
  13. }
  14.  
  15. float zonaB(float v)
  16. {
  17. float limit=120,mult=0;
  18. if(v>limit){
  19. mult=(1000+(500*(v-limit)));
  20. }
  21. else{
  22. mult=0;}
  23. return mult;
  24. }
  25.  
  26. float zonaC(float v)
  27. {
  28. float limit=150,mult=0;
  29. if(v>limit){
  30. mult=(1000+(500*(v-limit)));
  31. }
  32. else{
  33. mult=0;}
  34. return mult;
  35. }
  36.  
  37. float zonaD(float v)
  38. {
  39. float limit=180,mult=0;
  40. if(v>limit){
  41. mult=(1000+(500*(v-limit)));
  42. }
  43. else{
  44. mult=0;}
  45. return mult;
  46. }
  47.  
  48. using namespace std;
  49. int main()
  50. {
  51.    float mpagar=0,pm=0,k,prom,promedio[3],c=0,d=0;
  52.    int I;
  53.    char placa[6],opc;
  54.    while(opc!='n'){
  55.    cout<<"ingrese la placa del auto"<<endl;
  56.    cin>>placa;
  57.    cout<<"ingrese la zona"<<endl;
  58.    cin>>I;
  59.    cout<<"cantidad de kilometros"<<endl;
  60.    cin>>k;  
  61.   if((I==1)&&(zonaA(k)==0))
  62.    {
  63.    cout<<placa<<" no paga multa"<<endl;
  64.    d=d+1;
  65.    }
  66.    else{
  67.    cout<<placa<<" su multa es=  "<<zonaA(k)<<endl;
  68.    c=c+1;
  69.    }
  70.  promedio[I]=(zonaA(k)/(c+d));
  71.   }
  72.  cout<<"cargar mas s/n=<"<<endl;
  73.  cin>>opc;
  74.   if((I==2)&&(zonaB(k)==0))
  75.    {
  76.    cout<<placa<<" no paga multa"<<endl;
  77.    d=d+1;
  78.    }
  79.    else{
  80.    cout<<placa<<" su multa es=  "<<zonaB(k)<<endl;
  81.    c=c+1;
  82.    }
  83.  promedio[I]=(zonaB(k)/(c+d));}
  84.  cout<<"cargar mas s/n=<"<<endl;
  85.  cin>>opc;
  86. if(opc=='n')
  87. {
  88. for(I=1;I<4;I++)  
  89. cout<<promedio[I]<<endl;  
  90. }
  91. system("PAUSE");
  92.    return 0;
  93. }

necesito que el programa me pida los datos hasta que le diga no, y que me imprime el promedio, lo hice con uno y si daba necesito de 4 opcione y ahi  si q no da nada


el enunciado dice 1. El departamento de tránsito prepara por cada infracción la siguiente entrada: placa, zona de infracción (A,B,C,D) límite de velocidad de la zona, y velocidad desarrollada por el infractor. Realice un algoritmo utilizando funciones y que produzca la siguiente información :
a. placa y multa la cual es a 1000 Bs + 500Bs*(por cada Km de exceso con respecto al límite)
El sistema sigue pidiendo información hasta que el usuario desee.
b.. indique por cada zona el número de infracciones ocurridas y la multa promedio


« Última modificación: 29 Junio 2014, 20:52 pm por luis torres » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: necesito q el programa me pida los datos hasta q yo le diga que no, y que imprim
« Respuesta #1 en: 29 Junio 2014, 22:49 pm »

no entendi el problema... el programa parece correr bien

por cierto...
Código
  1. using namespace std;
eso va (normalmente) no sobre el main, sino luego de los include, antes de todas las funciones


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: necesito q el programa me pida los datos hasta q yo le diga que no, y que imprim
« Respuesta #2 en: 30 Junio 2014, 00:09 am »

Yo te aconsejaría usar una sola función Zona a cambio de pasarle como parámetro la velocidad máxima en cada caso.

Código
  1. float Zona(float v,float limit){
  2.  float mult=0;
  3.  if(v>limit)
  4.    mult=(1000+(500*(v-limit)));
  5.  else
  6.    mult=0;
  7.  return mult;
  8. }

Y ya que has arreglado lo del while también te aconsejaría usar un par de arrays para ir quedando los coches que pasan por cada zona y los que en las mismas son multados:

Código
  1. float velocidad,promedio[4]={0},cont[4]={0};
  2.  int zona,multa[4]={0};

Y el tratamiento de una zona, la cuatro como ejemplo, la haría:

Código
  1. ///faltaria las zona=1,  zona=2 y zona=3, analogas a la 4
  2. ///con las correspondientes velocidades maximas de argumento en la funcion Zona  
  3.    if((zona==4) && (Zona(velocidad,180)==0)){
  4.      cout<<placa<<" no paga multa"<<endl;
  5.     cont[3]++;
  6.    }
  7.    else if(zona==4 && Zona(velocidad,180)!=0){
  8.      cout<<placa<<" su multa es=  "<<Zona(velocidad,180)<<endl;
  9.      cont[3]++;
  10.      multa[3]++;
  11.    }
  12.    if(zona==4 && cont[3]!=0)
  13.       promedio[zona-1]+=Zona(velocidad,180);
  14.  
  15.    cout<<"cargar mas s/n=<"<<endl;
  16.    cin>>opc;
  17.  
  18.  }///fin del WHILE
  19.  if(opc=='n'){ //SOLO aqui va
  20.    for(zona=0;zona<4;zona++)
  21.      if (cont[zona]!=0)
  22.      cout<<"[zona= "<<zona+1<<"] "<<endl<<"Promedio de las multas = "<<promedio[zona]/cont[zona]<<"   Multas: "<<multa[zona]<<"   Vehiculos que han circulado: "<<cont[zona]<<endl;
  23.  }

Aunque yo sería partidario de un swtich en lugar de tanto if-else.

Pero para que vayas cogiendo una idea creo que te vale,

¡¡¡¡ Saluditos! ..... !!!!




Y por favor, indenta  más correctamente el códiogo.


« Última modificación: 30 Junio 2014, 10:55 am por leosansan » En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: necesito q el programa me pida los datos hasta q yo le diga que no, y que imprim
« Respuesta #3 en: 30 Junio 2014, 11:02 am »

¿Y mapear la velocidad máxima en función de la zona? así no tienes que usar ni if ni switch...

Código
  1.  
  2. #define MAXZONAS 4
  3.  
  4. // Velocidad maxima de cada una de las zonas
  5. int velocidades[ MAXZONAS ] = { 100, 120, 160, 180 };
  6.  
  7. // ...
  8.  
  9. float multa = Zona( velocidad, velocidades[ zona - 1 ]  );
  10. if ( multa == 0.0 )
  11. {
  12.  cout << placa << " no paga multa " << endl;
  13. }
  14. else
  15. {
  16.  cout << placa << " su multa es " << multa << endl;
  17. }
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines