Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   [Latein] Verben-Konjugations-Unit + Programm (https://www.delphipraxis.net/63144-%5Blatein%5D-verben-konjugations-unit-programm.html)

Nicolai1234 14. Feb 2006 14:21


[Latein] Verben-Konjugations-Unit + Programm
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo,
ich habe mich in den letzten Tagen ein wenig intensiver mit den verschiedenen lateinischen Konjugationen beschäftigt. Herausgekommen ist eine Unit, die ein bestimmtes Verb in allen Zeiten, Modi, Leideformen und Personen bilden kann.
Wie ihr alle wisst :wink: sieht ein lateinisches Wort i.d.R. so angegeben. Beispiel:
Code:
capere                       capo                      cepi                       captum
Infinitiv Präsens aktiv  -   1.P.Sg.Präs.Ind.akt.  -   1.P.Sg.Perf.Ind.aktiv  -   Partizip Perfekt Passiv (PPP)
Um ein Verb richtig konjugieren zu konnen, sind - je nach Zeit - alle vier Formen notwenig.

Version [Beta]

daraus entstand folgendes record:
Delphi-Quellcode:
type TWort = record
    Infinitiv, Praesens, Perfekt, PPP: string;
    end;
Ich hoffe die Funktion des records ist eindeutig :)

Enstanden sind nun also folgende 12 Funktionen:
Delphi-Quellcode:
function FuturII_Indikativ_aktiv(w:TWort;Person:integer): string;
function FuturII_Indikativ_passiv(w:TWort;Person:integer): string;

function FuturI_Indikativ_aktiv(w:TWort;Person:integer): string;
function FuturI_Indikativ_passiv(w:TWort;Person:integer): string;

function Praesens_Indikativ_aktiv(w:TWort;Person:integer): string;
function Praesens_Indikativ_passiv(w:TWort;Person:integer): string;
function Praesens_Konjunktiv_aktiv(w:TWort;Person:integer): string;
function Praesens_Konjunktiv_passiv(w:TWort;Person:integer): string;

function Imperfekt_Indikativ_aktiv(w:TWort;Person:integer): string;
function Imperfekt_Indikativ_passiv(w:TWort;Person:integer): string;
function Imperfekt_Konjunktiv_aktiv(w:TWort;Person:integer): string;
function Imperfekt_Konjunktiv_passiv(w:TWort;Person:integer): string;

function Perfekt_Indikativ_aktiv(w:TWort;Person:integer): string;
function Perfekt_Indikativ_passiv(w:TWort;Person:integer): string;
function Perfekt_Konjunktiv_aktiv(w:TWort;Person:integer): string;
function Perfekt_Konjunktiv_passiv(w:TWort;Person:integer): string;

function Plusquamperfekt_Indikativ_aktiv(w:TWort;Person:integer): string;
function Plusquamperfekt_Indikativ_passiv(w:TWort;Person:integer): string;
function Plusquamperfekt_Konjunktiv_aktiv(w:TWort;Person:integer): string;
function Plusquamperfekt_Konjunktiv_passiv(w:TWort;Person:integer): string;
Neben dem eigentlich Verb (TWort), benötigen sie auch die Person, für die das Verb gebildet werden soll. Dies erfolgt über ein Integer:
Code:
1 - 1.P.Sg
2 - 2.P.Sg
3 - 3.P.Sg
4 - 1.P.Pl
5 - 2.P.Pl
6 - 3.P.Pl
So kann man nun relativ einfach Verformen bilden:
Delphi-Quellcode:
[...]
var verb: TWort;

[...]

with verb do
  begin
  infinitiv := 'capere';
  praesens := 'capo';
  perfekt := 'cepi';
  ppp := 'captum';
  end;
Delphi-Quellcode:
Perfekt_Indikativ_Passiv(Verb, 4);
gibt also den Wert "capti sumus" zurück.

Neben der a-/e-/i-/gemischt kons.- und der kononsantischen-Konjugation, beherrscht die Unit auf das unregelmäßige Verb "esse". Andere unregelmäßige Verben werden folgen.

