elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Aprendiendo C,help! Bucle while[?]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Aprendiendo C,help! Bucle while[?]  (Leído 2,328 veces)
Centmare

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Aprendiendo C,help! Bucle while[?]
« en: 14 Enero 2012, 04:06 am »

Buenas.
Actualmente estoy estudiando un ciclo medio(sistemas microinformaticos y redes), planeo seguir con el superior y a donde eso me lleve. Pero mientras tanto, tengo que aprovechar Ofimatica. Que mejor forma de hacerlo que aprender C.

Decidí embarcarme en un pequeño proyecto, estoy intentando hacer un pequeño juego en C, como una aventura grafica.... pero sin graficos. Aun se muy poco de programación, pero de este modo, eventualmente aprenderé.

El caso es que cuando compilo y ejecuto el codigo con dev-c++, se salta el while del final. No consigo figurarme el por qué, lo dejo en vuestras manos.

La trama se debe al alto numero de robos que ha habido en mi clase,sera divertido.

CODIGO: http://snipt.org/vgpS2

Consejos y material de lectura seran bienvenidos. Gracias!

PD: He visto el hilo con la lista de libros relacionados con el tema, pero agradeceria una recomendacion mas concreta,basada en experienca propia,no me veo capaz de elegir de una lista de titulos.


« Última modificación: 14 Enero 2012, 04:34 am por Centmare » En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Aprendiendo C,help! Bucle while[?]
« Respuesta #1 en: 14 Enero 2012, 10:02 am »

recuerda que el while ejecuta las instrucciones que estan en el mientras la condicion sea verdadera o un valor distinto de 0.
recuerda que la funcion strcmp devuelve un valor distinto de 0 si las cadenas son diferentes en caso contrario devuelve 0.
y simplemente tu while no se ejecuta porque ninguna de las comparaciones de la cadena son iguales, si quitas el NOT se ejecutara
pero estarias haciendo que tu while se ejecutase mientras las cadenas son distintas osea que si detectan que son iguales
sale del while :)


En línea

Centmare

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Aprendiendo C,help! Bucle while[?]
« Respuesta #2 en: 14 Enero 2012, 15:54 pm »

Se trata de que se ejecute lo del while hasta que las comparaciones sean iguales.

Segun lo que me has dicho el strcmp funciona igual que un !=, y no al contrario,como yo pensaba, por lo tanto entiendo que:

while (!(strcmp(Ohelipuerto,"helicoptero") || strcmp(Ahelipuerto,"entrar")))

ese while se ejecutaria mientras Ohelipuerto y Ahelipuerto NO sean desiguales a "helicoptero" y "entrar". Por eso, con la negacion no se me ejecutaba. Al quitar la negacion, pasa a ejecutarse cuando son desiguales, y sale del bucle cuando son iguales.

¿Alguien me confirma si estoy en lo cierto esta vez?
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Aprendiendo C,help! Bucle while[?]
« Respuesta #3 en: 14 Enero 2012, 18:05 pm »

Correcto.

La expresión:
Código
  1. strcmp(Ohelipuerto,"helicoptero") || strcmp(Ahelipuerto,"entrar")
Resulta en 1 (verdadero) si cualquiera de las cadenas no coincide con la literal, solo resulta en 0 (falso) si ambas cadenas son iguales.

Al negarla mediante el operador '!' el bucle "while" se ejecutara solo mientras ambas cadenas coincidan.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Centmare

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Aprendiendo C,help! Bucle while[?]
« Respuesta #4 en: 14 Enero 2012, 18:30 pm »

Bien, duda resuelta.
Gracias a los dos. Supongo que el hilo ya esta listo para cierre.

Hasta la proxima :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda (Parar bucle con dato boolean) [bucle while]
Java
Dem0ny 5 18,600 Último mensaje 17 Diciembre 2008, 17:43 pm
por Dem0ny
Bucle aprendiendo « 1 2 »
Scripting
dian1919 10 5,507 Último mensaje 23 Agosto 2022, 03:16 am
por Tachikomaia
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines