C/Visual C - Necesito ayuda con un codigo

 
Vista:

Necesito ayuda con un codigo

Publicado por magoel01 (2 intervenciones) el 15/01/2009 03:03:42
Hola a todos los miembros y visitantes de este foro.... soy nuevo en este cuento de la programación y pues quiero incursionar en esta area uniendola con otra en la q trabajo q es la psicología por eso les pido de antemano disculpas si estoy en el foro equivocado (de ser asi les pido amablemente me indiquen en cual me pueden ayudar).... para esto quiero sistematizar una prueba psicologica q se llama wisconsin.... esta prueba se compone de 4 tarjetas (estimulos) y 48 tarjetas (similares a las estimulo) para responder.... la idea de esta prueba es q la persona debe emparejar una a una cada tarjeta de las 48 con alguna de las 4 tarjetas estimulo segun color, forma y numero.... por q les comento todo esto (ya voy al punto)... para realizar esto, estoy utilizando un programa desarrollado para elaborar experimentos cientificos llamado E-Prime el cual tengo entendido funciona con lenguaje Visual C (aqui les pongo un ejemplo del lenguaje q utilizan... no se si les de una idea clara del tipo de lenguaje que pueda utilizar)
' InLine - InLine2 BEGIN
'''''''''''''''''''''''''''''''''''''''''''''
If (Practica.GetCurrentAttrib("Respuesta") = "c") then
ACCF = ACCF + Slide1.ACC + ITI.ACC
if Slide1.RT <> 0 then
TRF = TRF + Slide1.RT
else
TRF = TRF + (ITI.RT + 500)
end if
End if

...el problema q tengo en estos momentos es q no se como especificar una instrucción q me permita decirle al programa q cuando un sujeto realice 6 respuestas correctas consecutivas en una categoria pase a la otra categoria sin que continue en la misma categoria (ejemplo.... una persona respondio en la categoria "color" 6 veces consecutivas de manera correcta.... cunado intente por septima vez, la categoria habra cambiado a "forma" sin q el sujeto lo sepa.... pero si el sujeto por decir iba en el 4 intento y se equivoco, la cuenta se reinicia, tiene que cumplir 6 respuestas correctas consecutivas para que la prueba cambie a la siguiente categoria sin que el sujeto se de cuenta.... es decir... el sujeto debe descubrir por ensayo y error cual es la nueva categoria.... (no se reinicia el numero de tarjetas.... solo el numero de respuestas correctas.... es decir... las tarjetas q ya se seleccionaron no vuelven a estar en la prueba.... si la persona cometio un error se le dice q esta mal pero el sujeto no puede corregir la respuesta con esa lámina.... le toca con la que sigue.... y asi hasta q termine las 48 tarjetas..... todo es un ciclo, debe comenzar por 6 x color, luego por 6 x forma luego 6 x numero y vuelve a comenzar 6 x color 6 x forma y asi sucesivamente hasta que se acaben las 48 tarjetas NOTA: el orden de las 48 tarjetas es especifico y no se da al azar...).... en fin.... despues de tan larga explicación resumo mi problema.... necesito aprender a como redactar la instrucción para decirle al programa que cada 6 respuestas correctas consecutivas pase a la otra categoria sin reiniciar las cartas, y q si se comete un error antes de cumplir las 6 respuestas correctas consecutivas, se reinicie la cuenta.... todo hasta q se completen las 48 tarjetas.....

Bueno se q para muchos les puede parecer complicado lo q he tratado de explicarles aquí.... solo espero q el q me haya entendido pueda indicarme algún ejemplo del q me pueda guiar... y /o me ayude a crear la instrucción.... cualquier duda respecto a la explicación se las puedo responder con mucho gusto..... les agradezco a todos por la atención... ojalá alguno de uds me pueda ayudar
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

no es C, pero...

Publicado por AntonioG (42 intervenciones) el 15/01/2009 16:40:33
Pero muchos lenguajes de porgramacion se parecen.

Primero deberias explicar que hace ese codigo que posiste (que expliqeus las funciones y las variables):
If (Practica.GetCurrentAttrib("Respuesta") = "c") then
ACCF = ACCF + Slide1.ACC + ITI.ACC
if Slide1.RT <> 0 then
TRF = TRF + Slide1.RT
else
TRF = TRF + (ITI.RT + 500)
end if
End if

---------------------------------
En general, en cualquier lenguaje de programacion, para resolver tu problema debes declarar una variable CorrectasEnSerie, que sea de tipo entero. Le pones un valor de 0 para comenzar. Cada vez que tengas uan respuesta correcta, pues incrementalo en 1. Si hya una respuesta incorrecta, has que esa varible tome el valor 0. Hasta esta parte, solo necesitas algo que te diga si la respuesta es correcta o no. Pienso que debe ser asi (son saber bien si este codigo ve si la respuesta es correcta o no):
If (Practica.GetCurrentAttrib("Respuesta") = "c") then
ACCF = ACCF + Slide1.ACC + ITI.ACC
CorrectasEnSerie=CorrectasEnSerie+1
else
CorrectasEnSerie=0
End if

Ahora, despues de eso, debes preguntar si ya van 6 respuestas correctas en serie o no, algo como esto
If (CorrectasEnSerie=6) then
AQUI VA LA INSTREUCCION PARA SALIR DE LA CATEGORIA

ese serie el esquema de solucion, lo malo es que no conozco las isntrucciones de tu codigo.

Saludos
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

RE:no es C, pero...

Publicado por magoel01 (2 intervenciones) el 15/01/2009 19:49:11
gracias AntonioG.... su respueta me ha enfocado un poco en lo q necesito.... sin embargo para q conozca un poco mas acerca del programa E-Prime me gustaria enviarle algunas capturas para q vea en detalle de q se trata esto..... E-prime es parecido en cuestión de gráficos al visual basic, es decir... tengo dos opciones.... puedo hacer el experimento por medio de códigos o puedo hacerlo a través de herramientas predefinidas.... (ejemplo... hay una paleta de colores.... hay una herramienta para insertar imagen.... para insertar cuadros... texto... etc...)... asi mismo existe una herramienta denominada "inline" la cual me permite hacer una especie de script (creo q asi se le llama y creo q esto es mas bien lo q necesito hacer en este paso pensandolo mejor) que me permite sistematizar el experimento poniendole condiciones más avanzadas (tal como la estoy intentando hacer).... los pasos q he seguido son los siguientes....

1) generar un block list (me permite introducir las variables del experimento) Ejemplo:
COLOR FORMA NUMERO OTRA (esta es cuando no corresponde a ningua de las categorias anteriores)
3 4 1 2
2 3 4 1
4 1 2 3
1 2 3 4
4 3 2 1
4 1 3 2
2 3 1 4
1 3 4 2
1 3 2 4
2 4 3 1
4 2 1 3
3 1 2 4
4 3 1 2
bueno aqui sigue hasta q sean 48 filas

2) inserto los dibujos de las laminas y las asocio a las respuestas del block list
·) luego le indico al programa q le indique al sujeto cuando se equivoque con un mensaje "ERROR" y si lo hace bien "CORRECTO".... el orden siempre tiene que ser COLOR, FORMA, NUMERO, vuelve otra vez con COLOR, FORMA, NUMERO asi sucesivaamente hasta que se terminen las tarjetas... (los sujetos no saben de la existencia de estas categorias... ellos deben descubrirlas.... por eso se les dice si esta bien o esta mal pero no pueden corregir su respuesta... deben continuar)
3) aqui iria el script para indicarle al experimento que si el sujeto hace 6 respuestas correctas conseutivas pase a la otra categoria... si el sujeto se equivoca se reinicia el conteo de respuestas correctas.... le voy a dar un ejemplo... el sujeto contesta la primer tarjeta con la categoria Numero, por lo tanto debio presionar la tecla 1, le aparece el mensaje error.... sigue a la otra tarjeta (ya no puede devolverse a la anterior y corregirla) y presiona la tecla 3 (COLOR)... sale un mensaje que dice "CORRECTO" (hasta aqui va una rta correcta).... luego en la tercera tarjeta el sujeto presiona la tecla 4 y vuelve a salirle "CORRECTO" (si el sujeto no tiene problemas psicologicos descubrira que debe responder segun la categoria COLOR) (ya van dos correctas consecutivas)... y sigue respondiendo correctamente hasta la tarjeta 7 (que corresponde a la tecla 2) pero cuando pasa a la tarjeta 8 y presiona la tecla 1 o sorpresa... le aparece "ERROR".... posiblemente el sujeto vuelva a intentar por COLOR en la tarjeta 9 y asi con las siguientes hasta que descubra q la categoria cambio.... pero bueno digamos que se dio cuenta que la categoria cambio y que respondio con la tecla 3 y le salio "CORRECTO" en la tarjeta 9... se dio cuenta que la categoria cambio a FORMA.... y continuo.... pero da la casualidad de que en la tarjeta 11 cometio un error y presiono la tecla 4 (categoria COLOR) y le salio "error" cuando debia responder con la tecla 2 (categoria FORMA).... ahi se supone que el experimento debe reiniciar la cuenta (hasta este momento se supone q llevabe bien 2 tarjetas para la categoria FORMA - las tarjetas 9 y 10 - ; pero debido a que se equivoco en la tarjeta 11 el counter de la categoria FORMA vuelve a 0, asi hasta que complete 6 respuestas consecutivas correctas en la misma categoria para que luego el experimento cambie a la siguiente categoria (sin avisarle por supuesto al sujeto).... le recuerdo que solo se puede dar una respuesta por cada tarjeta y que no es posible corregir la respuesta dada.... el sujeto puede corregir para si mismo y darse cuenta de que es otra categoria la que tiene q probar....

Resumiendo de nuevo mi problema.... parece ser q necesito crear una especie de scrpt q me haga ese bucle ( o no se como decirle) para q me haga lo q le acabo de explicar.... no se si de pronto con esta información me pueda ayudar.... en todo caso le expreso mis mas sinceros agradecimientos por tomarse el tiempo de leer estas solicitudes y dareme una respuesta tan rápida... cualquier nueva respuesta estare pendiente.... mil y mil 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