So, das wars erstmal, ich wäre über weitere Anregungen sehr froh.

Version [1.0]
So, hier mal ein paar Änderungen, die mir spontan möglich erschienen Very Happy
Delphi-Quellcode:
function wort(InfinitivPraesensAktiv,PraesensAktiv,PerfektAktiv,PPP:string):twort;
Das sollte eigentlich selbsterklärend sein. Wie unten erwäht wurde ist es eben wie funtion point(x,y):tpoint.

Dann kommt die "Management-Funktion" Konjugiere:

Delphi-Quellcode:
function konjugiere(Person:integer;Zeit:string;Indikativ,Aktiv: boolean;Verb: TWort): string;
Parameter 1:
Code:
Person: (Eingabe als Integer von 1 bis 6)
1 - 1.P.Sg
2 - 2.P.Sg
3 - 3.P.Sg
4 - 1.P.Pl
5 - 2.P.Pl
6 - 3.P.Pl
Parameter 2:
Code:
Zeit: (Eingabe erfolgt über einen String, der wie folgt aussehen kann)
"FuturII"
"FuturI"
"Praesens"
"Imperfekt"
"Perfekt"
"Plusquamperfekt"
Parameter 3:
Code:
true = Indikativ
false = Konjunktiv
Parameter 4:
Code:
true = Aktiv
false = Passiv
Parameter 5:
Code:
Verb = TWort - eben das Verb, dass Konjugiert werden soll!
TWort, wie oben erklärt
So gibt der Aufruf
Delphi-Quellcode:
konjugiere(4,'FuturII',true,false,wort('amare','amo','amavi','amatum'))
"amati erimus" zurück.

Ich hoffe, so konnte ich den umgang ein wenig einfacher machen.
Das PPP beispielsweise kann man dieser "Masterfunktion" nicht gebildet werden. Es wird später bei den Deklinationen folgen, da ich denke, dass es da mehr benötigt wird, als bei den Konjunktionen.

Version [1.0b]
Fehler behoben (gemeldet am 26.02 siehe unten)

Beispielanwendung
Im Anhang ist noch eine Beispielanwenung, sodass man die Funktionen der Unit einfach testen kann. (und natürlich ein Screenshot dazu).


Vielen Dank

ichbins 14. Feb 2006 14:59

Re: [Latein] - Verben-Konjugations-Unit
 
wie kriegst du raus ob das Verb auf ere die e- oder die konsonantische Konjugation hat (oder irgendwie so *g*)

du kannst ja auch mal ne Beispielapplikation dazuschreiben, dürfte ja kein Problem sein.

zusätzlich zur einfacheren Verwendung eine Funktion WORT:
Delphi-Quellcode:
function wort(infinitivpraesensaktiv,1ppraesensindikativaktiv,1pperfektindikativaktiv,ppp:string):twort;
begin
  result.:=;
  result.:=;
  result.:=;
  result.:=; //hier war ich faul ;)
end;
so wie bei function point(x,y):tpoint.

dann würde ich noch ne "Management-Funktion" schreiben, etwa so:
Delphi-Quellcode:
function konjugiere(wort:twort;zeit,person:integer;aktiv,indikativ:boolean);

(PS. meine Lateinnote 5,2 zieht den Zeugnissschnitt auf 1,8 runter ;) <-Schätzungsangaben)

Nicolai1234 14. Feb 2006 15:11

Re: [Latein] - Verben-Konjugations-Unit
 
Zitat:

Zitat von ichbins
wie kriegst du raus ob das Verb auf ere die e- oder die konsonantische Konjugation hat (oder irgendwie so *g*)

Das erkennt man an der 1.P.Sg.Präs.Akt.Ind. :wink:
e-Konjukation -> rideo
kons. Konugation: intellego
kurz-i Konjugation: capio
Zitat:

Zitat von ichbins
du kannst ja auch mal ne Beispielapplikation dazuschreiben, dürfte ja kein Problem sein.

Da bin ich gerade dabei. Das ganze entstand auch dadurch, dass ich mir ein kleines Lernprogramm rund um die lat. Konjugationen basteln möchte.

Zitat:

Zitat von ichbins
dann würde ich noch ne "Management-Funktion" schreiben, etwa so:
Delphi-Quellcode:
function konjugiere(wort:twort;zeit,person:integer;aktiv,indikativ:boolean);

Ja, das wollte ich auch noch machen, mir fehlt nur noch eine Sinnvolle Idee, die Zeiten zu nummerieren!

Khabarakh 14. Feb 2006 15:18

Re: [Latein] - Verben-Konjugations-Unit
 
Nett, wenn auch nicht gerade eine Meisterleistung in objektorientierter Programmierung :zwinker: . Aber was ist mit den armen Deponentien?
Zitat:

Zitat von Nicolai1605
Zitat:

Zitat von ichbins
dann würde ich noch ne "Management-Funktion" schreiben, etwa so:
Delphi-Quellcode:
function konjugiere(wort:twort;zeit,person:integer;aktiv,indikativ:boolean);

Ja, das wollte ich auch noch machen, mir fehlt nur noch eine Sinnvolle Idee, die Zeiten zu nummerieren!

Warum willst du sie denn nummerieren? Deklariere einfach einen eigenen Enum-Typen.

Nils_13 14. Feb 2006 15:18

Re: [Latein] - Verben-Konjugations-Unit
 
Sind da auch die bes********* Ausnahmen mit eingebaut ?

Khabarakh 14. Feb 2006 15:25

Re: [Latein] - Verben-Konjugations-Unit
 
Zitat:

Zitat von Nils_13
Sind da auch die bes********* Ausnahmen mit eingebaut ?

Wer lesen kann, ist klar im Vorteil:
Zitat:

Neben der a-/e-/i-/gemischt kons.- und der kononsantischen-Konjugation, beherrscht die Unit auf das unregelmäßige Verb "esse". Andere unregelmäßige Verben werden folgen.

Nicolai1234 14. Feb 2006 15:25

Re: [Latein] - Verben-Konjugations-Unit
 
Zitat:

Zitat von Nils_13
Sind da auch die bes********* Ausnahmen mit eingebaut ?

Welche Art von Ausnahmen denn?

DGL-luke 14. Feb 2006 16:09

Re: [Latein] - Verben-Konjugations-Unit
 
Könnte das mal bitte jemand auf einen Texas Instruments Taschenrechner portieren? :twisted:

Nils_13 14. Feb 2006 16:40

Re: [Latein] - Verben-Konjugations-Unit
 
Die Sprache ist voll von Ausnahmen, in jeder Konjunktion. Außerdem mach doch noch die Deklinationen, die sind schwieriger zu lernen.

Nicolai1234 14. Feb 2006 16:48

Re: [Latein] - Verben-Konjugations-Unit
 
Zitat:

Zitat von Nils_13
Die Sprache ist voll von Ausnahmen, in jeder Konjunktion.

Das müsstest du mir mal genauer erklären. Ich muss zugeben, dass ich noch nicht allzu lange Latein habe, aber bis auf esse und posse war bis jetzt alles regelmäßig. Probleme sind vllt. noch Verben ohne aktiv-Form oder solche, die keinen Passiv haben können... Aber das liegt nicht in der Macht der Unit, sondern vielmehr in der des Benutzers. "Ich werde geseint" - das sollte der User selber erkennen.

Zitat:

Außerdem mach doch noch die Deklinationen, die sind schwieriger zu lernen.
hmm, finde ich nicht, die habe ich alle in wenigen Stunden auswendig gelernt. Und ich beherrsche sie so, dass ich sie in wenigen Sekunden "runterrattern" kann.

Nicolai

PS (zu den Deklinationen): Unser ehemaliger Lehrer wollte "homo novus" in allen Kasus in 3 (in Worten: drei) SEkunden aufgesagt bekommen. (jeweils für Singular und Plural) - Sowas prägt!


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:33 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz