saludos atodos los que anden por aqui ;D estoy haciendo un programa en c# y lo que quiero hacer esque meta 15 numeros y de esos 15 numeros me despliegue en un texbox los que son pares y en otras los que son impares este es lo que llevo hasta ahora pero no se por que no hace nada cuando lo corro :P ni sikiera me marcar error :D espero me puedan ayudar y muchas gracias alos que me ayudaron en mis anteriores programas un saludo ;-)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace programameter30catacteres
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int c,n, p=0, i=0,r;
n = System.Int32.Parse(textBox1.Text);
for (c = 1; c > 3; c++)
{
r = n % 2;
if (r == 0)
{
p += 1;
textBox2.Text = p.ToString ();
}
else
i += 1;
textBox3.Text = i.ToString();
}
}
}
}
Hola¡¡No se si funcionara ahi, no tengo C# en esta maquina¡¡
fijate en la condicion del for, ahi tenes el problema
private void button1_Click(object sender, EventArgs e)
{
int c,n, p=0, i=0;
n = System.Int32.Parse(textBox1.Text);
for (c = 1; c < 3; c++)
{
if ((n % 2) == 0)
{
p += 1;
textBox2.Text += p.ToString ()+"\r\n";
//esta con el += para que no se borre el contenido el textBox
}
else
{
i += 1;
textBox3.Text += i.ToString()+"\r\n";
}
}
}
Saludos
muchas gracias ;D por al ayuda pero tengo otro problema estoy metiendo los 3 numeros en un texboxmultilineal y cuando lo corro me marca error en esta parte se pone la clasica linea amarilla sobre el
n = System.Int32.Parse(textBox1.Text);
y no se cual es el problema :-(
y tenes un nro por linea?
Hola¡¡¡ proba con esto,supuse que tenias un nro por linea :P
con esto obtenemos el texto de cada
linea. textBox1.Lines[i]
, siendo i una linea cualquiera,obviamente que exista.
Ej:
int i, num = 0;
try
{
//Cantidad de lineas
int n = textBox1.Lines.Length;
for (i = 0; i < n; i++)
{
//En este ejemplo sumamos el valor de cada una de las lineas
num += System.Int32.Parse(textBox1.Lines[i]);
}
}
catch
{
MessageBox.Show("Error al convertir a nro");
}
gracias por tomarte la molestia de contestar ;D pero no entendi exactamente como hacerlo con eso :¬¬ es un try catch :P pero no se como emplearlo en el code :xD
el try es para el manejo de errores, en el caso de que alla un error en lo que esta dentro del bloque del try vos, podes capturar ,y manejar el error desde catch-
Porque no nos escribes que error te da?..
bueno aqui te dejo un screencapture del error que me da :huh:
(http://i120.photobucket.com/albums/o177/STRACKER/ScreenHunter_01Mar011626.jpg)
el error que tenes es que no podes transformar todo el textBox.Text si es multilines, lo que tenes que hacer es si tenes un nro. por linea ,ir transformando un nro por lineas como te mostre en el ejemplo anterior. o si los tenes secuencialmente, tenes que armar un filtro para ir obteniendo cada uno de los valores a transformar.
aaa ok como que ya te estoy entiendiendo entonces lo que tengo que hacer es que meto un valor y lo capte y luego meta otro y lo capte y asu susesivamente :P interesante pero ese pedazo de codigo que me proporcionaste como lo implemento en mi antiguo codigo es lo que no se dondeva :silbar:
muchas gracias por ayudarme
Con un FOR puedes hacerlo.. creo...
Cita de: <sylar> en 2 Marzo 2009, 03:40 AM
aaa ok como que ya te estoy entiendiendo entonces lo que tengo que hacer es que meto un valor y lo capte y luego meta otro y lo capte y asu susesivamente :P interesante pero ese pedazo de codigo que me proporcionaste como lo implemento en mi antiguo codigo es lo que no se dondeva :silbar:
muchas gracias por ayudarme
No necesariamente tenes que tratar el valor cada vez que lo metes, lo que podes hacer es meter todos los numeros y despues cuando le das al boton del form, este valla leyendo el textbox linea por linea y se f¡je si es par o inpar, y tal como dijo Skeletron usa un for para recorrer todas las lineas del textbox.
a ver si esto te sirve ¡¡¡¡¡
try
{
//Cantidad de lineas
int n = textBox1.Lines.Length;
for (i = 0; i < n; i++)
{
//En este ejemplo sumamos el valor de cada una de las lineas
num = System.Int32.Parse(textBox1.Lines[i]);
if ((num % 2) == 0)
{
p += 1;
textBox2.Text += p.ToString() + "\r\n";
//esta con el += para que no se borre el contenido el textBox
}
else
{
m += 1;
textBox3.Text += m.ToString() + "\r\n";
}
}
}
catch
{
MessageBox.Show("Error al convertir a nro");
}
muchas gracias por la ayuda de todo los que me contestaron ;-) lo logre hacer de esta manera :P jejej
aqui les dejo el codigo
private void button2_Click(object sender, EventArgs e)
{
int n, r = 0;
n = int.Parse(textBox2.Text);
r = n % 2;
if (r == 0)
listBox4.Items.Add(n);
else
listBox3.Items.Add(n);
textBox2.Text = "";
textBox2.Focus();
}
}
otra solucion,usando expresiones regulares, te filtra los numeros que se encuentran en el textBox en donde los ingresas para ver si son pares o impares.
tenes que incluir el using System.Text.RegularExpressions;
private void button1_Click(object sender, EventArgs e)
{
/*
* textBox1(multiline) es donde ingresamos los nros de esta manera:
* 12 3 4545
* 2 15 454
* 14 15 65
* 23 3
* Par es un textBox donde se almacenan los nros pares
* Impares es un textBox donde se almacenan los nros impares
*/
//Obtenemos solamente los numeros del textbox,si hay letras las filtra
Regex r = new Regex(@"\d+", RegexOptions.IgnoreCase | RegexOptions.Compiled);
MatchCollection collection = r.Matches(textBox1.Text);//en el texto que vamos a buscar
foreach (Match m in collection)
{
//por cada nro obtenido con la expresion regular,comparamos si es par o no
if (Int32.Parse(m.Value) % 2 == 0)
//en el Par(textBox) ponemos los numeros pares
Par.Text += m.Value+"\r\n";
else
//en el Impar(textBox) ponemos los numeros Impares
Impar.Text += m.Value + "\r\n";
}
}
muy bueno ese ruco si no me lo sabia gracias :D
Te dejo mi codigo en modulo y tu luego lo adaptas
Module Ejercicio
Sub Main()
Dim numeros(14) As Integer
Dim pares As String = "" : Dim impares As String = ""
Dim veces, i As Integer
While numeros.Length > veces
Console.WriteLine("Introduzca numero " & (veces + 1) & ": ")
numeros(veces) = Console.ReadLine
veces += 1
End While
For i = 0 To numeros.Length - 1
If numeros(i) Mod 2 = 0 Then
If i = numeros.Length - 1 Then
pares = pares & numeros(i)
Else
pares = pares & numeros(i) & " - "
End If
Else
If i = numeros.Length - 1 Then
impares = impares & numeros(i)
Else
impares = impares & numeros(i) & " - "
End If
End If
Next
Console.WriteLine("Pares: " & pares)
Console.WriteLine("Impares: " & impares)
Console.ReadLine()
End Sub
End Module
orale muchas gracias por la ayuda ;-)
saludos