matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Dt. Schulen im Ausland: Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenJavaTyperkennung
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Informatik • Physik • Technik • Biologie • Chemie
Forum "Java" - Typerkennung
Typerkennung < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Java"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Typerkennung: Tipp
Status: (Frage) reagiert/warte auf Reaktion Status 
Datum: 03:12 Do 15.11.2012
Autor: Maurizz

Hi,

in meiner Aufgabenstellung soll eine Methode in der Lage sein zu erkennen ob ein array Eintrag ein int Wert ist. Jeder andere Wert soll false zurückgeben.
Aber wie? Sowas wie if ("xyz" != int) etc. geht ja nicht.
Bzw. ich brauche allgemein eine Anweisung die in der Lage ist ein Datentyp zu erkennen.
Vielleicht hat ja einer von euch Profis ein Tipp für einen Amateur:)

        
Bezug
Typerkennung: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:03 Do 15.11.2012
Autor: felixf

Moin!

> in meiner Aufgabenstellung soll eine Methode in der Lage
> sein zu erkennen ob ein array Eintrag ein int Wert ist.
> Jeder andere Wert soll false zurückgeben.
>  Aber wie? Sowas wie if ("xyz" != int) etc. geht ja nicht.
>  Bzw. ich brauche allgemein eine Anweisung die in der Lage
> ist ein Datentyp zu erkennen.
>  Vielleicht hat ja einer von euch Profis ein Tipp für
> einen Amateur:)

Da du nicht die vollstaendige Aufgabenstellung wiedergegeben hast, zwei Rueckfragen:

1) Ist die Eingabe ein String und es soll herausgefunden werden, ob es sich beim Inhalt des Strings um eine ganze Zahl handelt? Oder um etwas, was in den Datentyp int hereinpasst?

2) Oder soll erkannt werden, ob es sich beim Array-Eintrag um ein Object vom Typ Integer handelt?

LG Felix


Bezug
                
Bezug
Typerkennung: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 12:39 Do 15.11.2012
Autor: Maurizz

Aufgabe
Es sei ein n*n Kendoku Feld als 3darray... etc.

Also in diesem Kendoku Feld gibt es Felder wo ein char sein MUSS und alle anderen müssen int (bis auf ein paar Ausnahmen dürfen whitespace sein) sein.

d.h wenn an den spezifischen Orten kein char dann false, rest wenn kein int dann false.

int[][][] kenken = {
{{ 11, '+'}, {0, 0}, {1, 0}},
{{  2, '/'}, {0, 1}, {0, 2}},
{{ 20, '*'}, {0, 3}, {1, 3}},
{{  6, '*'}, {0, 4}, {0, 5}, {1, 5}, {2, 5}},
{{  3, '-'}, {1, 1}, {1, 2}},
{{  3, '/'}, {1, 4}, {2, 4}},
{{240, '*'}, {2, 0}, {2, 1}, {3, 0}, {3, 1}},
{{  6, '*'}, {2, 2}, {2, 3}},
{{  6, '*'}, {3, 2}, {4, 2}},
{{  7, '+'}, {3, 3}, {4, 3}, {4, 4}},
{{ 30, '*'}, {3, 4}, {3, 5}},
{{  6, '*'}, {4, 0}, {4, 1}},
{{  9, '+'}, {4, 5}, {5, 5}},
{{  8, '+'}, {5, 0}, {5, 1}, {5, 2}},
{{  2, '/'}, {5, 3}, {5, 4}}
}

Das ist zu überprüfen.

Bezug
                        
Bezug
Typerkennung: Antwort
Status: (Antwort) fertig Status 
Datum: 14:06 Do 15.11.2012
Autor: Event_Horizon

Hallo!

Dein Array ist von vornherein als INT-Array definiert, daher sind da ausschließlich INT-Werte drin abgelegt, und eine Typ-Abfrage wird immer INT liefern.

Um Zeichen wie Buchstaben mit einem Computer zu realisieren, gibt es Tabellen, die einem Zeichen einen Zahlenwert zuweisen. Die älteste und einfachste Tabelle dafür ist die []ASCII-Tabelle, darin findest du, daß das Zeichen '*' dem Wert 42 entspricht.

Für den Computer ist daher

int i='*'

gleichbedeutend mit

int i=42

Es gibt zwei Möglichkeiten für dein Problem:

1.: Deine Zahlen sind immer kleiner als 42, dann kannst du nen einfachen Größenvergleich machen.

2.: Da INTs auch negative Zahlen können, weist du den Werten, die ein Zeichen enthalten sollen, einen negativen Wert zu, und codierst damit die Eigenschaft Zeichen/Zahl im Vorzeichen.

[#000000][/#000000]
Es kann aber auch sein, daß ich dich nu immernoch missverstanden habe, dann müßtest du nochmal konkret sagen, wie zwei Fälle aussehen, die du voneinander unterscheiden willst.




Bezug
                                
Bezug
Typerkennung: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 14:23 Do 15.11.2012
Autor: Maurizz

Um ganz konkret zu sein:


    kenken is non-null and contains at least one entry (i.e. "row" in the first dimension)
    each "row" contains a non-null 2D-array of type int[][] with at least two sub-entries of type int[]
    each sub-entry in a row is non-null and has length 2
    the first sub-entry in a row is a pair {result, operation}, where result is an integer number and operation is a char(acter)
    operation must be one of '+', '-', '/', '*', ' ' (whitespace)
    all other sub-entries (except for the first one) in a row must be pairs of positive int-numbers
    if operation is ' ' (whitespace), then exactly one sub-entry must follow the {result, operation}-pair
    if operation is '-' or '/', then exactly two sub-entries must follow the {result, operation}-pair
    if operation is '+' or '*', then at least two sub-entries must follow the {result, operation}-pair

das sind die Punkte die ich abarbeiten muss. Ich muss also an gewissen Stellen den Datentyp überprüfen.

Wenn ich richtig verstanden habe kann ich die 5 char Zeichen an ihren numerischen Wert überprüfen lassen?
Ich denke das schaffe ich.
Wegen den Int Werten muss man es sich so überlegen: Jemand ist lustig ändert int kenken[][][] zu double kenken[][][] oder was auch immer und schreibt irgendwo nen double Wert hinein. Jetzt soll die Methode aber unabhängig davon was kenken den auch immer ist, es kann auch float kenken sien ist ja wayne, überprüfen ob dennoch nur ganze Zahlen vom int Wertebereich drin stehen. Vielleicht verkompliziere ich die Sache auch, wer weiß.


Bezug
                                        
Bezug
Typerkennung: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 16:03 Do 15.11.2012
Autor: Event_Horizon

Hallo!

Jetzt wirds einfacher!



>      the first sub-entry in a row is a pair {result,
> operation}, where result is an integer number and operation
> is a char(acter)
>      operation must be one of '+', '-', '/', '*', ' '
> (whitespace)
>      all other sub-entries (except for the first one) in a
> row must be pairs of positive int-numbers



die zweite Spalte, also das Element

kenken[i][0][1]

ist IMMER eins von  '+', '-', '/', '*', ' ' und nie was anderes. Genauso bestehen die nachfolgenden Elemente IMMER aus zwei Zahlen, und nie aus Zeichen.

Daher brauchst du dir da keinen Kopf drum zu machen. Der Vergleich funktioniert genauso wie die Zuweisung:


if (kenken[i][0][1] == '/')
      NumFollowingSubs=2





Theoretisch ist es egal, ob das nun ein INT oder ein FLOAT-Array ist.

Bezug
                                                
Bezug
Typerkennung: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 16:38 Do 15.11.2012
Autor: Maurizz

Hey Moment!

if (kenken[i][0][1] == '/')
      NumFollowingSubs=2

Die 2. Anweisung hab ich ja noch nie gesehen!
Überprüft der jetzt wirklich ob in [i][0][1] genau 2 Zahlen sind?? [mm] O_O [/mm]
das würde bedeuten das ich mein halben Code löschen kann.

Bezug
                                                        
Bezug
Typerkennung: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 17:07 Do 15.11.2012
Autor: Event_Horizon

nee neee, das ist keine Anweisung. Die 2. Zeile sollte nur zur Veranschaulichung sein. Letztendlich brauchst du (vermutlich) ne Info, wieviele gültige Paare noch kommen, und laut deiner Aufgabe kommen nach nem '/' nur noch 2. Das könnte man in ner Variablen speichern, und das soll das bezwecken. Das ist alles.


Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Java"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]