[C++] Podnoszenie macierzy do kwadratu

dxlta13
Użytkownik
Użytkownik
Posty: 1
Rejestracja: 2 sty 2017, o 22:21
Płeć: Mężczyzna
Lokalizacja: Wrocław

[C++] Podnoszenie macierzy do kwadratu

Post autor: dxlta13 »

Witam, na początku chciałem zaznaczyć, że jestem zielony w programowaniu i staram się uczyć sam.
Moim zadaniem było napisanie programu, który dla rozmiaru macierzy \(\displaystyle{ n \times m}\) (\(\displaystyle{ n=m}\), więc i tak wyjdzie macierz kwadratowa, ale cóż, tak było w treści zadania), podniesie ją do kwadratu i ją wyświetli.
Napisałem coś takiego:

Kod: Zaznacz cały

#include <iostream>

using namespace std;

int main()
{
   int n,m,b,i,j;
   int A[n][m];
   int B[n][m];
   cin >> n >> m;

    {

    for (i; i<n; i++)
    {for (j; j<m; j++)
        cin >> A[i][j];
        b+=A[i][j] * A[i][j];
   B[i][j]=b;
}
   }
   cout << B[n][m];
    return 0;
}
ale program przy uruchomieniu od razu wywala błąd. Nie mam pojęcia dlaczego, dlatego proszę kogoś o pomoc
Ostatnio zmieniony 3 sty 2017, o 07:51 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
SlotaWoj
Użytkownik
Użytkownik
Posty: 4211
Rejestracja: 25 maja 2012, o 21:33
Płeć: Mężczyzna
Lokalizacja: Kraków PL
Podziękował: 2 razy
Pomógł: 758 razy

[C++] Podnoszenie macierzy do kwadratu

Post autor: SlotaWoj »

dxlta13 pisze:ale program przy uruchomieniu od razu wywala błąd. ...
Jaki błąd? Co to, nie można podać opisu błędu?

A po za tym

Kod: Zaznacz cały

https://pl.wikipedia.org/wiki/Mno%C5%BCenie_macierzy#Pot.C4.99gowanie_macierzy
wygląda inaczej.

Najpierw trzeba wczytać całą macierz – najlepiej z pliku, aby można było łatwo powtarzać wykonanie programu dla konkretnej macierzy, a następnie podnosić do kwadratu.

Mój kompilator C++ odróżnia identyfikator zmiennej b od identyfikatora tablicy B, ale obiekty te są jakoś sprzężone, co powoduje efekt uboczny. Koniecznie trzeba zastąpić identyfikator b jakimś innym, bezkonfliktowym.
kalwi
Użytkownik
Użytkownik
Posty: 1931
Rejestracja: 29 maja 2009, o 11:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 145 razy
Pomógł: 320 razy

[C++] Podnoszenie macierzy do kwadratu

Post autor: kalwi »

Wywala błędy bo nawet nie znasz podstaw języka i robisz bezsensowne błędy (linijki 8,9,14,15, to tak na dzień dobry)
Awatar użytkownika
Dasio11
Moderator
Moderator
Posty: 10223
Rejestracja: 21 kwie 2009, o 19:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 40 razy
Pomógł: 2361 razy

[C++] Podnoszenie macierzy do kwadratu

Post autor: Dasio11 »

SlotaWoj pisze:Mój kompilator C++ odróżnia identyfikator zmiennej b od identyfikatora tablicy B, ale obiekty te są jakoś sprzężone, co powoduje efekt uboczny. Koniecznie trzeba zastąpić identyfikator b jakimś innym, bezkonfliktowym.
Że co? :D
SlotaWoj
Użytkownik
Użytkownik
Posty: 4211
Rejestracja: 25 maja 2012, o 21:33
Płeć: Mężczyzna
Lokalizacja: Kraków PL
Podziękował: 2 razy
Pomógł: 758 razy

[C++] Podnoszenie macierzy do kwadratu

Post autor: SlotaWoj »

@Dasio

Przy kompilacji kodu:

Kod: Zaznacz cały

main ();
  {  
     int b;
     B=0
  }
otrzymuje komunikat: Undefined symbol B in function main(),

a po kompilacji i wykonaniu np. kodu:

Kod: Zaznacz cały

main ();
  {  
     int b;
     int B[3][3]
     b=0
  }
wynika, że b i B[2][3] mają tę samą lokalizację w pamięci.
kalwi
Użytkownik
Użytkownik
Posty: 1931
Rejestracja: 29 maja 2009, o 11:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 145 razy
Pomógł: 320 razy

[C++] Podnoszenie macierzy do kwadratu

Post autor: kalwi »

Nie, nie mają. Standard na to nie zezwala. Poza tym nic dziwnego, że jest komunikat Undefined symbol B in function main, skoro zmienna B nie została zadeklarowana.
Awatar użytkownika
Dasio11
Moderator
Moderator
Posty: 10223
Rejestracja: 21 kwie 2009, o 19:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 40 razy
Pomógł: 2361 razy

[C++] Podnoszenie macierzy do kwadratu

Post autor: Dasio11 »

Te zmienne mogą mieć tę samą lokalizację w pamięci, bo B[2][3] jest poza zakresem. Zresztą możesz zmienić nazwę z B na C, a prawie na bank będzie to samo. :p
SlotaWoj
Użytkownik
Użytkownik
Posty: 4211
Rejestracja: 25 maja 2012, o 21:33
Płeć: Mężczyzna
Lokalizacja: Kraków PL
Podziękował: 2 razy
Pomógł: 758 razy

[C++] Podnoszenie macierzy do kwadratu

Post autor: SlotaWoj »

@Dasio Dziękuje za przypomnienie o zmienności indeksów tablicy.
Awatar użytkownika
Mariusz M
Użytkownik
Użytkownik
Posty: 6908
Rejestracja: 25 wrz 2007, o 01:03
Płeć: Mężczyzna
Lokalizacja: 53°02'N 18°35'E
Podziękował: 2 razy
Pomógł: 1246 razy

[C++] Podnoszenie macierzy do kwadratu

Post autor: Mariusz M »

Pascal nie rozróżnia wielkich liter ,C oraz C++ już tak
ODPOWIEDZ