quatromen Temat założony przez niniejszego użytkownika |
[C++] Arytmetyka symboli » 2014-03-12 00:17:44 Mam problem z arytmetyka symboli a dokładnie z tym że nie wiem jak zamienić tablice dla dodawania na tablice do odejmowania
Tablica dodawania : | e | a | b | c | d | e | e | a | b | c | d | a | a | b | c | d | e | b | b | c | d | e | a | c | c | d | e | a | b | d | d | e | a | b | c |
wiec dla: b + d = a dla: b + e = b
a gdy jest : b - b = b + (-b) = b + c = e
Skąd jest zamiana z -b na c ?? ?? ?? Z góry dzięki za info
|
|
quatromen Temat założony przez niniejszego użytkownika |
» 2014-03-12 00:29:09 głównie chodzi mi o to jak napisać funkcje odwrotną ?? ?? |
|
Monika90 |
» 2014-03-12 11:15:48 Skąd jest zamiana z -b na c ?? ?? ?? |
W wierszu o indeksie b szukasz e, i zwracasz indeks kolumny w której jest e. |
|
quatromen Temat założony przez niniejszego użytkownika |
» 2014-03-12 12:38:50 Mam taki kod: #include <iostream>
using namespace std;
enum Symbol { e, a, b, c, d }; Symbol Tabdzialania[ 5 ][ 5 ] = { { e, a, b, c, d }, { a, b, c, d, e }, { b, c, d, e, a }, { c, d, e, a, b }, { d, e, a, b, c } };
Symbol Dodaj( Symbol Arg1, Symbol Arg2 ) { return Tabdzialania[ Arg1 ][ Arg2 ]; }
Symbol operator +( Symbol Arg1, Symbol Arg2 ) { return Tabdzialania[ Arg1 ][ Arg2 ]; }
Symbol OdwDodaj( Symbol Arg1, Symbol Arg2 ) { return Tabdzialania[ Arg1 ][ Arg2 ]; }
Symbol operator -( Symbol Arg1, Symbol Arg2 ) { return Tabdzialania[ Arg1 ][ Arg2 ]; int main() { Symbol wynik_alg, wynik_ope, wynik_fun; Symbol b = e, d = a, c = b; wynik_alg = b + d; wynik_fun = operator +( b, d ); wynik_ope = Dodaj( b, d ); wynik_alg = OdwDodaj( b, d ); }
i mam problem z zapisaniem w funkcji DdwDodaj tak żeby liczyło mi : wynik_alg = OdwDodaj( b, d );
Bo teraz to liczy mi to samo co dla : wynik_alg = Dodaj( b, d );
Nie wiem co mam zapisać zeby mi liczyło elementy odwrotne czyli b - b = b + (-b) = b + c = e Z góry dzięki za pomoc |
|
quatromen Temat założony przez niniejszego użytkownika |
» 2014-03-12 18:33:16 Czy zle sprecyzowałem pytanie, czy poprostu to jest nie do zrobienia ? |
|
quatromen Temat założony przez niniejszego użytkownika |
» 2014-03-13 15:49:42 Kurcze mecze sie i nie mam pojecia jak zrobic, bo jeśli zle sprecyzowane to dokladniej : musze napisać funkcjędla odejmowania , która będzie korzystała z tablicy dodawania do znalezienia elementu przeciwnego. |
|
Adik80 |
» 2014-03-13 16:13:00 Monika napisala jak go znalezc: Symbol operator -( Symbol Arg1, Symbol Arg2 ) { for( int i = 0; i < 5; ++i ) if( Tabdzialania[ Arg2 ][ i ] == e ) return Tabdzialania[ Arg1 ][ i ]; |
|
quatromen Temat założony przez niniejszego użytkownika |
» 2014-03-13 17:01:48 Zgłupiałem, że to można tak zrobić, wielkie dzięki Monika i Adik80 :) dlaczego to ma się równać e : if( Tabdzialania[ Arg2 ][ i ] == e )
Dlatego że e = 0 ? A gdybym jeszcze chciał zrobić tak samo tylko ze dzielenie z tablicy mnozenia (mozna wziasc za tablice mnozenia ta z dodawania) to taki kod wystarczy : Symbol operator /( Symbol Arg1, Symbol Arg2 ) { for( int i = 0; i < 5; ++i ) if( Tabdzialania[ Arg2 ][ i ] == a ) return Tabdzialania[ Arg1 ][ i ]; }
? Czy to ma być że Arg1 * Arg2^(-1)=1 ?? ?? A jesli tak to jak zapisac ? z góry dzięki za info. |
|
« 1 » 2 |