Revista, Técnicas, Cursos, Problemas => Consultas - comentarios - ejercitación de los cursos => Mensaje iniciado por: argentinator en 06/01/2010, 04:47:15 pm



Título: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 06/01/2010, 04:47:15 pm
Curso de C#

En este thread serán atendidas las consultas, comentarios y se recibirán y discutirán los ejercicios propuestos.

Las inscripciones y organización del curso de C# en este enlace: Organización del curso de C# (http://rinconmatematico.com/foros/index.php/topic,28780.msg113163.html#msg113163).
El material del dictado del curso irá apareciendo aquí: Dictado del curso de C# (http://rinconmatematico.com/foros/index.php/topic,28779.msg113162.html#msg113162).




Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: mathtruco en 06/01/2010, 11:12:47 pm
sharp es el sostenido en música. Su símbolo es como el de C-sharp.

Como argentinator nos explicó, no es el símbolo #, si no un ++ uno más arriba que el otro, un sharp: [tex]\sharp[/tex]: [texx]\sharp[/texx]


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 06/01/2010, 11:22:24 pm
Cita
Como argentinator nos explicó,

No recuerdo haber explicado eso...  :D

De acuerdo. Agreguemos el dato del "sostenido".



Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: mathtruco en 06/01/2010, 11:25:53 pm
La cita era acerca de que los ++ uno más arriba que otro formaban un [texx]\sharp[/texx], el símbolo de sharp (que es distinto a #).


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 07/01/2010, 12:32:38 am
Estuve leyendo ahí, y lo único concreto es lo de Masciti, que dice que C++ es como un "sarcasmo" acerca de C, al que se la ha dado un "incremento" mediante el operador ++.
Puedo agregar eso de que es un "sarcasmo".
Pero la verdad es que no quiero ocuparme mucho de estas cuestiones accesorias.


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: mathtruco en 07/01/2010, 12:41:28 am
topo23,

 pofrías hacer las correcciones/desambiguaciones en tus post (además del link, claro). Así nos beneficiamos todos. De lo contrario me haces abrir el link y leer toda la cosa buscando a qué linea te refieres.

Me parece muy productivo eso de ser preciso en el lenguaje. Así todos aprendemos.

PS: porfavor no me respondan, no quiero hacer tema de esto. Si está bien ok, si no no pesquen mi comentario.


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 07/01/2010, 01:37:27 am
Cita
pero creo que es mucho peor es decir algo equivocado

Por supuesto


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 07/01/2010, 01:43:05 am
Cita
En todo caso después puedes juntar todo lo dicho y escribir la etimología del nombre C#.

Ya estuve editando todo eso acorde a tus objeciones.
No quiero explayarme más.


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: Dogod en 07/01/2010, 05:35:53 pm
Hola, sobre la tarea del Hola Mundo:

Aún no he probado con los pasos que indicas en el foro del curso, por falta de tiempo, pero paso el siguiente dato: En el Compilador de Visual Studio hay que agregarle al final del código la instrucción Console.Read(); para que pueda salir la ventanita de consola con el mensaje, de lo contrario aparece y desaparece instantáneamente, sería así:

Código:
using System;
class HelloWorld
{
    static void Main()
    {
        System.Console.WriteLine("Hola mundo!!!");
        Console.Read();
    }
}
  y el resultado en la ventana de console es Hola mundo!!! la cual se cierra cuando se presiona la tecla Enter,

bueno, espero haber cumplido un poco con la tarea...,


Un saludo

PD: En proceso las tareas con los pasos que indicas. :)


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 07/01/2010, 05:47:53 pm
Es cierto lo que decís,
pero si seguís paso a paso la tarea tal como la indiqué, la línea "Read" no hace falta agregarla.

Tampoco hace falta poner la línea Using System;


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 07/01/2010, 05:54:02 pm
En cuanto a la manera de transcribir código de programas en el foro,
no me gusta la apariencia estética de las etiquetas [code] ... [/code].

Me gusta más el resultado que queda usando Teletipo: [tt] ... [/tt]

Comparando:

Código:
{
     System.Console.WriteLine("Hola mundo!!!");
}


{
     System.Console.WriteLine("Hola mundo!!!");
}


¿Qué les gusta más?

Incluso a la forma de teletipo se le puede poner colorcitos y otras cosas.
Y queda bien si le agregamos alguna línea separatoria con [hr]:


[hr]
[tt]
[color=maroon]
[b]
{
     System.Console.WriteLine("Hola mundo!!!");
}
[/b]
[/color]
[/tt]
[hr]






{
     System.Console.WriteLine("Hola mundo!!!");
}






Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: mathtruco en 07/01/2010, 08:56:52 pm
Comentario:

argentinator: en tu segundo post de "Dictado del Curso de C# (Deitel)" donde pones: "el "[texx]\sharp[/texx]" evoca una nota musical medio paso más alta", queda más claro como "[texx]\sharp[/texx]" evoca una nota musical medio tono más alta".
Sé que es un detalle, pero para los que somos 1/2 músicos, pues queda mejor.


Para los linux users (ubuntu), es bastante cómodo usar la IDE:

$ sudo apt-get install monodevelop  (basta instalar esto  para compilar C#)


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 07/01/2010, 09:00:17 pm
Debo haber traducido mal. A mí también me parecía que quedaba mejor "tono" que "paso".
Ahi voy a corregir de nuevo. ¡Cómo se ve que no me gustan las introducciones, si con una de un par de parrafitos hago tanto lío!



Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: mathtruco en 07/01/2010, 09:03:49 pm
No no..  si está quedando muy bueno. Si no fuera así no te habría corregido el pequeño detalle.
Tienes una excelente redacción.

Eso de la instalación del IDE en ubuntu está muy simple. Llegar y usar. En unos días espero cambiarme de distribución, y ahí te cuento como me va la instalación.


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 07/01/2010, 09:04:44 pm
Cita
Para los linux users (ubuntu)...:

Estoy tratando de probar varias opciones con ayuda de máquinas virtuales.
Así me saco la duda de posibles errores que pudieran darse.

A lo mejor ponga como un ejercicio por ahí "instalar una máquina virtual" y luego instalar allí alguna versión de .NET en un sistema operativo "contrario" al que uno uso habitualmente.
Así todo el mundo practicaría ambas instalaciones.

Los que tengan ganas pueden irlo intentando por su cuenta.
Yo después les cuento cómo lo hice yo.
Aunque si tienen sugerencias...

Saludos


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: mathtruco en 07/01/2010, 09:07:17 pm
Para que no se enoje el profe: lista la tarea (aunque me salté todos los pasos de instalaciones   :P).


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 07/01/2010, 09:18:40 pm
Está bien. Pero si tenés Linux los pasos que dí no sirven de mucho.

Lo importante es que se produzca correctamente el archivo ejecutable y que al ejecutarlo aparezca bien el "Hola mundo!!!". Y de ahí, sólo suspiros de felicidad  ;D


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: mathtruco en 07/01/2010, 10:03:18 pm
Entonces suspiros felices  :P .


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: mathtruco en 08/01/2010, 12:22:46 am
En cuanto a la manera de transcribir código de programas en el foro,
no me gusta la apariencia estética de las etiquetas [code] ... [/code].

Me gusta más el resultado que queda usando Teletipo: [tt] ... [/tt]

(...)

¿Qué les gusta más?

(...)


También me gusta el resultado de las teletipo. Sería ideal poder hacerles un marco.


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: Avalo en 09/01/2010, 11:08:44 pm
Ya hice la tarea 1 y 2, la 1 fue pues solo checar ya que la había hecho antes (hace mucho y me fue muy dificil  :() la tarea 2 y parte de la 3 me gusto mucho  ;), de verdad no tenía idea de que se podía hacer eso, pensaba que el block de notas era completamente inutil, el final de la 3 es la que me lleva a escribir esto; como dije anteriormente ya yo había instalado la plataforma de desarrollo .NET, y fue necesario para instalar el Visual C# 2008 Express Edition ©, el cual tengo actualmente, lo que me lleva a mi prgunta:
¿Puedo trabajar directamente desde allí? Es decir usando el programa que edita, compila, corre, y guarda todo de una vez y pues es más comodo. Saludos  :D.


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 10/01/2010, 05:50:23 am
Y... sí, claro que podés usarlo. El objetivo de la tarea 2 era mostrar que el visual studio no es necesario, sino que la plataforma .NET es todo lo que hace falta para correr programas.
Pero claro, con los IDEs se simplifica el trabajo.

El objetivo de la tarea 3 era dejar todo en una carpeta de trabajo todo ordenaditos los programas que vayamos haciendo.
Pero el Visual Studio tiene sus propias carpetas de proyectos, así que podés usar esas...
Además pensaba hacer varios "holamundo" distintos, para probar varias cositas.
Ya voy a concretar.

Después podés ir viendo como organizar mejor los proyectos o programitas que vayamos haciendo.

Saludos


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: Avalo en 17/01/2010, 05:03:52 pm
Hola, ¿Cómo esta todo? :D, ya he finalizado con todas las tareas (en Microsoft Visual C# Express Edition© del Visual Studio©, no he hecho un tiempo para descargar los otros IDEs y trabajar en ellos) solo me falta una, la implementación de GTK# para las GUI, y es que no me corre (me pregunta por el espacio de nombres y no reconoce ningun método) pues no poseo esa Librería (o no la veo :P), ¿Cómo hago para invocarlas?¿La versión Express Edition las poseé? porque sé que es limitada con respecto al Visual Studio©, y sí no las tiene ¿Cómo hago para anexarlas? o ¿Estas solo están para el MonoDevelop?. Gracias  ;D


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 17/01/2010, 05:14:57 pm
Fijate que en el post para instalar Monodevelop tengo que haber explicado cómo se instala la librería GTK#. Sin eso el Monodevelop no se puede instalar.

Instalate esa libreria y después me contás cómo te fue.


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 17/01/2010, 05:29:38 pm
Cita
¿Estas solo están para el MonoDevelop?. Gracias

Una vez instalada una librería, debe funcionar en cualquier IDE.
A mi me funcionan en Visual Studio.


Te recomiendo que instales el Monodevelop, al menos (no haría falta el sharpdevelop),
y pruebes (varios de) los programas en los dos IDEs a la vez.

El Monodevelop te va a servir de experiencia para trabajar en sistemas no Windows.
El Gtk te va a servir para portar aplicaciones GUI a plataformanos no Windows.



Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: Avalo en 17/01/2010, 09:43:02 pm
Hola, como me había saltado la parte de descargar el Monodevelop no me fijé que allí estaba lo de descargar las Librerías de Ctk#, ahora ya lo instale y el Monodevelop también.

Ahora me sale este error:
Spoiler (click para mostrar u ocultar)

¿Cómo lo arreglo?


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 17/01/2010, 09:47:37 pm
No tengo ni idea. ¿Dónde te aparece eso?

¿Podrías pegar tu código acá, a ver si entiendo el error?



Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: Avalo en 17/01/2010, 09:49:13 pm
Acá, adjunto el screenshot


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 17/01/2010, 10:29:13 pm
Bueno, como bien dije al principio del curso, estoy aprendiendo todo esto junto con ustedes.
Así que hay cosas que no sé.

Al parecer el método Application.Init() trata de lanzar una excepción, y no la encuentra.

No sé cuál es el problema, porque a mí me funciona todo bien...

Supongamos que hallamos la manera de que la excepción esa sí pueda ser lanzada...
Me parece que eso no va a solucionar el problema.

Si no hallamos la solución, tendremos que ir a algún foro de ayuda de gente experta.

Lo que sospecho que pueda estar pasando es que haya un conflicto de versiones.
¿Qué version has instalado de la plataforma .NET?

Yo instalé la 3.5 porque es la ultima versión estable.
Ahí me funciona todo muy bien.
¿Qué versión es la tuya?



Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 17/01/2010, 10:55:50 pm
Una de las cosas que estuve viendo en internet es que para que Gtk funcione se necesita sistemas Windows de 32 bits.
Si tenés 64 bits, podría haber problemas.

¿Tenés idea de cómo es tu sistema? ¿Si es de 64 bits?
Porque si es así, va a haber que emular aplicaciones de 32 bits... y eso ya va por otro carril.

En lo que sigue del curso voy a tratar de hacer aplicaciones GUI que hagan lo mismo en los dos sistemas: el S.W.Forms y el Gtk#,
No sé si el resultado será fácil de portar de uno a otro sistema.
Veremos qué pasa



¿Has probado crear el mismo proyecto en Monodevelop y correrlo ahí, a ver qué pasa?

Saludos


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: Avalo en 17/01/2010, 11:12:06 pm
No había repondido porque mi hermana usaba la pc, tengo la 3.5, y no aun no he probado con el Monodevelop desde que lo instale hace un par de horas, mañana lo intento corrriendo todos los programas de la asignaciones allí. (Para mañana porque mi hermana seguira usando la pc :-[)

En cuanto al OS, pues tengo Microsoft Windows XP Profesional © Versión 2002- SP2


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 18/01/2010, 12:30:33 am
Avalo, te voy a pedir algunas cosas, pero te pido paciencia, porque estoy descubriendo estas cosas junto con vos.

Primero crearemos un proyecto "test", y después probamos una posible solución.

1ro: crear proyecto. Pasos:

* Abrí el programa en Monodevelop.
* Creá el proyecto de la aplicación dentro de monodevelop (si te parece: test_Gtk).
* En el explorador de soluciones, clic secundario en el nombre del proyecto test_Gtk, y allí "Agregar nuevo elemento". Elegir "Archivo en blanco" o "Empty file". Le ponés el nombre, por ejemplo, test_gtk.cs.
* Ahora escribís esto en ese archivo

class Test_GTK
{
    static void Main(string[] args)
    {
        Gtk.Application.Init();
    }
}



* Guardás todo.

* Ahora vas al explorador de soluciones, clic botón secundario, y vas a "Opciones"
  Ahí se pueden ajustar las opciones de la plataforma.


2do paso. Ver si se arregla:

Probemos suerte con esto:

* En la lista de la izquierda hay varias opciones: General, Construcción, Ejecutar, etc.

* Andá revisando esas pestañas, y buscá las opciones en las que diga "Plataforma". Fijate que opción es la que está elegida. La única que yo tengo es "x86" y me funciona. Creo que esa es la que arregla todo. Si tenés algo como Itanium, o algo por el estilo, cambialo a x86.

Por ejemplo, veo esas opciones de "plataforma" en "Construcción/Compilador": En esta prestá atención a la opción que dice "Platform target", y fijate las opciones. Creo que ahí tenés que elegir "x86". O bien probá con "Cualquier CPU".

También aparece en otras pestañas, como en "General/Comandos personalizados", o en "Ejecutar", etc. Pero me parece que obedecen a la de "Construcción/Compilador".

Después clic en OK.

Y por último: Guardar todo, así se guarda el proyecto con la nueva plataforma.

Acordate también de agregar todas las Referencias de las librerias de gtk que te vaya pidiendo. La principal que hay que agregar es la de gtk-sharp.
Las otras no sé si hacen falta para el test.


Fijate si con eso te funciona.

Supongo que en el Visual Studio hay opciones parecidas, pero no las encuentro en este momento.
Debieran estar en el menú Generar...
Pero lo importante es que en al menos uno de los dos IDEs te funcione.
Después vemos con más tiempo cómo se hace en el Visual.



Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 18/01/2010, 06:17:19 pm
¿Y Avalo?

¿Te siguen tirando error los proyectos con este "cambio de plataforma" hacia x86 que te sugerí?
¿O se arregla con eso?

Yo estuve probando el ejemplo que habiamos llamado Bienvenido_GUI_GTK.
Me fui al proyecto, en la parte de "Opciones", y estuve tocando las opciones de plataforma en "Construcción/Compilador".
Cuando puse "Itanium" me dio error. Al parecer compilé para un sistema distinto al que tengo.

Luego cambié a x86, y todo bien.

Tendrías que probar las distintas opciones, y ver cuál es la que funciona en tu máquina.
La plataforma x86 tendría que funcionarte bien.
Si no, probá alguna de las otras.


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: Avalo en 18/01/2010, 07:45:45 pm
Hola, no sé  :( ,¿Cómo añado el texto al documento vacío, una ves creado esta en el explorador de soluciones pero no me sale 'en blanco' para empezar a escribir o editar, ¿Cómo hago para editar? o sea es distinto al Visual C#, que al crearla ya te sale en blanco.

Además las opciones al comenzar son: Nuevo:
Archivo
Solución
Workspace

No Nuevo:Proyecto pero elegí Solución para trabajar.

Luego haciendo click der, no me sale: Agregar nuevo elemento sino Añadir (supuse que era esa). Y seguido a eso las opciones par indexar son:
a)Añadir nuevo proyecto...
b)Add existing Project
c)Añadir carpeta de solución

Allí escojí la primera es aquí que aparece entre las tantas opciones de plantillas, proyecto vacío.

¿Es así o no?¿Y cómo hago para editar el documento vacío? Saludos y Gracias ;)



Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 18/01/2010, 08:15:13 pm
Hola.

En los ejemplos estuve explicando cómo se trabaja en Monodevelop

Pero no hay problema. Acá vamos de nuevo.

Archivo/Nuevo/Solución...

Ahi se abre una ventana con opciones.
En la lista de la izquierda seleccionar la de más arriba que dice C#.
A la derecha aparece la opción "proyecto vacio" o "empty project".

Marcás esa, y en la misma ventana abajo le ponés un nombre, por ejemplo: "testgtk".
Finalmente, clic en "Forward"
Luego clic en "OK".

Ahí se terminó de crear el proyecto.

Ahora viene el archivo en blanco:

Vas a la parte izquierda, y está la ventana "Solución" con el nuevo proyecto listado.
Ahí hacés clic con el botón derecho sobre el nombre de proyecto "testgtk", y aparece un menú: vas a "Agregar.../Nuevo archivo".
Aparece un panel. A la izquierda hay que elegir "General" y a la derecha luego "Empty File" o "Archivo en blanco".
Abajo se escribe un nombre de archivo, como "test.cs", y después clic en "New".

Ya debiera estar listo para editar.
Ahí dentro de la ventana de "test.cs" podés insertar el código que te pasé acá, o si preferís, el código del ejemplo GUI_GTK de la teoría.
A lo mejor convenga que pruebes este directamente, así no damos tantas vueltas.
Pegás el código del ejemplo, y guardás todo. "Archivo/guardar todo".



Ahora viene lo del cambio de plataforma.
Vas de nuevo al nombre del proyecto, botón secundario, y vas hasta abajo donde dice:."Opciones".

Se abre uha ventana. En el panel izquierdo hay una lista de cosas.
Vas a "Construcción/Compilador", o "Build/Compiler"y te fijás en las opciones que aparecen en el panel de la derecha.

Fijate qué dice en la opción "Platform target" en el panel derecho.
Tratá de elegir la opción "x86",

Después andá arriba, en donde dice "Configuraciones", y a la derecha, clic en "Add".
Ahí habría que agregar Debug/x86 y también Release/x86.

Esto por las dudas, por si no está en la lista.

Después abajo clic en "OK".

De nuevo "Guardar Todo" y ahora para probar el programa: "Ejecutar/Ejecutar"



Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: Avalo en 18/01/2010, 09:32:44 pm
Por fin,  ;D gracias, por "el paso a paso" ahora solo falta que haga lo mismo en el Visual C#.


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 18/01/2010, 09:39:53 pm
Bien, pero ¿el programa se ejecutó bien? ¿Sin errores? ¿Mostró el cartelito?

En el Visual no sé cómo es.
Si lo encontrás avisame.

Lo único malo es que me parece que esto de cambiar la plataforma habrá que hacerlo en cada nuevo proyecto.
No conozco la forma de dejarlo predetarminado... debiera haber una.
Voy a seguir investigando, pero ya me va a llevar más tiempo, supongo.


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: Avalo en 18/01/2010, 10:15:59 pm
Sí, en el mensaje anterior esta adjunto el screenshot.  :D


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: Avalo en 18/01/2010, 10:24:03 pm
En mi configuración por Default aparce ya x86, así que por eso no te preocupes y en el Visual c# pues si no sabemos.


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 18/01/2010, 10:36:26 pm
Sí, en el mensaje anterior esta adjunto el screenshot.  :D

Buenísimo  ;D


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: Flashtk en 28/01/2010, 06:03:35 pm

Aqui un Avance del Proyecto: "La otra" calculadora.

Código:

using System;
using System.Drawing;
using System.Windows.Forms;

static class Calcu
{
    static void Main()
    {
        Application.Run(new Formulario_principal());
    }
}
public class Formulario_principal : Form
{
    //Declaracion de las variables
    private Button b0;
    private Button b1;
    private Button b2;
    private Button b3;
    private Button b4;
    private Button b5;
    private Button b6;
    private Button b7;
    private Button b8;
    private Button b9;
    private Button punto;
    private Button suma;
    private Button igual;
    private Button resta;
    private Button multi;
    private Button division;
    private Button resto;
    private Label l1;
    private Boolean operador = false;
    private int acumulador = 0;
    private string cadenaoperacion = "";
   
    public Formulario_principal()
    {
        iniciarwidgets();
        this.b0.Click+= new EventHandler(this.teclapulsada);
        this.b1.Click += new EventHandler(this.teclapulsada);
        this.b2.Click += new EventHandler(this.teclapulsada);
        this.b3.Click += new EventHandler(this.teclapulsada);
        this.b4.Click += new EventHandler(this.teclapulsada);
        this.b5.Click += new EventHandler(this.teclapulsada);
        this.b6.Click += new EventHandler(this.teclapulsada);
        this.b7.Click += new EventHandler(this.teclapulsada);
        this.b8.Click += new EventHandler(this.teclapulsada);
        this.b9.Click += new EventHandler(this.teclapulsada);
        this.suma.Click += new EventHandler(this.operadorpulsado);
        this.resta.Click += new EventHandler(this.operadorpulsado);
        this.multi.Click += new EventHandler(this.operadorpulsado);
        this.division.Click += new EventHandler(this.operadorpulsado);
        this.resto.Click += new EventHandler(this.operadorpulsado);
        this.igual.Click += new EventHandler(this.operadorpulsado);
    }
    public void iniciarwidgets()
    {
        //Iniciando Widgets
        this.b0 = new Button();
        this.b1 = new Button();
        this.b2 = new Button();
        this.b3 = new Button();
        this.b4 = new Button();
        this.b5 = new Button();
        this.b6 = new Button();
        this.b7 = new Button();
        this.b8 = new Button();
        this.b9 = new Button();
        this.punto = new Button();
        this.suma = new Button();
        this.igual = new Button();
        this.resta = new Button();
        this.multi = new Button();
        this.division = new Button();
        this.resto = new Button();
        l1 = new Label();


        // Ancho y alto en pixels de los widgets

        this.b0.Width = 60;
        this.b1.Width = 30;
        this.b2.Width = 30;
        this.b3.Width = 30;
        this.b4.Width = 30;
        this.b5.Width = 30;
        this.b6.Width = 30;
        this.b7.Width = 30;
        this.b8.Width = 30;
        this.b9.Width = 30;
        this.suma.Height = 45;
        this.igual.Height = 44;
        this.suma.Width = 30;
        this.igual.Width = 30;
        this.punto.Width = 30;
        this.resto.Width = 30;
        this.division.Width = 30;
        this.multi.Width = 30;
        this.resta.Width = 30;
        l1.Width = 50;


        //Posicionando Widgets

        b7.Location = new Point(20, 40);
        b8.Location = new Point(50, 40);
        b9.Location = new Point(80, 40);
        b4.Location = new Point(20, 62);
        b5.Location = new Point(50, 62);
        b6.Location = new Point(80, 62);
        b1.Location = new Point(20, 84);
        b2.Location = new Point(50, 84);
        b3.Location = new Point(80, 84);
        b0.Location = new Point(20, 106);
        punto.Location = new Point(80, 106);
        suma.Location = new Point(110, 40);
        igual.Location = new Point(110, 85);
        resto.Location = new Point(140, 40);
        division.Location = new Point(140, 62);
        multi.Location = new Point(140, 84);
        resta.Location = new Point(140, 106);
        l1.Location = new Point(20, 20);

        //Texto
        this.b0.Text = "0";
        this.b1.Text = "1";
        this.b2.Text = "2";
        this.b3.Text = "3";
        this.b4.Text = "4";
        this.b5.Text = "5";
        this.b6.Text = "6";
        this.b7.Text = "7";
        this.b8.Text = "8";
        this.b9.Text = "9";
        this.punto.Text = ".";
        this.suma.Text = "+";
        this.igual.Text = "=";
        resto.Text = "%";
        division.Text = "/";
        multi.Text = "*";
        resta.Text = "-";
        l1.Text = "0";



        Controls.Add(b7);
        Controls.Add(b8);
        Controls.Add(b9);
        Controls.Add(b4);
        Controls.Add(b5);
        Controls.Add(b6);
        Controls.Add(b1);
        Controls.Add(b2);
        Controls.Add(b3);
        Controls.Add(b0);
        Controls.Add(punto);
        Controls.Add(suma);
        Controls.Add(igual);
        Controls.Add(resto);
        Controls.Add(division);
        Controls.Add(multi);
        Controls.Add(resta);
        Controls.Add(l1);

    }

    private void teclapulsada(object sender, EventArgs e)
    {
        String cadena = sender.ToString();
        cadena= cadena.Substring(35,1);
        l1.Text = cadena;
        if (operador)
        {
            calcularoperacion(cadena);
           
        }
        else
        {
            acumulador = int.Parse(cadena);
             l1.Text = acumulador.ToString();
         }
       
       
    }
    private void operadorpulsado(object sender, EventArgs e)
    {
        cadenaoperacion = sender.ToString();
        cadenaoperacion = cadenaoperacion.Substring(35, 1);
        Console.WriteLine(cadenaoperacion);
        operador = true;
        if (cadenaoperacion.Equals("=")) l1.Text = acumulador.ToString();

    }

    private void calcularoperacion(String cadena)
    {
        if (cadenaoperacion.Equals("+")) acumulador += int.Parse(cadena);
        else if (cadenaoperacion.Equals("-")) acumulador -= int.Parse(cadena);
        else if (cadenaoperacion.Equals("*")) acumulador *= int.Parse(cadena);
        else if (cadenaoperacion.Equals("/")) acumulador /= int.Parse(cadena);
        else if (cadenaoperacion.Equals("%")) acumulador %= int.Parse(cadena);
       
         
    }
}



Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 28/01/2010, 06:26:42 pm
Ah, muy bien.
Ahora lo pruebo en mi pc.

¿Qué es lo que has hecho hasta ahora?


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 28/01/2010, 06:52:01 pm
Por lo que veo, ya sabés algunas cosas sobre EventHandler, por ejemplo estás usando el argumento sender, lo cual simplifica mucho el código.

Yo quería evitar hacer esto, para no tener que desarrollar el tema de EventHandler en esta parte, pero quizá es un error pedagógico de mi parte.
Es más "sano" y de "sentido comùn" usar sender de una vez por todas, jeje.

Veo también que has tenido algún problemilla cuando estás "cargando" las cifras de un número.
Si pulsás 3, 4, 6, en vez de obtener el número 346, se te borra el número anterior, y queda sólo el último 6.
Pero supongo que ya lo vas a arreglar, ya que el proyecto apenas empieza.

Me parece muy bien que uses las sentencias if al seleccionar el operador, pero es posible usar el switch-case, que es más práctico en estos casos....
Lo que olfateo es un programador de Python escondido bajo la manga...

En cuanto a la variable cadenaoperacion... tendrías que documentar un poco qué es lo que va a ir en ella.
Por ejemplo, hay una línea en la que tomas la subcadena desde la posición 35!!! y no se entiende por qué.
Yo también he hecho cosas "caseras" en mi programa de ejemplo, así que no soy quién para criticar tu técnica... no obstante, todo el código que he escrito lo he documentado en alguna parte, al menos en el post del dictado del curso.


Y por último, te hago un comentario a título personal.
Hay una línea en la que has usado "Console.WriteLine".
Supongo que es para depurar.
Cuando he querido mezclar GUI con "Console", hay casos en que he obtenido errores, y aún no tengo muy clara la razón.
Se podría depurar también poniendo un widget "depuracion" en la misma ventana de la aplicación,
para que resulte más cómodo.
Pero bueno, esto es sólo mi opinión.

Me gusta como va tu programa.  ;)

Saludos


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 29/01/2010, 02:34:36 pm
Hola flash.

Estás usando sender invocando el atributo Text ToString.
Me parece que eso puede ser poco propicio, porque el valor de dicho atributo puede variar a lo largo del programa, según el caso.
Lo que es más "seguro" es el valor del objeto sender por sí mismo: siempre se referirá al mismo objeto.

Para preguntar si se ha hecho click en el botón 9, se podría usar por ejemplo:

 if (sender == this.b9) { ... }

y así por el estilo.

////

No sé si ya has arreglado lo que faltaba arreglar.
Por las dudas, ahí va una sugerencia para el ingreso de los dígitos:

A medida que el usuario presiona los botones de dígitos, ponemos en una variable, digamos:

int digito;

el valor del botón presionado (no recuerdo que variable has usado para esto).
Luego, para obtener el número actual del "visor" de la calculadora, se puede usar una variable

int numero;

y efectuar esta operación:

numero = (numero * 10 + digito);

Al multiplicar por 10, obviamente se "corre" a la izquierda lo que había antes, y se deja lugar para el nuevo dígito.
Además, esto da buen resultado cuando en el visor lo que hay es un 0.

Claro que hay que convertir y anticonvertir entre int y string continuamente...

Espero que podamos ver tu programa terminado!!!

Saludos


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: Flashtk en 01/02/2010, 12:05:56 am
Aqui esta mi codigo de Proyecto "Adivina Número"... Todavia intentando hacer la Calculadora XD


Código:
using System;
using System.Windows.Forms;
using System.Drawing;

static class Ad
{
    static void Main()
    {
        Application.Run(new Formulario());
    }
}
public class Formulario : Form
{
    private Label l1;
    private Label l2;
    private TextBox cajita;
    private Button retroceder;
    private Button avanzar;
    private Button apostar;
    private Button reiniciar;
    private Button terminar;
    private int n=0;
    private int noculto;

    public  Formulario()
    {
        iniciarwidgets();
        generaaleatorio(); // llamamos al metodo para generar n aleatorios
        //Asociando Eventos a los Botones
        this.retroceder.Click += new EventHandler(this.botonpresionado);
        this.avanzar.Click += new EventHandler(this.botonpresionado);
        this.apostar.Click += new EventHandler(this.botonpresionado);
        this.reiniciar.Click += new EventHandler(this.botonpresionado);
        this.terminar.Click += new EventHandler(this.botonpresionado);
       

    }

    private void iniciarwidgets()
    {
        //Creando los Widgets
        l1 = new Label();
        l2 = new Label();
        cajita = new TextBox();
        retroceder = new Button();
        avanzar = new Button();
        apostar = new Button();
        reiniciar = new Button();
        terminar = new Button();

        l1.Width = 200;
        l2.Width = 45;

        cajita.Width = 50;
        retroceder.Width = 50;
        avanzar.Width = 50;
        apostar.Width = 100;
        reiniciar.Width = 100;
        terminar.Width = 200;

        l1.Location = new Point(50, 20);
        l2.Location = new Point(50, 40);
        cajita.Location = new Point(80, 80);
        retroceder.Location = new Point(20, 120);
        reiniciar.Location = new Point(140, 160);
        avanzar.Location = new Point(80, 120);
        apostar.Location = new Point(140, 120);
        terminar.Location = new Point(20, 200);

        //Estableciendo Texto a los Componentes
        l1.Text = "Adivina el numero oculto entre 0 y 99";
        l2.Text="N=**";
        cajita.Text = n.ToString();
        retroceder.Text = "<<";
        avanzar.Text = ">>";
        apostar.Text = "Apostar";
        reiniciar.Text = "Reiniciar";
        terminar.Text = "Click aqui para terminar programa";
       
        //Agregando componentes al Formulario

        Controls.Add(l1);
        Controls.Add(l2);
        Controls.Add(cajita);
        Controls.Add(retroceder);
        Controls.Add(avanzar);
        Controls.Add(apostar);
        Controls.Add(reiniciar);
        Controls.Add(terminar);
       
        //Tamaño del Formulario
      this.ClientSize = new Size(300, 300);


}

    private void botonpresionado(object sender, EventArgs e)
    {
        if (sender == avanzar) // si presionamos en el boton avanzar
        {
            n = int.Parse(cajita.Text) + 10; //Aumentamos 10 unidades
            cajita.Text = n.ToString();
           
        }
        else if (sender == retroceder)
        {
            n = int.Parse(cajita.Text) - 10;
             cajita.Text = n.ToString();
           
           
        }
        else if (sender == this.reiniciar)
        {
            generaaleatorio();
           
         }
        else if (sender == this.apostar)
        {
            calcula();
        }
        else
        {
            Application.Exit();
        }
    }


    private void generaaleatorio()
    {
        Random aleatorio = new Random();
        this.noculto = aleatorio.Next(100);
    }

    private void calcula()
    {
        n = int.Parse(cajita.Text);
        int distancia = Math.Abs(noculto -n);
        if (distancia == 0) MessageBox.Show("Acertaste! Felicitaciones!");
        else if (distancia >= 1 && distancia <= 2) MessageBox.Show("Muy Caliente");
        else if (distancia >= 3 && distancia <= 7) MessageBox.Show("Caliente");
        else if (distancia >= 8 && distancia <= 14) MessageBox.Show("Tibio");
        else MessageBox.Show("Frio ... Sigue Buscando");
  }



}



Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 01/02/2010, 12:51:13 am
Gracias flashtk por el esfuerzo.

Te hago un comentario, pero no es una corrección.
Has usado un solo "método" para redireccionar los 5 eventos de "presionar botón".

Está bien, porque después preguntás de qué botón se trataba...

Yo había programado un método distinto por cada evento, dado que se trata de eventos realmente diferentes, no relacionados estrechamente (salvo los dos de avanzar).

Pero bueno... supongo que por ahora no importa tanto la diferencia.

Otra cosa que hice fue, tras presionar el botón "Reiniciar", que aparezca un cartel (MessageBox.Show) que dice: "El juego ha reiniciado", o algo así.

Otro detalle que tuve en cuenta es que los botones "<<" y ">>" cuando se pasan de 100 o de -1, ya dan valores que no sirven, así que lo hice fue hacer que "avancen en círculo", mediante una operación como esta:

n = (n + 10) % 100; //Aumentamos 10 unidades, pero "en círculo"

Al tomar el "resto" módulo 100, los números "dan la vuelta por el otro lado", y así no se salen de rango.

Cuando el usuario pone en la "cajita" un valor que no está entre 0 y 99, uno tendría que poner algún tipo de verificación para no permitir esos datos de entrada... pero por ahora está bien, dejémoslo así.
Yo tampoco lo hice en mi propia versión, creo que son complicaciones que podremos analizar sistemáticamente más adelante.

En cuanto a la operación que has puesto:

n = int.Parse(cajita.Text) + 10;

está correcta, porque como habrás observado seguramente, si el usuario "mete mano" en la cajita y pone cualquier número, de nada sirve el valor de n que uno tuviera guardado de antes.

Sin embargo, en vez de poner algo como "int.Parse(cajita.Text)"
yo me tomé el trabajo de definir una variable m, que haga esto:

int m = int.Parse(cajita.Text);

Y después puse algo como:

n = m + 10;

¿Cuál es la diferencia?
Como has hecho el programa, e incluso como yo mismo lo hice, no hay diferencia.
Pero si en un futuro uno quiere "validar" el valor de la cajita, o bien "arreglarlo" mendiante algún cálculo, etc., etc., es más sano tenerlo albergado en una variable.

Aunque no sé por qué me imagino que no hace falta que te diga estas cosas... en cuanto el asunto se complique te vas a organizar, lo huelo de lejos.

Por ejemplo, veo que ya te has cansado de "mi esquema" de poner todas las inicializaciones amontonadas de los widgets...  ;D

Cuando entremos en el tema de métodos y clases voy a ordenar mejos las cosas.
Por ahora quiero abusar lo menos posibles de la modularización y la progr. orientada a objetos, hasta tanto no la expliquemos en detalle en teoría.



Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: Flashtk en 02/02/2010, 07:57:02 pm
(Edit )Ahora Si el Programa Completo ... Creo que Ya no Tiene ningun Error

Código:
using System;
using System.Drawing;
using System.Windows.Forms;

static class Calcu
{
    static void Main()
    {
        Application.Run(new Formulario());
    }
}
public class Formulario : Form
{
    //Declaracion de las variables
    private Button b11;
    private Button b12;
    private Button b13;
    private Button b21;
    private Button b22;
    private Button b23;
    private Button b31;
    private Button b32;
    private Button b33;
    private Button nuevojuego;
    private int n11=0;
    private int n12=0;
    private int n13 = 0;
    private int n21 = 0;
    private int n22 = 0;
    private int n23 = 0;
    private int n31 = 0;
    private int n32 = 0;
    private int n33 = 0;
    Boolean turnox = true;
    Boolean Ganador = false;
    private int vertical1=0;
    private int vertical2=0;
    private int vertical3=0;
    private int horizontal1 = 0;
    private int horizontal2 = 0;
    private int horizontal3 = 0;
    private int diagonal1 = 0;
    private int diagonal2 = 0;
    private Boolean partidaterminada = false;
    private int contador = 0;
    private Button terminar;
   

    public Formulario()
    {
        iniciarwidgets();
       
        this.b11.Click += new EventHandler(this.teclapulsada);
        this.b12.Click += new EventHandler(this.teclapulsada);
        this.b13.Click += new EventHandler(this.teclapulsada);
        this.b21.Click += new EventHandler(this.teclapulsada);
        this.b22.Click += new EventHandler(this.teclapulsada);
        this.b23.Click += new EventHandler(this.teclapulsada);
        this.b31.Click += new EventHandler(this.teclapulsada);
        this.b32.Click += new EventHandler(this.teclapulsada);
        this.b33.Click += new EventHandler(this.teclapulsada);
        this.nuevojuego.Click += new EventHandler(this.nuevo);
        this.terminar.Click += new EventHandler(this.termino);
       
       
    }
    public void iniciarwidgets()
    {
        //Iniciando Widgets
       
        this.b11 = new Button();
        this.b12 = new Button();
        this.b13 = new Button();
        this.b21 = new Button();
        this.b22 = new Button();
        this.b23 = new Button();
        this.b31 = new Button();
        this.b32 = new Button();
        this.b33 = new Button();
        nuevojuego = new Button();
        terminar = new Button();
       


        // Ancho y alto en pixels de los widgets

     
        this.b11.Width = 30;
        this.b12.Width = 30;
        this.b13.Width = 30;
        this.b21.Width = 30;
        this.b22.Width = 30;
        this.b23.Width = 30;
        this.b31.Width = 30;
        this.b32.Width = 30;
        this.b33.Width = 30;
        nuevojuego.Width = 100;
        terminar.Width = 220;
       


        //Posicionando Widgets

        b11.Location = new Point(20, 40);
        b12.Location = new Point(50, 40);
        b13.Location = new Point(80, 40);
        b21.Location = new Point(20, 62);
        b22.Location = new Point(50, 62);
        b23.Location = new Point(80, 62);
        b31.Location = new Point(20, 84);
        b32.Location = new Point(50, 84);
        b33.Location = new Point(80, 84);
        nuevojuego.Location = new Point(100, 120);
        terminar.Location = new Point(20, 180);
       

        //Texto
       
        this.b11.Text = "";
        this.b12.Text = "";
        this.b13.Text = "";
        this.b21.Text = "";
        this.b22.Text = "";
        this.b23.Text = "";
        this.b31.Text = "";
        this.b32.Text = "";
        this.b33.Text = "";
        nuevojuego.Text = "Nuevo Juego";
        terminar.Text = "Click Aqui para Terminar el Programa";


       



        Controls.Add(b11);
        Controls.Add(b12);
        Controls.Add(b13);
        Controls.Add(b21);
        Controls.Add(b22);
        Controls.Add(b23);
        Controls.Add(b31);
        Controls.Add(b32);
        Controls.Add(b33);
        Controls.Add(nuevojuego);
        Controls.Add(terminar);
       

    }

    private void teclapulsada(object sender, EventArgs e)
    {
        if (!partidaterminada) //Si la Partida no a Terminado
        {
            Button boton = (Button)sender;
            turno(boton);
            n11 = nj(b11.Text);
            n12 = nj(b12.Text);
            n13 = nj(b13.Text);
            n21 = nj(b21.Text);
            n22 = nj(b22.Text);
            n23 = nj(b23.Text);
            n31 = nj(b31.Text);
            n32 = nj(b32.Text);
            n33 = nj(b33.Text);

            if (gano()) //Si hay un Ganador
            {
                String cadena = "El Jugador " + boton.Text + " a Ganado";
                MessageBox.Show(cadena);
                partidaterminada = true;
            }
            else if (contador == 9) // Si no hay Ganador y el tablero esta lleno
            {
                MessageBox.Show("Empate");
                partidaterminada = true;
            }
 
        }
       
       


           
    }

    private void termino(object sender, EventArgs e)
    {
        Application.Exit();
    }



    private void nuevo(object sender, EventArgs e)
    {
        this.b11.Text = "";
        this.b12.Text = "";
        this.b13.Text = "";
        this.b21.Text = "";
        this.b22.Text = "";
        this.b23.Text = "";
        this.b31.Text = "";
        this.b32.Text = "";
        this.b33.Text = "";
        n11=0;
        n12=0;
        n13 = 0;
        n21 = 0;
        n22 = 0;
        n23 = 0;
        n31 = 0;
        n32 = 0;
        n33 = 0;
        contador = 0;
        turnox = true;
        Ganador = false;
        vertical1=0;
        vertical2=0;
        vertical3=0;
        horizontal1 = 0;
         horizontal2 = 0;
        horizontal3 = 0;
        diagonal1 = 0;
        diagonal2 = 0;
        partidaterminada = false;
        MessageBox.Show("Nuevo Juego Iniciado");

    }

    private int nj(String s)
    {
        if (s == "0")
            return 1;
        else if (s == "X")
            return 2;
        else
            return 0;
    }

    //Metodo para intercalar turnos
    private void turno(Button b)
    {

        if (turnox && b.Text=="" && !Ganador)
        {
            turnox = false;
            b.Text = "0";
            contador++;
        }
        else if (!turnox && b.Text == "" && !Ganador)
        {
            turnox = true;
            b.Text = "X";
            contador++;
        }
      }

    //Calculamos las posibles jugadas ganadoras
    private void calcularganador()
    {
        diagonal1 = n11 * n22 * n33;
        diagonal2 = n13 * n22 * n31;
        horizontal1 = n11 * n12 * n13;
        horizontal2 = n21 * n22 * n23;
        horizontal3 = n31 * n32 * n33;
        vertical1 = n11 * n21 * n31;
        vertical2 = n12 * n22 * n32;
        vertical3 = n13 * n23 * n33;

    }
       
    //Vwemos si hay un ganador
    private Boolean gano()
    {
        calcularganador();
        if (diagonal1 == 8 || diagonal1==1) Ganador = true;
        if (diagonal2 == 8 || diagonal2 == 1) Ganador = true;
        if (horizontal1 == 8 || horizontal1 == 1) Ganador = true;
        if (horizontal2 == 8 || horizontal2 == 1) Ganador = true;
        if (horizontal3 == 8 || horizontal3 == 1) Ganador = true;
        if (vertical1 == 8 || vertical1 == 1) Ganador = true;
        if (vertical2 == 8 || vertical2 == 1) Ganador = true;
        if (vertical3 == 8 || vertical3 == 1) Ganador = true;

        return Ganador;
       
    }


   

   
}






Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 02/02/2010, 08:59:17 pm
(Te había hecho una corrección que en realidad no era tal, así que borré el comentario)


Para el empate, lo que hice en mi versión fue lo siguiente:

* Puse un contador de jugadas: int jugadas;

* Cada vez que un jugador presiona un botón, se incrementa en 1 el contador, y verifico si ha llegado a 9.

* En cuanto llega a 9, el juego terminó, y no hay necesidad de verificar el empate, porque si se ha llegado a esta situación, es que no ha habido ganadores previamente. O sea, la lógica misma del programa lleva a que hay un empate, y no hay que "preguntar con un if". (Vamos a hacer en lo posible muchos estudios en el futuro de este tipo de "condiciones lógicas" en los programas, que son de mucha ayuda en las técnicas de programación).
[Para que esta condición del empate sea "true", sin que haya nada que verificar, hay que colocar las acciones pertinentes "después" de haber verificado ambas condiciones: que no hubo ganador en la jugada actual, y que la jugada actual es la 9]

* ¿Un botón para "salir del programa"?



Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: enloalto en 16/02/2010, 06:52:47 pm
Hola argentinator, avanzando de a poco, me tropiezo con la tarea 2, sobre Holamundo, hice tal como está en el post, y me salio esto


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: topo23 en 16/02/2010, 10:17:18 pm
..


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: enloalto en 17/02/2010, 01:19:25 am
Hola topo23, gracias por tu respuesta, pero lo que me dices corresponde a la tarea 3, a ver si me ayudas con eso


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: topo23 en 17/02/2010, 02:23:11 am
Dice la tarea  2:

Cita
Ahora tenemos que hacerlo correr.
El problema es que desde donde está puesto, en la carpeta "Mis documentos", el compilador csc no está visible para el sistema.

Pasemos, pues, a la siguiente tarea.

Creo que la intensión de esa tarea es ver que puedes crear un archivo .cs con el bloc de notas. La misma tarea dice que no lo vas a poder compilar, y que debes seguir con la tarea 3.




Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 18/02/2010, 03:17:13 pm
Hola enloalto.

Disculpa que no te haya respondido antes.
En efecto, es como dice Topo. La tarea consistía en escribir el programa en un editor de textos, y guardarlo en algún lugar cualquiera de la PC, por ejemplo en "Mis Documentos".
Para que el programa corra se necesita que el compilador esté "visible" para el sistema desde la "carpeta actual en que estás posicionado", o sea:

* Estar en la misma carpeta donde se guardó el "Holamundo.cs"
* O bien que en las variables internas del sistema operativo se informe la carpeta donde debe buscarse el compilador (para Windows es la variable PATH).

Hay otras maneras alternativas de solucionar esto.
Uno puede "posicionarse" en la carpeta del compilador, y escribir la ruta completa del archivo fuente, en vez de estar moviendo el archivo para todos lados.

CD "carpeta del compilador"
CSC "ruta-archivo-fuente"\holamundo.cs

Cada sistema operativo tendrá sus propias vicisitudes y caprichos, yo conozco las del mundillo DOS/Windows. En Linux habrá situaciones parecidas.

Toda esta cuestión de "tener bien enlazados los archivos fuente con el compilador" es algo que los editores especializados como VisualStudio o Monodevelop hacen automáticamente, y ya no hay que preocuparse.

La moraleja de la "tarea" justamente es esa, que las cosas no anden para entender por qué.

Trabajar en "línea de comandos" tiene estas cosas, que quizá haya que tener en cuenta.

Saludos


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: Avalo en 28/02/2010, 08:04:22 pm
Hola buenas tardes, disculpa si no es el medio pero es que tengo un problema con un programa que me genera el siguiente error: 'Uso de la varaible local no asignda' y no sé como solucionarlo


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: Avalo en 28/02/2010, 08:08:15 pm
Acá adjunto 2 carpetas, la versión correcta del programa y la que me genera error cuando intento resolverlo implemntando métodos.


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: Carmelo en 03/05/2010, 07:57:54 pm
Hola. Cuando intento compilar el programa hola mundo como aqui se indica, me dice que no puede crear un archivo .tmp, acceso denegado. Que puede ser? Saludos


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 03/05/2010, 10:36:59 pm
No hay ningún archivo tmp en todo lo que hemos hecho, que yo sepa.

