konwersja znaków na liczby oraz sumowanie i wyświetlenie

0

Witam,

Mam zamiar zrobić program, w którym każda litera będzie miała przyporządkowaną wartość liczbową i w polu tekstowym po wpisaniu wyrazu wszystkie litery automatycznie sumują się.
**Z waszego doświadczenia w jakim programie lepiej zrobic takie coś ? **
W późniejszej fazie jeszcze dojdzie baza danych z wyrazami.
Pozdrawiam

0

Każda literka (o zgrozo!) ma przyporządkowaną wartośc liczbową, patrz: ASCII. Można to napisać w każdym języku w mniej więcej 2 linijkach.

0

Ale chodzi mi o to , że np. liczbie 1 przypisane są A,J,S , a liczbie 2 B,K,T . W polu tekstowym wpisujesz wyraz i w odpowiedzi dostajesz zsumowane liczbowo wpisany wyraz.
zacząłem przypisywać już w C++

              int A = 1;
			int B = 2;
			int C = 3;
			int W = 5;
			int R = 9;
			int Z = 8;
			int S = 1;
0

Z waszego doświadczenia w jakim programie lepiej zrobic takie coś ?

Z mojego doświadczenia polecam kompilator :D

W Delphi:

Function Zlicz(Wyraz: String): Integer;
Const Wyraz = 'abecadlo'; // bez POLSKICH oraz WIELKICH liter
Var Ch   : Array['a'..'z'] Of Integer;
    I    : Char;
    Q    : Integer;
    Final: Integer;
Begin
 Final := 0;
 For I := 'a' To 'z' Do  // ustawienie
  Ch[i] := Ord(I) - 97;  // wartości dla poszczególnego znaku 
 For Q := 1 To LenGth(Wyraz) Do
  Final := Final + Ch[Wyraz[q]]; // tego chyba nie trzeba tłumaczyć
 Result := Final;
End;
0

do przypisywania wartości czemukolwiek dobrze nadaje się http://www.cplusplus.com/reference/stl/map/
jeśli te zależności są opisywalne matematycznie to mapowanie nie jest potrzebne. jeśli wiesz co jest czemu przypisane "z góry" to możesz po prostu stablicować:
int asd['z'-'a'+1];

żeby przypisać coś literze np. f odejmujesz od niej literę 'a' (działa tylko dla małych liter, dla dużych musisz zapisać ten kod analogicznie lub zamieniać literę na małą)
asd['f'-'a'] = 15;

0

Jeszcze parę postów i zrobimy najlepsze Scrabble na świecie.

0

KRWQ - O wlasnie o takie przypisanie mi chodziło, będe kombinował w takim razie w ten sposób. Dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1