Programación General > Visual C++
problema en la ejecuciòn
(1/1)
gislena:
wenasss!!
hice un programa que da el precio de enviar una carta o paquete segùn sea:
en dia siguiente prioritario:
carta: $8
paquete: $25 hasta un kilo, dsp se le agregan $2 cada 500gr
dia siguiente normal:
carta: $5
paquete: $20 hasta un kilo, dsp se le agregan $1.5 cada 500gr
si se manda en dos o mas dias:
carta: no disponible
paquete: $20 hasta un kilo, dsp se le agregan $1 cada 500gr
ahora mi codigo es este:
// cartas_paquetes_v3.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
using namespace std;
char dia, tipo_servicio, horario_trabajo;
float peso, total_a_pagar = 0, diferencia; // CALCULA PRECIO UNITARIO DE CADA COSA
int total_paquete = 0, total_carta = 0; // TOTALES POR TIPO ENTREGA, incializadas
int total_dia_sig_prioritario = 0, total_dia_sig_normal = 0, total_2_dias_o_mas = 0; // TOTALES POR DIA, ya inicializadas
int total_dia_siguiente_prioritario_p = 0, total_dia_siguiente_prioritario_c = 0; // TOTALES SIG. PRIO C Y P , inicializadas
int total_dia_siguiente_prioritario_p1 = 0, total_dia_siguiente_normal_p1 = 0, total_dos_dias_o_mas_p1 = 0; // para paquetes mayores a 1000, inicializadas
int total_dia_siguiente_normal_p = 0, total_dia_siguiente_normal_c = 0; // TOTAL DIA SIG NORMAL, inicializadas
int total_dos_dias_o_mas_p = 0; // TOTAL DOS DIAS O MAS, inicializadas
int totales_de_entregas = 0; // PARA QUE CALCULE EL TOTAL DE ENTREGAS, ya inicializadas
float porcentaje_dia_sig_prioritario, porcentaje_dia_siguiente_normal, porcentaje_dos_dias_o_mas; // PORCENTAJES
float dinero_recaudado = 0; // TOTAL DINERO RECAUDADO, ya inicializada
float hora = 0, hora_fin, hora_inicio; // HORA DEL DIA PARA CARGAR LAS COSAS
int tp, tc; // CONTADORES tp, para paquete tc, para carta
cout << "Ingrese hora a la que empieza a trabajar (hh.mm): ";
cin >> hora_inicio; cout << "n";
cout << " Ingrese la hora a la que termina de trabajar (hh.mm): ";
cin >> hora_fin; cout << "n";
for (hora = hora_inicio; hora < hora_fin; hora++)
{
cout << " Ingrese tipo de servicio:" << "n";
cout << " 1 - Carta" << "n";
cout << " 2 - Paquete" << "n";
cin >> tipo_servicio;
cout << " Ingrese tipo de entrega: " << "n";
cout << " 7 - Dia siguiente prioritario" << "n";
cout << " 8 - Dia siguiente normal" << "n";
cout << " 9 - Dos dias o mas" << "n";
cin >> dia;
cout << " Ingrese peso EN GRAMOS a enviar: ";
cin >> peso;
cout << "n";
for (tc = 1; tipo_servicio = 1; tc++)
{
if ((dia = 7) && (peso < 30))
{
cout << " Se le cobraran 8$ " << "n";
total_dia_siguiente_prioritario_c += 1;
}
else if ((dia = 8) && (peso < 30))
{
cout << " Se le cobraran 5$ " << "n";
total_dia_siguiente_normal_c += 1;
}
else if ((dia = 9) && (peso < 30))
cout << " No esta disponible$ " << "n";
}
for (tp = 1; tipo_servicio = 2; tp++)
if (((peso > 30) && (peso < 1000)) && (dia = 7))
{
cout << " Se le cobraran 25$ " << "n";
total_dia_siguiente_prioritario_p += 1;
}
else if (((peso > 30) && (peso < 1000)) && (dia = 8))
{
cout << " Se le cobraran 20$ " << "n";
total_dia_siguiente_normal_p += 1;
}
else if (((peso > 30) && (peso < 1000)) && (dia = 9))
{
cout << " Se le cobraran 15$ " << "n";
total_dos_dias_o_mas_p += 1;
}
else if((peso > 1000) && (dia = 7))
{
diferencia = ((peso-1000) / 500);
total_a_pagar = (25 + ((diferencia *2) + 2));
cout << " Se le cobraran 25$ " << "n";
cout << " Y 2$ adicionales por cada 500 gr de màs" << "n";
cout << " Se le cobraran" << total_a_pagar << " $ en total" << "n";
total_dia_siguiente_prioritario_p1 += 1;
}
else if ((dia = 8) && (peso > 1000))
{
diferencia = ((peso-1000) / 500);
total_a_pagar = (25 + ((diferencia *2)+2));
cout << " Se le cobraran 20$ " << "n";
cout << " Y 1.5$ adicionales por cada 500 gr de màs" << "n";
cout << " Se le cobraran" << total_a_pagar << " $ en total" << "n";
total_dia_siguiente_normal_p1 += 1;
}
else if ((dia = 9) && (peso > 1000))
{
diferencia = ((peso-1000) / 500);
total_a_pagar = (25 + ((diferencia *2)+2));
cout << " Se le cobraran 15$ " << "n";
cout << " Y 1$ adicionales por cada 500 gr de màs" << "n";
cout << " Se le cobraran" << total_a_pagar << " $ en total" << "n";
total_dos_dias_o_mas_p1 += 1;
}
}
total_paquete = total_dia_siguiente_normal_p + total_dos_dias_o_mas_p + total_dia_siguiente_prioritario_p; // TOTAL PAQUETE
total_carta = total_dia_siguiente_prioritario_c + total_dia_siguiente_normal_c; //TOTAL CARTAS
total_dia_sig_prioritario = total_dia_siguiente_prioritario_p + total_dia_siguiente_prioritario_c; //TOTAL DIA SIGUIENTE PRIORITARIO
total_dia_sig_normal = total_dia_siguiente_normal_p + total_dia_siguiente_normal_c; // TOTAL DIA SIGUIENTE NORMAL
total_2_dias_o_mas = total_dos_dias_o_mas_p; // TOTAL DOS DIAS O MAS
cout << "El total de envios por paquete es: " << total_paquete << "n";
cout << "El total de envios por carta es: " << total_carta << "n";
cout << "El total de envios en dia siguiente prioritario es: " << total_dia_sig_prioritario << "n";
cout << "El total de envios en dia siguiente normal es: " << total_dia_sig_prioritario << "n";
cout << "El total de envios en dos dias o mas es: " << total_dia_sig_prioritario << "n";
totales_de_entregas = total_paquete + total_carta; //TOTAL ENTREGAS
cout << "El total de entregas hechas es: " << total_dia_sig_prioritario << "n";
// dinero_recaudado = ;
system ("PAUSE");
return 0;
}
el codigo anda, pero el problema es que cuando ingreso algo menor a 30 gr, sale el mismo mensaje indefinidamente, y si le pongo algo mayor, directamente no sale nada :S
y no se en què puede estar el error
si alguien me puede ayudar se lo agradezco!!
ProfesorX:
Primero que nada, te recomiendo que siempre pongas tu codigo entre [ code][ /code] (sin espacio en los corchetes) facilita la lectura.
En segundo lugar, despues de darle un viztazo, diria que todo esta mal en realidad, el que un programa corra, no significa que este bien hecho.
Tienes demasiados errores de logica como para decirtelos todos, asi que solo te dire 2:
1.
--- Código: C --- for (tc = 1; tipo_servicio = 1; tc++)
ese ciclo esta mal, no tiene condicion de salida, deberia ser algo como:
--- Código: C --- for (tc = 1; tipo_servicio == 1; tc++)
(nota el == en lugar del =), los ciclos for deben de tener una condicion de salida, si no, se ejecutan por siempre, supongo que esa debe ser la razon de que el mensaje aparece indefinidamente como mencionas, pero ademas, esa condicion no es correcta de todas formas, y me parece que en realidad no lo necesitas (un ciclo for para elegir el tipo de servico???)
2. una de las condiciones dice:
--- Citar ---en dia siguiente prioritario:
paquete: $25 hasta un kilo, dsp se le agregan $2 cada 500gr
--- Fin de la cita ---
en realidad el if deberia ser algo como:
--- Código: Text --- if (((peso <= 1000) && (dia == 7) && tipo_servicio == 2)costo = 25
como dije antes, todo esta muuuuy mal, supongo que tienes que analizarlo completamente, necesitas leer un buen libro de algoritmos, o pidele ayuda a tu maestro ;)
saludos :hola:
Wesker1262:
--- Cita de: "ProfesorX" ---Primero que nada, te recomiendo que siempre pongas tu codigo entre [ code][ /code] (sin espacio en los corchetes) facilita la lectura.
En segundo lugar, despues de darle un viztazo, diria que todo esta mal en realidad, el que un programa corra, no significa que este bien hecho.
Tienes demasiados errores de logica como para decirtelos todos, asi que solo te dire 2:
1.
--- Código: C --- for (tc = 1; tipo_servicio = 1; tc++)
ese ciclo esta mal, no tiene condicion de salida, deberia ser algo como:
--- Código: C --- for (tc = 1; tipo_servicio == 1; tc++)
(nota el == en lugar del =), los ciclos for deben de tener una condicion de salida, si no, se ejecutan por siempre, supongo que esa debe ser la razon de que el mensaje aparece indefinidamente como mencionas, pero ademas, esa condicion no es correcta de todas formas, y me parece que en realidad no lo necesitas (un ciclo for para elegir el tipo de servico???)
2. una de las condiciones dice:
--- Citar ---en dia siguiente prioritario:
paquete: $25 hasta un kilo, dsp se le agregan $2 cada 500gr
--- Fin de la cita ---
en realidad el if deberia ser algo como:
--- Código: Text --- if (((peso <= 1000) && (dia == 7) && tipo_servicio == 2)costo = 25
como dije antes, todo esta muuuuy mal, supongo que tienes que analizarlo completamente, necesitas leer un buen libro de algoritmos, o pidele ayuda a tu maestro ;)
saludos :hola:
--- Fin de la cita ---
completamente deacuerdo con el chavo de aki arriba tu codigo se ve algo muy ambiguo por lo ke explicaste no necesitas hacer tanto o.O almenos yo no me complicaria tanto te recomendaria ke primero agarres una libreta y un lapiz
y vas y entonces dices bien agamos esto
y en la libreta escribes tus funciones
lo primario pss obio el programa digase tu .cpp
y luego lo ke kieres ke haga
kiero ke sume
kiero ke reste
kiero ingresar numero
kiero sumar numero ingrado y ke reste
asi todo lo ke se te pueda ocurrir y luego vas otravez en libreta y dices
ok si kiero ke sume y ke reste pues hago una variable
si tantos gramos ke - precio
si tantos gramos ke + precio
no se si doy mi punto a relucir pero es mucho mejor irte dando a la idea de simplificar tus procesos lo digo por experiencia aun uso mi libreta xD
Navegación
Ir a la versión completa