Witam, mam problem z jednym z zadań z programowania w C# w WindowsFormApplication...
Muszę napisać program, w którym po wpisaniu do textboxa iluś liczb oddzielonych przecinkiem i po naciśnięciu button'a wyświetla się messagebox z liczbami, które są podzielne przez 3 (spośród tych, które zostały wprowadzone oczywiście). Mam tu użyć metody String.Split()... Nie wiem czy dobrze kombinuję ale próbowałem użyć czegoś takiego:
string[] numbers = textBox1.Text.Split(new Char[] { ',' });
Nawet jeśli idę w dobrą stronę to nie wiem co dalej :)
Jeszcze mocno raczkuję jak "programista" więc liczę na szybką pomoc :)
Pozdrawiam
- Rejestracja:prawie 12 lat
- Ostatnio:prawie 12 lat
- Postów:6
No to okej, zapisujesz sobie je do tablicy stringów, potem robisz nową tablicę int'ów i w niej zapisujesz liczby podzielne przez 3 a potem wyświetlasz.
prowizorka bo lepiej to na pętli foreach zrobić ale nie testowałem więc sprawdź i pokombinuj:
int temp;
for(int i = 0; i < tablicaStringów.Length; i++)
{
temp = Convert.ToInt32(tablicaStringów[i]);
if(temp%3==0)
tablicaIntów[i] = temp;
}
- Rejestracja:prawie 12 lat
- Ostatnio:prawie 12 lat
- Postów:6
Ok, rozumiem.. Może wyjdę teraz na ignoranta ale w jaki sposób mam zdefiniować tablicę int'ow? Bo w tym miejscu :
if(temp%3==0)
tablicaIntów[i] = temp;
wyświetla mi błąd, że nazwa "tablicaIntów" nie istnieje w danym kontekście, co oczywiście jest prawdą :)
Z góry dzięki za pomoc
Pozdrawiam
To może tak:
List<int> tablicaIntów = new List<int();
foreach(string s in tablicaStringów)
{
int temp = Convert.ToInt32(s);
tablicaIntów.Add(temp);
}
int temp;
List<int> tablicaIntów2 = new List<int();
for(int i = 0; i < tablicaIntów.Length; i++)
{
if(ListaIntów[i]%3==0)
ListaIntów2[i] = temp;
}
coś w ten deseń możliwe, że nie działa nie sprawdzałem
- Rejestracja:prawie 12 lat
- Ostatnio:prawie 12 lat
- Postów:6
Próbuję z tą listą dynamiczną i teraz pojawia się inny problem:
Podczas debugowania pojawia się błąd - Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index. Błąd dotyczy tej linii - newtab[i] = temp;
Generalnie, cały kod wygląda tak :
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
string[] numbers = textBox1.Text.Split(new Char[] { ',' });
int temp;
List<int> newtab = new List<int>();
for (int i = 0; i < numbers.Length; i++)
{
temp = Convert.ToInt32(numbers[i]);
if (temp % 3 == 0)
newtab[i] = temp;
}
MessageBox.Show("Numbers which are devisible by 3: " + newtab, "RESULT");
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
}
}
Z góry dzięki za pomoc,
Pozdrawiam
@JohnyB no tam jest błąd wiem o tym tzn tak myslałem :P jak mówiłem nie sprawdzałem tego musisz sam pokombinować:)