Autor Beitrag
hunt33r
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 22.01.12 22:05 
Hallo Leute,
auf der Suche nach C#-Profis bin ich auf dieses Forum gestoßen.

Ich soll einen Matrixrechner programmieren der Matrix A und B addiert, subtrahiert und multipliziert. Ich sitze schon seit sehr vielen Stunden an der Aufgabe aber es klappt nicht so ganz und die Vorlesungen waren auch nicht ausreichend um diese Aufgabe zu lösen.

Ich habe eine Klassenbibliothek angelegt mit.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Matrix
{
    public class Matrix
    {
        //Felder = Datenkomponenten
        private int[,] komponenten;
        public int[,] Komponenten;
        public int Zeilenanzahl;
        public int Spaltenanzahl;

        //ein Konstruktor
        public Matrix(int pZeilen, int pSpalten)
        {
            int Zeilenanzahl = pZeilen;
            int Spaltenanzahl = pSpalten;
            komponenten = new double[zeilenanzahl, spaltenanzahl];
        }
    }
}


Nun steht in der Aufgabe
Zitat:
"Der Konstruktor belegt die Felder zeilenanzahl und spaltenanzahl, das Feld komponenten wird nur in den angegebenen Dimensionen initialisiert. Die Belegung erfolgt durch die Methode SetZeile.


Für SetZeile steht da als Hinweis:
Zitat:
"SetZeile (int pZeile, int[] pZeileSplit) void
Belegung der in pZeile angegebenen Zeile des Feldes komponenten durch den Zeilenvektor.


Ich habe zwei Probleme.
1. Wo genau erstelle ich die beiden Matrizen?
2. Wie muss SetZeile aufgebaut sein, damit ich die Eingabe aus textBox1.Text Splitte und dann für die pZeile einfüge?

Würde mich sehr über eure Hilfe freuen.
So soll es am Ende aussehen: s.gullipics.com/imag...-j1m8f3-z6yt/img.png

Gruß


Zuletzt bearbeitet von hunt33r am Mo 23.01.12 01:49, insgesamt 1-mal bearbeitet
Dr. Hallo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110
Erhaltene Danke: 13

XP
C/C++/C#
BeitragVerfasst: Mo 23.01.12 00:34 
mehrdimensionale arrays werden so erezeugt..
ausblenden C#-Quelltext
1:
int[,] arr = new int[30,20];					


setzeile vielleicht so

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
void setzeile(int zeile, string s)
{
    //hier musst du s splitten und die werte dem array zuweisen
    //(s ist der inhalt deiner textbox)
    //dein array ist die matrix.
}


für das rechnen mit den matrizen kannst du die operatoren überladen
ich hoffe das hilft irgendwie..
gruß
hunt33r Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 23.01.12 01:47 
Danke für die schnelle Antwort.

SetZeile würde ich jetzt so schreiben
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
 string s = textBox1.Text;
 void setZeile(int pZeile, string s)
        {
            for (int i = 0; i < komponenten.GetLength(1); i++)
            {
                komponenten[pZeile, i] =  s.Split(new Char[] { ',' });;
            }
            //s splitten und die werte dem array zuweisen
            //(s ist der inhalt deiner textbox)
            //dein array ist die matrix.
        }

Damit wird die angegebene Zeile (müsste doch auch von 0 aus laufen oder?) gefüllt und mit dem Klick auf Weiter muss man die nächste Zeile der Matrix füllen können.

Laut Aufgabenstellung soll der 2. Wert ein int[] sein aber den String der Textbox kriege ich doch nichts als int[] oder?
Ist die Logik mit dem Zählen der Spalten beim Füllen richtig?

Danke!
Dr. Hallo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 110
Erhaltene Danke: 13

XP
C/C++/C#
BeitragVerfasst: Mo 23.01.12 13:51 
Zitat:
Laut Aufgabenstellung soll der 2. Wert ein int[] sein aber den String der Textbox kriege ich doch nichts als int[] oder?

achso, na dann musst du außen splitten. split gibt glaubich immer ein string array zurück, das musst du
dann noch in ein int array umwandeln (z.b. in einer for schleife). die logik scheint sonst prinzipiell ok zu sein.
gruß
hunt33r Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 23.01.12 21:47 
Danke!
Durch den Tipp bin ich recht weit gekommen und erhalte nun den Fehler
Zitat:
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.


Kannst du mir bitte sagen was falsch dran ist`? Danke!

ausblenden C#-Quelltext
1:
					


Zuletzt bearbeitet von hunt33r am Di 24.01.12 19:12, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19338
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 24.01.12 06:18 
So auf den ersten Blick kommen leftMatrix oder rightMatrix in Frage. Wo werden die denn erstellt (mit new)?

Und in welcher Zeile kommt denn der Fehler?