Geht das überhuapt und wenn mit schleifen?

Subwoover

Erfahrenes Mitglied
Ich hab da ein kleines Problem...

Ich schreibe in mathematik ein kleines Programm das ein farbiges Dreieck ausgibt.

Ich hab aber bereits am anfang probleme...
Ich habe zB einen Namen: Heinz
Und will nun überprüfen....

.) Was der erste Buchstabe für einer ist also nach einer Tabelle bei der zB H die Zahl 8 hat und E die Zahl 5 und so weiter, jeweils 3 Buchstaben eine Zahl.
.) das auch für die anderen Buchstaben im Namen machen
.) Die Zahlen denen sie zugeordnet sind in Variablen speichern...

Ich hab das versucht mit for schleifen aber das haut absolout nicht hin und ich weiss überhaupt nicht warum, hätte da wer eine Lösungsidee für dieses Problem?
 
ich habe zwar keine ahnung, was das mit dreiecken zu tun hat, aber ich versuch dir mal zu helfen :D

also erstmal willst du die buchstaben durchgehen. das machst du tatsächlich am besten mit ner for-schleife. so:
PHP:
 $name = 'Heinz'; // hier halt der name ;D
 $arr = array(); // hier kommen gleich die werte für die buchstaben rein

 for ($i = 0; $i < strlen($name); $i++) {
 $char = strtoupper($name{$i})
 switch($char) {
  case 'A': $arr[] = 1; break;
  case 'B': $arr[] = 2; break; // usw. usf.
  default: $arr[] = 0; break; // falls kein buchstabe zutrifft
 };
};

so nun hättest du ein array ($arr) in dem halt alle deine werte enthalten sind, die du brauchst. ist vielleicht nicht die eleganteste methode, aber sie funktioniert und sollte zu verstehen sein :)
wenn du noch ne frage hast kannst ja bescheid sagen ;D

eine weitere möglichkeit wäre die differenz zwischen den ascii werten und deiner skala zu ermitteln und dann immer diesen wert vom ascii wert des buchstaben abzuziehen - wäre natürlich kürzer :D moment das kann ich dir ja auch mal eben basteln (dann brauchst nich ne ganze liste des alphabets da hineingeben ;D also los:

PHP:
 $name = 'Heinz'; 
 $arr = array(); // halt wieder alles initialisieren ;D

 for ($i = 0; $i < strlen($name); $i++)
  $arr[] = ord(strtoupper($name{$i}));

haha mir ist grad erst aufgefallen, dass die buchstaben im ascii table ja genau in dieser rangfolge stehen^^ hier zu sehen

ok viel spaß damit^^ ich hoffe ich konnte helfen^^


=== EDIT ===

shit jetzt hab ich gemerkt, dass die großbuchstaben doch um 64 versetzt sind^^ also muss es so aussehen:
PHP:
 $name = 'Heinz'; 
 $arr = array(); // halt wieder alles initialisieren ;D

 for ($i = 0; $i < strlen($name); $i++)
  $arr[] = ord(strtoupper($name{$i})) - 64;

nun aber^^
 
Zuletzt bearbeitet:
Ja das hat mir schon mal sehr geholfen danke dir =)

Ja also das bedeutet dass 3 Buchstaben der selben Zahl zugeordnet sind...
Also zB: A,J,S haben die Zahl 1

Das hab ich jez nachgehscaut... heisst Nummerologik oda so :)

Jedenfalls einges Kapitel in der Mathematik*g*
 
achso ich bin jetzt davon ausgegangen, dass A = 1, B = 2, C = 3 etc. sind. wenn dem nicht so ist, dann müsstest du das noch etwas genauer darlegen :)
 
Zurück