Foros-FIUBA Foros HostingPortal
 FAQ  •  Buscar  •  Wiki  •  Apuntes  •  Planet  •  Mapa  •  Eyeon  •  Chat
Preferencias  •  Grupos de Usuarios
Registrarse  •  Perfil  •  Entrá para ver tus mensajes privados  •  Login
Ver tema siguiente
Ver tema anterior

Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente
Autor Mensaje
fgf
Nivel 2



Registrado: 20 May 2006
Mensajes: 10


MensajePublicado: Lun Jul 10, 2006 4:26 pm  Asunto:  Sutileza sobre código ded programación Responder citandoFin de la PáginaVolver arriba

Buenas a todos/as: Primero pido disculpas por si este tema no pertenece aquí. Si lo cambian de lugar, no hay problema.
Allí va mi pregunta: ¿Hay alguna diferencia que yo no vea entre estos dos códigos?:
/*------------------------------------
/* 1era opción
if (a==1)
{
do
{ bloque de codigo}
while (a==1)
}
else {}
/*----------------------------------
/*2da opción
do
{
if (a==1)
{bloque de codigo}
else
{}
}
while (a==1)
/*---------------------
La ideda es la siguiente: Quiero usar un do-while, pero quiero prevenir que se ejecute la primera iteración. Por eso uso el if con la misma condición que el do-while. La diferencia que yo veo es que en la 2a opción el 'if' se ejecuta en cada iteración, mientras que en la primera, el 'if' se ejecuta solo una ve. Esto me hacwe pensar que la primera opción es mejor. Ahora bien, ¿por qué hago esta pregunta tan tonta? Porque el manual del software que estoy usando (LABVIEW) recomienda la segunda opción para aquel que quiera usar un do-while sin que se ejecute la primera iteración de no ser neceesrio. Como imagino que los tipos que escribieron el manual saben más que yo es que pongo esta pregunta en el foro. ¿Qué ventaja puede haber en la segunnda opción que yo no veo?
Muchas gracias, chau


   OfflineGalería Personal de fgfVer perfil de usuarioEnviar mensaje privado
fgf
Nivel 2



Registrado: 20 May 2006
Mensajes: 10


MensajePublicado: Lun Jul 10, 2006 4:27 pm  Asunto:  Sutileza sobre código ded programación Responder citandoFin de la PáginaVolver arriba

Buenas a todos/as: Primero pido disculpas por si este tema no pertenece aquí. Si lo cambian de lugar, no hay problema.
Allí va mi pregunta: ¿Hay alguna diferencia que yo no vea entre estos dos códigos?:
/*------------------------------------
/* 1era opción
if (a==1)
{
do
{ bloque de codigo}
while (a==1)
}
else {}
/*----------------------------------
/*2da opción
do
{
if (a==1)
{bloque de codigo}
else
{}
}
while (a==1)
/*---------------------
La ideda es la siguiente: Quiero usar un do-while, pero quiero prevenir que se ejecute la primera iteración. Por eso uso el if con la misma condición que el do-while. La diferencia que yo veo es que en la 2a opción el 'if' se ejecuta en cada iteración, mientras que en la primera, el 'if' se ejecuta solo una ve. Esto me hacwe pensar que la primera opción es mejor. Ahora bien, ¿por qué hago esta pregunta tan tonta? Porque el manual del software que estoy usando (LABVIEW) recomienda la segunda opción para aquel que quiera usar un do-while sin que se ejecute la primera iteración de no ser neceesrio. Como imagino que los tipos que escribieron el manual saben más que yo es que pongo esta pregunta en el foro. ¿Qué ventaja puede haber en la segunnda opción que yo no veo?
Muchas gracias, chau


   OfflineGalería Personal de fgfVer perfil de usuarioEnviar mensaje privado
Sebastian Santisi
Administrador Técnico


Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451


argentina.gif
MensajePublicado: Lun Jul 10, 2006 4:43 pm  Asunto:  Re: Sutileza sobre código ded programación Responder citandoFin de la PáginaVolver arriba

Me resulta medio confuso lo que querés hacer, pero, en este caso:
fgf escribió:
if (a==1)
{
do
{ bloque de codigo}
while (a==1)
}
else {}

No hay iteración...

(O sea, estoy asumiendo que A es un contador interno que varía al iterar.)

Esto se hace una vez para a=1 y otra para a!=1; punto.

Me parece que lo que querés hacer es algo más de la onda:

{bloque a=1}
for(a=2; a<...; a++)
{bloque a!=1}

O, si no:

flag = 1
while(xxxx) {
if(flag):
{codigo a =1;
flag = 0
continue;
}
{codigo a!=1}
}

Igual... preferiría que explicaras qué querés hacer más que tirar dos códigos. Ambas maneras que posteaste son bastante fuleras, y segurament se pueda esciribir de manera más elegante.

_________________
Image[tex] ${. \ \ \ \ \ \ \ \ \ .}$ [/tex][tex] ${\Large Usá \LaTeX, no seas foro...}$ [/tex]

Aries Género:Masculino Perro OfflineGalería Personal de Sebastian SantisiVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuario
Rada
Moderador


Edad: 37
Registrado: 10 Abr 2006
Mensajes: 2728
Ubicación: Caballito
Carrera: Informática
blank.gif
MensajePublicado: Lun Jul 10, 2006 9:38 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

En vez de usar un do-while pq no usas directamente un while

_________________
[CAMPAÑA] Colaboremos entre todos por un foro más ordenado (click aquí)
[CAMPAÑA] Hacer un tópico por cada curso y con información ¡útil! (click aquí)


Gabba gabba we accept you we accept you one of us

Tauro Género:Masculino Tigre OcultoGalería Personal de RadaVer perfil de usuarioEnviar mensaje privadoEnviar emailYahoo MessengerMSN Messenger
fgf
Nivel 2



Registrado: 20 May 2006
Mensajes: 10


MensajePublicado: Lun Jul 10, 2006 9:43 pm  Asunto:  aclaración sobre la sutileza de programación Responder citandoFin de la PáginaVolver arriba

Qué tal:
La idea es que 'a' es el estado de una variable (más precisamente un botón). El programa dentro del do-while debe ejecutarse solamente cuando el estado de dicha variable es verdadero. Por fuera de todo esto, se está chequeando cada tanto el estado de la variable 'a'.
Perdón por publicar el mensaje dos veces, no se qué pasó. Para Rada, que me contestó en el otro posteo, le comento que el programa no dispone de estructura while, solo de do-while.
Muchas gracias, chau


   OfflineGalería Personal de fgfVer perfil de usuarioEnviar mensaje privado
Sebastian Santisi
Administrador Técnico


Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451


argentina.gif
MensajePublicado: Lun Jul 10, 2006 11:05 pm  Asunto:  Re: aclaración sobre la sutileza de programación Responder citandoFin de la PáginaVolver arriba

fgf escribió:
Qué tal:
La idea es que 'a' es el estado de una variable (más precisamente un botón). El programa dentro del do-while debe ejecutarse solamente cuando el estado de dicha variable es verdadero. Por fuera de todo esto, se está chequeando cada tanto el estado de la variable 'a'.
Perdón por publicar el mensaje dos veces, no se qué pasó. Para Rada, que me contestó en el otro posteo, le comento que el programa no dispone de estructura while, solo de do-while.
Muchas gracias, chau

Si no tenés manera de hacerlo sin un do-while y la condición de la variable es externa, entonces la única forma que tenés es resolverlo como te dice el manual.
Como ya dije; la manera de la que planteaste vos siquiera es iterativa... cualquier cosa fijate de escribir el diagrama de flujo y te vas a dar cuenta.

(MODs: Por favor, hagan un merge entre este thread y el repetido.)

_________________
Image[tex] ${. \ \ \ \ \ \ \ \ \ .}$ [/tex][tex] ${\Large Usá \LaTeX, no seas foro...}$ [/tex]

Aries Género:Masculino Perro OfflineGalería Personal de Sebastian SantisiVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuario
Mostrar mensajes de anteriores:      
Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente

Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro
No podés responder a temas en este foro
No podés editar tus mensajes en este foro
No podés borrar tus mensajes en este foro
No podés votar en encuestas en este foro
No Podéspostear archivos en este foro
Podés bajar archivos de este foro


Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker
365 Attacks blocked.

Powered by phpBB2 Plus, phpBB Styles and Kostenloses Forum based on phpBB © 2001/6 phpBB Group :: FI Theme :: Mods y Créditos

Foros-FIUBA está hosteado en Neolo.com Cloud Hosting

[ Tiempo: 0.2971s ][ Pedidos: 20 (0.2222s) ]