¿Podrías decirme más específicamente qué pasos has seguido?

Si pudieras mandarme una copia de la salida de los comandos que has ejecutado para entender lo que está pasando, sería bueno.

Saludos


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: Carmelo en 05/05/2010, 01:23:07 am
Hola: Ya lo he solucionado. Aparentemente el problema era por la configuracion de seguridad que presentaba, mi pc. He modificado eso y ha andado bien. Saludos y en cuanto avance un poco mas, te enviare mis inquietudes. Saludos


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: argentinator en 05/05/2010, 09:51:53 am
Sí, me parecía que era algo del sistema.

nos estamos viendo


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: enloalto en 13/06/2010, 12:36:10 am
Hola argentinator, sigo a pasos lentos, todo bien, ahora estoy en la tarea obligatoria 4, del tema anexo, es sobre probar el Visual, he descargado los programas y tengo problemas al correr el programa, te adjunto las imágenes.
1
(http://rinconmatematico.com/foros/index.php?action=dlattach;topic=28778.0;attach=6790)

2
(http://rinconmatematico.com/foros/index.php?action=dlattach;topic=28778.0;attach=6792)

3
(http://rinconmatematico.com/foros/index.php?action=dlattach;topic=28778.0;attach=6794)

Saludos


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: enloalto en 13/06/2010, 12:40:02 am
Y cuando le doy en sí a me sale
(http://rinconmatematico.com/foros/index.php?action=dlattach;topic=28778.0;attach=6796)

Saludos


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: enloalto en 13/06/2010, 01:06:43 am
Hola otra vez, y ahora para probar el SharpDevelop me sale
(http://rinconmatematico.com/foros/index.php?action=dlattach;topic=28778.0;attach=6798)

Si no estoy equivocado, tengo la intuición que el posible error está cuando se pone
System.Console.ReadLine();

buuuuuuuuuu :-\ :-\ :-\


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: enloalto en 13/06/2010, 01:16:21 am
La tarea obligatoria 2 de la sección 3.2 fue todo un éxito


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: enloalto en 13/06/2010, 01:17:05 am
Ya me estoy enviciando, bueno lo dejo por hoy, y me voy a estudiar, cuidate, un abrazo.


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: enloalto en 13/06/2010, 04:00:30 am
Hola topo23, muchas gracias, voy a revisarlo.
Un abrazo.


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: enloalto en 13/06/2010, 04:26:13 am
Problema solucionado.
Sobre el SharpDevelop, te cuento argentinator que el problema que decías sobre que la ventana se cierra sin dar enter, no lo he tenido.

Todo perfecto, yabadabaduuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu!!!!!!!!!!!!!!!!!!!!!!!


Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
Publicado por: enloalto en 13/06/2010, 03:48:28 pm
    Tarea 3. Vamos a hacer la compilación desde el programa
    • Vamos al Explorador de Proyectos, y en el nombre del proyecto Bienvenido_GUI_SWF hacemos clic con el botón secundario del ratón. En el menú que aparece vamos a "Agregar referencia..." y aparece una lista con varios paquetes.
      Buscamos el que dice System.Windows.Forms, lo marcamos y aceptamos.

      En el Explorador de proyectos nos va a aparecer una sublista llamada "Referencias" en donde se ve agregado este paquete.

      Ahora el programa debiera compilar sin problemas.

    • Vamos de nuevo a "Depurar/Iniciar sin depurar", y aparecerá el cartelito con el mensaje de bienvenida.

      A mí también se me abre además una consola de comandos en el fondo, pero en ella no tiene que aparecer nada. Para cerrar esa ventana, presionar una tecla, o dejar que se cierre sola, según el caso.

    • Vamos a "Archivo/Guardar todo...". Luego nos damos por satisfechos y cerramos la aplicación Visual Studio.


    Aca mencionas el Explorador de Proyectos, pero creo que debe ser Explorador de Soluciones

    Tarea 4. Vamos a repetir lo mismo, usando ahora el IDE Monodevelop.

    • Abrimos el programa MonoDevelop.
    • Vamos a "Archivo/Abrir...", navegamos hasta la carpeta C:\Proyectos_C_Sharp\Bienvenido_GUI_SWF, seleccionamos el archivo Bienvenido_GUI_SWF.cs, y aceptamos.
    • Intentamos correr el programa yendo a "Ejectutar/Ejecutar", y nos dará un mensaje de error porque le falta acceso a la librería System.Windows.Forms.
    • Para solucionarlo, hacemos el agregado de referencia.
      Sin embargo, necesitamos estar dentro de un proyecto.
    • Vamos a "Archivo/Nuevo.../Solución", seleccionamos "C#", a la derecha "Proyecto vacío", debajo le ponemos el nombre Bienvenido_GUI_SWF_Monodevelop, nos aseguramos que se guarde en la carpeta C:\Proyectos_C_Sharp, y aceptamos.
    Creo que debe ser
    "Archivo/Nuevo.../Solución", seleccionamos "Proyecto Gtk# 2.0"
    [/list]



    Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
    Publicado por: argentinator en 13/06/2010, 10:56:55 pm
    Bueno, no ví ayer tu mensaje, y por suerte estuvo Topo para ayudarte.

    En cuanto a tu última consulta, es posible que haya variaciones en los nombres de las cosas.
    Ahora no tengo cómo verificar nada de eso, apenas mañana lunes podría echar una mirada, pero los programas no me andan muy bien...

    En cuanto al Monodevelop, no estoy seguro, por las mismas razones que te acabo de comentar... pero fijate bien.
    Gtk# se refiere a una librería para poner interface gráfica en los programas.
    La opción correcta debiera ser C#.
    Buscala bien.

    Hay que tener paciencia con estas cosas, hasta que uno las encuentra y funcionan.

    Saludos


    Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
    Publicado por: Jorge M en 31/10/2010, 03:33:22 pm
    Una consulta argentinator he instalado el Microsoft Visual Basic 2008 Express Edition, y cuando pido abrir un nuevo proyecto no aparece la posibilidad de proyecto vacio. Aparecen:

    Aplicación de Windows Forms

    Aplicación de Explorador WPF

    Biblioteca de Clases

    Aplicación de Consola  y

    Aplicación WPF


    No se si instalé el programa correcto.

    Saludos


    Título: Re: Consultas, comentarios y ejercicios del curso de C# (Deitel)
    Publicado por: argentinator en 01/11/2010, 09:39:58 am
    Has instalado la aplicación equivocada.

    Tenés que ir al enlace que puse en el post de instrucciones de instalación.
    Si bien yo digo "2008" el enlace te lleva a las aplicaciones de 2010 de Microsoft.

    Te aparece una lista de varias aplicaciones
    Lo que tenés que instalar es el Visual C# 2010 Express.

    Saludos