Skocz do zawartości
tomek3232

Pascal A Tablice I Algorytm Strassena

Rekomendowane odpowiedzi

W jaki sposób mogę wypisać na ekranie całą tablice dwu wymiarową którą wcześniej wprowadziłem

próbuje polecenia

writeln (a[1..3], [1..3]);

ale nie moge tego zrobić

oczywiście najpierw ją deklaruje i wczytuje do niej dane i jak chce odczytać dane pojedynczo z każdej komórki to mogę to zrobić.

Czy jest to w ogóle możliwe?

Edytowane przez tomek3232

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

for i=1 to 2 do begin; %no liczbe wymiarow mozna zwiekszac ;)

for j=1 to 2 do begin;

write(a[i,j].4);%wypisywanie elelementu, 4 to liczba miejsc cyfr dostepnych dla elementu tablicy na ekranie ;)

end;

writeln; %przejscie do nastepnej linijki jesli przechodzimy do nastepnego wiersza

end;

 

wpisywanie w analogiczny sposob;]

Edytowane przez Linoge

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dzięki za pomoc jednak nie rozumiem co ma oznaczać to ".4" które podał Linoge bo z takim parametrem nie chce się skompilować chodziło ci o to żeby każdy znak zajmował 4 pola (wtedy zmiast "." trzba by wstawić ":", czy o to

aby w lini nie znajdowało się więcej elementów jak 4 np. liczby (tak aby wypisane dane przypominały macierz.

 

Mój kod to

program macierze;vara, : array [1..3, 1..3] of integer;i, j : integerbeginWriteln ('Podaj elementy macierzy A');readln ( a[1, 1], a[1, 2], a[1, 3], a[2, 1], a[2, 2], a[2, 3] );writeln ('Macierz A:');for i :=1 to 3 dofor j :=1 to 3 dowrite (a[i, j]);end;readln;end.
Edytowane przez tomek3232

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ok udało mi się poprawić program aby poprawnie wyświetlał macierze niestety jest tam poważny błąd którego nie potrafię rozwiązać. A mianowicie pierwsze dwa wiersze są wyświetlane poprawnie a już w trzecim zamiast wprowadzonych danych wyświetlane są same zera. co może być problemem?

Kod programu

program macierze;vara, b : array [1..3, 1..3] of integer;i, j : integer;beginWriteln ('Podaj elementy macierzy A');readln ( a[1, 1], a[1, 2], a[1, 3], a[2, 1], a[2, 2], a[2, 3] );writeln ('Macierz A:');for i :=1 to 3 dobeginfor j :=1 to 3 dowrite (a[i, j]:4);writeln;end;readln;end.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

A teraz mam pytanie co do samego algorytmu strassena

Algorytm dla macierzy o wymiarze 2 wygląda następująco

P=(A11+A22)*(B11+B22)

Q=(A21+A22)*B11

R=A11*(B12+B22)

S=A22*(B21+B11)

T=B22*(A11-A12)

U=(A21-A11)*(B11-B12)

V=(A12+A22)*(B21+B22)

 

na podstawie których oblicza się

C11=P+S-T+V

C12=R+T

C21=Q+S

C22=P+R-Q+U

 

Więc jak będzie wyglądał ten algorytm dla macierzy np.wymiary czwartego

Może tak?:

P=(A11+A22+A33+A44)*(B11+B22+B33+B44)

Q=(A21+A22+A23+A24)*B11

itd

Bardzo proszę o pomoc ponieważ

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

miałeś na myśli instrukcje for?

no i przydał by się ktoś by mi wytłumaczył ten algorytm dla macierzy większych ni 2 stopnia.

A może ktoś wie gdzie się znajdują jakieś materiały dotyczące algorytmu strassena

 

 

PS. muszę napisać ten algorytm na zaliczenia, wprawdzie mam już gotowca z innych klas ale lepiej napisać coś samemu z pomocą innych to zawsze czegoś można się nauczyć

Edytowane przez tomek3232

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...