C sharp - Duda con ejercicio C#

   
Vista:

Duda con ejercicio C#

Publicado por palentino12 (13 intervenciones) el 14/10/2015 16:26:36
El ejercicio es el siguiente

Crea un programa que lleve el stock de bolígrafos y lapices de una papelería y que por tanto haga los siguientes pasos:

- El programa pedirá inicialmente cuantos bolígrafos y cuantos lapices hay en stock. Éste paso sólo se realizará una vez.

- Entonces el programa debe pedir al usuario una letra mientras exista stock de bolígrafos o lapices.

- Después de pedir la letra, si está es R o C, el programa pedirá al usuario que introduzca una cantidad,

- Se deberá restar la cantidad introducida del stock total de bolígrafos o lapices dependiendo de la letra introducida.

- El programa volverá a pedir la letra y stock hasta que se termine el stock de algunos de los productos. Entonces debe finalizar el programa mostrando la cantidad de rosas y claveles que quedan en la tienda.


Osea cuando le de a ejecutar el programa, me tendría que salir por ejemplo esto.

Stock de bolígrafos?
30

Stock de lapices?
20

Introduce producto?
B

Introduce Cantidad?
15

Introduce producto?
L

Introduce Cantidad?
5

Introduce producto?
B

Introduce Cantidad?
15

Fin del programa
Quedan 0 boligrafos y 15 lapices.

Este es el código que hice, pero no es que me de error, es que simplemente no me da el resultado esperado, osea no me repite el proceso hasta que la que condición se cumpla.

1
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace stocks__boligrafos_lapices
{
    class Program
    {
        static void Main(string[] args)
        {
            int boligrafos, lapices, cantidad1, cantidad2, resultado1 = 0, resultado2 = 0;
 
            char respuesta;
 
 
            Console.WriteLine("Stock de bolígrafos?");
            Console.WriteLine("");
 
            boligrafos = Int16.Parse(Console.ReadLine());
            Console.WriteLine("");
 
            Console.WriteLine("Stock de lapices?");
            Console.WriteLine("");
 
            lapices = Int16.Parse(Console.ReadLine());
            Console.WriteLine("");
 
 
 
            do
            {
                Console.WriteLine("Introduce producto");
                Console.WriteLine("");
 
                respuesta = char.Parse(Console.ReadLine());
                Console.WriteLine("");
 
                if ((respuesta == 'B') || (respuesta == 'L'))
                {
                    Console.WriteLine("Introduce cantidad");
                    Console.WriteLine("");
                    cantidad1 = Int16.Parse(Console.ReadLine());
                    resultado1 = boligrafos - cantidad1;
                    Console.WriteLine("");
                    Console.WriteLine("Introduce producto");
                    Console.WriteLine("");
                    respuesta = char.Parse(Console.ReadLine());
                    Console.WriteLine("");
                    Console.WriteLine("Introduce cantidad");
                    Console.WriteLine("");
                    cantidad2 = Int16.Parse(Console.ReadLine());
                    resultado2 = lapices - cantidad2;
                    Console.WriteLine("");
                }
                else
                {
                    Console.WriteLine("Error");
                }
 
 
 
            }
            while ((resultado1 <= 0) || (resultado2 <= 0));
 
            Console.WriteLine("");
            Console.WriteLine("Fin del programa");
            Console.WriteLine("Quedan " + resultado1 + " boligrafos" + " y " + resultado2 + " lapices.");
 
            Console.ReadKey();
 
 
 
        }
    }
}


Alguien puede ayudarme?

Gracias y un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Wilfredo Patricio Castillo

Duda con ejercicio C#

Claro que si muchacho, ya que te esforzaste por hacer tu tarea vamos a cambiarle un poquito tu lógica, pero es lo mismo

1
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
class Program
    {
        static void Main(string[] args)
        {
            int boligrafos, lapices,cantidad = 0 ;
 
            bool Final = false;
 
            char respuesta;
            Console.WriteLine("Stock de bolígrafos?");
 
            Console.WriteLine("");
            boligrafos = Int16.Parse(Console.ReadLine());
 
            Console.WriteLine("");
            Console.WriteLine("Stock de lapices?");
            Console.WriteLine("");
            lapices = Int16.Parse(Console.ReadLine());
            Console.WriteLine("");
            while (! Final)
            {
                Console.WriteLine("Introduce producto");
                Console.WriteLine("");
                respuesta = char.Parse(Console.ReadLine());
                Console.WriteLine("Introduce cantidad");
                Console.WriteLine("");
                cantidad = Int16.Parse(Console.ReadLine());
                if(respuesta=='B')
                {
                    boligrafos =boligrafos- cantidad;
                   lapices=lapices-0;
                }
                else
                {
                    if (respuesta=='L')
                    {
                        lapices=lapices - cantidad;
                        boligrafos=boligrafos-0;
                    }
                }
                if((boligrafos<=0) || (lapices<=0 ))
                {
                    Final = true;
                    Console.WriteLine("Fin del programa");
 
                    Console.WriteLine("Quedan " + boligrafos + " boligrafos" + " y " + lapices + " lapices.");
                    Console.ReadKey();
                }
 
            }
        }
    }



Espero te sirva, ya que no hay mucho tiempo para filosofar o mejorarlo.
Saludos cordiales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Duda con ejercicio C#

Publicado por palentino12 (13 intervenciones) el 15/10/2015 00:29:30
Muchas gracias por tu ayuda, la verdad lo del booleano era nuevo para mi, has usado un while, yo cuando vi el ejercicio pensaba que sería usando un do while, osea se repetiría hasta que se cumpla una de las dos condiciones, en cambio has puesto while (! Final) que viene a decir se repetirá mientras sea distinto al final,que después de pones más adelante el if con los dos condiciones, depués pones Final = True, osea si se cumplen alguna de las dos condiciones Final sera verdadero y el bucle terminara porque en el while pusiste ! Final, osea si el final hubiera sido False porque no se hubiera cumplido ninguna de las dos condiciones.se hubiera seguido repitiendo hasta que alguna de las dos condiciones se cumpliera.

La verdad es que yo lo hice demasiado complicado.

Un Saludo y Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo

Duda con ejercicio C#

Es simple como verás muchas veces nos complicamos en cosas sencillas, pero lo bueno es que has entendido el asunto.

Que bueno que te haya servido, para cualquier otra duda, ya sabes por acá estamos muchos colaboradores, siempre y cuando muestres que te has esforzado en hacer la tarea.

Saludos cordiales,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar