Programación Estructurada - TPR Nº 1

97 views
Skip to first unread message

leonel fischer

unread,
Apr 15, 2014, 9:40:19 PM4/15/14
to uai-analistapr...@googlegroups.com
Bueno la idea que tengo, es preguntar cosas puntuales en este tema. Considero yo que van a estar con muchas dudas algunos y bueno quería aprovechar el grupo para que planteen sus problemas y como pueden resolver los ejercicios. OJO, resolver los ejercicios, no es dar las respuestas, sino entender como uno debe programar y plantear esa situación de resolución del problema.

Consulten todo lo que quiera por mas tonto que sea la pregunta en cuestión.

Saludos

Maxi Zaldua

unread,
Apr 17, 2014, 2:33:51 PM4/17/14
to uai-analistapr...@googlegroups.com
Hola, tengo una duda respecto al problema que me toco debido a mi falta de conocimiento en programación. Ya tengo pensado mas o menos como seria o como arrancar pero el problema es que el dato "Cada vez que realiza un viaje tiene la siguiente información que finaliza con cliente = 0" me descoloca, ya que yo pensaba hacer que cada cliente sus datos y lo que necesita y a partir de ahí juntar la info necesaria para resolver los problemas pero no se donde me quedaria el cliente = 0 en ese caso. Gracias de antemano

leonel fischer

unread,
Apr 17, 2014, 8:18:41 PM4/17/14
to uai-analistapr...@googlegroups.com
Hola maxi, te comento como lo resolvería yo:
                                   1                                 oro                              300

2                                 billetes                        250

3                                 piedras preciosas        200

4                                 documentos                150

Ahí tienes unos datos, usaría variables de TIPO int, usaría variables estáticos (es decir que no se modificaran) , pero solamente declara las variables y instancialas.


Con respecto a esto: "Cada vez que realiza un viaje tiene la siguiente información que  finaliza con cliente = 0" (Hay que preguntarle al profe, puede que se haya equivocado, porque para mi ese = 0 esta de mas)

Te dure porque (Aunque puede ser que me equivoque):

cliente = 0 suena al  CÓDIGO CLIENTE.

Pero para que finalizar, cuando debes integrar varios códigos de clientes ya que tienes un inciso que te lo indica.

"f.       cliente que transportó menos en un viaje"


La única que tengas que declarar un 0  a algún cliente o en todos. Sinceramente no lo veo, y después esta la otra, en tiempo de ejecución con los datos levantados, que finaliza el viaje apretando el 0 cuando se despacho con el cliente (es

mucho mas complejo eso porque con lo visto ahora no lo podríamos hacer ya que deberíamos usar clases y otra funciones y/o metodos extras)


Bueno en fin, solamente te doy 2 consejos extras. Para los ejercicios, lo que veo es que debes usar los Switch en ves de tantos IF, porque estoy viendo como muchos IF y creo que la consigna principal es esa. 


Y recuerda que hay "8 camiones", en la cual no sabes su nombre, asi que eso te lo dejo en tu imaginacion...


Espero que te alla servido de ayuda. Saludos

Gustavo Fernandez

unread,
Apr 17, 2014, 8:31:10 PM4/17/14
to uai-analistapr...@googlegroups.com
Hola yo coincido con la 2da opinión de Leonel, el 0 es para escapear del programa, ose se cargan datos while (cliente != 0) cuando sea 0 se saldrá de la aplicación mostrando los datos contabilizados hasta el momento. 

Maxi Zaldua

unread,
Apr 17, 2014, 8:33:23 PM4/17/14
to uai-analistapr...@googlegroups.com
Eso es lo q tenia pensado mas o menos lo único q me descolocaba era ese = 0, igual vi q lo preguntaron por mail al profesor así q habrá q esperar a ver q dice. De cualquier manera gracias por la ayuda, abrazo

Vanesa Alejandra Pawlowski

unread,
Apr 18, 2014, 8:24:42 AM4/18/14
to uai-analistapr...@googlegroups.com
Hola! Con CLIENTE 0 en realidad lo que quiere decir es que el el ciclo finaliza cuando se tipea 0 al querer ingresar el siguiente cliente. Solo eso. Bye!


El jueves, 17 de abril de 2014 15:33:51 UTC-3, Maxi Zaldua escribió:

leonel fischer

unread,
Apr 18, 2014, 10:45:06 AM4/18/14
to uai-analistapr...@googlegroups.com
Hola chicos, esta perfecto. Pero como lo harian en codigo??? Hasta ahora tiramos ideas...

Con estas 2 consignas impuestas, la verdad nos jode bastante:

- NO USAR ARRAY
- INGRESAR EL CODIGO DEL CLIENTE

porque es una complicacion el codigo del cliente??? Por el siguiente motivo, ustedes de por si, no pueden hacer solamente 1 ALTA.

Imaginemos los siguiente:

