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 Schulmathe
  Status Primarstufe
  Status Mathe Klassen 5-7
  Status Mathe Klassen 8-10
  Status Oberstufenmathe
    Status Schul-Analysis
    Status Lin. Algebra/Vektor
    Status Stochastik
    Status Abivorbereitung
  Status Mathe-Wettbewerbe
    Status Bundeswettb. Mathe
    Status Deutsche MO
    Status Internationale MO
    Status MO andere Länder
    Status Känguru
  Status Sonstiges

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
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenSonstigeOcaml
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Deutsch • Englisch • Französisch • Latein • Spanisch • Russisch • Griechisch
Forum "Sonstige" - Ocaml
Ocaml < Sonstige < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Sonstige"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Ocaml: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:05 Do 09.10.2008
Autor: csak1162

Aufgabe
Geben sie für die folgenden FUnktionen

String.length
print_endline
print_string
print_char
print_newline


den jeweiligen Typ an und beschreiben Sie die Arbeitsweise für jede Funktion anhand eines kurzen Beispiels genauer

wir sind in der Vorlesung nicht mehr bis dahin gekommen, und ich weiss jetzt nicht, was ich machen soll


# let name = "Informatik"
  ;;
val name : string = "Informatik"
# String.length name;;
- : int = 10
# print_endline name;;
Informatik
- : unit = ()
# print_string;;
- : string -> unit = <fun>
# print_char name;;
Characters 11-15:
  print_char name;;
             ^^^^
This expression has type string but is here used with type char
# print_string name;;
Informatik- : unit = ()
# print_newline name;;
Characters 14-18:
  print_newline name;;
                ^^^^
This expression has type string but is here used with type unit
# name;;
- : string = "Informatik"
# String.sub name 0 4;;
- : string = "Info"
#


das erhalte ich, wenn ich es in OCaml eingebe, was bedeutet das jetzt


bei length werden die Buchstaben gezählt, oder??
und string.sub schneidet irgendwo ab, aber bei den anderen habe ich keine Ahnung, weiß jemand was ich da tun soll, bzw, was das bedeutet oder wie das geht??


danke



        
Bezug
Ocaml: danke
Status: (Frage) beantwortet Status 
Datum: 16:09 Do 09.10.2008
Autor: csak1162

Aufgabe
Geben Sie den String "Hello World!!" mit HIlfe einer entsprechenden, bereits in OCaml verhandenen Fuktion aus

muss ich da einfach print_string eingeben oder etwas anderes??

Bezug
                
Bezug
Ocaml: Antwort
Status: (Antwort) fertig Status 
Datum: 20:26 Fr 10.10.2008
Autor: Martin243

Hallo,

das funktioniert doch, oder? Wenn also nicht ausdrücklich etwas anderes verlangt wurde, geht es mit dieser Funktion.


Gruß
Martin

Bezug
        
Bezug
Ocaml: Antwort
Status: (Antwort) fertig Status 
Datum: 20:25 Fr 10.10.2008
Autor: Martin243

Hallo,

vielleicht wirfst du mal am besten einen Blick auf diese []Dokumentation. Da sind all diese Funktionen kurz beschrieben.


Gruß
Martin

Bezug
                
Bezug
Ocaml: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 14:16 So 12.10.2008
Autor: csak1162

wei erkenne ich, welchen Typ diese Funktionen haben??

danke

Bezug
                        
Bezug
Ocaml: Antwort
Status: (Antwort) fertig Status 
Datum: 14:49 So 12.10.2008
Autor: Martin243

Hallo,

einfach den Funktionsnamen eintippen, mit ;; abschließen und fertig. Es wird der entsprechende Typ vom Interpreter angezeigt.


Gruß
Martin

Bezug
                                
Bezug
Ocaml: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:01 So 12.10.2008
Autor: csak1162

welches ist jetzt der Typ in diesem Beipiel???
string, int oder fun


# String.length;;
- : string -> int = <fun>

steh grad voll auf der Leitung!
danke

Bezug
                                        
Bezug
Ocaml: Antwort
Status: (Antwort) fertig Status 
Datum: 15:52 So 12.10.2008
Autor: Martin243

Hallo,

nun, es könnte sein, dass du da etwas von der funktionalen Programmierung nicht verstanden hast. String.length ist eine Funktion mit dem Typ string -> int. Das bedeutet, dass man diese Funktion auf einen string anwenden kann und das Ergebnis vom Typ int ist.
Interessanter ist es z.B. bei der Funktion String.sub: Die hat den Typ string -> int -> int -> string. Das bedeutet:
1. Wendet man die Funktion auf einen String an, erhält man eine Funktion vom Typ int -> int -> string.
2. Wendet man die Funktion auf einen string und einen itn an, erhält man eine Funktion vom Typ int -> string.
3. Wendet man die Funktion auf einen string und zwei ints an (was du wahrscheinlich brauchen wirst), erhält man einen string.


Gruß
Martin

Bezug
                
Bezug
Ocaml: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:06 So 12.10.2008
Autor: csak1162

bei diesem Befehl stehe ich irgendwie auf der Leitung, was macht der genau und wieso bekomme ich hier eine Fehlermeldung???

# print_newline "Informatik;;
Characters 14-18:
  print_newline "Informatik";;
                ^^^^
This expression has type string but is here used with type unit

Bezug
                        
Bezug
Ocaml: Antwort
Status: (Antwort) fertig Status 
Datum: 16:09 So 12.10.2008
Autor: Martin243

Hallo,

in meinem anderen Beitrag habe ich die Funktion print_endline erwähnt! Du kannst ja den Typ von print_newline herausfinden. Du wirst sehen, da passt dein string nicht dazu.


Gruß
Martin

Bezug
        
Bezug
Ocaml: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 19:16 Sa 11.10.2008
Autor: csak6632

Aufgabe
Schreiben sie eine Funktion, die einen String beliebiger L¨ange sowie bestehend aus
beliebigen Zeichen, vertikal statt horizontal darstellt (in jeder Zeile ein Zeichen des
Strings). Geben Sie als letzte Zeile zus¨atzlich den String ”ENDE“ aus (2 Punkte).

Koennten Sie mal mit dieser Uebung helfen, ich hab' schnon ganzen Tag im Internet gesurft und nix gefunden. Vielen Dank im voraus!> Geben sie für die folgenden FUnktionen

>
> String.length
>  print_endline
>  print_string
>  print_char
>  print_newline
>  
>
> den jeweiligen Typ an und beschreiben Sie die Arbeitsweise
> für jede Funktion anhand eines kurzen Beispiels genauer
>  wir sind in der Vorlesung nicht mehr bis dahin gekommen,
> und ich weiss jetzt nicht, was ich machen soll
>  
>
> # let name = "Informatik"
>    ;;
>  val name : string = "Informatik"
>  # String.length name;;
>  - : int = 10
>  # print_endline name;;
>  Informatik
>  - : unit = ()
>  # print_string;;
>  - : string -> unit = <fun>

>  # print_char name;;
>  Characters 11-15:
>    print_char name;;
>               ^^^^
>  This expression has type string but is here used with type
> char
>  # print_string name;;
>  Informatik- : unit = ()
>  # print_newline name;;
>  Characters 14-18:
>    print_newline name;;
>                  ^^^^
>  This expression has type string but is here used with type
> unit
>  # name;;
>  - : string = "Informatik"
>  # String.sub name 0 4;;
>  - : string = "Info"
>  #
>
>
> das erhalte ich, wenn ich es in OCaml eingebe, was bedeutet
> das jetzt
>  
>
> bei length werden die Buchstaben gezählt, oder??
>  und string.sub schneidet irgendwo ab, aber bei den anderen
> habe ich keine Ahnung, weiß jemand was ich da tun soll,
> bzw, was das bedeutet oder wie das geht??
>  
>
> danke
>  
>  


Bezug
                
Bezug
Ocaml: Antwort
Status: (Antwort) fertig Status 
Datum: 13:02 So 12.10.2008
Autor: Martin243

Hallo,

eine Funktion, die die Ausgabe immer mit einem Zeilenumbruch beendet, kennst du schon: print_endline.
Du benötigst nun eine rekursive Funktion, die immer das erste Zeichen des Strings mit Zeileumbruch am Ende ausgibt und sich rekursiv auf dem Rest des Strings aufruft. Sobald der String aber leer ist (Länge 0), soll die Funktion nur noch "ENDE" ausgeben.
Du brauchst hier vor allem die Stringfunktionen, die dir zur Verfügung stehen, wenn du eingibst:
#use "string.ml";;
Die Fallunterscheidung nach Länge des Strings würde ich mit
match ... with ...
realisieren.
Zum Nachschlagen reichen mir persönlich die beiden Links: []A Concise Introduction to Objective Caml
und []The Objective Caml system release 3.10, bin aber auch kein Experte.


Gruß
Martin

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


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