Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Arytmetyka symboli

Ostatnio zmodyfikowano 2014-03-13 20:59
Autor Wiadomość
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
P-106148
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ą ?? ??
P-106149
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.
P-106153
quatromen
Temat założony przez niniejszego użytkownika
» 2014-03-12 12:38:50
Mam taki kod:
C/C++
#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 :
C/C++
wynik_alg = OdwDodaj( b, d );
Bo teraz to liczy mi to samo co dla :
C/C++
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
P-106158
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 ?
P-106193
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.
P-106259
Adik80
» 2014-03-13 16:13:00
Monika napisala jak go znalezc:

C/C++
Symbol operator -( Symbol Arg1, Symbol Arg2 ) {
    for( int i = 0; i < 5; ++i )
    if( Tabdzialania[ Arg2 ][ i ] == e )
         return Tabdzialania[ Arg1 ][ i ];
P-106262
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  :
C/C++
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 :

C/C++
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.
P-106268
« 1 » 2
  Strona 1 z 2 Następna strona