Autor |
Wiadomość |
zurus
Dołączył: 20 Sty 2011
Posty: 5
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
|
Grupa L4 P4 zadanie |
|
Na podstawie klasy Wektor zrealizować klasę do reprezentacji macierzy o wymiarze n x n
w postaci tablicy dwuwymiarowej (prywatne pole klasy). Klasa ma zawierać odpowiednie
konstruktory oraz:
a) metodę, która dla obiektu klasy Macierz wczytuje elementy tablicy n x n, dla n<=10 ;
b) metodę, która drukuje elementy tablicy n x n;
c) metodę, która mając dane dwa obiekty X i Y klasy Macierz oblicza elementy macierzy
Z=X+Y;
d) metodę, która mając dany obiekt X klasy Macierz wyznacza obiekt Z=2X;
e) metodę, która mając dane dwa obiekty X i Y klasy Macierz wyznacza obiekt Z=X*Y;
f) metodę, która mając dany obiekt X wyznacza sumę elementów macierzy tego obiektu;
g) program, który wczytuje wartość n oraz n x n elementów dla obiektów A i B klasy
Macierz, wyznacza obiekty C=A+B, D=2(A+B) oraz drukuje macierze i sumy elementów
macierzy dla obiektów C, D.
Post został pochwalony 0 razy
|
|
Pon 14:28, 28 Mar 2011 |
|
|
|
|
mateusz
Dołączył: 21 Paź 2010
Posty: 123
Przeczytał: 0 tematów
Pomógł: 1 raz Ostrzeżeń: 0/5 Skąd: ZYGZAK
|
|
|
|
zrobil juz to ktos? ;D
Post został pochwalony 0 razy
|
|
Wto 15:52, 29 Mar 2011 |
|
|
Walach
Dołączył: 10 Paź 2010
Posty: 57
Przeczytał: 0 tematów
Pomógł: 1 raz Ostrzeżeń: 0/5 Skąd: Kolonowskie
|
|
|
|
No nieźle z tym zadaniem pojechał. 1,5h klas, konstuktrów i takie cuda chce O_o. Jak kto zrobi chociaż 1 pkt. tego zadani niech wrzuca.
Post został pochwalony 0 razy
|
|
Wto 17:27, 29 Mar 2011 |
|
|
qbus0
Dołączył: 13 Paź 2010
Posty: 33
Przeczytał: 0 tematów
Pomógł: 1 raz Ostrzeżeń: 0/5
|
|
|
|
wykminił ktoś algorytm mnożenia tych dynamicznych macierzy? bo nie ogarniam.
Post został pochwalony 0 razy
|
|
Wto 19:40, 29 Mar 2011 |
|
|
Peter
Dołączył: 26 Sty 2011
Posty: 3
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
|
|
|
macierze jak cuś
[link widoczny dla zalogowanych]
jest jedno ale, macierze musza/powinny byc tej samej wielkosci bo moze cos nie zadziałać x)
Post został pochwalony 0 razy
Ostatnio zmieniony przez Peter dnia Wto 23:30, 29 Mar 2011, w całości zmieniany 2 razy
|
|
Wto 23:26, 29 Mar 2011 |
|
|
mateusz
Dołączył: 21 Paź 2010
Posty: 123
Przeczytał: 0 tematów
Pomógł: 1 raz Ostrzeżeń: 0/5 Skąd: ZYGZAK
|
|
|
|
zrobil ktos ten program co byl ostatnio na laborkach? bo mam problem co trzeba napisac w klasie program zeby go wywolac
figura fi=new
figura( ); // i co tutaj ma byc w tym nawiasie?
fi.wyswietl();
pomoze ktos?
Post został pochwalony 0 razy
|
|
Sob 21:27, 02 Kwi 2011 |
|
|
patriot2
Dołączył: 21 Paź 2010
Posty: 49
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: ZYGZAK 132
|
|
|
|
trociu jebaj barbi aż się zgarbi :d
w nawiasie wywołujesz z konkretnym parametrem
Post został pochwalony 0 razy
|
|
Nie 15:11, 03 Kwi 2011 |
|
|
mateusz
Dołączył: 21 Paź 2010
Posty: 123
Przeczytał: 0 tematów
Pomógł: 1 raz Ostrzeżeń: 0/5 Skąd: ZYGZAK
|
|
|
|
zrobil ktos juz ten program do liczenia macierzy?
Post został pochwalony 0 razy
|
|
Pon 14:27, 04 Kwi 2011 |
|
|
Walach
Dołączył: 10 Paź 2010
Posty: 57
Przeczytał: 0 tematów
Pomógł: 1 raz Ostrzeżeń: 0/5 Skąd: Kolonowskie
|
|
|
|
Oto suchu schemat mnożenia macierzy A X B gdzie:
1.macierze A i B są kwadratowe oraz mają równą ilość wierszy (oraz kolumn)
2. i- wiersze, k=kolumny x-to dł. kolumn (np. 4X4 to x=4)
3. oczywiście wcześniej należy zadeklarować zmienna suma,x,tab1,tab2.tab3.
4. macierz A to przy normalnym mnożeniu (na kartce algebra)to w lewym dolnym a, macierz B to prawo góra.
x|B
A|C C- to ta powstała po wymnożeniu
for (int i = 0; i < x; i++)
{
for (int j = 0; j < x; j++)
{
for (int t = 0; t < x; t++)
{
suma += tab1[i, t] * tab2[t, j];
}
tabs[i, j] = suma;
suma = 0;
}
}
-----------------------------------------------
to jest gotowy program do sprawdzenia czy te macierze poprawnie sie mnożą, jeżeli ktoś nie zrozumiał wczęsniejszego:D Powodzenia "bystrzaki"
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace proba
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("podaj dł mac ");
int x = Convert.ToInt32(Console.ReadLine());
int[,] tab1=new int [x,x];
int[,] tab2=new int [x,x];
int[,] tabs=new int [x,x];
for (int i = 0; i < x; i++)
for (int j = 0; j < x; j++)
tab1[i,j] = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < x; i++)
for (int j = 0; j < x; j++)
tab2[i,j] = Convert.ToInt32(Console.ReadLine());
int suma=0;
for (int i = 0; i < x; i++)
{
for (int j = 0; j < x; j++)
{
for (int t = 0; t < x; t++)
{
suma += tab1[i, t] * tab2[t, j];
}
tabs[i, j] = suma;
suma = 0;
}
}
for (int i = 0; i < x; i++)
{
for (int j = 0; j < x; j++)
{
Console.Write(tabs[i, j]);
Console.Write(" ");
}
Console.WriteLine();
}
Console.ReadKey();
}
}
}
Post został pochwalony 0 razy
Ostatnio zmieniony przez Walach dnia Pon 17:15, 04 Kwi 2011, w całości zmieniany 1 raz
|
|
Pon 17:11, 04 Kwi 2011 |
|
|
patriot2
Dołączył: 21 Paź 2010
Posty: 49
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: ZYGZAK 132
|
|
|
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Macierz a = new Macierz();
int[,] tab = new int[2, 2];
tab[0, 0] = 1;
tab[0, 1] = 2;
tab[1, 0] = 3;
tab[1, 1] = 4;
Macierz b = new Macierz(tab);
a.wyswietl();
b.wyswietl();
int ilea = a.ileElem();
int ileb = b.ileElem();
Macierz z = a.pomnoz(b);
z.wyswietl();
Macierz c = a.dodaj(b);
c.wyswietl();
Console.ReadKey();
to program do macierzy
a klasa
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Macierz
{
public int[,] mac;
public int n=2;
public Macierz()
{
mac = new int[n, n];
}
public Macierz(int[,] inna)
{
mac = new int[inna.GetLength(1), inna.GetLength(1)];
mac = (int[,])inna.Clone();
}
public void wypelnij(int[,] inna)
{
mac = (int[,])inna.Clone();
}
public void wyswietl()
{
for (int i = 0; i < mac.GetLength(1); i++)
{
Console.Write("\n");
for (int j = 0; j < mac.GetLength(1); j++)
{
Console.Write("{0} ", mac[i, j]);
}
}
}
public Macierz dodaj(Macierz inna)
{
Macierz temp = new Macierz();
for (int i = 0; i < mac.GetLength(1); i++)
for (int j = 0; j < mac.GetLength(1); j++)
temp.mac[i, j] = this.mac[i, j] + inna.mac[i, j];
return temp;
}
public Macierz x2()
{
Macierz temp = new Macierz();
for (int i = 0; i < mac.GetLength(1); i++)
for (int j = 0; j < mac.GetLength(1); j++)
temp.mac[i, j] = 2 * (this.mac[i, j]);
return temp;
}
public Macierz pomnoz(Macierz inna)
{
Macierz temp = new Macierz();
for (int i = 0; i < mac.GetLength(1); i++)
for (int j = 0; j < mac.GetLength(1); j++)
temp.mac[i, j] = this.mac[i, j] * inna.mac[i, j];
return temp;
}
public int ileElem()
{
Console.WriteLine(" Podana macierz dysponuje {0} elementami.", mac.GetLength(1)*mac.GetLength(1));
return mac.GetLength(1) * mac.GetLength(1);
}
}
}
Post został pochwalony 0 razy
|
|
Pon 17:59, 04 Kwi 2011 |
|
|
Walach
Dołączył: 10 Paź 2010
Posty: 57
Przeczytał: 0 tematów
Pomógł: 1 raz Ostrzeżeń: 0/5 Skąd: Kolonowskie
|
|
|
|
patriot5
to jest lekka przeróbka programu Piotrka P.
zamiast normalnych for-ów itd. dałeś funkcje clone oraz
dodałeś funkcje getLenght() w sumie tylko ona zastąpiła dł rzęd i kolumn.
Reszta to program Piotrka te same funkcje "dodaj", "x2" "pomnóż"- która jest źle bo wyżej podałem algorytm na mnożenie 2 macierzy z dowolną liczbą kol. i wierszy z tym że musi byś kwadratowa.
Jutro postaram wrzucić to zad. ale zrobione metodą dziedziczenia jak na ćwiczeniach.
Pozdro
Tomasz W.
Post został pochwalony 0 razy
|
|
Pon 20:52, 04 Kwi 2011 |
|
|
mateusz
Dołączył: 21 Paź 2010
Posty: 123
Przeczytał: 0 tematów
Pomógł: 1 raz Ostrzeżeń: 0/5 Skąd: ZYGZAK
|
|
|
|
tomek a dodawanie tych macierzy?
Post został pochwalony 0 razy
|
|
Pon 21:25, 04 Kwi 2011 |
|
|
Walach
Dołączył: 10 Paź 2010
Posty: 57
Przeczytał: 0 tematów
Pomógł: 1 raz Ostrzeżeń: 0/5 Skąd: Kolonowskie
|
|
|
|
dodawanie jest dobrze, normalnie jak dodajesz macierze (przy czym musi zachodzic warunek: kol1 = kol 2 i rzed1 = rzed2 czyli musza miec ten sam kształ) tutaj akurat są kwadratowe więc nie ma problemu.
przy dodawaniu macierzy nie ma żadnych skomplikowanych działań poprastu dodajesz.
M1[i,j]+M2[i,j]=M3[i,j]
Post został pochwalony 0 razy
Ostatnio zmieniony przez Walach dnia Pon 22:29, 04 Kwi 2011, w całości zmieniany 1 raz
|
|
Pon 22:26, 04 Kwi 2011 |
|
|
marcin21033
Dołączył: 14 Paź 2010
Posty: 82
Przeczytał: 0 tematów
Ostrzeżeń: 0/5 Skąd: Praszka
|
|
|
|
chłopcy mozecie podac e-maila do prowadzacego zajecia co by wyslał mu ten program?
Post został pochwalony 0 razy
|
|
Wto 14:05, 05 Kwi 2011 |
|
|
mateusz
Dołączył: 21 Paź 2010
Posty: 123
Przeczytał: 0 tematów
Pomógł: 1 raz Ostrzeżeń: 0/5 Skąd: ZYGZAK
|
|
|
|
marcin wrzuc swoj program jak masz juz gotowy..
Post został pochwalony 0 razy
|
|
Wto 16:45, 05 Kwi 2011 |
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
|
|