-
Lenguaje
Python
-
Descripción
Una compañía de paquetería internacional tiene servicio en algunos países de América del Norte, América Central, América del Sur, Europa y Asia. El costo por el servicio de paquetería se basa en el peso del paquete y la zona a la que va dirigido. Lo anterior se muestra en la tabla:
Zona | Ubicación | Costo/gramo
1 | América del Norte | $11
2 | América Central | $10
3 | América del Sur | $12
4 | Europa | $24
5 | Asia | $27
Parte de su política implica que los paquetes con un peso superior a 5 kg no son transportados, esto por cuestiones de logística y de seguridad. Determinar el cobro por la entrega de un paquete o, en su caso, el rechazo de la entrega, además la cantidad y valor total de paquetes enviados a cada destino.
Nota: el algoritmo se detiene cuando el usuario ya no desea registrar mas envíos y todos los valores se deben expresar en número entero.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
paquetes_a_zona_1 = 0
paquetes_a_zona_2 = 0
paquetes_a_zona_3 = 0
paquetes_a_zona_4 = 0
paquetes_a_zona_5 = 0
total_a_zona_1 = 0
total_a_zona_2 = 0
total_a_zona_3 = 0
total_a_zona_4 = 0
total_a_zona_5 = 0
tecla_repetir = b's'
while tecla_repetir==b's' or tecla_repetir==b'S':
os.system ('cls')
peso_en_gramos = int (input ('Ingresa el valor de peso en gramos: '))
costo_por_gramo=0
print ('Selecciona el valor de zona.')
print ('\t1.- Am\u00E9rica del Norte')
print ('\t2.- Am\u00E9rica Central')
print ('\t3.- Am\u00E9rica del Sur')
print ('\t4.- Europa')
print ('\t5.- Asia')
sys.stdout.write ('\t')
zona = 0
while zona<1 or zona>5:
zona = int (input (': '))
if zona<1 or zona>5:
sys.stdout.write ('Valor incorrecto. Ingr\u00E9salo nuevamente.')
if zona==1:
costo_por_gramo=11
if zona==2:
costo_por_gramo=10
if zona==3:
costo_por_gramo=12
if zona==4:
costo_por_gramo=24
if zona==5:
costo_por_gramo=27
if peso_en_gramos>5000:
costo_por_el_servicio=0
print ('Entrega rechazada')
else:
costo_por_el_servicio=costo_por_gramo*peso_en_gramos
if peso_en_gramos<=5000 and zona==1:
paquetes_a_zona_1=paquetes_a_zona_1+1
total_a_zona_1=total_a_zona_1+costo_por_el_servicio
if peso_en_gramos<=5000 and zona==2:
paquetes_a_zona_2=paquetes_a_zona_2+1
total_a_zona_2=total_a_zona_2+costo_por_el_servicio
if peso_en_gramos<=5000 and zona==3:
paquetes_a_zona_3=paquetes_a_zona_3+1
total_a_zona_3=total_a_zona_3+costo_por_el_servicio
if peso_en_gramos<=5000 and zona==4:
paquetes_a_zona_4=paquetes_a_zona_4+1
total_a_zona_4=total_a_zona_4+costo_por_el_servicio
if peso_en_gramos<=5000 and zona==5:
paquetes_a_zona_5=paquetes_a_zona_5+1
total_a_zona_5=total_a_zona_5+costo_por_el_servicio
print ('Valor de costo por el servicio: ' + repr (costo_por_el_servicio))
print ('Valor de costo por gramo: ' + repr (costo_por_gramo))
print ()
sys.stdout.write ('\u00BFDeseas repetir el proceso? (S/N): ')
tecla_repetir = b'\0'
while tecla_repetir!=b's' and tecla_repetir!=b'S' and tecla_repetir!=b'n' and tecla_repetir!=b'N':
tecla_repetir = msvcrt.getch ()
print ('Valor de paquetes a zona 1: ' + repr (paquetes_a_zona_1))
print ('Valor de paquetes a zona 2: ' + repr (paquetes_a_zona_2))
print ('Valor de paquetes a zona 3: ' + repr (paquetes_a_zona_3))
print ('Valor de paquetes a zona 4: ' + repr (paquetes_a_zona_4))
print ('Valor de paquetes a zona 5: ' + repr (paquetes_a_zona_5))
print ('Valor de total a zona 1: ' + repr (total_a_zona_1))
print ('Valor de total a zona 2: ' + repr (total_a_zona_2))
print ('Valor de total a zona 3: ' + repr (total_a_zona_3))
print ('Valor de total a zona 4: ' + repr (total_a_zona_4))
print ('Valor de total a zona 5: ' + repr (total_a_zona_5))
os.system ('pause')