void main () {

int CLIENTE;  //Sabiendo que debemos ingresar varios cliente y no uno unico

While (CLIENTE != 0)
{
//Sentencias de ingreso de datos
scanf ("%d", & CLIENTE);

//Pero solamente hay un unico CLIENTE, osea que cuando se vuelva a ingresar CLIENTE, SE PISA... por lo tanto abria que declarar mas clientes, nose CLIENTES1 /CLIENTES10 por decir algo (No podemos usar array)
//Aca debemos poner una condicion, ya que nuestro unico CLIENTE nos pisaria, entonces con un IF preguntamos

if (cliente = 1)
{
cliente1 = cliente;
}

///Lo mismo con el 2 y 3, etc...
/// Lo unico que veo complicado hasta ahora aca, es el CLIENTE, sin numero
//Porque no debemos usarlo, ya que se cumpliria nuestro item F. lo de mostrar el cliente con menor envios. Solamente mostrar del 1 al 9. Pero abria un ingreso de datos EXTRA, si lo analizan...

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Yo lo hacia de esta manera:

int bandera, CLIENTE1, CLIENTE2, CLIENTE3, CLIENTE4, CLIENTE5;
char NY = `n`;
//Otras variables

for(i = 0; NY = 'y'; i++)
{
printf
("Ingrese el numero de cliente: ");
scanf
("%d",& bandera);
switch (bandera)
{
case 1:
//ingreso de datos de CLIENTE1
break;
case 2:
//ingreso de datos de CLIENTE2
break;
case 3:
//ingreso de datos de CLIENTE3
break;
case 4:
//ingreso de datos de CLIENTE4
break;
case 5:
//ingreso de datos de CLIENTE5
break;
case default:
// Una leyenda que diga que se debe ingresar un numero del 1 al 5
break;
case 0;
 printf
("Usted salio del Alta!!!");
 NY
= `y`; //Con esto la bandera entra en CASE 0, y usa NY para romper el FOR
break;
}


Podrian usar que la bandera en ves de ser INT, que sea CHAR, y filtrariamos con el usuario, toda letra que se ponga, y que este obligado a poner numeros.

Otra cosa, dentro de cada case iria algo asi:

printf ("Ingrese numero de camion:");
// Ojo aca que son 8 camiones no mas, aca tendran que usar otro SWITCH en ves de IF... o FUNCIONES que les devuelta un INT0
printf
("Ingrese tipo de valor: ");
//lo mismo, ya que son 4 valores no mas y son constantes esto, tendran que meterlo en el case que se encuentre, y a su ves si realiza mas de una compra deberan guardarlo en distintas variables
printf
("Ingrese la cantidad a llevar: ");
//un scanf %d, pero cuando se revuelva a ingresar el mismo case, se debera guardar en otra variable, sino se pisa....
CLIENTE1
++;
//Con esto sacaremos el minimo del punto F.


Nada capas me fui por las ramas, pero, creo que tiro la alternativa de la solucion ya que el ejercicio, a pesar de ser abstracto, tiene muchas PISADAS, que se pisa el valor, y si no usas una estructura repetitiva se complicaria muucho. Y mas si no usas Array

Saludos

Gustavo Fernandez

unread,
Apr 18, 2014, 12:03:53 PM4/18/14
to leonel fischer, uai-analistapr...@googlegroups.com

Creo que se podria hacer son array. Creando variables acumulativas para cada cliente y luego hacer las operaciones con esas variables.

--
Has recibido este mensaje porque estás suscrito al grupo "UAI-AnalistaProgramador-2014" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a uai-analistaprograma...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

leonel fischer

unread,
Apr 18, 2014, 12:18:06 PM4/18/14
to uai-analistapr...@googlegroups.com
Con array, el ejercicio es mucho mas facil de hacerlo.

En cambio, como no podemos usar Array (lo llama vectores y matrices el profesor) por lo tanto. Se compica.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a uai-analistaprogramador-2014+unsub...@googlegroups.com.

garcia.nestor.raul

unread,
Apr 18, 2014, 1:44:02 PM4/18/14
to uai-analistapr...@googlegroups.com, leonel fischer
Supongo que Cliente es Nº indeterminado porque Camión está explicitado (8) y Valores Transportados (4), por eso al ingresar 0 en numero de cliente (o de camión) termina el input y muestra los acumulados. Esto en base a lo que me contestó el prof. hoy.


El viernes, 18 de abril de 2014 13:03:53 UTC-3, Gustavo Fernandez escribió:
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a uai-analistaprogramador-2014+unsub...@googlegroups.com.

Carlos Alfonso

unread,
Apr 20, 2014, 9:23:03 AM4/20/14
to uai-analistapr...@googlegroups.com, leonel fischer
Tiro ideas. Si yo quiero saber quien cobro menos (otro ejemplo que se aplica a la mayoría de los ejercicios.) declaro un int como [int sueldomenor = 0]
y voy haciendo [if (sueldomenor> sueldoingresado)   sueldomenor = sueldoingresado; ]   esto siver para saber quien transporto menos inclusive. Saludos a todos felices pascuas.

Carlos Alfonso

unread,
Apr 20, 2014, 9:51:15 AM4/20/14
to uai-analistapr...@googlegroups.com, leonel fischer
Felices Pacuas Leonel! !

si estoy con el 2. 

Saludos

leonel fischer

unread,
Apr 20, 2014, 10:44:36 AM4/20/14
to uai-analistapr...@googlegroups.com, leonel fischer
No te quiero arruinar el dia. Pero tu ejercicio es el 3 jajajaja.

Gracias igualmente para vos y la familia. Y tambien para todos los del grupete

Gustavo Fernandez

unread,
Apr 20, 2014, 10:49:43 AM4/20/14
to leonel fischer, uai-analistapr...@googlegroups.com

Gracias felices pascuas a todos.

Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a uai-analistaprograma...@googlegroups.com.

Carlos Alfonso

unread,
Apr 20, 2014, 1:16:44 PM4/20/14
to uai-analistapr...@googlegroups.com, leonel fischer
al contrario me facilitas la vida porque lo tengo hecho del año pasado que no termine. 
gracias 
Saludos 

Carlos Alfonso

unread,
Apr 20, 2014, 1:17:02 PM4/20/14
to uai-analistapr...@googlegroups.com, leonel fischer


El domingo, 20 de abril de 2014 11:44:36 UTC-3, leonel fischer escribió:

Carlos Alfonso

unread,
Apr 20, 2014, 1:28:03 PM4/20/14
to uai-analistapr...@googlegroups.com, leonel fischer
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a uai-analistaprogramador-2014+unsubs...@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages