Tu problema no se soluciona ni con pseudocódigo ni con IDEs mágicos.
El problema es simplemente de algoritmia. Es un problema de lógica. La programación es enseñarle al ordenador a resolver un problema, si tú mismo no sabes resolverlo...¿cómo es posible pasarlo a un código, sea del lenguaje que sea, para que lo resuelva por ti?
Por poner un ejemplo tonto, si tu profesor te pide que dada una lista de números, los ordene primero los pares de menor a mayor y luego los impares de mayor a menor.
Tu cabeza automáticamente los ordena, pero tienes que pensar los pasos que tiene que hacer tu cabeza para decírselo al ordenador. Una posible solución de las muchas que hay:
1) Cojo los números y los divido en pares e impares. ¿Cómo se si un número es par o impar? Una posible solución que viene a la cabeza sería dividirlos entre 2 y si el resto es 0 es un número par y si es 1 es impar. Puede parecer bueno, pero que ocurre con el número 1? Me diría que es impar. ¿Y los números negativos? He controlado que solo acepto números enteros y positivos?
2) Como los ordeno de menor a mayor? Mi cabeza los ordena mágicamente, pero como se ordena paso a paso? Una solución que se podría pasar por tu cabeza, que creo que es la que se le pasa a todo el mundo antes de conocer algoritmia a un poco más de nivel es recorrer desde el primero hasta el último y coger el menor. ¿Y cómo cojo el menor? Tendría que ir comparando el primero con el segundo y el que sea más pequeño me lo quedo. Luego este con el tercero y el que sea más pequeño me lo quedo. Luego lo mismo con el tercero...etc. Lo mismo con los impares de mayor a menor haciendo el proceso al revés.
Una vez tienes la lógica pensada viene la implementación. Aquí puedes optar con un pseudocódigo. A mi personalmente el pseudocódigo me parece perder el tiempo, porque en mi opinión, el problema para la gente que empieza es no entender que mientras en nuestra cabeza, podemos ir colocando las cosas en un sitio finito y luego acceder a ello sin problemas (por ejemplo, en el caso de la ordenación, el hecho de ir comparando un número con otro y quedarte con el más pequeño, en tu cabeza se queda en un sitio al q puedes acceder como y cuando quieras, mientras que un ordenador necesita un espacio de memoria (una variable) para poder guardarlo y acceder a ello cuando lo necesites, según el nivel de pseudocódigo que utilices, ignorarás ciertas cosas y al final estás escribiendo un pseudocódigo que resuelve el problema de tu cabeza, pero no eres capaz de hacer que lo resuelva el ordenador porque no sabes transformarlo.
El pseudocódigo, uso de diagramas de flujo y demás parafernalia tiene sentido cuando tienes que resolver un problema tan grande que necesitas partirlo en varios trozos y esos trozos tienes que unirlos para darles un sentido. Al nivel al que está #1 no sirve, es inútil en mi opinión y no ayuda a resolver el problema.
Una vez hecho esto, por supuesto, te tocará pelearte con el debugger (en tu caso el que viene incluido con Visual Studio que es la polla) y arreglar los fallos que tengas, que serán varios.
Respecto a la pregunta de la luz, la pregunta de la luz es cuando todo lo explicado anteriormente lo resuelves en 3 segundos sin tener que hacerte un esquema de como resolver el problema que se te propone. Si tu profesor está esperando a que se aparezca como la virgen María....creo que está planteando erróneamente las clases.
Y te digo esto porque he trabajado con gente con muchos años de experiencia y que son los mejores del mundo picando código pero no saben resolver problemas. Y eso es lo peor.